/PlayAndroid

:v::fist::wave:玩安卓Mvvm组件化客户端,整合Jetpack组件DataBinding、ViewModel以及LiveData;屏幕适配:heavy_check_mark:状态栏沉浸式:heavy_check_mark:黑夜模式:heavy_check_mark:,无数据、加载失败状态页;骨架屏、Koin依赖注入等

Primary LanguageKotlinApache License 2.0Apache-2.0

Platform GitHub license

✌️✊👋MvvmComponents

项目截图

下载体验请移步: 玩安卓

项目介绍

  • 基于Mvvm模式集成谷歌官方推荐的JetPack组件库LiveData+ViewModel+DataBinding,以ARouter为组件路由实现的玩Android开放API安卓客户端
  • 数据源于玩Android 开放API,集成了登录注册、收藏、分享、搜索、浏览热门博客和项目、添加Todo待办功能等,涵盖了几乎所有玩Android开放接口
  • 项目结合okhttp+Retrofit+RxJava2+Gson组合实现网络请求、Glide图像加载、Koin实现依赖注入、阿里ARouter实现组件路由通信跳转、腾讯MMKV替代Sharedpreferences实现高性能本地缓存、基于LiveData的消息总线LiveEventbus事件分发等等
  • 以一个通用库模块+多业务组件的Mvvm组件化方案,编译、调试、多人开发更方便更快捷

项目架构

Google官方推荐架构图

遵循如上Google Mvvm官方推荐架构,UI与数据分离,以ViewModel为中介进行通信,实现数据驱动UI。通过Koin依赖注入本地数据+远程数据=数据仓库,外部只需一行代码调用,隐藏具体实现,规避数据滥用、后期维护难等问题

采用单一容器ContainerActivity+多Fragment配合Fragmentation库、阿里ARouter通信跳转实现单activity多fragment组件化架构

  • lib_base:通用功能组件,支撑业务组件基础,提供其他业务组件实现能力
  • module_login:业务组件,注册登录模块,以及启动页
  • module_main:业务组件,app内Tab首页模块
  • module_project:业务组件,app内Tab项目模块
  • module_search:功能组件,提供搜索功能
  • module_square:业务组件,app内Tab广场模块
  • module_user:业务组件,用户管理以及系统设置模块
  • module_web:功能组件,提供H5功能

快速上手

Mvvm组件化脚手架

未来版本

  • 网络框架使用Retrofit+Kotlin Coroutines更轻便更简洁
  • 依赖注入使用谷歌专为Android打造的Dagger Hilt实现

感谢

License

   Copyright 2021 cdalwyn(陈志龙)

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.