Skip to content

Instantly share code, notes, and snippets.

@yamacraft
Created March 13, 2017 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamacraft/300b2344eb92aff8dd3d8ee42bbd5095 to your computer and use it in GitHub Desktop.
Save yamacraft/300b2344eb92aff8dd3d8ee42bbd5095 to your computer and use it in GitHub Desktop.
DroidKaigi 2017 参加メモ

DroidKaigi 2017 参加メモ

カンファレンス情報

  • 開催日時:2017年3月9日〜10日
  • 開催場所:ベルサール新宿グランド5F コンファレンスセンター
  • URL:DroidKaigi 2017

当日のメモ

Day1 10:40-11:30 『How to apply DDD to Android Application Development』

セッション詳細

Y.A.M の 雑記帳: ドメイン駆動設計について DroidKaigi 2017 で登壇しました。

  • ドメイン駆動設計の話
  • やっぱり『エリック・エヴァンスのドメイン駆動設計』は必読
  • 『実践ドメイン駆動設計』の方がわかりやすいけれど、エヴァンス本を読んでることが前提の説明があったりする
  • いきなり完璧なドメインモデルを作るのではなく、現状でわかっているドメインモデルを作る。そして適宜更新していく。
  • DDDは特定の技術パターンに依存してるわけではない。MVPでもMVVMでもレイヤ化アーキテクチャでもない。
  • 質疑応答
    • ユビキタス言語は日本語でもコード等は英語、このギャップはどう解決しますか?
      • ユビキタス言語の中で日本語と英語の連携を決めておくしかない。共通認識を作っておくこと。
    • バリデーションチェックのドメインはどこに?
      • バリデーションの内容によって粒度は違う、UIに組み込むこともあるし、モデルに入れることもある
      • 確かに難しい問題

Day1 11:50 - 12:20 企業ブース周り

この時間は企業ブースをメインに周る。この時印象に残ったのはCAの採用技術アンケート。Realmが体感的に去年より採択者が増えた気がする。

Day1 12:40 - 13:10 『Androidリアルタイム通信アプリ作成Tips』

セッション詳細

Android Realtime Library // Speaker Deck

  • WebSocket、Firebase Realtime Database、Realm Mobile Platformの比較
  • OkHttpはWebSocketに対応した(v3.5以降)、ブロードキャストやオフライン状態のデータ保持がサポートされていない
  • Firebaseはオフラインのデータ保持が可能。更新が能動的なのでPullToRefreshなどのUIが向かない。
    • 逆順ソートができない。スピーカーがFirebase開発スタッフに要望出したら一蹴されたので今後も難しそう
    • バイナリサポートがないのと、サーバ側でのフックポイントが作成できない(後者はFunction実装されたので変わるかも)
  • Realmは無料版でサーバ側のフックポイントが作成できない点を除けば満足な機能
  • スピーカーオススメはRealm。

Day1 14:20 - 14:50 『Data Bindingで開発を気持ちよくしよう』

セッション詳細

The Data Binding Library // Speaker Deck

  • 資料の例がとてもよいので特に書くことない
  • アプリが落ちたときに引っ張られて大量のエラーメッセージを吐くのは注意
  • BR(?)が解決できないときがあるがどうするか?
    • BaseObservableを使うのをやめてObservableFieldにする
    • Invalidateして再起動、gradle cleanなど

Day1 15:10 - 15:40 『実践アニメーション』

セッション詳細

citrous/practicalanimation

  • ちょっとハック(裏ワザ)っぽい実装感があったので、安易にマネするのが怖いなと思った

Day1 16:00 - 16:50 『オフラインファーストなアプリケーション開発』

セッション詳細

  • 率直に言って、Realm関係者によるRealm Mobile Platformの宣伝セッション
  • RMPの使い方を逐次解説していたので、今後RMPを使うときにスライドの資料は世話になるかも(まだ見つけてないけど)

Day1 17:10 - 17:40 休憩

視聴予定だった『Viewを動的に変化させるアプローチ』が満席で立ち見はしんどいと思ったので、再度企業ブース回ったり休憩など

Day1 18:00 - 18:30 『Android Bikeを作ろう』

セッション詳細

Let's make Android Bike // Speaker Deck

  • 完全に趣味セッション
  • やっぱり複数端末対応は辛いだろうなあという印象
  • 部分部分のアニメーション実装は参考になりそうなので、GitHubプロジェクトチェックする(メモ)

Day2 10:30 - 12:20

控室で資料の最終チェックとかもろもろ

Day2 12:40 - 13:10 『いまからはじめるAndroid 6.0対応 〜Android 7.0から8.xを見つめて〜』

セッション詳細

いまからはじめるAndroid 6.0対応 // Speaker Deck

  • 自分の登壇セッション
  • 資料は脳内で数度シミュレートしたときは20分で終わったが、実際に発表したら30分ギリギリだった。あと結構早口で余裕なかったと感じた。
  • おおむねセッション詳細で触れた部分には話せたが、「この先のAPIの予測」を矢継ぎ早に終わらせてしまった
    • 質問もこの部分の「なんでそう思った?」的なモノが多かったので、これはきちんと文書化する
  • 話す項目が3つになるものは30分だと無理!50分で応募すれば良かった。
  • 「Java標準API」に対する自分の認識違いがあったのできちんと調べ直して訂正する
  • あとはエモい話を結構しすぎた気がした > DroidKaigi 2017で登壇しました : 山田航空ネットワーク2nd

Day2 14:20 - 14:50 昼食

13:00以降、ずっとオフィスアワーで待機したり質疑応答に対応してたのでこの時間で昼食

Day2 15:10 - 15:40 『Chrome Custom Tabsをさらに使いこなそう』

セッション詳細

Make full use of Chrome Custom Tabs // Speaker Deck

  • 外部ページを開く以外の使い方、やっぱりできないのかなあと思って聞いたり質問したけど、やっぱりダメそうだった。
    • 生成したHTML表示とかは、やっぱりWebViewでやるしかなさそう
  • OAuth関連はWebViewではなくCustom Chrome Tabsで実装しないと4月20日以降弾かれる

Day2 16:10 - 16:50 休憩/Fireside Chat

再度2日目の企業ブース周りをこの時間にしたり、最後の方でFireside Chatがいまやってると知って見に行った。

なんかWear使わないよねーみたいな感じで盛り上がっていたけど、そもそもみんな普段から腕時計してなかった人たちだと思うので「普段車乗らない人がAndroid Auto使ってないよねー」みたいな会話してるみたいでうーんとなった。

Day2 17:10 - 17:40 『テスト0から目指すクラッシュフリー率99%』

セッション詳細

Journey to 99% Crash Free // Speaker Deck

  • 前半のCrashlyticsやFirebase+Timberは実装済、というかこのやり方が鉄板だよなあと再認識
  • 後半はテストしやすい実装に向けたMVP関連の話
  • あとValture+RxLifecycleの話

総評

  • 特に触れなかったけど、当日のネットワーク構築が凄いなと思った
  • セッションはフタを開くとKotlinやRx系、MVP or MVVMが多かったような印象があった
    • 出席人数もこのあたりが多かった印象があるので、いまはこのあたりの需要が大きいんだろうなあと
  • CAさんのアンケ結果が非常に興味深かった
  • アフターパーティは寿司食べられなかった。でもコロッケと焼きそばが美味しかった(庶民)。

他、資料

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment