Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。

理解Hybrid

Hybrid App本质上是源生程序语言混合前端网页语言,目的是兼顾源生App的产品体验和Web应用的轻量特性。

时至今日,大多数开发者都或多或少听说过Hybrid App是怎么回事,也可能研究过诸如UniApp、Cordova等跨平台移动开发框架。然而Hybrid兴起这么多年,无论是Android还是iOS平台,似乎市面上很少见这类框架开发的成功应用。这是什么原因呢?

Hybrid App的分类

Hybrid框架基于程序主体平台和前端网页语言与源生程序语言的混合方式,大致可以分为两类。分别是以前端网页语言为主的Web主体型和以Native为主的复合型。

1. Web主体型

我们常见的Hybrid框架,如上文提及的UniApp、Cordova等,都属于Web主体型方案。Web主体的方案有着诸多优点,比如只需要开发人员熟悉网页语言就可以开发App,大大降低了整体研发难度和成本;再比如继承了前端语言的特点,一定程度上拥有了跨平台的能力。但该方案的缺点同样明显,开发人员发现这种方式开发的App普遍存在程序性能问题和由此引发的用户体验问题。

Web主体型的移动应用用户体验的好坏,主要取决于底层中间件的交互与跨平台的能力。经过十数年的技术革新,研发技术和移动终端的硬件性能都有很大的提升,一些Web主体型框架已经能达到接近源生的性能体验。如果未来该问题能得到彻底解决,Web主体型方案将会是最佳的Hybrid方案。

2. 复合型

复合型Hybrid方案,一句话解释就是源生程序语言开发App外壳,前端程序语言实现内部业务,两者之间通过JSBridge通信。复合型方案的特点是将影响程序性能的中间件处理环节交还给源生程序语言,自身只负责业务实现。原则上外壳可以提供Web需要的任何能力。

这其实不算是一种新的开发模式,许多大厂都采用了类似的方案。如Android版本的淘宝App、百度App等。百度内部还封装了自己的浏览内核,更高效。

复合型Hybrid拥有众多优势,但整体热度较Web主体要低不少,原因在于需要有专人维护不同平台的App外壳,导致许多个人开发者或小微开发团队被拒之门外。换言之,如果能有一套高度封装的各平台App开源外壳,只需要简单的配置即可进行复合型Hybrid App集成,那该方案无疑是眼下能找到的最优方案。

基于这个思路,我们从在网运行的项目中抽取出一套Hybrid开发框架,AppNest。

AppNest Project简介

AppNest项目包含三部分,包括Android版外壳、iOS版外壳,以及一个用来示范如何开发与源神外壳通信的Web App DEMO。

从零开始开发HybridApp相关推荐

  1. 微信小程序从零开始开发步骤(三)底部导航栏

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

  2. 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)

    如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)_转 来源:www.armjishu.com 作者:jesse 转载请注明出处 首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完 ...

  3. 使用VS Code从零开始开发调试.NET Core 1.1

    使用VS Code 从零开始开发调试.NET Core 1.1.无需安装VS 2017 RC 即可开发调试.NET Core 1.1应用. .NET Core 1.1 发布也有一段时间了,最大的改动是 ...

  4. 使用VS Code 从零开始开发并调试.NET Core 应用程序

    使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试.上一篇 使用VS Code开发 调试.NET Core 应用程序 得到了大家的支持. 现在为大家带来从零开始教程,让你更好 ...

  5. react的导出是怎么实现的_从零开始开发一个 React

    这个是从零开始开发一个 React 系列的第七篇.想要访问之前的内容可以点击下方的链接进行访问: 最简单的实现,包括 vdom 结构,createElement,ReactDOM.render 增加 ...

  6. 从零开始开发一个大型网站

    从零开始开发一个大型网站 更新:前端代码已全部由TypeScript进行重写 这是本人第一个从零开始开发一个大型网站(前后端+部署代码),是一个内容分享社区,详细信息见github.目前还是开发中后期 ...

  7. JAVA从零开始开发区块链技术

    课程目录 (1)\第一课:目录中文件数:26个 ├─(1) Java区块链开发(一).01.mp4 ├─(2) Java区块链开发(一).02.mp4 ├─(3) Java区块链开发(一).03.mp ...

  8. 视频教程-用Java从零开始开发一个物联网项目-物联网技术

    用Java从零开始开发一个物联网项目 多年的产品设计和开发经验,带领团队完成多个知名产品.历任多家大型公司的Java架构师,对知名框架的源码均有深入研究.拥有IT一线开发.教学10多年的实战经验,能充 ...

  9. 微信小程序从零开始开发步骤(三)

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

  10. 从零开始开发Android相机app(三)简单介绍图像滤镜功能

    目前章节 1.从零开始安卓端相机功能开发(一)了解用什么去开发以及流程 2.从零开始安卓端相机功能开发(二)让我们来开发一个相机 3.从零开始开发Android相机app(三)简单介绍图像滤镜功能 文 ...

最新文章

  1. 在C#中SendMessage和PostMessage的参数传递
  2. [蓝桥] 算法提高 队列操作
  3. SAP 使用ST05跟踪方法
  4. 基于Object.defineProperty实现双向数据绑定
  5. 22考生这些院校计算机专业改考408
  6. express html文件接收路由参数,express 获取post 请求参数
  7. mysql作为tidb从库配置
  8. c语言三个杠的等号是什么,数学3个横杠的等号表示什么意思?比如这个定 – 手机爱问...
  9. angularjs 实例_AngularJS过滤器示例教程
  10. 10.25模拟 列车调度
  11. 一个小小的签到功能,到底用MySQL还是Redis?
  12. 激荡2020——四大通信设备商年报分析
  13. 辅助功能 AccessibilityService笔记
  14. MySQL高性能:索引、锁、事务、分库分表如何撑起亿级数据
  15. w3wp ash oracle,Oracle session简介
  16. vue前端框架有哪些
  17. 抖音短视频创业,抖音机房怎么样搭建?有哪些技巧
  18. JavaBean,POJO,EJB的区别
  19. 《趣学Python编程》——第1部分 学习编程 第1章 Python不是大蟒蛇 1.1 关于计算机语言...
  20. VRTK4.0学习(六):给控制器添加激光射线

热门文章

  1. 发布 html win7 工具,win7 天气 Win7自带的桌面天气工具怎么使用
  2. kt条件例题运筹学_运筹学讲解习题
  3. matlab 正版下载,matlab软件正版
  4. Tensorflow2.0之FGSM
  5. 点云配准ICPNDT
  6. 有限差分法与有限单元法的区别
  7. 优思学院|IE的7大手法・8大浪费
  8. python的统计库_Python-Scipy库-卡方分布统计量计算
  9. 十天学会单片机(一)
  10. java游戏背景_游戏背景音乐主要风格