Upload
yukiya-nakagawa
View
1.336
Download
0
Embed Size (px)
Citation preview
Android再入門
~Eclipseのことは忘れろ~第40回 長岡IT開発者勉強会 2015.2.21
@Nkzn
自己紹介
中川 幸哉 / @Nkzn
Android歴5年目になりました ウォーターセル株式会社 農業者向けアプリ「アグリノート」作ってます
最近の活動
Android技術者サークル「TechBooster」の冬コミ本に寄稿しました
↓かわいい著者絵を書いてもらえました
はじめに
昔のAndroidアプリ開発キーワード
Eclipse + ADT 公式Emulator (or Intel HAXM)
UI以外のテストをJUnit3で動かす
Ant? 知らない子ですね
Maven? うっ、頭が・・・
今のAndroidアプリ開発キーワード
Android Studio Gradle JUnit4 Espresso 2.0 Robolectric Genymotion WaterCell/android-app-template
各キーワードについてあれこれ
Eclipse + ADT -> Android Studio2014.12.9 Android Studio 1.0 Released
–http://developer.android.com/tools/help/adt.html
“If you have been using Eclipse with ADT, be aware that Android Studio is
now the official IDE for Android, so you should migrate to Android Studio to receive all the latest IDE updates. For
help moving projects, see Migrating to Android Studio.”
ビルドツールはGradle一択
$ ./gradlew clean check assembleDebug
// clean => 前回ビルド時のキャッシュを削除// check => 静的解析, ユニットテストの実行// assembleDebug => APKをデバッグビルドする
そもそもAntやMavenはXMLで手続きを書かせようとすることがF*ckだった
Gradleの懸念点①
2/19にAS1.1が出たばかり
Android plugin for Gradleもver 1.1.0
1.0未満時代の情報はたまに危ない
0.6で破壊的な名称変更があったりした
できるだけ2014年12月以降の情報を参考にしましょう
Gradleの懸念点②
ライブラリの自動ダウンロードが起こる キャッシュはあるものの、初回は細かいダウンロードが多めに発生する(パッケージマネージャの宿命)
ネットワークが貧弱な環境でのセミナーしんどい 融通が効かないプロキシが挟んである会社しんどい
Emulator
Emulator 速度 CPU Play Services
公式ARMv7 すごく遅い ARMv7 Android4.2以降なら搭載版あり
公式Intel 実機くらい早い x86 搭載版なし
Genymotion 実機より早い x86後載せ可(無保
証)
テストツール
• 公式テストツール(androidTest)
• 非公式ユニットテストツール(Robolectric)
テスト事例
WaterCell/android-app-template https://github.com/WaterCell/android-app-template
社内でデファクトになったライブラリの寄せ集め 公式UIテストとRobolectricを併存
テスト手法が気になる方は
JUnit実践入門
渡辺修司 / @shuji_w6e クラスメソッドの人
Android Javaについて 留意しておいたほうがいいこと
Android Java != Oracle Java/OpenJDK
Java7使いたい!
android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 }}
Android 4.2で
try (SQLiteDatabase db = dbHelper.getWritableDatabase()) { // hogehoge}
OracleのJava SE 7にはあるのに・・・・!!!!
Android 4.2で
Long.compare(1, 2) // => Compile Error!
OracleのJava SE 7にはあるのに・・・・!!!!
Android 2.3で
ArrayList<String> strings = new ArrayList<>();
これは動く
Java7指定でできること
API, try-with-resources => Android 4.4 KitKatから その他の文法 => Android 2.3までは動くこと(検証済み)
おまけ:OSビルド用Javaバージョン
Androidバージョン OSビルドに必要な Javaのバージョン
Android 1.5~2.2 Java5
Android 2.3~4.4 Java6
Android 5.0~ Java7
http://source.android.com/source/initializing.html#installing-the-jdk
Android SDKについての 古い記事全般
APIについての記事
=> 下位互換性が高いので信じてOK
推奨のやり方が変わっていることはある
ProGuard, Lintについての記事
=> 設定ファイルの書き方は変わっていないので信じてOK
ライブラリを探すとき
Deprecated(非推奨)に注意
超有名ライブラリも
まとめ
宣伝1:Recruiting
ウォーターセル株式会社では、農業分野でのITツールの開発・改善に一緒に取り組んでくれるAndroidエンジニアを募集しています。
@Nkznまで空リプください。
宣伝2:DroidKaigi
2015年4月25日(土) 渋谷・サイバーエージェント Androidに掠るテーマについて喋れる人どうぞ
http://droidkaigi.github.io
おわりに
先にKobitoでQiita向けの記事の体でセッション内容を下書きして、そこからスライドを作る試みをしてみました。 http://qiita.com/Nkzn/items/b31829890ba83a7fd618