快速上手,使用 Kotlin 把支付寶小程序裝進自己的 App

寫一個 Android App 或許不難,但企業對於移動應用的要求愈來愈高,不只要求開發速度、穩定度、質量等,甚至希望能具備動態擴展的架構設計、在 App 中自啓動小程序。面向這些需求,若是有好的開發工具及平臺的支持,將可以大大降低開發及運維的成本。本次網絡研討會特別邀請到支付寶高級無線開發工程師溫盛章爲大家演示用 Kotlin 開發移動應用,並集成 mPaaS 讓 App 具備小程序能力。

主題分享

本次分享共有三個關鍵字:Kotlin 、 小程序 、 mPaaS 。溫盛章首先從用戶、開發、技術、平臺等四大視角,向大家說明小程序是什麼?簡單來說,小程序就是一種擁有完整生命週期、應用間相互隔離、獨立運行於宿主應用內的應用。而小程序從工作型 App、平臺型 App、超級 App 到新階段一路的演化歷程,目前已經可以有接近 Native 的體驗和順暢、也可以有 H5 的快捷發佈的優勢。

對小程序有概念後,溫盛章就以 Android Studio 演示如何在一個 Mobile App 裏,以 Kotlin 撰寫 Mobile App 的代碼,並接上 mPaaS 平臺,讓 App 有自啓動小程序的能力。要接入 mPaaS,首先需在 Android Studio 裏安裝 mPaaS 插件,併到阿里雲的 mPaaS 後臺創建一個新建用。接着,在 Android Studio 裏通過插件介入 mPaaS 後下載設置文件及基線。再來,依照項目的需求,下載所需的 mPaaS 組件。完成這些設置後,在 Native 部份,僅需 App、Activity、Plugin 三個文件,就可以做出一個接上小程序的簡單應用。

小程序的部份,可以通過 mPaaS 的 IDE 撰寫 HTML、CSS、JS 完成小程序端的開發,上傳至 mPaaS 後臺後,就可在 App 裏啓動。不僅如此,mPaaS 的 SDK 還可以將 Native 端與小程序間打通,兩者可以交互傳遞信息,只要照着文檔示例操作,一個具備小程序能力的移動應用,就在不到 1 小時內完成!

聽完這場分享後,相信大家都能體驗小程序在開發及部署的好處、Kotlin 語法的簡潔及 mPaaS 服務的完整性。通過這樣的工作流,可幫助您實現“代碼僅需撰寫一次,便可多端投放”,從而深度提升研發效率。

Q&A

Q. 學習 Kotlin 可以完全不用懂 Java 嗎?或者瞭解下 Java 的一些基本知識就夠了?

溫盛章:Kotlin 在設計上有許多語法糖,像是 Extension 可以輕鬆的依據需要做擴展、Lambda 表達式可以構成 DSL 的能力、Coroutine 把線程封裝後更好使用,加上現在 Google 的 Android 團隊採用 Kotlin 做爲官方語言,所以我覺得可以先以 Kotlin 爲主去學習 Android 開發。不過,別忘了 Kotlin 最終還是編譯成 JVM 的字節碼,所以要搞清楚底層的話,一些基本功還是不能落下。

範聖佑補充:學習 Android 時,可以到 Google 的 Code Lab 上學習,非常適合初學者。

Q. 我的理解是 Kotlin 是負責數據的處理,而像獲取安卓手機信息這個功能只需要調用安卓的一些組件就能實現了是嗎?

溫盛章:這個東西需要隔離開來看,我們可以先把 Kotlin 理解成一個槌子,調用安卓組件我們可以簡單的理解成釘子。怎麼把釘子打到牆裏面,你可以用槌子、也可以用剪刀,只要能完成任務就行。但很明顯的,用剪刀把釘子打到牆裏估計要比槌子難,所以 Kotlin 在這裏就是扮演着槌子的角色。就我自己使用的經驗來說,Kotlin 在提升效率這方面帶來非常大的幫助。原本用 Java 得寫又臭又長的代碼,改用 Kotlin 後就變得非常的簡潔。

我這邊要特別強調一下 Kotlin 裏 Null Safety 的特性,以前在 Java 裏一個變量是否爲 Null 需要在邏輯層裏自行解決,但在 Kotlin 裏可以用問號,通過編譯器就可以預先做好對空值的處理。這部份的強化和提升是我非常喜歡的。

Q. 用 Kotlin 開發安卓,用 Andriod Studio 比較好還是用 IntelliJ IDEA 更方便些,有哪些好用的插件了可以推薦下?

範聖佑:Android Studio 和 IntelliJ IDEA 是使用相同的 IntelliJ Platform 打造出來的,所以在 UI、快捷鍵操作上其實都很雷同,許多插件也是可以互通的。若你只需要開發 Android 的話,用 Android Studio 其實就可以滿足你的需求;但若你不僅需要開發 Android,還需要開發像 Web、數據庫的工作,那會推薦使用 IntelliJ IDEA Ultimate 版才能滿足各方面的需求。

溫盛章:單純開發 Android 或 Android 與其他工程混在一起的項目,我會推薦用 Android Studio;但假如是純 Java 或 Kotlin 的項目,我就會推薦用 IntelliJ IDEA,而且非常推薦使用 Ultimate 版,因爲 Ultimate 版相比 Community 版提供了更多的功能,非常的好用。

兩位推薦的插件包括:

1)在演示過程中可以顯示快捷鍵提示的 Presentation Assistant 插件

2)讓 IntelliJ IDEA 可以有像 Vim 一樣操作模式的 IdeaVim 插件

3)本次演示的主角 mPaaS 插件(目前僅支持 Android Studio)

4)用 Annotation 讓 Java 有一些類似 Kotlin 特性的 Lombok 插件

Q. 有辦法可以 Android 模擬器調試嗎?

溫盛章:以開發 mPaaS 應用來說,因爲沒有提供 x86 及 x64 的 Native 支援,所以很遺憾的目前沒有辦法以 Android 模擬器調試,只真機調試。對於 Android 開發者來說,因爲 Google 及許多平臺的 SDK 對 x86 的支持也不是那麼的好,加上考慮自己的電腦是不是夠快,所以 Android 開發我還是強調建議真機調試。

Q. 請問手機投屏的軟件是?

溫盛章:付費版的 Vysor。

Q. 請問小程序怎麼不選擇 Flutter 作爲引擎?

溫盛章:小程序的好處是上層使用的語言(也就是使用 HTML、CSS、JS)及下層搭配用 Web View 顯示已經固定且穩定,所以 mPaaS 優先支持這樣的架構。而 Flutter 在下層使用的引擎不同,我們其實已經有在做嘗試,但現階段還不適合商業公開。等到技術上夠成熟後,會再公開 mPaaS 與 Flutter 的版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章