kt+mvi+jetpack版 wanandroid

先上效果图

xgt.gif

已实现功能

v1.0.0

功能 完成状态
首页列表、顶部广告
用户输入文字搜索、热门搜索、历史记录
根据类别显示项目列表
广场、每日一问、体系、导航
公众号文章列表
文章详情
文章详情加入收藏、分享
我的、 我的收藏
换皮肤

架构

项目采用基于单向数据流和唯一数据源的MVI架构

  • 以数据库数据作为唯一数据源
  • 以用户intent作为数据流起点进行单向流动
    • 用户操作以Intent的形式通知Model
    • Model基于Intent更新UiState
    • View接收到UiState变化刷新UI

遵循Android Architecture Components

  • 界面层(UI Layer)

    • APP内实现:视图(Activity/Fragment等) + 数据驱动及处理逻辑的状态容器(ViewModel等)
  • 网域层(Domain Layer) 可选项,用于处理复杂逻辑或支持可重用性吗,当你需要从不同数据源获取数据时如需要同时从数据库和接口请求数据时,推荐使用UseCase进行组合。

    • App内实现:组合或复用数据源(UseCase)
  • 数据层(Data Layer)

    • App内实现:数据源(Repository)

简介

  • 网络层采用Retrofit + 协程的方式获取来自网络的数据
  • 图片加载采用coil框架,其使用简便且轻量。加载图片只需调用其拓展函数imageView.load("https://www.example.com/image.jpg")
  • 用户数据缓存采用腾讯的MMKV
  • 界面采用jetpack navigation 的单activity + 多fragment
  • 列表数据加载采用jetpack paging3
  • ...

源码地址

kt-wanandroid

你可能感兴趣的:(kt+mvi+jetpack版 wanandroid)