owned this note changed 6 years ago
Linked with GitHub

Java 轉 Kotlin 的心酸血淚史 - Jean Yen

歡迎來到 MOPCON 2019 共筆 :mega:
共筆入口:https://hackmd.io/@mopcon/2019
手機版請點選上方 按鈕展開議程列表。

會場 wifi-SSID: mopcon-2019
會場 wifi-PASSWD: mopcon-2019

國泰優惠APP

  • 刷卡活動登陸集點數兌換
  • 生活優惠:FunNow
  • 驚喜好康:每周五有抽獎活動

Kotlin

  • Android官方優先語言
  • Null-Safety
    • 優化Java檢查空值
  • 程式碼行數
    • 增加閱讀性

Why使用Kotlin?

  • 避免被時代淘汰
    • 擔心google play上架政策(如果某一天Google突然強制規定必須要用Kotlin開發)
  • 工程師的期望
    • 提高閱讀性

如何進行

工程師事前準備

  • 程式碼邏輯
    • 黑歷史、外包、遺產等
  • 許願清單
    • 大大小小重構項目
      轉換前需先做移除動作,讓轉換更順利:
      Butter Knife函式庫在Kotilin上有可以被取代
  • 3rd程式庫
    • 會被影響的外部來源
  • 專案時程
    • 產品上線時間

如何將Java轉成Kotlin

Android團隊

  • 開始

    • 4名工程師(java2、java+kotlin2)
  • 導入

    • Kotlin 程式碼增加踩雷分享交流
  • 檢視程式碼

    • 做中學(code review)
  • 人人都懂

    • 皆大歡喜
  • Java 轉 Kotlin 檔案

  • Kotlin 可以反組譯回 Java(轉譯完JAVA無法直接使用,純粹提供用來人類學習Kotlin語法用)

使用Android Studio先工具轉換後,仍須工程師依照語意潤飾,使程式碼更輕巧。
(Data class由原本Java 29行,轉換成Kotilin 24行,照理解語意重寫後只需 4行)

Java vs. Kotlin

TextUtils.isEmpty(string)

vs

str.isNullOrEmpty()

gender.equals("female")

v.s

gender=="female"

static 

v.s

companion object

團隊希望: Java愈來愈少,Kotlin愈來愈多

轉換Kotlin的技巧

  • 了解你的程式碼
  • Android Studio
  • Kotlin線上資源及線下活動
tags: MOPCON 2019
Select a repo