前言
我虽说一直在做 Android,但以前涉及到的互联网元素寥寥无几。
最近熟悉项目,就发现项目中用是原生框架 Web 前端展示这种混合开发的形式。俗称 Hybrid(译:混合动力),典型的互联网 App 开发方式。
虽说听过此类玩法,但愣是写了三年的原生代码却没研究过 Hybrid。这谁顶得住,遂赶紧熟悉熟悉,虚心学习。好尽快融入集体,跟上组织步伐。
根据5W 1H原则来了解新事物,将Hybrid初探分为以下几节:
什么是 Hybrid?
比较正式的说法是:Hybrid App(混合模式移动应用)是指介于web-app、native-app 这两者之间的 App,兼具“Native App 良好用户体验的优势“和 ”Web App跨平台开发的优势“。
通俗的讲,在开发App的过程中,同时使用到 Web 技术和 Native 技术,就是 Hybrid App。主要是在 Native App 中使用 WebView 浏览网页应用,两者约定API,然后相互调用。
当我看到 Native App,出于之前的 Android 系统工程师职业习惯,有那么一瞬间认为是 C/C 开发的 daemon 程序。其实不是。
站在前端角度,这边的 Native App 就是指各平台的原生应用,Android 中的 APK、iOS 中的 IPA。
那么问题来了,我有好用又能打的原生开发方式,为什么还需要混合开发?
为什么要 Hybrid?
或者说是Hybrid存在的意义是什么?
假设以下这些场景:
场景1:
小菜做了一款 Android App 1.0,千辛万苦等到商店审核通过。忽然发现一处严重bug,只好赶紧修复,然后提交审核。五天后,还没等到 1.1 发布,因前期用户口碑过差,卒。
场景2:
小菜做了一款 Android App 1.0,千辛万苦等到商店审核通过。忽然发现用户好评如潮,被广泛传播,许多 iOS 用户也想使用。小菜于是从头开发 iOS 1.0,完事后发现别人已经模仿开发并占领了 Android 和 iOS 用户,卒。
可以看出来,原生 App 开发,有以下缺点:
- 不同平台的 Native App 需要各自单独开发、维护,各端成本过高;
- 使用 Native App 无法在用户无感知情况下修复 bug,需发布升级包;
- Native App 升级成本高,导致的迭代速度慢与繁琐。
在现如今的互联网领域,无法快速迭代、快速而低成本试错的产品,基本上活的不长。
而使用 Hybrid 方式开发后,使得一套代码可以两端使用、加快迭代速度、进一步降低了开发、维护成本。
又因为近年来硬件配置提升、Android操作系统升级优化、HTML5 出现,使得 Web App 使用体验巨大提升,更是让 Hybrid 愈加火热(早就火了,就我没怎么关注)。
得知 Hybrid 这种开发方式之后,小菜痛定思痛,努力学习三天四夜,千辛万苦做了一款 Hybrid App 1.0。小菜因为加班熬夜太猛,没顶住,卒。
Android 使用 Hybrid 简述
这个话题准备在下一篇阐述,这里仅描述下基本原理。
不管是 Android 还是 iOS,在实现上都使用到了 webview。webview 在 Hybrid App 中起到了承载 Web App 并提供双方通信机制的作用。下图所示。