Androidで ライブラリを作る
2015/11/24 potatotips #23
1
自己紹介
• 名前 : 山戸茂樹(やまとしげき)
• 職業 : Android ライブラリ 開発
• 自慢:愛妻家(嫁のためにコタツを出しました)
• Twitter : @heki1224
2
※注意 Android 6.0 が出ましたが
そういうナウい話ではありません。 地味な体験談です。
3
[質問] Androidのライブラリを 作ったことある人ー?
4
そもそも(良い)ライブラリに 必要な条件とは?
5
(良い)ライブラリの条件• 何か(便利な)機能を提供している
• 使うのが簡単
• 容量が少ない
• 速度が速い
• 他ライブラリに依存していない
6
Androidライブラリ 特有の問題
7
Androidライブラリ 特有の問題
• OSバージョン問題
• 65k問題
• 非同期処理問題
8
OSバージョン問題
• 幅広いOSバージョン → どこまでサポートするか?
• API deprecated 対応 → if文…
• 古い端末が手に入らない → 実機テストが出来ない
9
65k問題
• ライブラリを作るのにライブラリを使えない → gson, RxJava, okhttp, retrofit, dagger
• 案外困るのが androidTestCompile で65k → JUnit4 / Robolectric を使うしかない
10
非同期処理問題
• 生Threadは訳わからない
• ExecutorServiceも熟練が必要
• AsyncTaskLoaderは使えない(Activity依存※)
• AsyncTaskもちょっと怖い(並列性問題※)
11
結果
• Android 2.3 から WebViewテスト
• HttpURLConnection を使う
• JSON Parse は標準APIで頑張る
• Handler と HandlerThread で頑張る
12
学んだこと
・ライブラリを作ると標準APIに詳しくなる
・便利なライブラリを使わないので、実装スキルの訓練になる
・ライフサイクルを意識出来るようになる → 特に destroy() などの終了処理
16
ちなみに
・Handler → myLooper(newしたスレッド) or MainLooper(UIスレッド)
・HandlerThread → 別スレッドを作り、そのmyLooperを使える
17
余談
・10月に転職しました
某ニュースアプリの六本木の会社 → 某AJITOがある渋谷の会社
最後にサラリーマンとして言わせてください
18
Android エンジニア募集しています
19http://voyagegroup.com/crew/recruit/career/