android 開発を加速するオープンソースライブラリ
TRANSCRIPT
Android 開発を加速するオープンソースライブラリ2015/11/14 オープンソースカンファレンス 2015 Tokushima
Tokushima.app 辰濱健一
自己紹介 辰濱 健一 徳島県生まれ、徳島県勤務 Android アプリエンジニア
2 年ぐらい前までは iOS / Windows8 ( C# ) もやってました その前は Java, C++ など…
Tokushima.app というスマホアプリ開発の勉強会やってます
Tokushima.app
スマホアプリ開発の勉強会 月1回ぐらいのペースで開催(したい。。。)
辰濱の都合や、会場の都合によって最近はペースダウン中 会場は、 aizyu tokushima basement(徳島市沖浜) 基本もくもく、ときどき発表 参加費無料
想定する読者 Android 開発に携わったことある人 Android 開発に興味を持っている人
Android 開発を加速するオープンソースライブラリ Butter Knife Picasso Retrofit Gson Stetho Realm Stetho – Realm
これらの良さと「ざっくり」とした使い方を紹介します。※ 業務利用の場合、詳細を調査してご利用下さい。
Butter Knife
概要 http://jakewharton.github.io/butterknife/ Square の Jake Wharton さん作
メリット Activity, View の findViewById を楽に書く View の onClickListener などを楽に書く
Butter Knife - Before
ボタンをタップすると、 Snackbar を表示するだけの Activity
Butter Knife - Before
この辺がシンプルに記述できる
Butter Knife – Download
compile 'com.jakewharton:butterknife:7.0.1'
Butter Knife - After
Butter Knife - After
Bind のおまじない
この View 用のonClick ハンドラ
Picasso 概要
http://square.github.io/picasso/ Square の Jake Wharton さん作
メリット 画像の取得・表示を簡単にやってくれる Adapter 内での ImageView のリサイクルやダウンロード処理のキャンセルを自動で実行してくれる 複雑な画像の変形処理を最小のメモリ消費で実現できる 自動でメモリ・ファイルキャッシュをやってくれる
似たライブラリ Glide
Picasso - Download
compile 'com.squareup.picasso:picasso:2.5.2'
Picasso - 使い方
たったこれだけ。しかも、キャッシュされていれば、自動的にキャッシュから取得してくれます。
Retrofit
概要 https://github.com/square/retrofit Square のライブラリ
メリット 通信の記述が簡単になる REST リクエストを飛ばしてレスポンスを得て、 Entity の型へ変換するまでの面倒を見てくれる。
Retrofit - Download
compile 'com.squareup.retrofit:retrofit:1.9.0'
Retrofit – LivedoorWeatherAPI を使う http://weather.livedoor.com/weather_hacks/webservice
Retrofit – LivedoorWeatherAPI を使う
Retrofit – LivedoorWeatherAPI を使う API の Interface 定義を作成
Retrofit – LivedoorWeatherAPI を使う レスポンスモデルを記述
Json からモデルへのマッピングはライブラリ内でやってくれる( Gson など)
Retrofit – LivedoorWeatherAPI を使う 呼び出し
Retrofit – LivedoorWeatherAPI を使う 結果
Gson
概要 https://github.com/google/gson Google のライブラリ
メリット Json とモデルの相互変換をやってくれる
類似ライブラリ JSONIC, JsonPullParser, Jackson
Gson - Download
compile 'com.google.code.gson:gson:2.2.4'
Gson - Before
JSONObject 時代
フィールド数が多いと大変。。。
Gson - After さっきの Location クラス利用
area: 徳島県東部city: 徳島市prefecture: 徳島県{"area":" 徳島県東部 ","city":" 徳島市 ","prefecture":" 徳島県 "}
Stetho
概要 http://facebook.github.io/stetho/ Facebook 製ライブラリ
メリット SharedPreference とか 通信状況とかローカル DB を見れる!
Stetho - Download
compile 'com.facebook.stetho:stetho:1.2.0'
Stetho - Setup
Stetho - View
Chrome で chrome://inspect/#devices を開く
Stetho - View
Chrome で chrome://inspect/#devices を開く
Stetho - View SharedPreference の値を確認できる!
Stetho – 通信を見る 先ほどの LivedoorWeather の通信を見る Download
compile 'com.squareup.okhttp:okhttp:2.4.0’ Retrofit の Client を OkHttp にするために記述
compile ‘com.facebook.stetho:stetho-okhttp:1.1.1’ Stetho と OkHttp の連携のために記述
Stetho – 通信を見るこれだけ追加
Stetho – 通信を見る
レスポンスの json を見ることができて便利!
Stetho – Picasso 連携 さっきのサンプルに追加
Stetho – Picasso 連携
便利!
Stetho – Picasso 連携
総じて便利
Realm
概要 https://realm.io/jp/ モバイル向けの次世代 DB
メリット 簡単 速い 日本語サポート!
Realm - Download
compile 'io.realm:realm-android:0.84.1'
Realm - Model
Realm - Use
続きは 14:00 〜 中の人に!!
Stetho-Realm
概要 https://github.com/uPhyca/stetho-realm uPhyca の @zaki50 さんが開発
メリット 名の通り、 Stetho で Realm の内容を見ることができる
Stetho-Realm - Download
Stetho-Realm - Setup
Stetho-Realm View
使えるライブラリを使って、アプリを楽に・速く開発しよう!
ご静聴ありがとうございました!
質疑応答
実演…!?(残り時間次第)