/kt-wanandroid

wanandroid demo

Primary LanguageKotlinMIT LicenseMIT

kt+mvi+jetpack版 玩android

基于单向数据流和唯一数据源的MVI架构

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

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

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

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

演示(UI参考JetpackMvvm

演示

  • data 数据层
  • di 依赖注入
  • domain 连接datapresentation
  • presentation 界面相关

项目简介

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

版本控制

v1.0.0

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

感谢

  1. JetpackMvvm
  2. Android-Clean-Architecture-MVVM-Hilt-RX
  3. wanandroid
  4. Android Architecture Components
  5. Android-skin-support
  6. retrofit
  7. coil-kt