前言

虽然说本系列中架构篇是第一章,但实际过程中是在慢慢演化的第二版中才有这个概念,
经过不断的迭代,演化才逐步稳定

明确目标

首先明确需要做成一个什么样的框架?

大致就是:

  • 一套API规范(统一AndroidiOS),所有API异步调用(防止阻塞)
  • 提供大部分原生功能的API(包括很多常用的功能给H5使用)
  • 原生需要能调用到H5中注册的方法(用关于原生主动通知)
  • 部分API需要支持H5环境(譬如alert需要在AndroidiOS、浏览器中同时运行)
  • API类别需要包括事件监听(如网络变化),页面跳转(如打开页面,关闭通过回调回传值),UI显示(调用后立即执行)等

整体架构

其中:

  • quick API指的就是quick hybrid框架提供给H5调用的JS API
  • 最外层的统一JSAPI规范就是quick API
  • 多平台支持的意思是-譬如调用了quick.ui.alert,在quick hybrid容器中会有响应(原生的弹窗),

同时在浏览器中也会有响应(H5实现的弹窗),或者在其它容器中(如DD)也会有响应(其它容器实现的弹窗)

  • 多平台支持并不是所有API都会支持,而是指一些常用的API在多个平台下都有实现(比如UI类API一般都会支持,但是原生设备相关就不会在浏览器支持)

【目标分析】需要哪些工作

根据quick hybrid的整体架构与目标,我们需要先分析需要实现哪一些内容:

  • 【核心工作】制定quick平台下前端和原生容器的交互规则(JSBridge
  • 【核心工作】前端和原生(Android/iOS)分别实现JSBridge交互(包括互相调用,回调等机制)
  • 【核心工作】完成前端调用多平台的支撑(API在不同平台下有不同实现,并会根据不同环境自动转换)
  • 【重要工作】规划功能API(需要提供哪些功能,并且每一个功能应该在哪些平台下有实现)
  • 【重要工作】前端和原生(Android/iOS)分别实现这些功能API(第一步根据二八原则实现重点API即可)
  • 【重要工作】处理好短期API(即调即用,立即回收),长期API(一个页面中能被多次触发,如导航了按钮监听),事件监听API(整个应用生命周期内监听,如网络变化)等不同类型
  • 【优化完善】原生API实现的优化,前端代码的优化,权限认证,本地资源等等

然后就可以基于这些目标,逐步完成每一个规划的内容

【分解目标】总体规划

  • 【quick hybrid】JSBridge的实现
  • 【quick hybrid】H5和原生的职责划分
  • 【quick hybrid】API的分类:短期API、长期API
  • 【quick hybrid】API规划

拓展:

  • 【quick hybrid】H5和Native交互原理

【分解目标】API的实现

  • 【quick hybrid】API多平台支撑的实现
  • 【quick hybrid】组件(自定义)API的实现
  • 【quick hybrid】JS端的项目实现
  • 【quick hybrid】Android端的项目实现
  • 【quick hybrid】iOS端的项目实现

【分解目标】优化与完善

  • 账号体系、Cookie还是Token?
  • hybrid容器的优化与完善

返回根目录

  • 【quickhybrid】如何实现一个Hybrid框架

源码

github上这个框架的实现

quickhybrid/quickhybrid

【quickhybrid】架构一个Hybrid框架相关推荐

  1. 写一个易于维护使用方便性能可靠的Hybrid框架(一)—— 思路构建

    写一个易于维护使用方便性能可靠的Hybrid框架(二)-- 插件化 写一个易于维护使用方便性能可靠的Hybrid框架(三)-- 配置插件 前言 本来上一篇博文写完,我就告诉自己,这是最后一篇,之后不再 ...

  2. 前端架构之移动端混合架构(hybrid)

    前端架构之移动端混合架构(hybrid) 从过去的切图仔到如今的大前端,前端这一新兴发展起来的领域已经在软件行业变得尤为重要,一款重前端产品的成败更在于他的架构. 架构 软件整体结构与内部组件,外部软 ...

  3. 58同城iOS客户端Hybrid框架探索

    作者:杜艳新,刘文军.58同城iOS高级研发工程师,专注于App Hybrid框架的架构研发,主导了58同城App的Hybird混合研发的系统架构以及研发. 责编:唐小引,欢迎技术投稿.约稿.给文章纠 ...

  4. 58 同城 iOS 客户端 Hybrid 框架探索

    [CSDN 编者按]58 同城 iOS 客户端的 Hybrid 框架在最初设计和演进的过程中,遇到了许多问题.为此,整个 Hybrid 框架产生了很大的变化.本文作者将遇到的典型问题进行了总结,并重点 ...

  5. Hybrid框架之交互通信篇

    前言 虽然有些应用在使用React Native或Weex开发,但综合来看,业内还是以混合开发模式为主,从我们自家的App来看,H5业务所占比重越来越高,目前大概占到35%左右,因此一套好的Hybri ...

  6. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

  7. MFC入门(一)——MFC是一个编程框架

    MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对S ...

  8. 我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展

    声明:部分代码参考与网络,如有侵权请联系博主删除,博主本着学习的态度和大家一起成长. 项目github地址:https://github.com/sunmenglei/sunmengleiwangsh ...

  9. Hybrid框架UI重构之路:一、师其长技以自强

    这两年在支撑公司的Hybrid框架的运维发展,让人确认这种移动开发方式确实是一条不错的路.混合应用这种开发方式降低开发难度,极大的提高开发效率,最重要的一点效果可以接近原生应用.框架的本身是需要持续不 ...

最新文章

  1. 【行为型模式】《大话设计模式》——读后感 (16)加薪非要老板批?——职责链模式...
  2. 201521123087 《Java程序设计》第9周学习总结
  3. angular4 学习日志(一 依赖注入)
  4. Doctrine官方手册 - 缓存
  5. 软件构造学习笔记-第十三周
  6. Django博客--3.创作后台开启
  7. 【编程导航】国外大神总结的实用代码,30 秒学会!
  8. Composer帮你轻松管理PHP包 autoload
  9. hadoop.2.6.0安装hive.1.2.2
  10. VMware vSphere第三方免费工具介绍之一:RVTools
  11. fmea第五版pfmea表格_解读第五版FMEA“六步法”(附第五版FMEA表单下载)
  12. mysql error1205 博客_MySQL的ERROR 1205错误分析
  13. android 联机游戏平台,游聚平台/街机平台/主机联网/街机对战平台/网络街机
  14. python实现淘宝自动登录秒杀功能
  15. html用于排版标题标签,HTML常用标签(示例代码)
  16. 利用正则表达式判断邮箱
  17. 利用自带命令 手动杀毒
  18. OP向左,SaaS向右,如何选择?
  19. 存储过程 debug
  20. 国防科技大学计算机学院 网络与信息安全研究所所长,为网络铸盾,国防科大战队再获佳绩!...

热门文章

  1. 那一年,让我整个人升华的 C++ BERT 项目
  2. Mybatis逆向工程过程中出现targetRuntime in context mybatisGenerator is invalid
  3. IBM技术专家:Hyperleger Fabric 架构与部署实例解析
  4. Java网络爬虫实操(5)
  5. mysql中order by优化的那些事儿
  6. 专访趋势科技CEO陈怡桦:病毒行业需要反省
  7. [20170420]关于延迟块清除3.txt
  8. LeetCode - 25. Reverse Nodes in k-Group
  9. Codeforces Round #309 (Div. 2) C
  10. 关于sharepoint