iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0

經過 30 天的每日耕讀,筆者從開發環境建置、常用及 Desktop 特有的元件,到 Compose 的幾個重要觀念,包括 Modifier、State,還有佈景主題、事件處理、整合 Multiplatform Library、打包及 CI/CD 發佈…等,完成了初步的研究,算是淺嘗了 Desktop 開發。

不過 Desktop 開發的知識深如海,只用 30 天實在難以全面涵蓋,因此筆者整理一下還可以繼續深入的主題供讀者們參考:

Compose for Desktop 進階主題遺珠

在快速綜覽 Compose for Desktop 的各種主題後,這邊列出筆者覺得很重要,但礙於參賽天數及篇幅,而無法深入討論的主題遺珠,希望未來還有再深入介紹的內容:

  • 進階 UI 元件 :Compose 元件遠多於筆者介紹的這些,不論是通用元件或 Desktop 特有的元件,尤其是以 Lazy 開頭的 ListGrid 元件都跟顯示效能有關。讀者在了解常用元件後,可以再深入研究這些進階元件。
  • 頁面導航 :由於 Desktop 環境的 Lifecycle 跟 Mobile 明顯不同,因此 Compose for Desktop 並沒有 Navigation、Activity、Fragment 等架構。若需要做到頁面導航與換頁,可以考慮導入 Decompose 框架,有興趣的讀者可以深入研究一下。
  • 動畫 :Compose 另一個吸引人之處是豐富的動畫效果,一個有動畫的 UI,往往可以讓 UI 更吸引人、互動體驗也更好。有興趣的讀者可以從 Jetpack Compose 官方的 Animation 文件開始看起。
  • 測試 :要確保軟體品質,撰寫測試尤其重要。以開發 UI 來說,Jetpack Compose 也有提供對應的 UI Testing 工具。可惜的是,目前 Compose for Desktop 在這部份仍在開發中,團隊預計會在接下來的幾個版本,將目前還未文件化的 API 陸續公佈,讀者可持續關注後續發展。
  • 與 Swing 框架的整合 :原本已經使用 Swing 撰寫的 UI,也可以跟 Compose for Desktop 一起使用,或是也能用 Swing 框架裡的功能來補足 Compose for Desktop 現階段不足的部份,有興趣的讀者可以參考 Compose for Desktop 的這份 Swing 整合文件

Compose for Desktop 學習資源

Compose for Desktop 雖然還在早期發展階段,但由於 Jetpack Compose 已打下良好的基礎,加上 JVM 強大且穩定的生態系,搭配 Kotlin 官方的強力支援,要做出功能完整的 Desktop App 已不是問題。若讀者想踏入 Desktop 開發的領域,筆者在這邊統整一下進階學習可參考的學習資源:

  • Jetpack Compose 官方文件 :還記得一開始筆者準備要學 Compose for Desktop 時,詢問了幾位同事的建議,結果所有同事都說,先從 Jetpack Compose 開始吧!由此可見 Jetpack Compose 的官方文件是最好的啟始點,也是需要熟稔的讀物。
  • Compose for Desktop 官方教學 :Compose for Desktop 團隊在 Repository 裡放了一個 tutorials 的資料夾,裡面針對 Compose 在 Desktop 環境裡才有的特性做了一系列的講解與示範。筆者的耕讀筆記的參考資料也多來自這裡,在看完 Jetpack Compose 的官方文件後,第二個需要熟讀的就是這份教學了。
  • Compose 元件範例集 :在學習 Compose 元件時,一開始往往會迷失在眾多元件裡,這時就很需要多看別人寫的元件範例集,有點像是字典那樣,直接看程式碼對應出來的畫面,省下自己摸索的時間。喜歡看英文的讀者可以看 Jetpack Compose Playground 、習慣看中文的讀者可以看 Jetpack Compose 博物馆
  • UI 範例集 :了解各別元件後,多看別人寫出來的 UI 範例,也能打開自己對 UI 設計的想像。在這邊推薦兩個 Repository,一個是 Android 官方釋出的 Compose Sample ,裡面的 App 全部是用 Jetpack Compose 寫出來的 UI,可以看到真實情境的使用方式。另外一個是 ComposeCookBook 裡面除了有各種 UI 範例外,還復刻了 Spotify、Instagram、Twitter、Gmail、Youtube 的 UI,根本就是 Compose 的火力展示集。

推薦觀看的影片

除了文字型資料外,筆者也推薦幾個在耕讀過程中很有幫助的影片素材供讀者參考:

  • Compose Multiplatform Alpha: The Story :這部影片是由 JetBrains 官方錄製的,由 Kotlin 傳教士 Sebastian Aigner 主持,邀請了 Android Jetpack Compose 團隊及 JetBrains Compose Multiplatform 團隊,就 Compose 如何從 Android 發起到支援多平台,過程中兩方人馬合作的故事做了訪談,對發展 Compose 背景故事有興趣的讀者可以當成補充資料。
  • What about a desktop app? :這部影片是 JetBrains Package Search Team Lead,同時也是 Android GDE 的 Sebastian Poggi 在 Droidcon London 2021 發表的講題,從一位 Android 開發者的觀點,談論 Compose 在 Mobile 與 Desktop 開發的異同,裡面的整理非常精采,對有 Android 開發經驗的開發者跨入 Desktop 開發有很大的幫助,筆者強烈建議一定要把這部錄影看完。

社群夥伴們的鐵人作品

今年照慣例一樣與社群夥伴們一起組團參與鐵人賽,我們 攀岩抱石玩滑板還比賽的 Kotlin 鐵人們 團隊裡不少夥伴也很有默契的選了 Compose 相關的主題,在這邊當然要力挺夥伴們,將他們優秀的作品整理給讀者們參考:

非常感謝與我一起參賽的社群夥伴們,雖然我都是 23:50 以後才交卷、搞得大家很緊張的那位,但有彼此的支持也讓每天的趕稿生活不孤獨。謝謝大家的鼓勵與扶持,您們最棒啦!

看完這系列的耕讀筆記後,若您對 Kotlin 或 Compose 有興趣,歡迎到 Kotlin Tips 登記參加我們的線上讀書會及練功場,平常每月也會有 Kotlin Meetup 活動,歡迎大家參加!筆者今年也將鐵人賽的得獎作品整理成 《Kotlin Collection 全方位解析攻略》 ,這是一本專門講述 Kotlin Collection 的專書,看完後相信您會對 Collection 有更全面的了解,歡迎多多支持,也謝謝大家收看這系列的文章,我們有緣在下一個主題相見啦!


上一篇
第 29 天:Compose 多平台差異
系列文
傳教士的 Compose for Desktop 耕讀筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言