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

More Related Content

PPTX
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
PPTX
Kotlin 使いになりました
PPTX
前任者から引き継いだ Eight Android アプリ内部の改善
PDF
Firebase Test Lab 無料枠を使ってみました。
PPTX
Java → Kotlin 変換 そのあとに。
PPTX
Device Farm を使ったスマホアプリの自動テスト
PPTX
Kotlin が公式サポートになったので Kotlin の話
PPTX
Java → Kotlin 変換 そのあとに。
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
Kotlin 使いになりました
前任者から引き継いだ Eight Android アプリ内部の改善
Firebase Test Lab 無料枠を使ってみました。
Java → Kotlin 変換 そのあとに。
Device Farm を使ったスマホアプリの自動テスト
Kotlin が公式サポートになったので Kotlin の話
Java → Kotlin 変換 そのあとに。

What's hot (20)

PDF
スマホアプリ自動テストサービス
PDF
Linuxサーバーのセキュリティ対策 part4
PDF
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
PDF
サーバー設定のお話
PPTX
ネットゲーム開発者がサーバレスしてみたver1.10
PDF
実環境にTerraform導入したら驚いた
PDF
Windows Server + VPNのAWS移行事例
PPTX
Amazon EKS によるスマホゲームのバックエンド運用事例
PDF
AWS Lambda in Golang
PDF
IaaSクラウド比較
PDF
Linuxサーバのセキュリティ対策 part2 - Apache編
PDF
Terraformをいじってみて
PPTX
AWA with Realm
PDF
SansanのEightアプリでRealmを導入した件
PDF
Ansible softlayer
PDF
Java + React.jsでSever Side Rendering #reactjs_meetup
PDF
さくらのインフラコード
PDF
Asakusaソースコードリーディング #4 – Asakusa Test Driver
PPTX
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
PDF
Lineにおけるspring frameworkの活用
スマホアプリ自動テストサービス
Linuxサーバーのセキュリティ対策 part4
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
サーバー設定のお話
ネットゲーム開発者がサーバレスしてみたver1.10
実環境にTerraform導入したら驚いた
Windows Server + VPNのAWS移行事例
Amazon EKS によるスマホゲームのバックエンド運用事例
AWS Lambda in Golang
IaaSクラウド比較
Linuxサーバのセキュリティ対策 part2 - Apache編
Terraformをいじってみて
AWA with Realm
SansanのEightアプリでRealmを導入した件
Ansible softlayer
Java + React.jsでSever Side Rendering #reactjs_meetup
さくらのインフラコード
Asakusaソースコードリーディング #4 – Asakusa Test Driver
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Lineにおけるspring frameworkの活用
Ad

Viewers also liked (20)

PPTX
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
PDF
第2回webデザイナー向けcake php勉強会
PPTX
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
PPT
CakePHP PHP Framework
PPT
Cake Php開発事例
PDF
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
PPTX
CakePHP を使ってよかったこと
PPTX
ついに始まるJava EE 7時代のアプリケーション開発
PDF
JobScheduler Code Reading
PPTX
JobSchedulerでのジョブの多重実行・排他制御
PDF
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
PPTX
Sansan における Android アプリ自動テスト導入事例
PDF
Sbtのマルチプロジェクトはいいぞ
PDF
DroidKaigi2016 windows環境での効率的なアプリ開発手法
PDF
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
PDF
Master of Canvas
PDF
用途に合わせたアニメーションの実装方法
PPTX
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
PDF
パーミッションモデルの過渡期への対応
DOCX
Diseño de mezclas
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
第2回webデザイナー向けcake php勉強会
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
CakePHP PHP Framework
Cake Php開発事例
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
CakePHP を使ってよかったこと
ついに始まるJava EE 7時代のアプリケーション開発
JobScheduler Code Reading
JobSchedulerでのジョブの多重実行・排他制御
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
Sansan における Android アプリ自動テスト導入事例
Sbtのマルチプロジェクトはいいぞ
DroidKaigi2016 windows環境での効率的なアプリ開発手法
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Master of Canvas
用途に合わせたアニメーションの実装方法
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
パーミッションモデルの過渡期への対応
Diseño de mezclas
Ad

Similar to Android 開発, 運用時に使いたいライブラリやサービスの紹介 (20)

PDF
Android App Development with Gradle & Android Studio
PPTX
Robotium を使った UI テスト
PDF
iPhoneとAndroidのアプリ開発最新潮流
PDF
はてなにおける Android アプリのソフトウェアテスト
PDF
[Jagys]android41+開発ツール紹介
PDF
ABC 2011 Summer
PDF
PPTX
アプリの不具合を少なくするために
PDF
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
PDF
Android カスタムROMの作り方
PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
PDF
Google io2011報告
PDF
AWS Black Belt Tech シリーズ 2015 AWS Device Farm
PDF
Android0422
PPTX
4th tokushimaapp
PDF
Outsmarting Smartphone Apps 2
ODP
Yapf2013
PDF
みゆっき☆Think#3 「androidに触ってみるよ!」
PPTX
Firebase hands on in Matsuyama
PPTX
Androidプログラミング入門
Android App Development with Gradle & Android Studio
Robotium を使った UI テスト
iPhoneとAndroidのアプリ開発最新潮流
はてなにおける Android アプリのソフトウェアテスト
[Jagys]android41+開発ツール紹介
ABC 2011 Summer
アプリの不具合を少なくするために
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
Android カスタムROMの作り方
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Google io2011報告
AWS Black Belt Tech シリーズ 2015 AWS Device Farm
Android0422
4th tokushimaapp
Outsmarting Smartphone Apps 2
Yapf2013
みゆっき☆Think#3 「androidに触ってみるよ!」
Firebase hands on in Matsuyama
Androidプログラミング入門

More from Kenichi Tatsuhama (20)

PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
PDF
地方創生ワカモノ会合
PDF
Google Analytics のデータ分析ハンズオン
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
PDF
知っておきたいFirebase の色んな上限について
PDF
Android 開発の昔と今
PDF
Firebase Extensions はじめの一歩
PDF
Firebase & BigQuery で Android アプリの成⻑を支える
PPTX
GDG DevFest Tokyo 2019 Day2 Special Hands-on
PPTX
Firebase Summit 2019 Recap
PPTX
Cloud Firestore を使って、Polling をやめたい話
PPTX
インドのインターネット環境 との戦い方
PPTX
インドの低速なネットワーク環境の攻略法
PPTX
DroidKaigi 2018 参加報告会 Closing
PPTX
企業スポンサー
PPTX
参加したセッションの ピックアップ
PPTX
CFP(Call For Paper) を出す話
PPTX
DroidKaigi 2018 参加報告会
PPTX
DroidKaigi アプリの内部を見る
PPTX
Java で書かれた Android アプリに Kotlin を適用させていく
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
地方創生ワカモノ会合
Google Analytics のデータ分析ハンズオン
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
知っておきたいFirebase の色んな上限について
Android 開発の昔と今
Firebase Extensions はじめの一歩
Firebase & BigQuery で Android アプリの成⻑を支える
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Firebase Summit 2019 Recap
Cloud Firestore を使って、Polling をやめたい話
インドのインターネット環境 との戦い方
インドの低速なネットワーク環境の攻略法
DroidKaigi 2018 参加報告会 Closing
企業スポンサー
参加したセッションの ピックアップ
CFP(Call For Paper) を出す話
DroidKaigi 2018 参加報告会
DroidKaigi アプリの内部を見る
Java で書かれた Android アプリに Kotlin を適用させていく

Android 開発, 運用時に使いたいライブラリやサービスの紹介

  • 1. Android 開発, 運用時に使いたい ライブラリやサービスの紹介 2016/07/02 オープンセミナー2016@香川 #osk2016 2016/07/02 @情報通信交流館 e-とぴあ かがわ 5F BBスクエア Tokushima.app & Sansan株式会社 辰濱健一
  • 2. Copyright © 2014 Sansan, Inc. All rights reserved. > Agenda 1 • 自己紹介 • ○○時に使いたい、ライブラリやサービスの紹介 • 開発 • テスト • 運用 ※あくまでも、ざっくりとした紹介のみです。 試用・導入にあたっては、本家のドキュメントを参照下さい。
  • 3. Copyright © 2014 Sansan, Inc. All rights reserved. 自己紹介 2
  • 4. Copyright © 2014 Sansan, Inc. All rights reserved. > 自己紹介 3 • 辰濱健一 • 徳島生まれ、奈良育ち • 2回転職するも、いずれも徳島県内勤務 • Tokushima.app 主催 (徳島でのスマホアプリの勉強会) • Sansan株式会社所属 • 古民家を改修した神山ラボ勤務 • 名刺アプリ Eight Android 版の開発 • Kotlin, RxJava, Realm, … を使ってます • リモートワーク • 趣味は楽器演奏
  • 5. Copyright © 2014 Sansan, Inc. All rights reserved. > Sansan神山ラボ 4
  • 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ペースで開催(したいと思ってはいる) • 辰濱が東京の勉強会で仕入れてきた情報なども共有します • 要望あれば、近隣に出張ハンズオンなども始めようかな…とか思っている。
  • 8. Copyright © 2014 Sansan, Inc. All rights reserved. 開発時に使いたい ライブラリやサービス 7
  • 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 の マルチウィンドウのリサイズのことではない
  • 26. Copyright © 2014 Sansan, Inc. All rights reserved. 25
  • 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 テスト • 閾値の変更 • メンテナンスモードへの切り替え
  • 31. Copyright © 2014 Sansan, Inc. All rights reserved. テスト時に使いたい ライブラリやサービス 30
  • 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 • ブラウザ上のマウスで操作可能 ↑アプリをアップロード ↑物理ボタン
  • 40. Copyright © 2014 Sansan, Inc. All rights reserved. 39
  • 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 • 一定の割合のユーザのみにアップデートを配信する • 割合の調整はできるが、ターゲットの選定はできない • 時間をかけて徐々に配信することで、アップデート版 の品質を監視しながらリリースできる
  • 43. Copyright © 2014 Sansan, Inc. All rights reserved. 運用時に使いたい ライブラリやサービス 42
  • 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 などの推移を確認できる • イベントトラッキングも行える
  • 46. Copyright © 2014 Sansan, Inc. All rights reserved. 45
  • 47. Copyright © 2014 Sansan, Inc. All rights reserved. > Firebase – Analytics 46 • 様々な分析を統合的に行える (今まではそれぞれ別々のサービスで提供されて いることが多く、連携が難しかった) • アプリ内の行動分析 • 広告やキャンペーンの効果分析 • クラッシュレポート • ログの保存は無制限で無料 • データエクスポートも可能
  • 48. Copyright © 2014 Sansan, Inc. All rights reserved. 47 ライブラリやサービスを使って アプリの開発・運用を 速く・楽にしよう!
  • 49. Copyright © 2014 Sansan, Inc. All rights reserved. 48
  • 50. Copyright © 2014 Sansan, Inc. All rights reserved. 49 これらのライブラリやサービスの ハンズオンやるかも? Tokushima.app http://tokushima-app.connpass.com