はじめに
先日開催されたDroidkaigi2018にスカラシッププログラムの学生枠として参加させていただいたので,2日間の体験を記します.
また今回のスカラッププログラムスポンサーであり,交通費,宿泊費を負担していただいた
ウォンテッドリー株式会社様にこの場を借りて感謝申し上げます.
これからDroidkaigiの2日間を振り返っていくにあたり,個人的に聴講して印象に残ったセッションを日毎に記します.(セッションのタイムテーブルはこちら)
#Day1
朝10時過ぎ頃,新宿近辺の会場には1000人規模の参加者が集い,その規模の大きさに圧倒されながらも2日間におよぶDroidkaigiのオープニングを迎えました.
聴講するセッションは当日までに大体目ぼしはつけていましたが,特にアーキテクチャ周りに興味があったのでそれに関連するセッションはなるべく参加するようにしました.
1-1. Kotlinアンチパターン, Naoto Nakazatoさん
オープニングトーク直後の同じ会場での登壇で,約1000人の前で大舞台だなと思いながらkotlin初心者として聴講.
kotlinが持つアンチパターンを紹介する前に初心者もついてこれるように,機能の説明をしてもらえたのは救いでした.
また,この2日間のセッションの中で登場するサンプルコードの多くがkotlinで書かれていたので,その前にこのセッションでkotlinコードをある程度理解できて良かったです.
kotlinに関しては幾分触った程度だったので,こんなアンチパターンがあるんだなといった感じでした.今後kotlinを使えるようになった際に,改めて参考にさせていただこうと思います.
1-2. How to improve your MVP architecture and tests, kiriminさん
今回の参加の目的としてアーキテクチャの知見を得ようというのがあったので,その一発目としてわくわくしながら聴講.
MVPアーキテクチャは普段の開発で使用しているアーキテクチャなので,スピーカーの方の実体験を踏まえたMVPのアンチパターンや工夫の仕方(ActivityにはView操作用インターフェースを実装して,Viewに関係ない処理はpresenterに渡す.)には共感できることが多く,楽しくきくことができました.
1-3. Android における Model-View-Intent アーキテクチャ, Benoit Quenaudonさん
アーキテクチャの中でも今回で初めて耳にしたMode-View-Intentアーキテクチャ.
IntentってあのIntent?と思いながら(違った),予備知識無しで新しい出合いに期待を膨らませながら聴講.
MVIの中で最も新鮮だったのは,状態を管理し非同期処理の問題を解消してくれるReducerという役割が存在していること.
スピーカーの方も話していましたが,非同期に強いアーキテクチャとして優れている分,実装するクラスが多くなり記述量も多くなることからjavaではあまり向いて無い様子.
サンプルコードでもkotlinとjavaのそれぞれで書いた場合の記述量の比較もあり,その差には驚愕でした(kotlin良いと感じました).
MVIによる設計は機会があれば実際に利用してみたいと思いました.
そのときはもちろんkotlinで.
1-4. マルチモジュールのすヽめ, kgmyshinさん
普段からモジュール化することはありますが特に決まりなく行っていたので,その点に関してよい知見をと思い聴講.
知りたかった点である”モジュール化する際の定義”に関しては,ドンピシャの内容でとても参考になりました.
スライド終盤のモジュール間の連携にある通り,モジュール間にも共通設計としてレイヤーを意識することは大事ですね.モジュール間のデータのやり取りがキレイで,さっそく採り入れたくなりました.
終盤のスタディサプリの画面のスライドの見るとマルチモジュール化って良いなと思います.
#Day2
1日目と比べると,かなりリラックスした状態で会場入りしました.
また1日目でお知り合いになれた方も多く,2日目は居心地の良い状態で各セッションに参加することができました.
2-1. Android Studio30分集中超絶技巧100選,山本ユウスケさん
ただただ開発効率アップを求めて聴講.
便利な技ばかりで良かったです.セッション後にスピーカーの方が技巧を公開してくださったので,すかさずお気に入り登させていただきました.
https://gist.github.com/yusuke/e30257656a78ca007627e0762a5a7fbc
とくに知れて良かったのは以下の2つ.
・一つの前のファイルを開く: Ctrl + Tab
・実装へジャンプ : Opt + Cmd + B (Ctrl + Alt + B)
上はMac OSX: Mac OSX 10.5のキーマップ.括弧はWindows/Linux: Default.
2-2. すばらしきGraphQLのSEKAIへようこそ,gfxさん
gfxさんはOrmaで度々サイト等を拝見していたので,お目見えしたく聴講.
タイトルに嘘偽りなく,GraphQLは素晴らしいと思いました.さっそくGithubのGraphQL APIを触ってみましたが,深いところにあるオブジェクトも1つのクエリで取得できるのはとてもパワフル.
クライアント側のAndroidでGraphQLを利用するために紹介されたApolloでは,”クエリからクラスを生成する”,とことんクエリベースなところが面白いと感じました.
2-3. All you need is isolating the domain (How to apply DDD to Android Application Development 2),yanzmさん
yanzmさんも度々サイトを拝見していたので,お目見えしたく聴講.
値オブジェクトによるリファクタリングの例はとても参考になりました.とくにID,性別,日付の例はいずれも似たような経験をしたことがあるので,値オブジェクトによる解決方法は素晴らしいです.
ロジックの責務を誰が持つのかという問題を何度も考える場面も多々あり,参考になりました.
長期的な開発の予定はありませんが,DDDを学んでみたい意欲がわきました.ただ,時折引用している書籍の言葉が難しすぎたので1人は心細い.
#おわりに
2日間を終えて,Androidとそれに関する技術について幅広い知見を得ることができました.
また,開発時にはよくお世話になるブログ記事著作の方たちを直接お目にかかることができたのも良かったです.
今回Droidkaigiに参加するのは初めてであり,多くのAndroid関係者の方たちと出会いお話しするのも初めてだったので,とても充実した2日間でした.