Más contenido relacionado
La actualidad más candente (20)
Similar a Android 開発, 運用時に使いたいライブラリやサービスの紹介 (20)
Android 開発, 運用時に使いたいライブラリやサービスの紹介
- 2. Copyright © 2014 Sansan, Inc. All rights reserved.
> Agenda
1
• 自己紹介
• ○○時に使いたい、ライブラリやサービスの紹介
• 開発
• テスト
• 運用
※あくまでも、ざっくりとした紹介のみです。
試用・導入にあたっては、本家のドキュメントを参照下さい。
- 4. Copyright © 2014 Sansan, Inc. All rights reserved.
> 自己紹介
3
• 辰濱健一
• 徳島生まれ、奈良育ち
• 2回転職するも、いずれも徳島県内勤務
• Tokushima.app 主催
(徳島でのスマホアプリの勉強会)
• Sansan株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発
• Kotlin, RxJava, Realm, … を使ってます
• リモートワーク
• 趣味は楽器演奏
- 6. Copyright © 2014 Sansan, Inc. All rights reserved.
> 趣味
5
• 楽器演奏(エレクトーン・トランペット)
• 県内のイベントでちらほら演奏する機会を頂いてます
(明日もイベント出演です)
- 7. Copyright © 2014 Sansan, Inc. All rights reserved.
> Tokushima.app
6
• http://tokushima-app.connpass.com
• 徳島のスマホアプリ開発の勉強会
• 基本もくもく会、たまにハンズオン
• 場所は徳島市内、10:00〜16:00
• 初心者でも OK、入退出自由、参加費無料
• 月1ペースで開催(したいと思ってはいる)
• 辰濱が東京の勉強会で仕入れてきた情報なども共有します
• 要望あれば、近隣に出張ハンズオンなども始めようかな…とか思っている。
- 9. Copyright © 2014 Sansan, Inc. All rights reserved.
> Support Library
8
• https://developer.android.com/topic/libraries/sup
port-library/index.html
• プラットフォーム本体の機能のバックポート
• Fragment, Loader, **Compat
• プラットフォーム本体には存在しない機能の追加
• Design Support Library
• Floating Action Button
• Navigation View
• Tab Layout
• 後方互換性担保のためにも、基本的に使おう!
- 10. Copyright © 2014 Sansan, Inc. All rights reserved.
> Support Annotations
9
• http://tools.android.com/tech-docs/support-
annotations
• Support Library 群の1つ
• 引数の制約などを定義し、制約違反の場合は Android
Studio 上に警告を出すことができる
- 11. Copyright © 2014 Sansan, Inc. All rights reserved.
> Stetho
10
• http://facebook.github.io/stetho/
• Facebook 製のライブラリ
• Chrome DevTools を使って、以下のことができる
• Network Inspection
• Database Inspection
• View Hierarchy
- 12. Copyright © 2014 Sansan, Inc. All rights reserved.
> Stetho Network Inspection
11
• 時系列の通信状況やレスポンスがわかる
• OkHttp などの通信クライアントに Stetho をかますと使える
- 13. Copyright © 2014 Sansan, Inc. All rights reserved.
> Stetho Database Inspection
12
• 端末内 DB の SQLite のテーブルの内容が確認できる
• 端末内キャッシュ(SharedPreference)も同様に確認できる
• 値の書き換えも可能(だったはず…)
- 14. Copyright © 2014 Sansan, Inc. All rights reserved.
> Stetho View Hierarchy
13
↓エミュレータ
(横に並べただけ)
• View 階層を確認でき、各要素のプロパティも確認できる
• 選択中の要素が端末上で色が付く
• 値の書き換え&反映も可能
- 15. Copyright © 2014 Sansan, Inc. All rights reserved.
> Realm
14
• https://realm.io/jp/
• 高速に動作し、使いやすく、無料の DB
• 暗号化、変更通知、マイグレーション対応
• 日本語でのサポート対応
• シリアライズされた DB ファイルは、iOS / Android
などどのプラットフォームでも利用可能
- 16. Copyright © 2014 Sansan, Inc. All rights reserved.
> Realm
15
• SQL の記述は不要
• クエリ文も簡潔
- 17. Copyright © 2014 Sansan, Inc. All rights reserved.
> Stetho-Realm
16
• https://github.com/uPhyca/stetho-realm
• Stetho で Realm DB を扱えるようになる
• uPhyca の @zaki50 さん製
• Sansan 株式会社の Android の技術顧問
• 先日の Google I/O 2016 Extended 四国
にいらっしゃってました。
- 18. Copyright © 2014 Sansan, Inc. All rights reserved.
> Jenkins
17
• https://jenkins.io/
• CI です。
• 決まり切った手順は人手でやらず自動化
• ビルドやテストなどのジョブの定期実行
• テストバイナリの作成・配信
• 本番バイナリの作成
• ジョブ(手順)を登録しておくと、定義したタイミングで実行
してくれる
• コミットがあったとき
• 定刻
• 手動
• 同様のサービス:Circle CI
- 19. Copyright © 2014 Sansan, Inc. All rights reserved.
> Lint
18
• http://tools.android.com/tips/lint
• Android SDK tools に同梱されている、静的コード解
析ツール
• 検出内容
• 未翻訳文言
• レイアウトパフォーマンス
• 未使用文言
• などなど
• コマンドライン(や Gradle)から実行できる
• ./gradlew lint
- 20. Copyright © 2014 Sansan, Inc. All rights reserved.
> Jenkins Android Lint Plugin
19
• https://wiki.jenkins-
ci.org/display/JENKINS/Android+Lint+Plugin
• Jenkins の Lint Plugin
• Lint の結果の推移をグラフィカルに表示
- 21. Copyright © 2014 Sansan, Inc. All rights reserved.
> Android Studio Inspect Code
20
• Android Studio の静的コード解析ツール
• Analyze > Inspect Code
• Lint よりも検査項目が多い
• IDE による修正アシストもある
- 22. Copyright © 2014 Sansan, Inc. All rights reserved.
> Android Studio Inspect Code
21
• IDE による修正アシスト
Alt + Enter
不要な null チェックが除去される
- 23. Copyright © 2014 Sansan, Inc. All rights reserved.
> Infer
22
• http://fbinfer.com/
• Facebook 製、静的コード解析ツール
• 指摘内容
• CONTEXT_LEAK
• NULL_DEREFERENCE
• RESOURCE_LEAK
• 結果は CSV, Json で出力される
• Android Studio Inspect Code での内容と重複するとこ
ろもあるが、Inspect Code にない指摘もある
- 24. Copyright © 2014 Sansan, Inc. All rights reserved.
> QARK
23
• https://github.com/linkedin/qark
• LinkedIn 製、セキュリティチェックツール
• 指摘内容
• export されたコンポーネント
• WebView の設定
• Intent のセキュリティ
• 弱い暗号方式の利用
など…
• 結果は html で出力される
- 25. Copyright © 2014 Sansan, Inc. All rights reserved.
> Genymotion
24
• https://www.genymotion.com/
• 軽量なエミュレータ
(最近は本家のエミュレータも進化してる)
• Android Studio からもデバッグ可能
• ウィンドウサイズを変えると画面が縮小してくれるの
が好き
• ※Android N の マルチウィンドウのリサイズのことではない
- 27. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase – Authentication
26
• https://firebase.google.com/docs/auth/
• Google I/O 2016 で新バージョンが発表された
• 色んな機能がある
• 様々な認証機能を簡単に組み込むことができる
• 大手:Facebook, GitHub, Google, Twitter
• パスワード:ユーザ登録&認証
• 自前の認証機構
- 28. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase – Realtime Database
27
• https://firebase.google.com/docs/database/
• NoSQL JSON データベース
• 同じデータを持っている端末に即座に同期してくれる
• オフライン編集でも、オンラインになったら同期して
くれる
• ファイルへのアクセス権制御は、
前述の Firebase Authentication を使う
• 利用シーン
• 端末をまたいだ、ユーザ設定値(Key, Value)の同期
- 29. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase – Storage
28
• https://firebase.google.com/docs/storage/
• ファイルのアップロード・ダウンロード機能を提供
• ファイルへのアクセス権制御は、
前述の Firebase Authentication を使う
• Upload, Download の接続が中断されても自動で再開
できる
• ペタバイトのデータを保存できる
- 30. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase – Remote Config
29
• https://firebase.google.com/docs/remote-config/
• Firebase 側の値を変更のみで、アプリの動作をカスタ
マイズできる
• セグメント毎に値を変更することも可能
• 日本国内のユーザ:Value1、海外:Value2
• Android 5.0 以上の男性のユーザ:…
• 利用シーン
• A/B テスト
• 閾値の変更
• メンテナンスモードへの切り替え
- 32. Copyright © 2014 Sansan, Inc. All rights reserved.
> Robolectric
31
• http://robolectric.org
• Android Test だと、テスト用アプリをビルドして実機
に転送して実行していた。
• Android フレームワークに依存しない、ロジック部分
のテストを JVM 上で実行させる
• これにより、
・テストビルドの高速化
・テストの高速実行
が実現する
- 33. Copyright © 2014 Sansan, Inc. All rights reserved.
> Espresso
32
• https://google.github.io/android-testing-support-
library/docs/espresso/
• UI 操作や UI の状態のテストを記述できるライブラリ
• Android Studio 2.2 からは、Excel のマクロ記録のよ
うに、Record Espresso Test が可能に!
“Steve” を入力
ボタンクリック
表示チェック
- 34. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric - beta
33
• https://get.fabric.io
• 色んな機能があるが、テスターに開発中のバイナリを
配信するのに便利
• Gradle プラグインがあり、ビルドしたものを自動的に
Fabric へのアップロードまでしてくれる
• テスターがバイナリを端末にインストールするのも簡
単
• バイナリのクラッシュ状況を確認できる
• 同等サービス:Google Play α版/β版 テスト
- 35. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric 端末へのイントール
34
• 専用アプリへテストバイナリの配信情報が来る
• テストアプリを選択して、バイナリを選択するとインストールさ
れる
• iOS アプリの配信も可能
- 36. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric
35
• テスト版配布のダッシュボード
テスター 進捗
クラッシュ状況
- 37. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric
36
• クラッシュ情報
スタックトレース
端末情報
↑件数
時間→
件数・人数
- 38. Copyright © 2014 Sansan, Inc. All rights reserved.
> AWS Device Farm
37
• https://aws.amazon.com/jp/device-farm/
• クラウド上の実機でテストが行える
• テスト端末を買わなくても時間借りができる
(0.17$/Device・minute)
• Espresso 等で書いた UI テストの実行に最適
• テストを書かなくても、リモートアクセスも可能
(ブラウザからジェスチャ等の操作ができる)
• 同様のサービス:Firebase Test Lab
- 39. Copyright © 2014 Sansan, Inc. All rights reserved.
> AWS Device Farm – Remote Access (beta)
38
• ブラウザ上のマウスで操作可能
↑アプリをアップロード
↑物理ボタン
- 41. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase Test Lab
40
• https://firebase.google.com/docs/test-lab/
• ほぼ、AWS Device Farm と同様
(リモートアクセスはないかも…)
- 42. Copyright © 2014 Sansan, Inc. All rights reserved.
> Google Play 段階的公開(アップデート)
41
• https://support.google.com/googleplay/android-
developer/answer/6346149
• 一定の割合のユーザのみにアップデートを配信する
• 割合の調整はできるが、ターゲットの選定はできない
• 時間をかけて徐々に配信することで、アップデート版
の品質を監視しながらリリースできる
- 44. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric - Crashlytics
43
• https://get.fabric.io
• 前述のテスト版配信のように色んな機能があるが、ク
ラッシュ状況やイベントの状況を確認できる
• クラッシュが一定数を超えるとメールで知らせてくれ
る
クラッシュ箇所
アプリバージョン
期間
- 45. Copyright © 2014 Sansan, Inc. All rights reserved.
> Fabric - Answers
44
• https://get.fabric.io
• DAU, MAU などの推移を確認できる
• イベントトラッキングも行える
- 47. Copyright © 2014 Sansan, Inc. All rights reserved.
> Firebase – Analytics
46
• 様々な分析を統合的に行える
(今まではそれぞれ別々のサービスで提供されて
いることが多く、連携が難しかった)
• アプリ内の行動分析
• 広告やキャンペーンの効果分析
• クラッシュレポート
• ログの保存は無制限で無料
• データエクスポートも可能
- 48. Copyright © 2014 Sansan, Inc. All rights reserved. 47
ライブラリやサービスを使って
アプリの開発・運用を
速く・楽にしよう!
- 50. Copyright © 2014 Sansan, Inc. All rights reserved. 49
これらのライブラリやサービスの
ハンズオンやるかも?
Tokushima.app
http://tokushima-app.connpass.com