CAM TECH BLOG

株式会社CAMのエンジニア・デザイナーの活動を綴るブログです

株式会社CAMの技術ブログです。 エンジニアとデザイナーの活動や組織文化を綴ります。

Kotlin/Native の薄い本ができるまで〜 Native 集団「うさぎてっく」の活動レポ 〜

f:id:cam-engineer:20190410140143p:plain

CAM史上初めて「技術書典」参加を決めたネイティブエンジニア3人のチーム「うさぎてっく」。なぜ所謂 ”薄い本” を書こうと思ったのか、その本はどんなプロセスを経てでき上がっていったのかを取材しました。

 
技術書典とは、技術同人誌の祭典で、いわば技術書版のコミケ。ここでしか手に入らないニッチな技術の本を求めて、毎回、数多くの技術者が来場します。

年々注目度が高まっており、うさぎてっくが参加予定の「技術書典6(2019年4月14日開催)」は過去最高の参加申し込み数をカウントしたそう。
techbookfest.org


[うさぎてっく メンバー紹介]
 
f:id:cam-engineer:20190409155831p:plain f:id:cam-engineer:20190409155801p:plain f:id:cam-engineer:20190409144943p:plain
石川 雅之(いしかわ まさゆき) 渡辺 恵太(わたなべ けいた) 松本 圭樹(まつもと けいじゅ)
アバターサービスのサーバサイドを 5 年程担当し、現在は某ライブ配信系のアプリの iOS を担当。 iOS が大好きな Android アプリエンジニア。 いろんな言語、プラットフォームに関わりたい雑食系男子。 2018年 新卒の Android アプリエンジニア。趣味はスノーボードで雪山が癒し。


今書いたら売れるんじゃないかと・・・

ーー薄い本を作ろうときめたきっかけは?

石川: 2018年10月30日に、Kotlin 1.3 が正式にバンドルされたというニュースを見て、ちょっと試してみようかなと思ったのが最初です。

チーム全員、初めて触るので、そこまで深いことは書けないですから、自然と「Kotlin/Nativeって使えるのかな?」という部分に特化して、検証的なことを書いていく流れになりました。

f:id:cam-engineer:20190409144250p:plain
▲ 唯一の経験者・石川はリーダーとしてメンバーを牽引。

チームは、会社のデスク周りで声をかけて興味持ってくれたメンバーで、これも自然にできた感じですね。


松本: Kotlin1.3 が出て間もないタイミングなので、世間に情報が少なかったんです。日本語でのブログも、書き始めた当初は全然、なかったので、今書いたら売れるんじゃないかという発想ですね(笑)。


渡辺: みんなでどんな切り口がいいかなって雑談をしながら、Qiitaをざーっと眺めていたら、初心者向けがよさそうだぞと。

自分たちも初めて触るので、読者(初心者)と同じ目線で語られている情報に、確かなニーズを感じました。薄い本なので、今の段階で書けることのすべてを書こう、という方針でした。

淡々と(サンプルを)作って淡々と書いて、、、実験記録みたいな感じですかね。個人的には、他のマルチプラットフォームと違って、UIが共通化しないことの良さみたいなのが伝えられたらと思いました。


スケジュールは、ざっと1ヶ月単位で

ーー書くからには売れるものをという考え方は、良いですね!しかし、技術書典6への応募から当選発表(2019年2月6日)までのわずか2ヶ月で、どうやって作り上げたのでしょう?

石川: 実は、(Kotlin/Native を)実際に触る前から、本は書こうと決めていたんです。僕だけ、過去にも本を作った経験があったので、全体のスケジュール感は頭に入っていました。

技術書典6参加権が当選すればラッキー、外れてもこの内容はニーズがあると思っていました。

f:id:cam-engineer:20190409144246p:plain

スケジュールは、ざっと1ヶ月単位で大まかに引きました。

┏ 2018年 11〜12月 Kotlin/Native でアプリ制作
┃
┣ 2019年 1〜2月   各自執筆
┃
┣      3月    入稿(3/13)&校正
┃
┗      4月    本完成&会場搬入(4/14)

週1回の進捗ミーティングの他は、適宜 Slack でやり取りするくらい。原稿をそれぞれが GitHub にあげて、プルリク(エスト)かけてマージしていたので、進み具合は常に確認できました。

現物は、当日会場に印刷所から直接搬入されるので現時点で未だ見ていないですが、僕自身が印刷所に行ってるので、大丈夫だと思います。


実務で担当している分野で役割分担

ーー具体的な役割分担はどのようにしましたか?

松本: アプリ制作の段階では、「Hello, world」的なところは全員で書いて、iOS の view は石川さん、 共通部分のロジックの実装を渡辺さん、アプリ構築の環境整備と Android の view は自分という感じで、実務で担当している分野をベースに分けました。

f:id:cam-engineer:20190409144255p:plain
▲ 入社2年目の節目で書籍出版を経験をした松本

時間があまりなかったので、実装に関わる部分のみ3人で、それ以外は石川さんに書いてもらいました。

原稿を分担して書く上でのルールはあまり設けなくて、「マークダウンで書くこと」と「スクリーンショットに章の番号を入れること」くらいですかね。

石川さんが、最初に冒頭の章を書いて共有してくれたので、書式や言い回し等は、自然とそれに寄り添う形になっていきました。


チーム全員で約200時間

ーー構成から文章起こしまで、どのくらいの時間を要したのでしょう?

石川: 僕はトータルで約1週間、時間にすると 160 時間くらいですかね。他のメンバーより書く量が多かったのと、推敲にも結構時間を割きました。読みやすい、こなれた日本語に仕上げるのに随分苦労しました(笑)。


松本: 僕は 12 時間くらいですね。担当が主に環境構築だったので、作ったあとは、スクリーンショットに説明つけるだけだったので、文章らしい文章は書いてない気がします。


渡辺: 僕は 20 時間くらいだったかと思います。内容よりも、日本語表現が大変だった印象です。3人とも、まとまった時間で一気に書いたのではなく、空き時間を利用して少しずつ書き進めていった感じです。


装丁関連はデザイナーにまるっと依頼

ーー本の装丁にはデザイナーをアサインされましたか?それとも外部サービスを利用されましたか?

石川: デザイナーにお願いしました、というか、僕の妻なんですが、本職でデザイナーをやっていまして。表紙のイラストも組版も、彼女に依頼しました。あ、もちろんボランティアじゃなくて、ちゃんと ”仕事として” ですよ。

f:id:cam-engineer:20190409144308p:plain
▲ うさぎてっくのシンボルキャラ。両手でりんごとドロイドを掲げている。

印刷所は、技術書典のバックアップ印刷所の日光企画を利用しました。会場に直接搬入してくれたり、早く入稿するとかなり値引きされたり、いろいろ便利でした。


バージョンアップには期限を決めて対応

ーー聞く限り、かなりスムーズに進行したようですが、予定違いやハプニングは全然起こらなかったのでしょうか?

松本: 執筆開始後のバージョンアップには、ちょっと悩まされましたね。Kotlin も Android studio もライブラリもバージョンアップがありまして、、(笑)。

なるべく最新情報を取り入れたいけど、追い続けるとキリがないので、今回の本の中では、2月最後の土曜日の時点までの更新情報は反映する、という方針にしました。


渡辺: 今回、電子版( PDF )も用意したのですが、まさかの電子版の配布方法で手こずりました。

f:id:cam-engineer:20190409144304p:plain
▲ 渡辺は、電子版でまさかのつまずきに冷や汗

Zipにパスワードをかければ大丈夫、と思っていたのですが、GitHub のサンプルプロジェクトを含めた状態で実行しようとすると、解凍できないという問題が発生しました。環境依存問題ですね。

とあるソフトウェアを使ったらできた、というメンバーの検証情報もあったのですが、トラブルが怖いので、プロジェクトは外すことにしました。


石川: 技術書典の出品者が受け取る通行証は、1チームあたり2枚までなのですが、もしかしたら3人分もらえるかも、と淡い期待を抱いていたのですが、やはりダメでした(笑)。

なので誰か1人、当日朝に一般客に混じって並ぶ予定です(笑)。


これから書く人へ5つのアドバイス

ーーやってよかったことや、これから本を作ろうと思っている人へのアドバイスはありますか?

石川: ざっとあげるとこの5つですかね。

1. 早めに入稿

2. 初めての場合は印刷所に出向く

3. サークル名、書籍名は意外と悩む

4. 校正は紙で

5. 仲間に経験者がいると強い

1. 早めに入稿

印刷代は早割だと断然、安いです。なので、できれば早割を狙った方がいいです。僕らの場合、1ヶ月前の入稿だったので、オフセット割と pixiv 割利用で 25%オフ、それに現金払い還元など諸々の特典もあり、だいぶ安く抑えられました。

2. 初めての場合は印刷所に出向く

初めてだと、仕上がりイメージがつきづらいですし、入稿データにもちょこちょこ不備があったりします。WEB入稿は便利ですが、印刷所に実際に行って、担当の方と一緒にチェックすると、用紙現物がみられたり、表紙の余白や塗り足しが正しく設定されているか等、原稿をその場でチェックしてもらえるので、安心感が違います。

f:id:cam-engineer:20190409144241p:plain

3. サークル名、書籍名は意外と悩む

なかなか決まらなかったので、年末年始、メンバー全員の宿題として持ち帰りました。ちなみに「うさぎてっく」は松本くんのアイディアです。

4. 校正は紙で

これは他の方も書いてますが、校正は画面上でやるより、紙の上で赤ペンを走らせる方が、実際の紙面にイメージが近いのでやりやすいです。

5. 仲間に経験者がいると強い

僕らのチームは経験者がいたことと、身近に相談できるデザイナーがいたことはかなり有利に働いたと思います。


気になるコストは・・・?

ーー参考まで、今回用意した冊数とざっくりコストはどれくらいでしたか?

石川: 40ページ・表紙裏表紙のみフルカラーで300 冊作って印刷代でだいたい5万円くらい。この他諸経費を合わせて 11 万円ちょっとです。全部売れたら、飲み代くらいは出るかなあという感じですね。


当日は是非【 け19 】うさぎてっくブースへ!

ーーまもなく技術書典6当日を迎えます。感想、メッセージなど一言いただけますか?

石川: 当日は【 け19 】のうさぎてっくブースでご来場お待ちしています!書籍とPDF版の同時購入で、プレゼントも用意しています(※ 無くなり次第終了)

個人的には、今後も Kotlin/Native に限らず、何かしらネタがあればまた書いてみたいと思っています。書くことから新たな学びがありますから、みなさんも、ぜひトライしてみてほしいなと思います。

渡辺: ずっと原稿をマークダウンで執筆してたので、初めて PDF で見た時に「あ、本だ!本になってる!」という妙な感動がありました(笑)。タイトルに少しでも興味を引かれたら、手にとっていただけると嬉しいです。

松本: この本は、iOS や Android を少しでもかじったことがあったり、Kotlin の基本的な言語仕様がわかっていれば、初心者でも理解できる内容です。

シンプルさ重視で1ファイル完結にしてますので、書いている通りにやれば絶対できるはずです。やってみて、次のステップへの自信をつけてもらえると嬉しいです。

f:id:cam-engineer:20190409144301p:plain
▲ 和気藹々とした雰囲気のうさぎてっくメンバー。当日が待ち遠しい。


ーーありがとうございました!

技術書典6は2019年4月14日(日)池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F)で開催です。是非【 け19 】うさぎてっくブースにお立ち寄りください!

うさぎてっく:サークル詳細

techbookfest.org