WeTrident简介
WeTrident的目标
可快速开发支持商业运营App的框架。
WeTrident的开发背景
WeTrident由微众银行App团队开发,开发过程中我们通过调研其他一些RN的开发框架发现发现大部分适合比较小的项目,或者是用到后期要真实运营的适合还需要补充很多运营相关的基础能力。 要开发真正商业运营的App,需要很多打磨,没有办法做到快速开发高质量产品,以此为出发点我们开发了WeTrident,希望在开发、运营、测试几方面提供更好的基础开发设施。
WeTrident的技术选型风格如我们团队一样,稳健为第一要求,不盲目追求新技术炫技而随意使用不稳定的技术方案。 在时尚前沿和稳定实用中我们毫不犹豫会选择稳定实用,这也是WeTrident作为一套开发可商业运营App的框架的基础原则。 如果你的团队也需要快速开发稳定高质量的产品,那WeTrident应该会成为你的选择。
WeTrident给你提供了什么
- 一套经过时间验证的技术栈,免去你选择各种技术尝试各种新技术踩坑额外耗费的时间。
- 一套规范的App架构定义,即使新人也可以快速的开发出高质量代码
- 丰富完整的调试信息,简化调试的难度
- 一套完善的构建和发布环境,帮你避开各种构建环境的坑。
PS: WeTrident在设计过程中会增加一些限制,作为一套通用框架,我们深知应该留给使用者足够的扩展空间,所以我们在设计过程中尽可能的控制限制的数量。 并且做到,"框架增加一项限制,就至少给使用者带来一批好处"。
基础认知
了解下面这些基础内容可以帮助你更快的理解WeTrident的使用和设计思路。
App开发中的几大核心模块
- UI库
任何App一定设计到界面的开发,每个页面会由大量的视觉组件组成,目前在WeTrident中暂时没有提供界面库,使用者可以自由使用其他优秀的组件库或者自己按需开发自己的组件。
- 导航系统
界面开发完成以后需要把界面串联起来完成确定的业务流程,这也是每个App 不能缺少的重要部分,例如web应用通过URL的方式来实现来页面的定位和跳转, Android和iOS原生也有自己导航的支持。
- 数据状态管理
以状态为核心的界面开发模式近年是非常受欢迎的一种方式,其核心就是 View = f(State)
,我们在界面开发过程中去实现其中的f
函数,在逻辑开发过程中去完成 State
的维护即可。React已经天然的支持了数据更新和重新渲染这些底层能力。所以我们最关心的就是整个App数据状态的管理,Facebook提出的Flux思想和Redux库是解决数据状态管理的一种不错的方案,但是从社区的反馈来看,开发者对于Redux的使用各种各样没有形成固定的模式,WeTrident中就通过明确的定义Redux Store上的数据结构,解决了数据共享和隔离的矛盾。
- 网络层
前面的几个部分的关注点都是App客户端数据或者界面的处理,但是现在几乎没有离线的App,所以和服务器端的交互是必不可少的,这也决定了一个App的网络模块的重要性,这个模块的特殊之处在于真正的业务开发过程中,我们会通过服务器接口和后台由非常多联调工作,所以这一块的设计好坏直接影响开发联调效率。另外发布以后,这个模块的设计也直接影响了整个App的基础体验,很多时候需要在网络层开发排队、复用、缓存等功能。
- 运营支持模块
除了上面这些更业务功能直接相关的模块,最容易被忽略的就是这个部分,但是每个真正线上运行的App这个模块是绝对不能少的。数据上报、错误监控、质量监控、推送、版本升级等基础功能几乎是每个希望长期运营App的必须。