All Projects → xiaojinzi123 → Component

xiaojinzi123 / Component

Licence: apache-2.0
🔥🔥🔥A powerful componentized framework.一个强大、100% 兼容、支持 AndroidX、支持 Kotlin并且灵活的组件化框架

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
HTML
75241 projects

Projects that are alternatives of or similar to Component

Gearbox
Gearbox ⚙️ is a web framework written in Go with a focus on high performance
Stars: ✭ 455 (-81.31%)
Mutual labels:  api, framework, router
Mvvmhabitcomponent
👕基于MVVMHabit框架,结合阿里ARouter打造的一套Android MVVM组件化开发方案
Stars: ✭ 857 (-64.79%)
Mutual labels:  rxjava, retrofit, component
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (-80.07%)
Mutual labels:  rxjava, android-architecture, retrofit
T Mvp
Android AOP Architecture by Apt, AspectJ, Javassisit, based on Realm+Databinding+MVP+Retrofit+Rxjava2
Stars: ✭ 2,740 (+12.57%)
Mutual labels:  rxjava, router, retrofit
Tinypart
TinyPart is an iOS modularization framework implemented by Ojective-C. It also supports URL-routing and inter-module communication. TinyPart是一个由Objective-C编写的面向协议的iOS模块化框架,同时它还支持URL路由和模块间通信机制。
Stars: ✭ 120 (-95.07%)
Mutual labels:  service, framework, router
Cc
业界首个支持渐进式组件化改造的Android组件化开源框架,支持跨进程调用。Componentize your android project gradually.
Stars: ✭ 3,863 (+58.71%)
Mutual labels:  android-architecture, component, componentization
Androidall
Android 程序员需要掌握的技术栈:数据结构算法、程序架构、设计模式、性能优化、插件化、热更新、Kotlin、NDK、Jetpack,以及常用的开源框架源码分析如 Flutter、Router、RxJava、Glide、LeakCanary、Dagger2、Retrofit、OkHttp、ButterKnife 等
Stars: ✭ 849 (-65.12%)
Mutual labels:  rxjava, android-architecture, retrofit
Materialhome
一个基于 Material Design 风格设计的图书展示类App,豆瓣图书,在线电子书。
Stars: ✭ 331 (-86.4%)
Mutual labels:  api, rxjava, retrofit
Alfonz
Mr. Alfonz is here to help you build your Android app, make the development process easier and avoid boilerplate code.
Stars: ✭ 90 (-96.3%)
Mutual labels:  rxjava, android-architecture, retrofit
Apprun
AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.
Stars: ✭ 1,087 (-55.34%)
Mutual labels:  framework, router, component
Rxretrojsoup
A simple API-like from html website (scrapper) for Android, RxJava2 ready !
Stars: ✭ 492 (-79.79%)
Mutual labels:  api, rxjava, retrofit
Arouter
💪 A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)
Stars: ✭ 13,587 (+458.22%)
Mutual labels:  router, interceptor, componentization
Copper
Copper is a set of Go packages that help you build backend APIs quickly and with less boilerplate.
Stars: ✭ 35 (-98.56%)
Mutual labels:  api, service, router
Foxify
The fast, easy to use & typescript ready web framework for Node.js
Stars: ✭ 138 (-94.33%)
Mutual labels:  api, framework, router
Pure Http
✨ The simple web framework for Node.js with zero dependencies.
Stars: ✭ 139 (-94.29%)
Mutual labels:  api, framework, router
Mag.js
MagJS - Modular Application Glue
Stars: ✭ 157 (-93.55%)
Mutual labels:  framework, component
React Axios
Axios Components for React with child function callback
Stars: ✭ 153 (-93.71%)
Mutual labels:  api, component
Fx
A dependency injection based application framework for Go.
Stars: ✭ 2,383 (-2.1%)
Mutual labels:  service, framework
Fastapi Crudrouter
A dynamic FastAPI router that automatically creates CRUD routes for your models
Stars: ✭ 159 (-93.47%)
Mutual labels:  api, framework
Android Developer Roadmap
Android Developer Roadmap - A complete roadmap to learn Android App Development
Stars: ✭ 2,170 (-10.85%)
Mutual labels:  rxjava, android-architecture

Component 一定以最快的速度解决您的 issue, 提供解决方案.

可以说到目前为止, 基于 URI 方面的所有路由框架中(ARouterWMRouterActivityRouter ...) Component 是最强大和完善的组件化框架.

选择一个更好、更全面的、更稳定、更有发展前景的框架更是你们技术团队或者技术负责人要做的事情!

Component VS ARouter

点击查看 Component 解决了哪些开发中的痛点

Component

一个功能强大的组件化框架,极度注重用户体验,带给你使用上不一样的享受.欢迎大家使用,在使用的过程中发现任何问题,欢迎下方的 QQ群 里问或者提 issue 给我

1. Demo体验

扫码或者点击图片即可下载

2. Hello World 文档

最简单的 Hello World 文档

3. 完整文档

了解更多请看 wiki 更多功能等你来发现 **有关的文章 到底什么是组件化 **

4. Component 功能介绍

组件化方案真的有很多,那么这个组件化方案优秀在哪里?相比于 ARouterWMRouterActivityRouterCCDDComponent 等开源的组件化框架, 有哪些一样或者更加优秀的点

  • 支持多 Module
  • 支持 Google App Bundle 架构
  • 支持 Flutter, H5 等混合项目
  • 支持 androidx, 几乎没有其他组件化框架支持 androidx
  • 整个设计贴近原生,对原生的代码入侵极少,尽最大的可能保留原生的代码
  • 支持依赖注入、支持目标界面的路由参数
  • 跨模块调用
  • 支持业务组件生命周期(被加载和被卸载)
  • 配套的 Idea Plugin 方便快速浏览,持续会更新此 插件
  • 完美支持 RxJava2(使用rx库)
  • 服务发现(跨模块调用)和路由分开设计 - 其实这两块本来就是两个方面,我不清楚为什么很多方案中都柔和在一块
  • 服务发现装饰增强
  • 业务模块单独运行
  • 路由跳转功能
    • 支持生成文档
    • 支持获取目标的 ProxyIntent
    • 支持标准 URI 的使用
    • 无缝对接 H5
      • H5 只需利用 URL 即可任意路由到任何界面(只需下面一段统一的跳转. 完全不需要关心目标界面是否需要登陆、定位、权限等.)
        @JavascriptInterface
        public void openUrl(final String url) {
            Router.with(this).url(url).forward();
        }
        
      • H5 发起路由不需要关心目标界面需要做的先决条件(框架的页面拦截器已经帮您做完)
    • 外部链接跳转
    • 支持原生的跳转动画
    • 支持跳转 Fragment(也就是跨组件获取Fragment)
    • 支持单 Activity 多 Fragment 架构
    • 路由拦截器执行线程设计是主线程, 整体是异步的(这点很多人不理解, 没有关系. 先用起来之后在慢慢理解)
      • 在路由拦截器的执行线程的设计上,考虑到用户平时书写的 90% 代码都是在主线程的,
        所以路由拦截器的执行线程也设计为主线程执行,可以让您放心的操作 UI、弹框等操作.
        同时提供 Callback 机制可以在拦截器中做任何耗时的任务
        这点绝对是压倒性的优势,不仅整体是 异步 的,而且拦截器中能像平常一样写实现的代码
    • 路由的取消,基本上没有路由框架支持路由的取消,这也是一个很大的优势!
      • 手动用代码取消某次路由
      • 路由自动取消, 当发起路由的 Fragment 或者 Activity 销毁的时候会取消
    • 路由拦截器,足矣满足所有业务情况(具体看 拦截器wiki)
      • 全局拦截器(针对全部路由)
      • 局部路由拦截器
        • 页面拦截器(针对所有跳转到某一个界面的路由)
        • 拦截器别名,支持跨模块使用(可以让每一个拦截器都放在自个的模块)
    • 跳转
      • 持标准 URI
      • 支持自定义 Intent, 你可以给任意一个 Intent 标记路由, 这个功能很强大!
      • 支持类似 Retrofit 接口编程式跳转
      • Idea Plugin 强势支持跳转代码和目标界面的来回导航,也支持拦截器的代码使用和声明处的来回导航
    • 0 配置拿到目标界面返回的 ActivityResult, 很多框架不支持或者需要入侵 BaseActivity. 绝对的优势
      • 和系统的行为一样,当 ContextApplication 或者 Service 的 Context 或者 ContentProvider 的 Context 的时候, 不支持获取ActivityResult, 如果真的有需要, 你可以使用栈顶的 Activity 来充当 Context
      • 除第一点说的几个 Context, 其他的情况都是支持的,包括 Dialog 中获取到的 Context.
      • 如果你想单独使用这个功能, 也可以单独依赖使用, 链接是这里
  • 注解驱动器 不支持增量更新, 暂时不知道怎么去做

5. 配套的 Idea Plugin

Android Studio 中搜索插件名称:RouterGo, 即可下载对应的插件

RouterGo 源码地址:帮助你快速导航到目标界面或者目标拦截器,你值得拥有!

6. Component 项目结构(Demo + 库源码)

  • demo 示例代码
    • app --> 壳工程
    • Module1 --> Java 业务模块
    • Module1run --> Module1 业务模块单独运行的 Application 应用
    • Module2 --> Kotlin 业务模块
    • ModuleHelp --> Help 业务模块, 一些有关通用的或者系统相关的放这里
    • ModuleUser --> User 业务模块
    • ModuleBase --> 各个业务模块的基础模块, 上述的没一个业务模块都需要依赖
  • 实现库源码
    • ComponentApi --> Api
    • ComponentCompiler --> 注解驱动器库
    • ComponentImpl --> 实现库
    • ComponentRxImpl --> 实现库 RxJava 的扩展
    • ComponentPlugin --> 配套的 Gradle, 功能有两个
      • 优化初始化的方式, 优化反射加载模块为正常的 new 对象的方式, 利用字节码修改技术
      • 生成路由文档

7. 扫码进群

8. 如果你觉得项目不错, 就请我喝杯咖啡吧! 一块钱也是爱!

9. License

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