【とらのあな主催】オタクがKotlinを追うライトニングトークイベント / 20190319_toranoana_kotlin_lt
by
FORTE
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Javaの重力に魂を縛られている人々へ 〜Javaエンジニアがkotlinを学んでみた〜 2019/03/19 【とらのあな主催】オタクがKotlinを追うライトニングトークイベント @FORTEgp05
Slide 2
Slide 2 text
自己紹介 FORTE (フォルテ) スマホアプリ開発者 Twitter:@FORTEgp05
Slide 3
Slide 3 text
今日伝えたいこと ● JavaエンジニアがKotlinを学んでみた結果を伝えたい ○ 学び方 ○ 反省 ○ 感想 3
Slide 4
Slide 4 text
今日は伝えないこと ● Kotlinの文法など 文法なら公式ドキュメントを。 4
Slide 5
Slide 5 text
前提 登壇者のスキル ● ざっくりとした職歴 ○ SIer ⇨ Web系 ⇨ スマホアプリ開発 ● Java経験 ○ 合計9年半 ■ SIerで9年 ■ スマホアプリ開発で半年 Kotlinはまったく未経験(プライベートでも勉強していない) 5
Slide 6
Slide 6 text
事例 実際にKotlinを学んだやり方 6
Slide 7
Slide 7 text
事例 学び方①公式ドキュメントを読む まずは公式ドキュメントを読み始める。 読んでわかったこと。 7
Slide 8
Slide 8 text
事例 学び方①公式ドキュメントを読む まずは公式ドキュメントを読み始める。 読んでわかったこと。 ● Kotlin、完全に理解した 8
Slide 9
Slide 9 text
事例 学び方①公式ドキュメントを読む まずは公式ドキュメントを読み始める。 読んでわかったこと。 ● Kotlin、完全に理解した 気になれた 9
Slide 10
Slide 10 text
事例 学び方①公式ドキュメントを読む ループの書き方や言語の特徴、コルーチンなどの仕組みがあ るのはわかる。 それで?ってなるだけ。 身についている感じはほとんどしない。 困った時にみるのは便利だし、どこになにがあるかをざっと みておくと描くときの効率が上がりそう。 10
Slide 11
Slide 11 text
事例 学び方②他人のソースを見てみる ● DroidKaigi2019のソースを見てみる ○ モダンすぎて、Kotlin以外に理解しなければならない ことが多すぎてツライ。 使われているライブラリとか。 ○ いまわからないのが、kotlinのせいなのか、 別の要因なのかが判断しづらい。 11
Slide 12
Slide 12 text
事例 学び方②他人のソースを見てみる ● DroidKaigi2019のソースを見てみる ○ モダンすぎて、Kotlin以外に理解しなければならない ことが多すぎてツライ。 使われているライブラリとか。 ○ いまわからないのが、kotlinのせいなのか、 別の要因なのかが判断しづらい。 ものすごく勉強になるが、自分にあったソースを見ないと効 率が悪い。 12
Slide 13
Slide 13 text
事例 学び方②他人のソースを見てみる ● googlesamples/android-sunflowerのソースを見てみる ○ Android JetpackというGoogle製ライブラリのベスト プラクティスをソースにしたサンプルアプリ。 ○ 風の噂でこれが良いぞと聞いたので見てみた。 わかりやすい書き方で内容はわかる。 Kotlinだとこう書くのかーと実感。 13
Slide 14
Slide 14 text
事例 学び方②他人のソースを見てみる ふたつのソースを見てわかったこと。 14
Slide 15
Slide 15 text
事例 学び方②他人のソースを見てみる ふたつのソースを見てわかったこと。 自分で書かないとわからないな。 15
Slide 16
Slide 16 text
事例 学び方③写経する 自分がJavaで理解できるコードを、Kotlinで書いていくと効 果がありそう。 ● Javaとの違いを実感できる ● 実装内容はわかっているのでKotlinだけに集中できる 16
Slide 17
Slide 17 text
事例 学び方③写経する ● 写経対象 ○ Java製のサンプルアプリ ■ MVVMの実践 ■ RxJava、room、 Data Bindingなど… 17
Slide 18
Slide 18 text
事例 実際にKotlinを書いて悩んだ点 18
Slide 19
Slide 19 text
事例 実際にKotlinを書いて悩んだ点 ● クラス名を取得したい ○ Java: ○ Kotlin: クラス(Hoge)からclassや名前が取れないので悩む…。 書いてみて気づけたのて書いてよかった点。 19 Hoge.class.getName() Hoge::class.java.simpleName
Slide 20
Slide 20 text
事例 実際にKotlinを書いて悩んだ点 ● 直感的に多次元配列が定義できない。 ○ Java: 20 String[][] params = { {"hoge", fuga} };
Slide 21
Slide 21 text
事例 実際にKotlinを書いて悩んだ点 ● 直感的に多次元配列が定義できない。 ○ Kotlin: なんで配列宣言ができないのかわからなくて悩む…。 結局2次元配列は使用せずに実装した。 21 val array = Array(10, {arrayOfNulls(10)}) // このあと値をセットする
Slide 22
Slide 22 text
事例 実際にKotlinを書いて悩んだ点 ● 三項演算子がない ○ Java: ○ Kotlin: 無いの!?ってなったけど、if文で値が返せるのならわかりや すいと思いました。 22 return (sb.length() > 0) ? "?" + sb.substring(1) : ""; return if (sb.isNotEmpty()) "?" + sb.substring(1) else ""
Slide 23
Slide 23 text
事例 実際にKotlinを書いて悩んだ点 ● Object型とAny型 Javaと同じようにObject型の引数を取るメソッドを書い たら、なぜかコンパイルが通らない…。 Kotlinでルートクラスを使用したい場合は、Any型を使用 するのが正解。 23
Slide 24
Slide 24 text
事例 学んだ結果からの反省と感想 24
Slide 25
Slide 25 text
反省 ● すぐ書き始めればよかった。 ○ Javaと比べられるコードがあると非常に捗る ● メンターを用意できそうならいた方が早い ○ 教育目的のペア/モブプロがおすすめ 25
Slide 26
Slide 26 text
Kotlinを勉強してみた感想 ● 最初はストレスを感じる ○ イメージがそのままコードにできない ● 開発対象のアンチパターンをググるのもおすすめ。 例:「Android kotlin アンチパターン」でググる 26
Slide 27
Slide 27 text
Kotlinを勉強してみた感想 Kotlinは伊達じゃない! 27
Slide 28
Slide 28 text
Kotlinは伊達じゃない! ● GithubのAPIを叩いてリポジトリ一覧を取得する処理 ○ Java :65行、2,440行 ○ Kotlin:61行、1,952行 28
Slide 29
Slide 29 text
宣伝 Twitter:@FORTEgp05 Podcast:『aozora.fm』 お便り募集中! 技術書典6:「はじめる技術 つづける技術」を頒布予定! 【え18】サークル「おからぼ」さんにて委託。 詳しくは技術書典サークルページ、 または#はじめる技術つづける技術にて! 29
Slide 30
Slide 30 text
おわり 30