Androidでライブラリを作る

20
Androidで ライブラリを作る 2015/11/24 potatotips #23 1

Transcript of Androidでライブラリを作る

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 エンジニア募集しています

19http://voyagegroup.com/crew/recruit/career/

おわり

20