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
Kotlin + Java で始めるAndroid開発 2017.06.26 KotlinのLT会!Kotlin入門者の集い @tebasakyu
Slide 2
Slide 2 text
自己紹介 ● 鈴木 誠 (Makoto Suzuki) ○ 娘: 遙華(Haruka) 4ヶ月 ● Monstar Lab, Inc. ● Android Engineer ● Twitter: @tebasakyu ● GitHub: @tebasakyu
Slide 3
Slide 3 text
Start New Project or
Slide 4
Slide 4 text
択一だっけ?
Slide 5
Slide 5 text
Start New Project and
Slide 6
Slide 6 text
立ち回りの基本 ● KotlinがJavaからどう見えるのか理解する ● Java勢に優しくなる ○ PublicなものはJava寄りに記述 ○ Privateなものは好きに書く ● 役割分担 ○ Utilなどのメンテすることが少ないもの ■ 引き継ぎコストを(多少は)気にしなくなる ○ テストクラス
Slide 7
Slide 7 text
どう見える - Null Safety class StringUtil { companion object { @JvmStatic fun equals(value1: String?, value2: String): Boolean { return TextUtils.equals(value1, value2) } } }
Slide 8
Slide 8 text
どう見える - 拡張関数 FileName: ViewExtentions.kt fun View.toVisible() { this.visibility = View.VISIBLE }
Slide 9
Slide 9 text
どう見える - 拡張関数 FileName: ViewExtentionsKt.java public static void toVisible(@NonNull View view) { view.setVisibility(View.VISIBLE); } Javaからはこのようなクラスとメソッドが用意されている様に見え ている。 ものによっては、あまり便利に使えない場合もある。
Slide 10
Slide 10 text
PublicでもKotlinしていいところ fun newInstance(id: Int) = DetailFragment().apply { arguments = Bundle().apply { putInt(KEY_ID, id) } } 例えば、Fragmentのインスタンス生成を行う関数。
Slide 11
Slide 11 text
● 戻り値の型の省略 ○ DetailFragment#newInstanceの戻り値は自明なので、こ れならば省略しても大丈夫。 ○ “isHoge”関数も同様に省略して良い。 ■ 名称から見て、Booleanを返すのは自明である。 ● スコープ関数の使用(apply) ○ DetailFragment#newInstanceの内容を呼び出し元が大 きく気にかけることは無い。そのため、自由に記述しても大 丈夫。 ○ 仮に渡す値が増えても、改修内容は複雑では無い。
Slide 12
Slide 12 text
PublicでもKotlinしていいところ fun toUpperCase(value: String?) { value ?: return value.toUpperCase() } fun toLowerCase(value: String?) { value?.run { toLowerCase() } } 条件が複雑でなければ雰囲気で分かる
Slide 13
Slide 13 text
ライブラリ ● Javaで書かれたもの ○ 概ね自由に使える ○ Annotationものにはkaptを忘れないこと ● Kotlinで書かれたもの ○ Javaから実行する際に公式readmeと記法が異なる場合 があるので注意されたし 例:”@JvmStacic”の有無でJavaから実行する際の記法が異なる なし:FrogUtil.Companion.pickles(); あり:FrogUtil.pickles();
Slide 14
Slide 14 text
コードレビュー ● 互いに実施して理解を深め合う ○ チームでレベルアップする ● 読み方が分からない、分かりづらいポイントは解説する ● レビューを通して、コーディングのルールを作っていく
Slide 15
Slide 15 text
Thank you.