Android Sunflower 帶您玩轉 Jetpack

做者:宋立心 (Tiem Song), Android 軟件工程師android

本文爲谷歌開發者原創文章,未經容許,謝絕轉載 原文連接:mp.weixin.qq.com/s/k-zQVB5Eh…git

△ 插圖做者:Virginia Poltrack

在 Google I/O 2018 開發者大會上,咱們推出了 Android Jetpack,其中包含的 Android 開發架構組件可以幫助您簡化開發流程,從而輕鬆打造出優質應用。開發者可以利用 Jetpack 組件學習最佳實踐,減小樣板代碼,簡化複雜任務,進而將精力集中在關鍵代碼上。github

爲了幫助開發者把 Jetpack 組件集成到本身的應用中,咱們開發出一款名爲 Sunflower (太陽花) 的圓藝應用,讓您可以在模擬養花的過程當中學習最佳 Android 開發實踐,瞭解別的開發者是如何利用 Android Jetpack 優化開發流程的。若是您是第一次接觸 Jetpack,您能夠先訪問官方網站了解 Jetpack 基本知識,在動手開發出第一個基於 Jetpack 的簡單應用以後,再進行下一步。數據庫

本文是 Sunflower 系列文章的第一篇,但願你們在閱讀本文後可以對應用有個初步的瞭解,而且對應用中涉及的 Jetpack 組件有必定認識。該系列的其它文章會陸續與各位開發者見面,若是您對 Jetpack 和 Android 開發感興趣,或者想要進一步探索 Jetpack 導航組件,瞭解如何利用 WorkManager 調度循環任務,請持續關注 Sunflower 系列文章。微信

Android Jetpack developer.android.google.cn/jetpack/markdown

Sunflower (太陽花) github.com/googlesampl…架構

Jetpack 基本知識 developer.android.google.cn/jetpack/app

開發出第一個基於 Jetpack 的簡單應用 developer.android.google.cn/jetpack/doc…ide

遊園指南

應用首次開啓時會在屏幕上顯示 「個人花園」 界面;固然此時的花園內還沒有種植任何植物。oop

△ 未種植任何植物的 「個人花園」

接下來,咱們就動手種株植物吧!在您輕觸左上角抽屜菜單鍵,打開側邊欄後,界面內會顯示植物列表。

△ 植物目錄

每種植物都有對應的生長區。而生長區是按照地理緯度劃分的,它表明最適合該植物生長的地區。若是想要對植物列表進行篩選,您只須要在菜單欄中直接選定某一輩子長區便可。

選定植物後,界面便會轉入 「植物詳情」 頁面。

△ 植物介紹

在植物詳情詳情頁面中,您能夠看到該植物的名稱、描述、澆水方法以及照片。您能夠點擊界面內的懸浮操做按鈕,將植物添加到本身的花園;也能夠在菜單欄點擊 「分享」 選項,將植物信息分享給好友。

在添加一株或多株植物後,您就能夠在 「個人花園」 界面中看到已種植成功的植物,同時植物圖片的下方還會還顯示該植物的種植日期以及下次澆水時間。接下來,讓咱們跳轉回 「個人花園」 看看都種了哪些植物吧。

懸浮操做按鈕 developer.android.google.cn/guide/topic…

「分享」 developer.android.google.cn/training/sh…

△ 種植後的 「個人花園」

此時,「個人花園」 界面內,咱們已經能夠看到成功添加的植物、它們的種植日期以及上次澆水的時間。

使用 Jetpack 組件

Sunflower 使用了 Jetpack 中的許多組件,如下爲各個組件在應用中所扮演的角色: Sunflower 徹底採用 Kotlin 語言,而且使用了 Android KTX 完成所有代碼的編寫。Android KTX 是一組 Kotlin 擴展庫,它爲 Kotlin 優化了 Jetpack 和 Android 平臺 API,從而讓 Kotlin 的源代碼更加簡潔和天然。 本應用採用 「單 Activity 多 Fragment」 的開發模式,而且利用導航組件 (Navigation component) 以及過渡動畫 (transition animation actions) 實現 fragment 之間的切換。 應用經過 ConstraintLayout 和 Data Binding 在界面上建立基於 fragment 的佈局。 Room 提供數據庫級別的本地數據管理服務,負責將植物列表信息和 「個人花園」 條目儲存在設備上;而 ViewModels 則是經過 LiveData 將上述本地信息呈現至 UI 界面。 AppCompat 保證了應用的核心功能能夠在舊版本的 Android 系統上順利運行。 WorkManager 負責管理後臺任務。 用戶能夠分享植物詳情至設備上的其它應用,也能夠將其複製到 「剪貼板」 裏。 應用檢測 (方面) 使用了本地 JUnit 單元測試和 Espresso Android UI 測試。

Kotlin developer.android.google.cn/kotlin

Android KTX developer.android.google.cn/kotlin/ktx

Fragment developer.android.google.cn/guide/compo…

Navigation component developer.android.google.cn/topic/libra…

transition animation actions developer.android.google.cn/topic/libra…

ConstraintLayout developer.android.google.cn/training/co…

Data Binding developer.android.google.cn/topic/libra…

Room developer.android.google.cn/topic/libra…

ViewModels developer.android.google.cn/topic/libra…

LiveData developer.android.google.cn/topic/libra…

AppCompat developer.android.google.cn/topic/libra…

WorkManager developer.android.google.cn/topic/libra…

Espresso developer.android.google.cn/training/te…

下一步改進

Sunflower 目前尚處於密集開發階段,咱們僅在 Alpha 渠道發佈了該應用,而且計劃在應用內按期添加新功能和深度組件集成。近期發佈的改進項包括:(1) 容許用戶根據本身的地理位置篩選植物;(2) 升級至 AndroidX;(3) 支持通知推送,提醒用戶給植物澆水。

若是您但願在應用中增長新功能,或者有想和你們一同探討的話題,請在 GitHub 上建立新話題或給已有話題投票。

在從此的文章中,咱們會進一步探討 Sunflower 中的其它 Jetpack 組件,如導航和重複任務,盡情期待。謝謝您對 Sunflower 的關注!

AndroidX developer.android.google.cn/topic/libra…

△ Google 花園中的向日葵

進一步探索

前往 github.com/googlesampl… Sunflower 代碼。

獲取更多 Jetpack 相關信息,瞭解如何構建您的第一個 Jetpack 應用。

Jetpack developer.android.google.cn/jetpack/

構建您的第一個 Jetpack 應用 developer.android.google.cn/jetpack/doc…

歡迎關注 Google 官方微信公衆號『谷歌開發者』!

相關文章
相關標籤/搜索