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
• おしまい

More Related Content

PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
PDF
What is "Go" Gopher?
PDF
LIGにおけるフロントエンドチーム構築
PPTX
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
PDF
Alternative WebView
PPTX
開発チームにKotlinを導入した話
PDF
VS Code新機能紹介 2020-2021
PPTX
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
What is "Go" Gopher?
LIGにおけるフロントエンドチーム構築
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
Alternative WebView
開発チームにKotlinを導入した話
VS Code新機能紹介 2020-2021
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう

What's hot (20)

PDF
LIGでのDocker活用
PDF
用途に合わせたアニメーションの実装方法
PDF
[potatotips #18] Android M Developer Preview & Wear 最新トピック
PDF
開発を効率的に進めるられるまでの道程
PPTX
ネットワークの切り替えを感知する方法
PDF
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
PDF
CSS Living StyleGuide
PDF
Front-end package managers
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
PDF
Android アプリ開発における Gradle ビルドシステム
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
PDF
Android,Brillo,ChromeOS
PDF
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
PPTX
Androidエンジニアになってからの1年間の感想と振り返り
PDF
AppCodeNight testcode
PDF
2017823 pythonを始めよう
PDF
KotlinつかってQiitaクライアント作った時の話
PDF
エンタープライズソフトウェア開発とOSS
PDF
テストがあればなんとかなる〜効率化までの道程〜
PPTX
LT 手作りGit
LIGでのDocker活用
用途に合わせたアニメーションの実装方法
[potatotips #18] Android M Developer Preview & Wear 最新トピック
開発を効率的に進めるられるまでの道程
ネットワークの切り替えを感知する方法
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
CSS Living StyleGuide
Front-end package managers
Androidアプリ開発で活躍必至!? ビルドツールGradle
Android アプリ開発における Gradle ビルドシステム
Namespace API を用いたマルチテナント型 Web アプリの実践
Android,Brillo,ChromeOS
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Androidエンジニアになってからの1年間の感想と振り返り
AppCodeNight testcode
2017823 pythonを始めよう
KotlinつかってQiitaクライアント作った時の話
エンタープライズソフトウェア開発とOSS
テストがあればなんとかなる〜効率化までの道程〜
LT 手作りGit
Ad

More from ichigotake . (9)

PDF
[Android] CI環境についてぼんやり考えてること
PDF
[Android]Fragmentとのつきあい方を考える
PDF
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
PDF
近況報告と最近のAndroidニュース
PDF
兄弟アプリのロジック共通化とビルド高速化の実験
PDF
Potatotips 5 bakusoku_compile
PDF
[Android] モジュール管理で ビルド高速化!
PDF
2013 09-28-yoshinani
KEY
Hachiojipm #23
[Android] CI環境についてぼんやり考えてること
[Android]Fragmentとのつきあい方を考える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
近況報告と最近のAndroidニュース
兄弟アプリのロジック共通化とビルド高速化の実験
Potatotips 5 bakusoku_compile
[Android] モジュール管理で ビルド高速化!
2013 09-28-yoshinani
Hachiojipm #23
Ad

android_on_groovy