More Related Content
Similar to 2018_02_01ヒカラボ登壇資料
Similar to 2018_02_01ヒカラボ登壇資料 (20)
More from LIFULL Co., Ltd.
More from LIFULL Co., Ltd. (20)
2018_02_01ヒカラボ登壇資料
- 1. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。1
Android アプリ開発の
裏側
2018/02/01
新UX開発部 デバイスソリューションU TechLead G 菊地 慧
- 2. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。2
本日のアジェンダ
• Android Instant Apps 対応
• アーキテクチャ載せ替え
• 最新技術導入の話
– Android OS
– Android Instant Apps
– Firebase
– AR(Tango)
- 3. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。3
プロフィール
• 名前
– 菊地 慧
• 所属
– 新UX開発部
デバイスソリューションユニット
TechLead グループ
- 5. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。5
Android Instant Apps
Android Instant App
ネイティブアプリをインストールをしなくても使えるよう
にする技術
- 6. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。6
Android Instant Apps
• 対応デバイス
– 9億台を超えている
• Instant Apps を起動する導線
– Web の URL が必要となる
• Email
• Twitter
• Search
• Etc…
- 7. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。7
Android Instant Apps の制限
• Instant Apps の制限
未インストールのアプリに対するユーザーの期待にそぐ
わない可能性のある一部機能が制限される
• 制限(一部)
– バックグラウンドサービスの使用
– バックグラウント通知の実行
– 一意の端末識別子へのアクセス
- 8. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。8
Android Instant Apps - 今すぐ試す
Play Store 今すぐ試す
– ランディング画面があるアプリだけ表示
– 通常のアプリもインストール可能
- 9. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。9
Android Instant Apps 対応
Instant Apps なら
– (URL があれば)インストールしてもらう必要がない
検索からの流入が最も多いページである物件詳細を対応
– 検索結果に対して面が取れる
– 広告費をかけずにアプリに呼び込むことができる
アプリにはロイヤルユーザーが集まりやすい
– ユーザー間で物件情報のやりとりが行われる際に、「物件詳細
のURL」が用いられることが多い
アプリはインストールしてもらうのが大
変
- 10. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。10
Android Instant Apps 対応
Google Play 「今すぐ試す」
– Google Play 上に表示
– Instant Apps の起動
Feature
物件検索
default-url
https://www.homes.co.jp/index.html
Feature
物件詳細
問合せ
物件詳細
– 物件情報が掲載
– 物件にお問合せなどが行える
Base
Library Library
- 11. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。11
Android Instant Apps - 考慮ポイント
• ライブラリの対応状況
– Google で動作確認が行われている
• 一部、動作に制限があるものがある(Data Binding など)
• 4MB の容量制限
– base module + feature module の組み合わせ
– 外部ライブラリをたくさん使っていると困る
• Resource 参照
– feature module の xml 内のリソース参照は実行時に base のリ
ソースを参照する
• コードから feature.R.** と指定することで回避が可能
- 12. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。12
Android Instant Apps よくありそうな質問
• Instant Apps から Installed でデータの共有できるの?
– できます
• versionCode はどうすれば?
– Instant Apps < Installed でなければいけません
• Instant Apps 対応するのってどのくらい大変?
– アプリの規模やプロジェクトの構造によります。2週〜6週らしい
• Instant Apps が公開されるまでにどのくらいかかる
– 通常のアプリと同じ感じ
- 14. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。14
LIFULL HOME‘S Android のアーキテクチャ変遷
1. 初期開発時は MVC
– Activity Only
2. リニューアル時も MVC
– Fragment を使い始める(ここでライフサイクルに悩まされ
る)
3. マテリアルデザイン対応時に MVVM
– Data Binding を導入(後から)
– だいぶ慣れたがライフサイクルには頭を抱えさせられ(ry
4. Android Architecture Components 登場
– Android にライフサイクルに対応できる
• 楽になる?入れよう!
- 15. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。15
Android Architecture Components
• Handling lifecycles
– Create a UI that automatically responds to lifecycle events.
• LiveData
– Build data objects that notify views when the underlying
database changes.
• ViewModel
– Store UI related data that isn’t destroyed on app rotations.
• Room
– Access you app’s SQLite database with in-app objects and compile-time
checks.
※ https://developer.android.com/topic/libraries/architecture/index.html
- 16. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。16
Android Architecture Components
※ https://developer.android.com/topic/libraries/architecture/guide.html
- 17. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。17
Android Architecture Components - LiveData
• Android のライフサイクルを考慮
– Observer が Lifecycle に紐づいているので、
Lifecycle が破棄されると Observer も解除される
• メモリリークしない
– Observer の Lifecycle が STARED or RESUMED の
状態の場合のみ、Observer が Active となる
• Activity / Fragment がいまどういった状態か?というライフ
サイクルのハンドリングから解放される
• Data Binding との相性がいい
- 18. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。18
Android Architecture Components - ViewModel
• Fragment 間でデータの共有が可能
• ViewModelProviders に Activity を渡しているため、
各Fragment で ViewModel の参照が可能
– Interface 地獄から解放
– Activity は Fragment のことを知らなくても良い
• ライフサイクルが Activity / Fragment にスコー
プされる
• Lifecycle がメモリ上から破棄されるまで存在する
– Fragment でデータを保持しすぎて、Bundle の容量制限に
引っかからなくなる
- 19. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。19
Android Architecture Components 導入してみて
• Android 特有のライフサイクルに対応
– lifecycle に関するコードが全体で統一されて、スッキリ
• 個別に導入が可能というのは楽
– Lifecycle だけ、LiveData だけ使いたいという場合にも導入が
簡単
– (逆に言えば)捨てる際にも乗せやすい
• Rooms は導入せず
– SQLite へのアクセスを Content Provider 経由で実現していた
ため、移行するするにはコストがでかかった
- 21. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。21
最新技術導入 - Android OS
• 最新 OS が発表
– チャットを見るともう議論が始まる
– API 確認→出来ることとできないことがチーム内で共有
• 最新 OS が更新される
– チャットを見ると議論(ry
– 動作確認などを実施
– 安定してきたら機能開発
• 最新 OS がリリース
– なるべく早い段階でアプリは対応
– Pixel 2 が発売されないから今後どうするか
- 22. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。22
最新技術導入 - Firebase(Remote Config + Realtime Database)
• 特集配信
– 特集とは
• おすすめの検索条件のセット
– 目的
• 時期やユーザに合わせて、特
集を差し替えたい
• A/B テストなども実施したい
- 23. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。23
最新技術導入 - Firebase(Remote Config + Realtime Database)
• 実現手段
– Remote Config
• 特集ID のリストを配信
– Realtime Database
– 特集のパラメータを配信
– 特集IDと検索条件・画像URL・特集名が紐づいている
• メリット
– 配信先の切り替え
• セグメント毎、A / Bテストも容易
– データ同期
• 同期に関する実装不要、オフライン対応
- 24. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。24
最新技術導入 - Tango
• LIFULL HOME’S Room Style AR
– Tango 専用アプリ
– 実際のお部屋にカーテンのイメージデータを表示することで、
模様替え後のお部屋をよりリアルにシミューレションしていた
だけます
https://play.google.com/store/apps/details?id=com.lifull.homes.android.roomstyle_ar
- 25. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。25
最新技術導入 - Tango
• なぜ Tango アプリを開発することに?
– 今までにない新しい技術に興味があった
– 不動産領域でも面白いことができそうだと感じた
– 面白そうだよね?という問いに、面白そうと答えた
• 今後について
– リリース直後に Tango 終了のお知らせ
– アプリの対応端末がPHAB2 Pro のみ
– ARCore 楽しみですね。。。