potato03 kotlinでandroidアプリ開発(後編)
TRANSCRIPT
![Page 1: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/1.jpg)
KotlinでAndroidアプリ開発(後編)
2014-01-15 potatotips #3 Toshihiro Yagi
Wednesday, January 15, 14
![Page 2: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/2.jpg)
About meTwitter : @sys1yagiBlog : http://visible-true.blogspot.jp/
Android Engineer at
Wednesday, January 15, 14
![Page 3: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/3.jpg)
出ました。
http://www.amazon.co.jp/gp/product/4798040029/
Wednesday, January 15, 14
![Page 4: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/4.jpg)
前回のおさらい
Wednesday, January 15, 14
![Page 5: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/5.jpg)
Kotlin知ってますか?
Wednesday, January 15, 14
![Page 6: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/6.jpg)
What’s about Kotlin?
• JetBrains社が作っている新しいJVM言語。GroovyやScalaから影響を受けている。静的型付け。
• 型推論、ジェネリクス• var、 val、 タプル、Null Safe• トレイト、デリゲート、プロパティ• 高階関数、拡張関数、演算子オーバロード• データクラス、多重宣言• インライン関数• パターンマッチング• Javaとの相互運用性• etc...
Wednesday, January 15, 14
![Page 7: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/7.jpg)
JVM Language?
Can be used to develop in Android?
Wednesday, January 15, 14
![Page 8: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/8.jpg)
Of course!
Wednesday, January 15, 14
![Page 9: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/9.jpg)
Android Studioで使える
•Kotlin pluginをインストールする
•build.gradleにdependencies等を書く
•javaディレクトリと並列な位置にkotlinディレクトリを置く
→動く!
参考 : http://blog.jetbrains.com/kotlin/2013/08/working-with-kotlin-in-android-studio/Wednesday, January 15, 14
![Page 10: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/10.jpg)
Android Studioで使える
•.javaファイルを.ktに変換出来る
•ビルドしたらclassファイルになるのでjava-kotlin間で相互利用可能
•kotlin-runtime-0.1.jar 38KB
kotlin-stdlib-0.1.jar 198KB
Wednesday, January 15, 14
![Page 11: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/11.jpg)
手軽、軽量でイイネ!
Wednesday, January 15, 14
![Page 12: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/12.jpg)
後編Wednesday, January 15, 14
![Page 13: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/13.jpg)
拡張関数
•Objective-Cのカテゴリの様なもの
•既存クラスに関数を生やせる
→捗る
function追加
function
Class
Wednesday, January 15, 14
![Page 14: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/14.jpg)
拡張関数
fun ClassName.methodName(arg: Type):returnType { //do something}
普通の関数定義とほぼ同じ
Wednesday, January 15, 14
![Page 15: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/15.jpg)
Sample of 拡張関数//defineimport android.content.Intentimport android.content.Context
fun Intent.startActivity(context: Context?): Unit { context?.startActivity(this)}
//useIntent(Intent.ACTION_VIEW, Uri.parse(url!!)) .startActivity(getActivity())
Wednesday, January 15, 14
![Page 16: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/16.jpg)
捗る!Wednesday, January 15, 14
![Page 17: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/17.jpg)
RoboGuiceも普通に使えた
[InjectView(R.id.item_list)]var mListView: ListView? = null
Kotlinではアノテーションをこう書く
ただしaptはうまく動かないらしい。Dagger,Transfuse,AndroidAnnotationsとかとの併用はムリポ
Wednesday, January 15, 14
![Page 18: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/18.jpg)
捗る!Wednesday, January 15, 14
![Page 19: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/19.jpg)
関数リテラル
mListView?.setOnItemClickListener({ parent, view, position, id -> //do something})
mListView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //do something } });
Before
After
Wednesday, January 15, 14
![Page 20: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/20.jpg)
捗る!Wednesday, January 15, 14
![Page 21: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/21.jpg)
詳しくはサンプルで
https://github.com/sys1yagi/KotlinAndroidSample
Wednesday, January 15, 14
![Page 22: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/22.jpg)
めんどいところ• うまくKotlin認識してくれない時がある
• オートコンプリートが重い
• コンパイルエラーのメッセージが意味不明な事が多い
• Null Safeのための?演算子と!!演算子が結構だるい
• なぜかoverrideって書くと怒られる
• java-kt変換が甘い
• javaからkotlinが見えない
• リソースにジャンプ出来ない
Wednesday, January 15, 14
![Page 23: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/23.jpg)
おわりに
•Kotlinサイコー(^q^)
Wednesday, January 15, 14
![Page 24: Potato03 KotlinでAndroidアプリ開発(後編)](https://reader033.vdocuments.site/reader033/viewer/2022052316/559c3a511a28ab0a6a8b4632/html5/thumbnails/24.jpg)
COOKPADでKotlinを書こう!?
https://info.cookpad.com/jobs/position/ios-android-app-engineer
Wednesday, January 15, 14