- 開催日時:2017年3月9日〜10日
- 開催場所:ベルサール新宿グランド5F コンファレンスセンター
- URL:DroidKaigi 2017
Y.A.M の 雑記帳: ドメイン駆動設計について DroidKaigi 2017 で登壇しました。
- ドメイン駆動設計の話
- やっぱり『エリック・エヴァンスのドメイン駆動設計』は必読
- 『実践ドメイン駆動設計』の方がわかりやすいけれど、エヴァンス本を読んでることが前提の説明があったりする
- いきなり完璧なドメインモデルを作るのではなく、現状でわかっているドメインモデルを作る。そして適宜更新していく。
- DDDは特定の技術パターンに依存してるわけではない。MVPでもMVVMでもレイヤ化アーキテクチャでもない。
- 質疑応答
- ユビキタス言語は日本語でもコード等は英語、このギャップはどう解決しますか?
- ユビキタス言語の中で日本語と英語の連携を決めておくしかない。共通認識を作っておくこと。
- バリデーションチェックのドメインはどこに?
- バリデーションの内容によって粒度は違う、UIに組み込むこともあるし、モデルに入れることもある
- 確かに難しい問題
- ユビキタス言語は日本語でもコード等は英語、このギャップはどう解決しますか?
この時間は企業ブースをメインに周る。この時印象に残ったのはCAの採用技術アンケート。Realmが体感的に去年より採択者が増えた気がする。
Android Realtime Library // Speaker Deck
- WebSocket、Firebase Realtime Database、Realm Mobile Platformの比較
- OkHttpはWebSocketに対応した(v3.5以降)、ブロードキャストやオフライン状態のデータ保持がサポートされていない
- Firebaseはオフラインのデータ保持が可能。更新が能動的なのでPullToRefreshなどのUIが向かない。
- 逆順ソートができない。スピーカーがFirebase開発スタッフに要望出したら一蹴されたので今後も難しそう
- バイナリサポートがないのと、サーバ側でのフックポイントが作成できない(後者はFunction実装されたので変わるかも)
- Realmは無料版でサーバ側のフックポイントが作成できない点を除けば満足な機能
- スピーカーオススメはRealm。
The Data Binding Library // Speaker Deck
- 資料の例がとてもよいので特に書くことない
- アプリが落ちたときに引っ張られて大量のエラーメッセージを吐くのは注意
- BR(?)が解決できないときがあるがどうするか?
- BaseObservableを使うのをやめてObservableFieldにする
- Invalidateして再起動、gradle cleanなど
- ちょっとハック(裏ワザ)っぽい実装感があったので、安易にマネするのが怖いなと思った
- 率直に言って、Realm関係者によるRealm Mobile Platformの宣伝セッション
- RMPの使い方を逐次解説していたので、今後RMPを使うときにスライドの資料は世話になるかも(まだ見つけてないけど)
視聴予定だった『Viewを動的に変化させるアプローチ』が満席で立ち見はしんどいと思ったので、再度企業ブース回ったり休憩など
Let's make Android Bike // Speaker Deck
- 完全に趣味セッション
- やっぱり複数端末対応は辛いだろうなあという印象
- 部分部分のアニメーション実装は参考になりそうなので、GitHubプロジェクトチェックする(メモ)
控室で資料の最終チェックとかもろもろ
いまからはじめるAndroid 6.0対応 // Speaker Deck
- 自分の登壇セッション
- 資料は脳内で数度シミュレートしたときは20分で終わったが、実際に発表したら30分ギリギリだった。あと結構早口で余裕なかったと感じた。
- おおむねセッション詳細で触れた部分には話せたが、「この先のAPIの予測」を矢継ぎ早に終わらせてしまった
- 質問もこの部分の「なんでそう思った?」的なモノが多かったので、これはきちんと文書化する
- 話す項目が3つになるものは30分だと無理!50分で応募すれば良かった。
- 「Java標準API」に対する自分の認識違いがあったのできちんと調べ直して訂正する
- あとはエモい話を結構しすぎた気がした > DroidKaigi 2017で登壇しました : 山田航空ネットワーク2nd
13:00以降、ずっとオフィスアワーで待機したり質疑応答に対応してたのでこの時間で昼食
Make full use of Chrome Custom Tabs // Speaker Deck
- 外部ページを開く以外の使い方、やっぱりできないのかなあと思って聞いたり質問したけど、やっぱりダメそうだった。
- 生成したHTML表示とかは、やっぱりWebViewでやるしかなさそう
- OAuth関連はWebViewではなくCustom Chrome Tabsで実装しないと4月20日以降弾かれる
再度2日目の企業ブース周りをこの時間にしたり、最後の方でFireside Chatがいまやってると知って見に行った。
なんかWear使わないよねーみたいな感じで盛り上がっていたけど、そもそもみんな普段から腕時計してなかった人たちだと思うので「普段車乗らない人がAndroid Auto使ってないよねー」みたいな会話してるみたいでうーんとなった。
Journey to 99% Crash Free // Speaker Deck
- 前半のCrashlyticsやFirebase+Timberは実装済、というかこのやり方が鉄板だよなあと再認識
- 後半はテストしやすい実装に向けたMVP関連の話
- あとValture+RxLifecycleの話
- 特に触れなかったけど、当日のネットワーク構築が凄いなと思った
- ところどころ接続が悪くなったことがあったけれど、これはもう親元のネットワークとかハードウェアの限界のような気がする
- https://github.com/conbu/weathermap20170310/blob/master/d68cbbe33ccdc52fdaca.png
- セッションはフタを開くとKotlinやRx系、MVP or MVVMが多かったような印象があった
- 出席人数もこのあたりが多かった印象があるので、いまはこのあたりの需要が大きいんだろうなあと
- CAさんのアンケ結果が非常に興味深かった
- アフターパーティは寿司食べられなかった。でもコロッケと焼きそばが美味しかった(庶民)。