App 健康出行

注意

项目源自《Android Jetpack开发 原理解析与应用实战》第十一章 打造一个 MVVM 架构的健康出行 App


效果图


项目需求设计与可行性分析

App 主要功能:

  • 查询城市数据:是项目各功能的基础,为了便于选择数据,将会在选择城市数据页面增加字母列表索引功能。(查询城市数据模块作为所有功能的基础服务在主页面是没有入口的。当选择城市数据时,跳转到选择城市功能页面即可)
  • 查询城市核酸检测机构:查询特定城市的核酸检测机构信息,其中主要包含机构名称、联系电话、详细地址等。
  • 查询疫情风险等级地区:中、高风险地区的数量与详细信息。
  • 查询健康出行政策:两个城市之间的出行政策。

数据接口使用聚合数据提供的免费在线 API(30次/天)

从 Android 9.0 系统开始,HTTP 类型的网络请求需要做些处理。


组件化结构的设计与搭建

项目采用组件化结构不仅有利于开发和维护,而且有利于提高编译效率和对模块的单独测试。这里会将每个模块都拆分为单独的模块,但所有的业务模块都依赖于 appbase 模块。

  • app 模块作为项目入口
  • appbase 模块:包含网络请求、基础 Activity 等一些封装的工具类
  • module_city 模块:查询城市数据
  • module_risk_level 模块:查询风险等级
  • module_test_agency 模块:查询核酸检测机构
  • module_travel_policy 模块:查询健康出行政策

组件化结构搭建主要解决三个问题:

  • 各模块的库如何统一管理(buildSrc)
  • 模块间如何通信(ARouter)
  • 模块如何单独运行(切换 library 和 application)

依赖组件

  • Hilt
  • Retrofit
  • Flow
  • DataBinding
  • LiveData
  • ViewModel
  • Coil
  • ARouter
  • ……

基本流程

databean 文件 -> Api 接口文件 -> Respository 仓库层(获取数据)-> ViewModel -> 实现UI层(Activity)


备注

参考资料

MVVM开源项目——出行防疫App

应用下载链接地址

源码地址GitHub

欢迎关注微信公众号非也缘也