Coder Social home page Coder Social logo

kunminx / viabus-architecture Goto Github PK

View Code? Open in Web Editor NEW
486.0 23.0 83.0 2.97 MB

让 Android 开发可以像流水线一样高效的 “职责分离架构” ⚡ 不同于 MVP 的配置解耦,也非 MVVM-Clean,VIABUS 是世界范围内首个明确提出 “通过职责分离” 真正实现 UI 和业务并行开发的 Android 业务架构和设计模式理念。

Java 100.00%
android android-architecture architecture mvp mvvm

viabus-architecture's Introduction

image

image image image image

Note:考虑到 “软件工程安全” 的问题,自 2019 年起,我们推荐您尝试

曾在发布 1 个月内登顶过 2 次 GitHub Trending 的、为全球数万开发者所见证的《Jetpack MVVM 最佳实践》,而不是继续将 VIABUS 应用在项目的重构中。

VIABUS 的存在,主要是作为 “测试驱动开发” 的范例,来演示在 2018 年,我们是如何在 设计模式原则 的帮助下,做到让 UI 和 业务 的并行开发。

什么是 VIABUS

⭐ VIABUS 是一款响应式架构,借助总线转发数据的请求和响应,实现 UI、业务的完全解耦。

image

为什么选择 VIABUS

  • 1分钟即可掌握,VIABUS 的结构与使用方式。💡
  • 当下就可使用,对原项目架构完全兼容,即插即用。🔥
  • 允许以 业务或模块为单位,每天1小时,完成渐进式重构。💧
  • 职责边界明确,无论是写 UI 还是业务,不再被打断、相互不拖累。🌱
  • 原生接口即可实现 跨 Activity、跨组件的 实时双向通信。⚡
  • 无编译时注解,基于 VIABUS 编写的组件可在任何项目中直接使用。🌎
  • 更少的重复工作,扁平的交互模式,代码复用率提升至100%。💪
  • ...

更多依据详见 你一定想知道的,如何为项目挑选合适的架构

如何使用 VIABUS

在模块的 build.gradle 添加如下 任一 依赖

//持续集成的 ViaBus 快速开发框架(包含 viabus 内核以及热门框架)
implementation "com.kunminx.viabus:architecture:0.4.8"

//纯粹的 ViaBus 内核(依赖它你就可以定制属于你的 ViaBus 架构啦)
implementation "com.kunminx.viabus:core:0.4.8"

使用方法详见 1分钟掌握 ViaBus 架构和使用

谁在用 VIABUS

见证者 Logo 作品地址或项目链接
MyateJx sakernote 舒心录 - 酷安老牌记事本 app
MyateJx gankio gank.io 客户端

鸣谢

RxJava

更多访问

Email:[email protected]

Home:KunMinX 的个人博客

Juejin:KunMinX 在掘金

《重学安卓》 专栏

重学安卓小专栏

License

Copyright 2018-2019 KunMinX

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.

viabus-architecture's People

Contributors

kunminx avatar myatejx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

viabus-architecture's Issues

Dagger2

是否考虑将 Dagger2 添加到框架

下载报错

下载源码报错
Cause: startup failed:
script 'D:\Android Studio\workplace\ViaBuss\android-viabus-architecture-master\versions.gradle': 1: Invalid variable name. Must start with a letter but was: ext
. At [1:1] @ line 1, column 1.
ext.deps = [:]
^

1 error

纯原生

老哥,你这个能不能做一版去rxjava的啊?就用原生的

关于activity重启后收到滞后response的问题

之前也做过一个类似的b/s架构
当时用类似对称加密的机制根据请求时间生成了一个唯一的密钥 只有response的密钥匹配才会更新UI 你这个应该也可以用相同的方法解决

对框架的一点疑问

感觉像变种的handler,时间长了或者是业务很多,result里面会不堪重负,且查代码不方便,还不如直接使用Rxjava。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.