Groovy on Android
雑感
@ichigotake
2014-06-06
Profile
• name: @ichigotake
• hobby: Androidアプリ開発
• job: エンジニア
Groovy on Android
• (以降、「GoA」と表記)
• Groovy v2.4からAndroidサポートが発表された
• X AndroidがGroovyをサポート
• O GroovyがAndroidをサポート
• GroovyでAndroidアプリが書けるように!
Twitterでの声
• (意訳)
• Javaから逃れられるヤッター
• 実行時間どうなの?
• Swiftとちょっと似てる
• Kotlinの方が便利仕様多いからKotlinワンチャン
GoAの利点
• Java(ネイティブ環境)からの学習コストが低い
• Javaそのままの記述でGroovy上で動作可能
• Javaコードの一部だけGroovyといった使用も
• 便利な省略記法/構文が(javaより)多い
• Groovy標準で便利APIたくさん
GoAの欠点
• ビルドで生成されるdexファイルが少々大きめ
• DalvikVMのメソッド数上限65535に衝突するリスク↑
• ビルド時間が増える
• 現時点で Groovy v2.4は未リリース
• セットアップに一手間二手間かかる
GoAの代替案
• ADT Java7サポート / retrolambda / Lombok
• Groovyより環境が複雑になるかも?
• 生Java/GroovyよりIDE支援が弱い可能性
• ADT Java7はJava7の全APIを使えるわけではない
GoAの代替案
• Intellijで簡易コードジェネレーター?
• 素のIntellij上でGroovyで記述
• refactor -> convert to javaでJavaに変換
• これはあくまでコード生成で、保守ではGroovyを
使えない
GoAの代替言語
• Scala
• 未調査
• Scalaのみでほぼ65535問題に到達する
• GooglePlayServices,support-*が使えないリスク高
• Kotlin
• 未調査
• 比較的新しく、文化/環境/文書的な学習コストはあるかも?
• RubyMotion
• 未調査
• JVM系言語と比べてIDE支援が弱く、開発速度に懸念
GoAの使いどころ
• モック等スピードが要求される所で使ってみる?
• メソッド数65535問題を把握した上で制御する
• 到達しない程度の小さなアプリで使う?
• そもそも意識しないといけない時点でつらみ
• 意識する必要の無い世界に期待する…?
今使うべきか
• 今月末にGoogle I/Oがある
• GoA以外の革新的な発表が飛び出す可能性も
• サポートが発表されたばかりで不安も少々
• (2014-06-06)今はお試し程度で触るのが無難
参考 - メソッド数
!
!
!
依存
dexファイルの
メソッド数
support-v7 3,999
support-v7
Groovy
39,515
support-v7
Groovy
GooglePlayServices
55,794
• おしまい

android_on_groovy