SlideShare a Scribd company logo
1 of 13
Download to read offline
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

What's hot

用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法Takao Sumitomo
 
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピックKenichi Kambara
 
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程Takao Sumitomo
 
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法Keisuke Yamaguchi
 
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介Masataka Kono
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managersHayashi Yuichi
 
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleAndroidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleamayaw9
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムYu Nobuoka
 
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践Takuya Ueda
 
Android,Brillo,ChromeOS
Android,Brillo,ChromeOSAndroid,Brillo,ChromeOS
Android,Brillo,ChromeOSl_b__
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るYu Nobuoka
 
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返りAndroidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返りichirokato5
 
2017823 pythonを始めよう
2017823 pythonを始めよう2017823 pythonを始めよう
2017823 pythonを始めようshouta yoshikai
 
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話shinnosuke kugimiya
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSHiroshi Nakamura
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜Takao Sumitomo
 

What's hot (20)

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

Similar to android_on_groovy

Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Tsuyoshi Yamamoto
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionKazuchika Sekiya
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Takuya Ueda
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜShinobu Okano
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileTakahiro Yoshimura
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBasekyon mm
 
Micronaut on Azure 試してみた
Micronaut on Azure 試してみたMicronaut on Azure 試してみた
Micronaut on Azure 試してみた拓将 平林
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発takuma mori
 
Android Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイドAndroid Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイドKenichi Kambara
 
AndroidでGeoFenceを使って見る
AndroidでGeoFenceを使って見るAndroidでGeoFenceを使って見る
AndroidでGeoFenceを使って見るKatsuki Nakatani
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話Yoichiro Sakurai
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発Hiroshi Kurokawa
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internalsMakoto Kato
 
Go一緒にいかが?
Go一緒にいかが?Go一緒にいかが?
Go一緒にいかが?Ryuji Iwata
 
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントはじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントShinobu Okano
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうTakuya Ueda
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidSENSY Inc
 
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編Kenichi Kambara
 
AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?Shigeki Yamato
 

Similar to android_on_groovy (20)

Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 
Micronaut on Azure 試してみた
Micronaut on Azure 試してみたMicronaut on Azure 試してみた
Micronaut on Azure 試してみた
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
Android Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイドAndroid Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイド
 
AndroidでGeoFenceを使って見る
AndroidでGeoFenceを使って見るAndroidでGeoFenceを使って見る
AndroidでGeoFenceを使って見る
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
Go一緒にいかが?
Go一緒にいかが?Go一緒にいかが?
Go一緒にいかが?
 
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントはじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
 
20150514 android
20150514 android20150514 android
20150514 android
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
 
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
 
AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?AndroidのAppirater何使ってますか?
AndroidのAppirater何使ってますか?
 

More from ichigotake .

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

More from ichigotake . (9)

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

android_on_groovy