作者:宋立心 (Tiem Song), Android 軟件工程師
△ 插圖作者:Virginia Poltrack
在 Google I/O 2018 開發者大會上,我們推出了 Android Jetpack,其中包含的 Android 開發架構組件能夠幫助您簡化開發流程,從而輕松打造出優質應用。開發者能夠利用 Jetpack 組件學習最佳實踐,減少樣板代碼,簡化復雜任務,進而將精力集中在關鍵代碼上。
為了幫助開發者把 Jetpack 組件集成到自己的應用中,我們開發出一款名為 Sunflower (太陽花) 的圓藝應用,讓您能夠在模擬養花的過程中學習最佳 Android 開發實踐,了解別的開發者是如何利用 Android Jetpack 優化開發流程的。如果您是第一次接觸 Jetpack,您可以先訪問官方網站了解 Jetpack 基本知識,在動手開發出第一個基於 Jetpack 的簡單應用之后,再進行下一步。
本文是 Sunflower 系列文章的第一篇,希望大家在閱讀本文后能夠對應用有個初步的了解,並且對應用中涉及的 Jetpack 組件有一定認識。該系列的其它文章會陸續與各位開發者見面,如果您對 Jetpack 和 Android 開發感興趣,或者想要進一步探索 Jetpack 導航組件,了解如何利用 WorkManager 調度循環任務,請持續關注 Sunflower 系列文章。
>> Android Jetpack
https://developer.android.google.cn/jetpack/
>>?Sunflower (太陽花)
https://github.com/googlesamples/android-sunflower
>>?Jetpack 基本知識
https://developer.android.google.cn/jetpack/
>>?開發出第一個基於 Jetpack 的簡單應用
https://developer.android.google.cn/jetpack/docs/getting-started
游園指南
應用首次開啟時會在屏幕上顯示 “我的花園” 界面;當然此時的花園內尚未種植任何植物。
△?未種植任何植物的 “我的花園”
接下來,我們就動手種株植物吧!在您輕觸左上角抽屜菜單鍵,打開側邊欄后,界面內會顯示植物列表。
△?植物目錄
每種植物都有對應的生長區。而生長區是按照地理緯度划分的,它代表最適合該植物生長的地區。如果想要對植物列表進行篩選,您只需要在菜單欄中直接選定某一生長區即可。
選定植物后,界面便會轉入 “植物詳情” 頁面。
△?植物介紹
在植物詳情詳情頁面中,您可以看到該植物的名稱、描述、澆水方法以及照片。您可以點擊界面內的懸浮操作按鈕,將植物添加到自己的花園;也可以在菜單欄點擊 “分享” 選項,將植物信息分享給好友。
在添加一株或多株植物后,您就可以在 “我的花園” 界面中看到已種植成功的植物,同時植物圖片的下方還會還顯示該植物的種植日期以及下次澆水時間。接下來,讓我們跳轉回 “我的花園” 看看都種了哪些植物吧。
>>?懸浮操作按鈕
https://developer.android.google.cn/guide/topics/ui/floating-action-button
>> “分享”
http://developer.android.google.cn/training/sharing/
△?種植后的 “我的花園”
此時,“我的花園” 界面內,我們已經可以看到成功添加的植物、它們的種植日期以及上次澆水的時間。
使用 Jetpack 組件
Sunflower 使用了 Jetpack 中的許多組件,以下為各個組件在應用中所扮演的角色:
>> Kotlin
https://developer.android.google.cn/kotlin
>> Android KTX
https://developer.android.google.cn/kotlin/ktx
>>?Fragment
https://developer.android.google.cn/guide/components/fragments
>>?Navigation component
https://developer.android.google.cn/topic/libraries/architecture/navigation/
>>?transition animation actions
https://developer.android.google.cn/topic/libraries/architecture/navigation/navigation-implementing#Create-transition
>>?ConstraintLayout?
https://developer.android.google.cn/training/constraint-layout/
>>?Data Binding
https://developer.android.google.cn/topic/libraries/data-binding/
>>?Room
https://developer.android.google.cn/topic/libraries/architecture/room
>>?ViewModels
https://developer.android.google.cn/topic/libraries/architecture/viewmodel
>>?LiveData
https://developer.android.google.cn/topic/libraries/architecture/livedata
>>?AppCompat
https://developer.android.google.cn/topic/libraries/support-library/packages#v7-appcompat
>>?WorkManager?
https://developer.android.google.cn/topic/libraries/architecture/workmanager
>>?Espresso
https://developer.android.google.cn/training/testing/espresso/
下一步改進
Sunflower 目前尚處於密集開發階段,我們僅在 Alpha 渠道發布了該應用,並且計划在應用內定期添加新功能和深度組件集成。近期發布的改進項包括:(1) 允許用戶根據自己的地理位置篩選植物;(2) 升級至 AndroidX;(3) 支持通知推送,提醒用戶給植物澆水。
如果您希望在應用中增加新功能,或者有想和大家一同探討的話題,請在 GitHub 上創建新話題或給已有話題投票。
在今后的文章中,我們會進一步探討 Sunflower 中的其它 Jetpack 組件,如導航和重復任務,盡情期待。謝謝您對 Sunflower 的關注!
>>?AndroidX
https://developer.android.google.cn/topic/libraries/support-library/androidx-overview
△?Google 花園中的向日葵
進一步探索
前往 https://github.com/googlesamples/android-sunflower,留學簽證查看或下載 Sunflower 代碼。
獲取更多 Jetpack 相關信息,了解如何構建您的第一個 Jetpack 應用。
>> Jetpack
https://developer.android.google.cn/jetpack/
>>?構建您的第一個 Jetpack 應用
https://developer.android.google.cn/jetpack/docs/getting-started
?點擊屏末?|?閱讀原文?|?"我們願意更好地傾聽您的聲音 "
推薦閱讀
·?Android Jetpack: ViewModel | 中文教學視頻
·?Android 9 的非 SDK 接口限制 | 中文教學視頻
·?幫您系統地認識全球化設計 (上篇) | 認知度
文章來源:https://blog.csdn.net/jILRvRTrc/article/details/82141670