---
title: ヒカラボ★Androidアプリ開発の裏側
tags:  #android #ヒカラボ  
author: [株式会社LIFULL](https://convert.docswell.com/user/LIFULL)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/KY763G417V.jpg?width=480
description: Androidアプリ開発の裏側
published: March 06, 18
canonical: https://convert.docswell.com/s/LIFULL/5E9R15-Android%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%81%AE%E8%A3%8F%E5%81%B4
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/KY763G417V.jpg)

Android アプリ開発の
裏側
2018/02/01
新UX開発部 デバイスソリューションU TechLead G 菊地 慧
1
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 2

![Page Image](https://bcdn.docswell.com/page/5G75LVQLE4.jpg)

本日のアジェンダ
2
•
Android Instant Apps 対応
•
アーキテクチャ載せ替え
•
最新技術導入の話
–
Android OS
–
Android Instant Apps
–
Firebase
–
AR（Tango）
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/V9J2L3P37R.jpg)

プロフィール
• 名前
– 菊地 慧
• 所属
– 新UX開発部
デバイスソリューションユニット
TechLead グループ
3
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 4

![Page Image](https://bcdn.docswell.com/page/5DEYQ1587M.jpg)

Android Instant Apps 対応
4
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2VJNK2N9J8.jpg)

Android Instant Apps
Android Instant App
ネイティブアプリをインストールをしなくても使えるよう
にする技術
5
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 6

![Page Image](https://bcdn.docswell.com/page/GYE9V1R3J3.jpg)

Android Instant Apps
• 対応デバイス
– ９億台を超えている
• Instant Apps を起動する導線
– Web の URL が必要となる
6
•
Email
•
Twitter
•
Search
•
Etc…
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5GE8P4WLED.jpg)

Android Instant Apps の制限
• Instant Apps の制限
未インストールのアプリに対するユーザーの期待にそぐ
わない可能性のある一部機能が制限される
• 制限（一部）
– バックグラウンドサービスの使用
– バックグラウント通知の実行
– 一意の端末識別子へのアクセス
7
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/MLEL16NQER.jpg)

Android Instant Apps - 今すぐ試す
Play Store 今すぐ試す
– ランディング画面があるアプリだけ表示
– 通常のアプリもインストール可能
8
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/54JMW5QKEW.jpg)

Android Instant Apps 対応
アプリはインストールしてもらうのが大
変
Instant Apps なら
–
（URL があれば）インストールしてもらう必要がない
検索からの流入が最も多いページである物件詳細を対応
–
–
検索結果に対して面が取れる
広告費をかけずにアプリに呼び込むことができる
アプリにはロイヤルユーザーが集まりやすい
–
9
ユーザー間で物件情報のやりとりが行われる際に、「物件詳細
のURL」が用いられることが多い
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 10

![Page Image](https://bcdn.docswell.com/page/ZPJRY386E9.jpg)

Android Instant Apps 対応
物件詳細
Google Play 「今すぐ試す」
– Google Play 上に表示
– 物件情報が掲載
– Instant Apps の起動
– 物件にお問合せなどが行える
Feature
Feature
Base
物件検索
Library
物件詳細
Library
問合せ
default-url
https://www.homes.co.jp/index.html
10
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 11

![Page Image](https://bcdn.docswell.com/page/NPEXG48D7X.jpg)

Android Instant Apps - 考慮ポイント
•
ライブラリの対応状況
–
Google で動作確認が行われている
•
•
•
一部、動作に制限があるものがある（Data Binding など）
4MB の容量制限
–
base module + feature module の組み合わせ
–
外部ライブラリをたくさん使っていると困る
Resource 参照
–
feature module の xml 内のリソース参照は実行時に base のリ
ソースを参照する
•
11
コードから feature.R.** と指定することで回避が可能
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 12

![Page Image](https://bcdn.docswell.com/page/63EK4ZKD7D.jpg)

Android Instant Apps よくありそうな質問
•
Instant Apps から Installed でデータの共有できるの？
–
•
versionCode はどうすれば？
–
•
アプリの規模やプロジェクトの構造によります。２週〜６週らしい
Instant Apps が公開されるまでにどのくらいかかる
–
12
Instant Apps &lt; Installed でなければいけません
Instant Apps 対応するのってどのくらい大変？
–
•
できます
通常のアプリと同じ感じ
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4L73LDZPJ5.jpg)

アーキテクチャ
13
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/V87DNPR3JG.jpg)

LIFULL HOME‘S Android のアーキテクチャ変遷
1. 初期開発時は MVC
–
Activity Only
2. リニューアル時も MVC
–
Fragment を使い始める（ここでライフサイクルに悩まされ
る）
3. マテリアルデザイン対応時に MVVM
–
Data Binding を導入（後から）
–
だいぶ慣れたがライフサイクルには頭を抱えさせられ（ry
4. Android Architecture Components 登場
–
Android にライフサイクルに対応できる
•
14
楽になる？入れよう！
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4VJP5NWPJ8.jpg)

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
15
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L2EVPK8VEQ.jpg)

Android Architecture Components
※ https://developer.android.com/topic/libraries/architecture/guide.html
16
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/Z57GPQ517L.jpg)

Android Architecture Components - LiveData
• Android のライフサイクルを考慮
– Observer が Lifecycle に紐づいているので、
Lifecycle が破棄されると Observer も解除される
•
メモリリークしない
– Observer の Lifecycle が STARED or RESUMED の
状態の場合のみ、Observer が Active となる
•
Activity / Fragment がいまどういった状態か？というライフ
サイクルのハンドリングから解放される
• Data Binding との相性がいい
17
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V4EQ2KZNJP.jpg)

Android Architecture Components - ViewModel
• Fragment 間でデータの共有が可能
•
ViewModelProviders に Activity を渡しているため、
各Fragment で ViewModel の参照が可能
–
Interface 地獄から解放
–
Activity は Fragment のことを知らなくても良い
• ライフサイクルが Activity / Fragment にスコー
プされる
•
Lifecycle がメモリ上から破棄されるまで存在する
–
Fragment でデータを保持しすぎて、Bundle の容量制限に
引っかからなくなる
18
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/DKJ4LP33J1.jpg)

Android Architecture Components 導入してみて
• Android 特有のライフサイクルに対応
–
lifecycle に関するコードが全体で統一されて、スッキリ
• 個別に導入が可能というのは楽
–
Lifecycle だけ、LiveData だけ使いたいという場合にも導入が
簡単
–
（逆に言えば）捨てる際にも乗せやすい
• Rooms は導入せず
–
SQLite へのアクセスを Content Provider 経由で実現していた
ため、移行するするにはコストがでかかった
19
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PLE1L91ZEG.jpg)

最新技術導入
20
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 21

![Page Image](https://bcdn.docswell.com/page/8GEWVQ86J2.jpg)

最新技術導入 - Android OS
• 最新 OS が発表
–
チャットを見るともう議論が始まる
–
API 確認→出来ることとできないことがチーム内で共有
• 最新 OS が更新される
–
チャットを見ると議論（ry
–
動作確認などを実施
–
安定してきたら機能開発
• 最新 OS がリリース
21
–
なるべく早い段階でアプリは対応
–
Pixel 2 が発売されないから今後どうするか
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 22

![Page Image](https://bcdn.docswell.com/page/W47Z4W8RJ3.jpg)

最新技術導入 - Firebase（Remote Config + Realtime Database）
• 特集配信
– 特集とは
•
おすすめの検索条件のセット
– 目的
22
•
時期やユーザに合わせて、特
•
集を差し替えたい
A/B テストなども実施したい
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 23

![Page Image](https://bcdn.docswell.com/page/KYJ63GP1JV.jpg)

最新技術導入 - Firebase（Remote Config + Realtime Database）
• 実現手段
– Remote Config
•
特集ID のリストを配信
– Realtime Database
–
特集のパラメータを配信
–
特集IDと検索条件・画像URL・特集名が紐づいている
• メリット
– 配信先の切り替え
•
セグメント毎、A / Bテストも容易
– データ同期
•
23
同期に関する実装不要、オフライン対応
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 24

![Page Image](https://bcdn.docswell.com/page/5GJ5LVKL74.jpg)

最新技術導入 - Tango
• LIFULL HOME’S Room Style AR
–
Tango 専用アプリ
–
実際のお部屋にカーテンのイメージデータを表示することで、
模様替え後のお部屋をよりリアルにシミューレションしていた
だけます
https://play.google.com/store/apps/details?id=com.lifull.homes.android.roomstyle_ar
24
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 25

![Page Image](https://bcdn.docswell.com/page/4LE3LDZD75.jpg)

最新技術導入 - Tango
• なぜ Tango アプリを開発することに？
– 今までにない新しい技術に興味があった
– 不動産領域でも面白いことができそうだと感じた
– 面白そうだよね？という問いに、面白そうと答えた
• 今後について
– リリース直後に Tango 終了のお知らせ
– アプリの対応端末がPHAB2 Pro のみ
– ARCore 楽しみですね。。。
25
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 26

![Page Image](https://bcdn.docswell.com/page/V8EDNPR27G.jpg)

ご静聴ありがとうございました
26
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


