taoweiji / grouter-android Goto Github PK
View Code? Open in Web Editor NEW原名ActivityRouter,Android 结构化路由框架
Home Page: https://github.com/taoweiji/grouter-android/wiki
License: Apache License 2.0
原名ActivityRouter,Android 结构化路由框架
Home Page: https://github.com/taoweiji/grouter-android/wiki
License: Apache License 2.0
不知道是不是和arouter一样支持组件化呢?
简单的看了下. 我这里有以下几个疑问:
首先项目整个拉取之后没有可以跑的 App, 当然你肯定说怎么样怎么样配置一下就可以了, 但对于用于来说是不是你把所有的配置好, 我们拉取下来就能运行看效果会更好呢?
你的注入整个是通过反射去做的. 这个怎么说?我感觉这点也太扯了吧....
组件化项目不包含某个 module 能否运行的问题
App 壳工程
Module1
Module2
当项目是如上的依赖的时候, 正常运行, 如果我不依赖 Module2, 直接运行 App 会报错吗?
为啥会有这样子的需求?其实使我们开发希望我自己测试的时候, 希望可以把那些无关的 Module 暂时排除, 不参与打包, 这样子可以提升运行速度. 我简单的看了下作者你的项目, 感觉好像少个 Module 不可以的呀. 有空做一下回复, 我好了解一下.
另一个问题是, 你为了参数拼接的问题, 我对比很多框架发现, 有两个框架 ARetrofit 和 Component 是通过类似于 Retrofit Api 的方式做的. 我觉得也 OK 的, 另外你的这样子也是很好地.
登陆、定位. 这些进入界面的前置跳转, 我看你拦截器是声明了类似于白名单的列表. 你不觉得这样子不仅这个列表需要维护. 也增加了每一个开发人员的工作吗. ARouter 可以通过 extra 去做, 而其他一些框架有提供页面拦截器之类的功能, 我觉得这点是做得不够的.而且你的设计会让跳转不流畅. 假如目前没有登录, 你跳转 B 界面, 你会跳转到登录界面. 当用户登录了, 之前的跳转还需要发起一次. 你没觉得这点也是可以优化的吗? 理论上, 登录拦截器中应该是自动完成了登录, 登录成功会继续之前的跳转. 我觉得这点你可以参考下 Component 中拦截器的设计, 这点我看它这里做的很好
另外你的源码中示例 Module 就一个, 最好弄多个 module 协同工作的吧, 更好的体现组件化.
跨组件调用这块感觉还可以, 但是我有一个疑问, 你所谓的 安全构造器 是生成代码的方式吧?如果是的话, 你是怎么让所有模块都能调用类似于 val userService = GComponentCenter.UserServiceImpl() 这句代码的. 难道生成到了 Base? 还是咋滴, 如果可以请告诉我一下!
感觉问题还是挺多的, 感觉不像你说的千万级别的 App 应该有的样子呀. 目前对比下来还是 ARouter 和 Component 比较符合我的预期. 希望加油呀!
在对应的包下没有找到RouterHelper,RouterHelper在哪?项目跑步起来啊!
看了下源码,是运行时注解,其实这个应该用编译时注解。您用运行时注解,这里面是有什么原因吗?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.