All Projects → YummyLau → Androidmodulararchiteture

YummyLau / Androidmodulararchiteture

Licence: mit
✔️ Android组件化架构,支持组件代码完全隔离/组件循环依赖/便捷集成调试/快速接入,组件内基于 mvvm结构,组件提供高度服用的模块可直接使用,采用 wanAndroid api进行迭代开发。Android componentized architecture, support component code complete isolation / component circular dependency / convenient integrated debugging / fast access, component based mvvm structure, iterative development using wanAndroid api

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Androidmodulararchiteture

Popularmovies
🎥 Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.
Stars: ✭ 142 (-1.39%)
Mutual labels:  mvvm, architecture-components
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-61.81%)
Mutual labels:  mvvm, architecture-components
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-87.5%)
Mutual labels:  mvvm, architecture-components
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+184.72%)
Mutual labels:  mvvm, architecture-components
Presently
Android app for recording gratitude journal entries
Stars: ✭ 109 (-24.31%)
Mutual labels:  mvvm, architecture-components
Posts
A sample Android app using Kotlin, Dagger 2, RxJava, RxAndroid, Retrofit and Android Architecture Components with a modular setup & effective networking
Stars: ✭ 599 (+315.97%)
Mutual labels:  modular, architecture-components
Blockchain Tracker
A blockchain market tracking app. Example implementation of reactive clean architecture and testing.
Stars: ✭ 30 (-79.17%)
Mutual labels:  mvvm, architecture-components
paybill-manager
Your personal finance manager
Stars: ✭ 46 (-68.06%)
Mutual labels:  mvvm, architecture-components
Moviedb
A gorgeous TMDb client for Android
Stars: ✭ 103 (-28.47%)
Mutual labels:  mvvm, architecture-components
Alfonz
Mr. Alfonz is here to help you build your Android app, make the development process easier and avoid boilerplate code.
Stars: ✭ 90 (-37.5%)
Mutual labels:  mvvm, architecture-components
Clean Mvvm Archcomponents
👽 Android app consuming Star Wars API.Built with clean architecture ,MVVM pattern, Koin , Coroutines + Flows ,Architecture Components, Data Binding , Firebase , Unit/UI Tests ,Motion Layout
Stars: ✭ 285 (+97.92%)
Mutual labels:  mvvm, architecture-components
Modular App Core
Core implementations for a modular Android App
Stars: ✭ 127 (-11.81%)
Mutual labels:  mvvm, architecture-components
Kotlin Android Mvvm Starter
Android Kotlin Starter is a starter project which implements MVVM Pattern.
Stars: ✭ 276 (+91.67%)
Mutual labels:  mvvm, architecture-components
Reactive Mvvm Android
My way to MVVM using KotlinX Coroutines and Android data-binding
Stars: ✭ 626 (+334.72%)
Mutual labels:  mvvm, architecture-components
Daggerandroidmvvm
Demonstrates using Dagger 2.11+ in MVVM app with Android Architecture Components, Clean Architecture, RxJava
Stars: ✭ 255 (+77.08%)
Mutual labels:  mvvm, architecture-components
Kodein Mvvm
Example app using Kodein for dependency injection with MVVM and Architecture Components
Stars: ✭ 26 (-81.94%)
Mutual labels:  mvvm, architecture-components
Starwars
A sample modular Android app written in Kotlin using Rx, Koin, Coroutines, Dagger 2 and Architecture components
Stars: ✭ 41 (-71.53%)
Mutual labels:  modular, architecture-components
Paging-3-Sample
This app is created as a sample app which loads movies from Tmdb api and uses Paging 3 library to show it in a Recycler view.
Stars: ✭ 96 (-33.33%)
Mutual labels:  mvvm, architecture-components
Price Tracker
Price Tracking Application - An experimental Kotlin Android project with complex android app requirements.
Stars: ✭ 80 (-44.44%)
Mutual labels:  mvvm, architecture-components
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (-14.58%)
Mutual labels:  mvvm, architecture-components

该Sample主要是总结当前自己项目上的经验及学习Google Architecture Components方案进行项目尝试。
目前已有部分线上App校验过该Sample的运行逻辑,完全可行,适合App快速开发,并结合自身的库及用户需求自定扩展。
由于Android项目架构多样化,技术迭代更新很快,该项目会持续集成优化主流技术,并在线上App校验可行的情况下更新项目。希望有经验的开发者能指出不足,一起学习 ☺️ ☺️

Android 组件化架构实践

架构原则:内部的业务逻辑与外部无关,独立测试时不需要加载外部依赖
架构特性:易于维护,方便测试,高内聚,低耦合
工程结构:模块化开发
应用结构:组件化
协同工具:git相关
持续集成:jenkins + ci

wanAndroid 效果展示,两种皮肤

目前功能逐步完善,要做成一个可以发布的产品的。

工程结构

component_all

按照业务把工程划分以下几类模块

  • library层

    基础类库,存放精简的代码,高复用性,一般其他模块直接引用即可,比如Utils,BaseActivity 等

  • service层

    支持某类基础业务功能的独立模块,比如登陆服务,换肤服务.介于 library 层和 component 层中间,也可以直接被 app 层调用

  • component层

    聚合多中基础业务功能的复杂业务模块,比如朋友圈,附近的人,一般可能使用多个 service 服务,也可以直接使用 library

  • app层 应用入口,聚合多个业务模块,比如主端或者调试程序

应用结构

基于完全组件化开发, 协同 gradle plugin 插件进行工程约束辅助. 组件化插件

  • 支持组件代码完全隔离,废除 router 硬编码跳转,采用面向接口编程
  • 支持组件循环依赖(A组件依赖B组件sdk,B组件依赖A组件sdk)
  • 便捷集成调试,支持单一模块调试多组件
  • 接入成本极低,只需要导入配置,同时申明各组件sdk资源

把常规 module 转化成 组件 component_all

打破常规 module 依赖,支持组件循环依赖 component_all

开发时面向接口编程,打包时面向实现编译 component_all

插件同时支持java/kotlin,插件 sample 如下

Demo集成(持续完成更新...)

  • library层
libBase:基础公有类/工具库
libWebview:H5能力库
libPermission:权限管理库
libGeo:基于百度地图sdk封装的地理定位库
libNet:基于okhttp3+retrofit2封装的网络库
  • service层
serviceAccount:应用账号模块
serviceNet:应用网络模块,涉及接口解析,host配置,线程池管理等
serviceShare:分享模块
serviceSkin:换肤模块
serviceMedia:多媒体模块,包括图片展示,Gif播放管理,视频播放管理等
  • component层
compTabMine:wanAndroid 我的
compTabRecommandation:推荐
compTabHome:wanAndroid 首页
其中Home包含:
compSquare:wanAndroid 广场
compProject:wanAndroid 项目
compPaccounts:wanAndroid 公众号
compSystem:wanAndroid 体系
  • app层
app: 主端 wanAndroid 客户端
debugModule: 集成调试应用

wanAndroid sample 如下

Android 技术栈(实现)

技能栈

  • 硬性要求(至少)

    • 熟悉掌握java/kotlin
    • 熟悉掌握四大组件/线程/进程通讯源码逻辑清晰
    • 熟悉掌握View自定义/绘制/扩展
    • 熟悉掌握ASM,WindowManager窗口管理,app启动流程/系统启动流程熟悉掌握
    • 熟悉性能优化,字节码相关/插件相关/热修复相关
    • 熟悉 git 版本管理及应对各种特殊场景
    • 熟悉 linux/unix 环境,熟悉主流开源框架,有阅读源码经历
  • 掌握(最好)

    • 了解前段技术,js/h5等
    • 了解跨段技术,flutter等
    • 了解ios部分技术,与android常用实现区别
    • 了解产品开发流程:需求评估-技术评估-迭代开发-提测修复-回归验收-线上监控-反馈修复
    • 了解团队协同开发:人力评估/人员能力栈/积极性培养/新技术预研

项目开发

  • 熟悉组件化架构开发
  • 熟悉混淆配置/多渠道打包流程/插件原理
  • 熟悉调试手段/无线调试/模拟ip等
  • 熟悉IDE使用
    • 内存/cpu/网络调试,卡顿检测
    • Gradle使用及基本依赖管理
    • 自定义配置,比如task定义,before run行为等
  • 熟悉Android官方库,androidx标准使用
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].