JetPack-sunflower
2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。
sunflower with java,A gardening app illustrating Android development best practices with Android Jetpack.
sunflower的java版本:园艺应用程序,说明了使用Android Jetpack进行Android开发的最佳做法。
源码地址 https://github.com/huangyuanlove/sunflower_java 本项目完全来自于kotlin版本的代码翻译
kotlin版本 https://github.com/android/sunflower
简介
- 主页分为两个tab,默认tab展示已经栽种的植物,另外一个tab展示所有可栽种植物;
- 点击每个植物进入到植物详情
- 单Activity
- ViewModel从数据库中读取数据,返回LiveData对象,并将对象绑定到视图中
- 展示了创建数据库、数据对象以及ViewModel、Repository过程
JetPack组件
- lifecycle
- navigation
- room
- work
- liveData
- databinding
框架搭建
- 主页:MainActivity -> HomeViewPagerFragment
- 我的花园:GardenFragment
- 植物目录:PlantListFragment
- 植物详情:PlantDetailFragment
- 数据来源:assets中的plants.json
结构简介
- adapter:包含DatabindingAdapter,ListViewAdapter
- data:数据库、实体类、DAO
- utilities:常量字段
- viewmodels:各个视图所需的ViewModel
- widget:自定义控件
- workers:初始化数据库
- *Fragment:视图UI
流程简介
- AppDatabase单例模式,在GardenFragment中会进行初始化,这时会将plants.json写入数据库;
- 在PlantListFragment中,读取数据库中植物信息并展示在页面上;点击右上角按钮,会筛选植物
- 点击植物进入详情
- 在详情页点击加号添加植物,则会出现在GardenFragment中,同时加号隐藏
以上
JetPack-sunflower
https://blog.huangyuanlove.com/2020/03/12/JetPack-sunflower/