用途:
這是寫 Android 的主要語言,請務必熟練,
另外附上 coding style 。
熟練度:高
用途:
Android 過去使用的語言,
同個專案內可以同時有 Kotlin 與 Java,
許多公司、套件、教學範例、Stack Overflow 上都還有不少 Java 的 code,
Android Studio 中,在 Kotlin 檔中貼上 Java code 會被提示自動翻譯成 Kotlin,
但如果是 Kotlin code 貼到 Java 檔就沒有,所以還是需要會寫。
熟練度:高
可以在 GitHub 上看到該 repo 所使用的程式語言比例。
用途:
這裡的 Kotlin 跟 Groovy 都是特定領域版(DSL),
這是為了寫 Android 建構工具 - Gradle 所需的,
舊版是用 Groovy DSL、新版是 Kotlin DSL。
熟練度:低
用途:
Android 的 local 資料庫,也有些公司面試會考手寫。
熟練度:中
用途:
這跟 Android 其實無關,但 Python 非常常用,
我參與的專案也有用在像是更新 api 內容進 code 中、更新版本機制等等,
如果有餘力,是很好的第二語言。
熟練度:低
用途:
官方文件、Google I/O、Stack Overflow、教學文、外商公司、
甚至 Android Studio 本身就沒有中文版。
程式領域有很多原則,像是 SOLID、DRY、KISS 等等,都建議看一下。
我就不放連結了,當然書也很多,之後會再寫一篇介紹。
雖然有一堆理論,平常也很難時時刻刻檢視、遵循,
我自己有些 mindset 像是,
寫的時候:
工程師面試有一個有趣的文化是白板題,
面試官會口述情境,然後應試者要在白板上寫 code,
所以如果是準備面試的話,偶爾用筆寫一下,不然會被 IDE 寵壞。
很多時候我們學了很多,卻發現現實是,
反反復復的商案,
為了某些用戶、機制需要 workaround,
看到了 lint 卻沒時間修,也沒有時間重構,等等許多問題,
這些東西累積起來,會變成,新功能就加不進去、舊功能也沒人敢動,
最後就只能重寫整個 APP,
之後的文章也會針對這些可怕的狀況做討論。