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.