All Projects → UCodeUStory → Relax

UCodeUStory / Relax

Licence: mit
☘☘Relax 基于Kotlin语言编写的一套组件化框架,不紧整体组件化、内部也高度组件化🎋你可配置MVP、MVVM的开发模式、也可以配置所需要的业务组件🍁🍁

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Relax

AndroidGo
Android、Flutter 开发者帮助 APP。包含事件分发、性能分析、Google Jetpack组件、OkHttp、RxJava、Retrofit、Volley、Canvas绘制以及优秀博文代码案例等内容,帮助开发者快速上手!
Stars: ✭ 30 (-88.14%)
Mutual labels:  rxjava, retrofit, mvvm, lifecycle, livedata
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+91.7%)
Mutual labels:  rxjava, mvvm, mvp, retrofit
Aachulk
️🔥️🔥️🔥AACHulk是以Google的ViewModel+DataBinding+LiveData+Lifecycles框架为基础, 结合Okhttp+Retrofit+BaseRecyclerViewAdapterHelper+SmartRefreshLayout+ARouter打造的一款快速MVVM开发框架
Stars: ✭ 109 (-56.92%)
Mutual labels:  lifecycle, mvvm, retrofit, livedata
Android Jetpack Demo
🔥 快速入门Android Jetpack以及相关Kotlin、RxJava、MVVM等主流技术,独立构架App的基础技能
Stars: ✭ 335 (+32.41%)
Mutual labels:  rxjava, lifecycle, mvvm, livedata
Mvvmhabit
goldze: 本人喜欢尝试新的技术,以后发现有好用的东西,我将会在企业项目中实战,没有问题了就会把它引入到MVVMHabit中,一直维护着这套框架,谢谢各位朋友的支持。如果觉得这套框架不错的话,麻烦点个 star,你的支持则是我前进的动力!
Stars: ✭ 6,789 (+2583.4%)
Mutual labels:  rxjava, lifecycle, mvvm, retrofit
Mvvmhabitcomponent
👕基于MVVMHabit框架,结合阿里ARouter打造的一套Android MVVM组件化开发方案
Stars: ✭ 857 (+238.74%)
Mutual labels:  rxjava, lifecycle, mvvm, retrofit
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-78.26%)
Mutual labels:  lifecycle, mvvm, retrofit, livedata
Jetpackmvvm
🐔🏀一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
Stars: ✭ 1,100 (+334.78%)
Mutual labels:  lifecycle, mvvm, retrofit, livedata
Mentorship Android
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the Android application of this project.
Stars: ✭ 117 (-53.75%)
Mutual labels:  rxjava, mvvm, retrofit, livedata
Wandroid
首款适配玩Android、掘金、简书、CSDN、公众号文章黑夜模式,无广告,支持离线阅读,代码图片显示,关注内容本身,阅读体验升级。
Stars: ✭ 199 (-21.34%)
Mutual labels:  mvvm, retrofit, livedata
Beaver
Android MVVM + Dagger 2 (Hilt) + JetPack project template
Stars: ✭ 144 (-43.08%)
Mutual labels:  rxjava, mvvm, retrofit
Jetpack Mvvm Scaffold
人生苦短,让脚手架为你节省时间。(目前作为《最佳实践》项目的 Dev 版来优先更新)
Stars: ✭ 239 (-5.53%)
Mutual labels:  lifecycle, mvvm, livedata
Wanandroid
玩安卓java客户端http://www.wanandroid.com/ 模块化客户端,运用MVP+Retrofit+Rxjava+Rxlifecycle+Glide+Eventbus+ARouter等架构,构建一个最简洁的玩安卓app。
Stars: ✭ 199 (-21.34%)
Mutual labels:  rxjava, mvp, retrofit
Android Clean Architecture Mvvm Dagger Rx
Implemented by Clean Architecture, Dagger2, MVVM, LiveData, RX, Retrofit2, Room, Anko
Stars: ✭ 138 (-45.45%)
Mutual labels:  rxjava, mvvm, livedata
Mvpdemo
Stars: ✭ 193 (-23.72%)
Mutual labels:  rxjava, mvp, retrofit
Androidarchitecture
Android Architecture using Google guides
Stars: ✭ 127 (-49.8%)
Mutual labels:  mvvm, mvp, livedata
Mvvmrxjavaretrofitsample
MVVM RxJava Retrofit Sample
Stars: ✭ 148 (-41.5%)
Mutual labels:  rxjava, mvvm, retrofit
Mvpapp
Android MVP Architecture
Stars: ✭ 2,354 (+830.43%)
Mutual labels:  rxjava, mvp, retrofit
Kingtv
📺 高仿全民直播(全民TV),项目采用 MVP + RXJava + Retrofit + OKHttp + Material Design + Dagger2 + Base + Glide + GreenDao构建。因为全民TV已经凉了,导致App已经连不上。所以本项目已暂停维护。仅供学习。 推荐MVPFrame: https://github.com/jenly1314/MVPFrame 和你值得拥有的MVVMFrame快速开发框架: https://github.com/jenly1314/MVVMFrame
Stars: ✭ 1,594 (+530.04%)
Mutual labels:  rxjava, mvp, retrofit
Ktarmor Mvvm
👻 Android快速开发框架, KtArmor 寓意着 为Android 赋予战斗装甲, 方便开发者快速进行Android 开发。
Stars: ✭ 148 (-41.5%)
Mutual labels:  mvvm, retrofit, livedata

Language SDK License

Relax 基于Kotlin语言编写的一套组件化框架,内部可以实现灵活的配置

Relax is a android frame by Component Frame

语言

Kotlin 使用技巧、里面是我踩过的各种坑(>_<)

架构模式

1. module

  业务层,分解成独立的模块

  module-business-news   module-business-weather   module-business-welfare   module-business-four

  每个模块内部可以实现插件化跟细粒度小功能

2. relax-business-component

  基础业务层和可变的第三方业务(比如地图封装、IM封装、日志上传封装、友盟统计封装、Bugly封装,这些业务我们
  情景1:可能实现方式会变(如图片加载之前用glide,现在想用Fresco,所以通过接口统一实现;
  情景2:有些业务可能在不同的App宿主中不需要,所以提供动态配置来减少安装包体积))
  所以针对第三方业务实现,通过分别实现不同的依赖库封装在BusinessFactory中,同时通过factoryinterface提供
  统一接口

3. relax-data-component

  数据层,提供业务数据,包含网络数据、本地数据,SP数据

4. relax-core-component

  基础组件层, 一些框架必须要用的library、核心的架构实现、如mvvm、mvp基础架构、自定义UI组件等

5. relax-dependents

  公共依赖集合,提供统一配置

6. 统一配置gradle.properties

### 库和应用两种模式间切换
### 只有app 为false 其他模块才可以设置true
relaxBusinessPlugin_isApp = false
relaxBusinessNews_isApp = false
relaxBusinessWeather_isApp = true
relaxBusinessWelfare_isApp = false
relaxBusinessComponent_isApp= false
### 启用检查代码 启用会牺牲打包时间
isCheckCode = false
### 动态配置减少打包体积
glideEnable = true
picassoEnable = false
isMVVM = true
isMVP = false
isApp = false

架构图

项目内容

1. 实现组件化,可以分层调试,单独模块调试;

2. 支持 checkstyle,pmd,findBugs对代码静态扫描,虽然目前只支持Java检查,但开发过程中还是会用到一些Java代码和xml的检查;

3. basic-component层 添加MVVM架构支持;

4. basic-component层,添加MVP架构支持;

5. 根据配置动态选择打包架构;

6. 封装kotlin版本的权限检查,使用更简单;

7. 将Application放到business-component层,因为我们要在这一层做基础业务组件开发,会全局初始化一些组件;

8. 封装data层接口,对外通过DataServiceManager提供统一接口(LocalDataService和NetDataService),在Service

  内部我们可以通过Retrofit、OkHttp、Volley等来实现网络请求,(项目核心使用rxjava来完成数据流,如果用其他网络框架,也尽量返回Observable,来保证封装一致性)

9. 封装图片加载框架,通过ImageEngine对外提供加载图片引擎,通过ILoader对底层提供实现接口

10. 封装插件化框架通过PluginManager进行管理插件

  例子:module-business-plugin模块就是用插件化实现的,具体插件式项目中的RelaxPluginDemo

11. 引入koin来解决kotlin依赖注入,更加方面,里面没有反射、代码生成

12. 封装权限处理 AndroidPermission

13. 封装多个值同时不为Null的判断,避免繁琐嵌套 CheckNullUtil

Libraries Used

  • Lifecycles - Create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • Navigation - Handle everything needed for in-app navigation.
  • Room - Access your app's SQLite database with in-app objects and compile-time checks.
  • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
  • WorkManager - Manage your Android background jobs.
  • UI - Details on why and how to use UI Components in your apps - together or separate
  • Third party
    • Glide for image loading
    • Rxjava for Reactive Programming
    • ARouter A framework for assisting in the renovation of Android app componentization
    • Retrofit A restful client
    • EventBus An Android event publish/subscribe lightweight framework
    • Dagger a fully static, compile-time dependency injection framework for both Java and Android.
    • GSON Tool class for converting Java objects to Json strings and Json strings to objects
    • LeakCannary Is the main tool for Android to find memory leaks.
    • Aspect optimize your contact center performance through improved customer service and efficiency.
    • Koin A pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin using functional resolution only: no proxy, no code generation, no reflection!

开发过程错误总结

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].