【とらのあな主催】オタクがKotlinを追うライトニングトークイベント / 20190319_toranoana_kotlin_lt
by
FORTE
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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