SlideShare a Scribd company logo
1 of 20
Download to read offline
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
つらい
13
でも
14
楽しい
15
学んだこと
・ライブラリを作ると標準APIに詳しくなる
・便利なライブラリを使わないので、実装ス
キルの訓練になる
・ライフサイクルを意識出来るようになる
→ 特に destroy() などの終了処理
16
ちなみに
・Handler
→ myLooper(newしたスレッド) or
MainLooper(UIスレッド)
・HandlerThread
→ 別スレッドを作り、そのmyLooperを使える
17
余談
・10月に転職しました
某ニュースアプリの六本木の会社
→ 某AJITOがある渋谷の会社
最後にサラリーマンとして言わせてください
18
Android エンジニア募集しています
19
http://voyagegroup.com/crew/recruit/career/
おわり
20

More Related Content

More from Shigeki Yamato

第十一回渋谷Java
第十一回渋谷Java第十一回渋谷Java
第十一回渋谷JavaShigeki Yamato
 
Google Maps を使ったアプリを作ってみた
Google Maps を使ったアプリを作ってみたGoogle Maps を使ったアプリを作ってみた
Google Maps を使ったアプリを作ってみたShigeki Yamato
 
Androidアプリ滞在時間の計測
Androidアプリ滞在時間の計測Androidアプリ滞在時間の計測
Androidアプリ滞在時間の計測Shigeki Yamato
 
AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?Shigeki Yamato
 
山戸家の家庭内情報共有
山戸家の家庭内情報共有山戸家の家庭内情報共有
山戸家の家庭内情報共有Shigeki Yamato
 
20110715 enterprise wiki search
20110715 enterprise wiki search20110715 enterprise wiki search
20110715 enterprise wiki searchShigeki Yamato
 

More from Shigeki Yamato (8)

初めてのParse.com
初めてのParse.com初めてのParse.com
初めてのParse.com
 
Alternative WebView
Alternative WebViewAlternative WebView
Alternative WebView
 
第十一回渋谷Java
第十一回渋谷Java第十一回渋谷Java
第十一回渋谷Java
 
Google Maps を使ったアプリを作ってみた
Google Maps を使ったアプリを作ってみたGoogle Maps を使ったアプリを作ってみた
Google Maps を使ったアプリを作ってみた
 
Androidアプリ滞在時間の計測
Androidアプリ滞在時間の計測Androidアプリ滞在時間の計測
Androidアプリ滞在時間の計測
 
AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?
 
山戸家の家庭内情報共有
山戸家の家庭内情報共有山戸家の家庭内情報共有
山戸家の家庭内情報共有
 
20110715 enterprise wiki search
20110715 enterprise wiki search20110715 enterprise wiki search
20110715 enterprise wiki search
 

Androidでライブラリを作る