Kotlin + Javaで始めるAndroid開発

Kotlin + Javaで始めるAndroid開発

KotlinのLT会!Kotlin入門者の集い
https://kotlin.connpass.com/event/52374/

122ec46444f145d8253582a7cade5f4f?s=128

tebasakyu

June 26, 2017
Tweet

Transcript

  1. Kotlin + Java で始めるAndroid開発 2017.06.26 KotlinのLT会!Kotlin入門者の集い @tebasakyu

  2. 自己紹介 • 鈴木 誠 (Makoto Suzuki) ◦ 娘: 遙華(Haruka) 4ヶ月

    • Monstar Lab, Inc. • Android Engineer • Twitter: @tebasakyu • GitHub: @tebasakyu
  3. Start New Project or

  4. 択一だっけ?

  5. Start New Project and

  6. 立ち回りの基本 • KotlinがJavaからどう見えるのか理解する • Java勢に優しくなる ◦ PublicなものはJava寄りに記述 ◦ Privateなものは好きに書く •

    役割分担 ◦ Utilなどのメンテすることが少ないもの ▪ 引き継ぎコストを(多少は)気にしなくなる ◦ テストクラス
  7. どう見える - Null Safety class StringUtil { companion object {

    @JvmStatic fun equals(value1: String?, value2: String): Boolean { return TextUtils.equals(value1, value2) } } }
  8. どう見える - 拡張関数 FileName: ViewExtentions.kt fun View.toVisible() { this.visibility =

    View.VISIBLE }
  9. どう見える - 拡張関数 FileName: ViewExtentionsKt.java public static void toVisible(@NonNull View

    view) { view.setVisibility(View.VISIBLE); } Javaからはこのようなクラスとメソッドが用意されている様に見え ている。 ものによっては、あまり便利に使えない場合もある。
  10. PublicでもKotlinしていいところ fun newInstance(id: Int) = DetailFragment().apply { arguments = Bundle().apply

    { putInt(KEY_ID, id) } } 例えば、Fragmentのインスタンス生成を行う関数。
  11. • 戻り値の型の省略 ◦ DetailFragment#newInstanceの戻り値は自明なので、こ れならば省略しても大丈夫。 ◦ “isHoge”関数も同様に省略して良い。 ▪ 名称から見て、Booleanを返すのは自明である。 •

    スコープ関数の使用(apply) ◦ DetailFragment#newInstanceの内容を呼び出し元が大 きく気にかけることは無い。そのため、自由に記述しても大 丈夫。 ◦ 仮に渡す値が増えても、改修内容は複雑では無い。
  12. PublicでもKotlinしていいところ fun toUpperCase(value: String?) { value ?: return value.toUpperCase() }

    fun toLowerCase(value: String?) { value?.run { toLowerCase() } } 条件が複雑でなければ雰囲気で分かる
  13. ライブラリ • Javaで書かれたもの ◦ 概ね自由に使える ◦ Annotationものにはkaptを忘れないこと • Kotlinで書かれたもの ◦

    Javaから実行する際に公式readmeと記法が異なる場合 があるので注意されたし 例:”@JvmStacic”の有無でJavaから実行する際の記法が異なる なし:FrogUtil.Companion.pickles(); あり:FrogUtil.pickles();
  14. コードレビュー • 互いに実施して理解を深め合う ◦ チームでレベルアップする • 読み方が分からない、分かりづらいポイントは解説する • レビューを通して、コーディングのルールを作っていく

  15. Thank you.