技術書典5でやったことそれでは最後に明るい話題として、技術書典5に対して私が貢献したことについて並べておきたいと思います。朝から会場設営のスタッフやってました開会ギリギリまで技術季報をトートバッグに詰める作業をやってました閉会後は会場撤収のスタッフやってました公式後払いアプリのAndroid版も担当しましたサークル参加しながらスタッフするの、当日の充実感が半端ないです。体力的に翌日に死ぬので、オススメはしません。あとね、後払いアプリのAndroid版ね。Native(というかExpo)で私がやることになってました。2ヶ所ほど軽微な改修を入れるだけでAndroid対応ができたので、そこのところはやっぱりExpoよくできてんな、という気持ちでした。TypeScriptで作ってあったので、何回かあった仕様変更にも比較的容易に応えられたのはとてもよかったと思います。まとめ技術書典6はもっとちゃんと宣伝しようと思いました。Androidアプリ開発超入門」という本が技術評論社さんから出ることになりました。電子書籍版もあります。世の中の単著erの皆さんすごい。思い出があるので、出版にあたってのあれこれを書いてみようと思います。Studioの使い方を学んでいく本です。初学者向けの本にするにあたって、次の3点を工夫しています。Studioを日本語化して、できるだけ解説に英語が出てこないようにするJava言語についての解説は最低限にするレイアウトはGUIエディターのみで行う余計な前提知識を求めると、躓いてしまう方もいそうだったので、できるだけ前提知識を求めずに、学びたいことをストレートに学べるようにした形になります。Studioを日本語化したおかげで、解説の中で出てくる文言の多くを日本語にすることができました。見慣れないアルファベットの単語が入り混じった文章はコンテキストスイッチが多くなりそうなので、良い取り組みだったと思います。いってカタカナが大量に出てくるようになったのが良かったのかというと怪しいですし、ScrollViewのようなクラス名はそのまま表記しているので、どのくらい読みやすさに寄与したのかは、読者の感想を待ちたいところです。Javaを説明しすぎない本書はプログラミング未経験者を対象にしているため、Java言語についての解説も行いました。写経していく中で登場する、変数やメソッドといった最低限の要素だけを解説しています。思い切った点として、クラスについての解説をほとんどしていません。クラスの書き方を解説し始めると際限なく話題が膨らんでいくためです。Activityになります。それ自体は後々に問題を引き起こす可能性はあります。それが問題になるくらいにコードをたくさん書けるようになった人なら、本書ではなくもっと別の本がフィットするようになっているはずです。この「たった1日で」シリーズの良さは薄さや手軽さです。Javaの正しさ」を語り過ぎないようにしたつもりなので、読者がサクサク読み進められたらいいなと思います。レイアウトエディターはデザインモードのみレイアウト作成の解説は、レイアウトエディターのデザインモードのみで行いました。レイアウトの解説にXMLは登場しません。ここは筆者のこだわりです。XMLを書きながらプレビューを見るスタイルも筆者は好きですが、初学者時代を思い出して見ると、JavaとXMLを行ったり来たりするのは地味に心が折れそうになるポイントだった記憶があります。Studioには、ConstraintLayoutを用いた、そこそこ実用的といえるWYSIWYGなレイアウトエディターがあります。これならば心理的な障壁が幾分か低くなるのではないかと考え、全編で採用しました。ドラッグ&ドロップで制約を付けていく作業については、限られた紙面の中で、できるだけ丁寧に解説したつもりです。アプリ開発の醍醐味のひとつ、レイアウト作成を楽しく体験してもらえればと思います。3.2で導入されたナビゲーションエディターを用いた画面遷移の定義は盛り込めませんでした(そもそも画面遷移を取り扱う紙面の余裕もなかったのですが:-p)。2019年に似たような本が出てくるときには、是非ナビゲーションエディターの解説も含まれていてほしいなあと思います。Studio版を作ろう、という企画が先にあり、1月に知人を通じて声がかかりました。降って湧いたようなチャンスだったので、最低限の調整だけを行って、ほぼ二つ返事でOKしました。それまでに書いたことがあった中で最も長い本は、88Pの技術書典4本でした。blog.nkzn.info200ページ超の執筆は初めてだったので、かなり不安もありました。いえ、ここまで大きいチャンスは滅多に来ません。多少自信がない程度で逃すわけにもいかなかったのでした。当初の予定では5月くらいまでに書き上げて、7月刊行くらいのスケジュールを引いていた気がしますが、筆者の遅筆が原因でずるずると延びて、8月入稿となりました。関係者の皆さんにはご迷惑をおかけしました。執筆の体制については、ざっくりと次のような感じです。編集プロダクションとのやり取りGitHubとSlackでIssue管理と連絡を行う執筆環境(メンタル)集中できるようにネットカフェに入り浸る執筆環境(システム)VivlioStyleでMarkdown+CSS組版で書いたMacで書きたいがためだけにVPNを張ってリモートデスクトップを設定した初稿の差分管理はGitで行う以降の校正作業はPDFベースでコメントを付ける日本語の文章の差分管理にもGitを使うのが有用なのは、プログラマーの間では認知されてきていることですね。個人的に面白い取り組みだった、CSS組版とリモートデスクトップについて掘り下げます。今回の本は編集プロダクションのリブロワークスさんと一緒に作ったのですが、リブロワークスさんではVivlioStyleというCSS組版のツールにMarkdownを組み合わせた執筆環境を用意してくれています。libroworks.co.jpAtomにプラグインを入れておけば、実際の本と同じような見た目でプレビューしながら、執筆を行うことができます。ReVIEWにもリアルタイムプレビューを行うツールはあったので、執筆体験としては既知の(素晴らしい)ものでしたが、こちらのほうがより実物に近い形で実現されていたので、楽しく執筆できました。Studioの動作確認やスクリーンショットの撮影はWindows上で行う必要がありました。一方で、私は普段Macを使っており、指が最もスムーズに動くのはMacです。Emacsキーバインドに指が汚染されているし、XKeymacsは好みじゃないので仕方ないですね。Studioの操作がWindowsに準じたものになるのは問題なかったのですが、Atomで日本語を入力していくときにWindowsのお作法に縛られるのは嫌でしたし、Windows上に快適な環境を作り上げる労力を払うのも嫌でした。Studioを触ることにしました。Windows側で撮影したスクリーンショットは自動でDropboxのフォルダに入るようにして、ほぼリアルタイムでMac側に共有されるようにしました。前述のとおり、ネットカフェでの作業が多かったため、自宅の外からでもWindowsマシンに繋がるよう、VPNを設定しました。これで快適な執筆環境の完成です。この環境ができるまで、なかなか文章を書き始められなかったので、担当さんをやきもきさせてしまって非常に申し訳なかったです......グランドスラム達成ここは本の内容と関係ないです。今回の出版のおかげで、これまで本の形で執筆してきたものリストが次のようになりました。Dive)同人・紙・共著(てくぶ)グランドスラム達成は言い過ぎかも*1ですが、ちょっとした達成感があります。この7年間、いろいろ書いてきたんだなあ、としみじみしてしまいますね。本を書く楽しさを教えてくれた皆さんには感謝するばかりです。今後も、機会を見つけて本を書いていきたいと思いますので、よろしくお願いします。まとめ妻や編集さんに助けてもらいながら、何とか本を書き上げることができました。この規模になってくると、とてもじゃないですが自分の力だけでやりましたとは言えません。本づくりって色んな人の力で成り立ってるんだなーと思いました。筆者がAndroidをやり始めたときにも、多くの書籍に助けられました。私の本が、現代の初学者の助けになれば、望外の喜びです。この本で入門した読者が5年後くらいにDroidKaigiで登壇してたりしたら泣くので、そういう方がいれば5年後にお声がけください。Native7月21日(土)に新潟県上越市で行われた、上越TechMeetup#2に参加してきました。jtm.connpass.com町家を改装したイベントスペース「高田小町」で、総勢15名での、和やかな雰囲気での開催となりました。なんでいったの主催の五十川さんがRNの話を聞きたいということでお呼ばれしました。上越は地元なので、地元で行われるIT勉強会にお呼ばれなんて、テンションがダダ上がりになる事案です。個人的なところとして、2010年ごろに上越である程度の規模のIT勉強会を開催することを諦めて新潟市で開催していたという事情がありまして、自分が諦めたことを実現した勉強会を是非応援したいという気持ちもありました。Nativeの光と闇というタイトルで講演してきました。スライドは次のとおりです。Nakagawawww.slideshare.net細かい内容は後述します。印象に残ったお話だけ。writer.appの話https://writer-app.com/自動文字起こしのWebアプリです。実用上のニーズから生まれているので、使いやすさはピカイチとのこと。FirebaseやGCPをモリモリ使っているのは楽しそうだなあと思いました。EventEmitterの話@lightnet328さんから。ブラウザの文脈にEventEmitterを持ち込むと、Reactで小さいアプリを作るときにpropsのたらい回しとかしないで済むことがあって良いよ、というお話でした。序盤は「えー、いうてEventEmitter氏、大規模に乱用するとプロジェクトが崩壊するじゃないですかー」と思いながら聞いていました。途中で当人から「まあ、規模が大きくなってくるとReduxとかのほうが管理しやすくなるんですけどね」という話があったので、安心して聞いていられました。SOC2の話クラスメソッドの植木さんから。classmethod.jpISMSなんかも「面倒くさそうだなあ」と思いながら傍から見ていたのですが、これは輪をかけて面倒くさいやつのようです。「おおお、そこまで監査するんだ偉い」みたいな気持ちで聞いていましたが、自分たちではあんまりやりたくないですね・・・。Nativeの光と闇ざっくりとした内容としてはこんな感じです。「光と闇」なんて大風呂敷を広げてしまったせいで、自分の中での意見のバランス調整が大変でした。闇パートを先に仕上げたのですが、気持ちがネガティブになってしまい、なかなか光パートを書き始められないという事故があったり。Nativeは銀の弾丸である」と思って、誤ったワクワクを持って帰ることです。そのため、普段から闇の話を多めにすることにしていますが、おかげで「お前はRNが嫌いなのか?」と言われることもあります。闇って言っちゃってますが、実際には解決すべき課題たちなのです。課題を解決するためのコストがメリットに対してめちゃくちゃ軽いならば、限られた条件において銀の弾丸っぽいものになることはあると思います。結局は組織と事業にマッチするかどうかです。Nativeの良いところが世の中に伝わらないんだよなあ、とも思っていたので、今回は思い切って光の話もしてみました。Webの人がブラウザ上ではどうやっても獲得できないQRコード読み込みを、超サクッとやってみせるというデモをしただけですが、刺さる人には刺さったんじゃないでしょうか。ノージャンルのIT勉強会だったので、オーディエンスにどの程度の知識を要求したらいいのかという点でもかなり迷いました。Reactという概念を先に説明することで、なんとかJSに普段触れ合っていない人向けにも理解度を上げられたのではないかと思います。今までRNの話は東京でコンテキストの近い人たち向けに喋ることが多かったわけですが、今回の資料作りで新潟向けの難易度調整みたいなところが分かってきた気がするので、今後はもうちょっと県内でも喋ってみたいです。写真を取り忘れましたが、ビアバッシュでした。おしゃべりしてたらほとんど食べてない(いつものこと)。うちこういう仕事すること多いんだけど、RNマッチすると思う?みたいな話をちらほらもらいました。現地の上越や、新潟県内からの参加者が多い感じでしたが、長野や石川からの参加者もおり、上越地方ならではの顔ぶれという感じの特色あるイベントになっていたと思います。10年前にこのイベントがあれば私は新潟市に移住しなかったかもしれないもしもの話をしても詮無いことなのですが、是非育ってほしいイベントです。今後とも発表を中心に、応援していけたらと思います。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。