【玩转移动端系列】移动端应用的三种开发模式
时间:2023-05-31 06:54:01 | 来源:网站运营
时间:2023-05-31 06:54:01 来源:网站运营
【玩转移动端系列】移动端应用的三种开发模式:
Native App
它是最为传统的一种移动端开发模式,IOS 和 Android 系统的官方开发语言分别是 Objective-C/Swift 和 Java/Kotlin,使用这些编程语言以及相关组件开发的App一般称之为 Native App,原生应用是特别为某种操作系统开发的,它们是在各自的移动设备上运行的,需要用户安装使用。该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。
优势
- 能够为用户提供最佳的用户体验、最优质的用户界面、最强的交互效果
- 每一种移动操作系统都需要独立的开发项目,因此其开发设计能够针对不同平台、不同终端用户的需求进行不同体验的设计
- 能够使用移动硬件设备的底层功能,可访问本地资源,简单说就是能够访问手机的所有功能,如GPS、相机等
缺点
- 移植到不同平台上比较麻烦,需要开发多平台的版本,开发维护成本高
- Release需要通过应用商城的审核,不支持动态化更新,审核周期较长
- 用户必须手动下载更新
Web App
它是由H5构建出来的App,无需下载安装。类似于现在所说的轻应用,存活于浏览器中的应用,简单说就是触屏版的网页应用。
优势
- 开发成本低
- 更新快,更新无需通知用户,用户无需手动升级
- 跨平台
缺点
- 受到终端网络质量的直接影响,体验较差
- 受限于浏览器DOM的性能,体验较差
- 无法获取系统级别的通知,提醒,动效等,体验较差
- 用户留存率低
Hybrid App
Hybrid App是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。
它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,比如淘宝移动客户端,使用的就是Hybrid App的路线,只不过它的WebView使用的自研内核,所以体验上更像客户端,更高效。
Hybrid App按网页编程语言与系统原生编程语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。
即Native View和Web View独立展示,交替出现。2012年常见的Hybrid App是Native View与WebView交替的场景出现。这种应用混合逻辑相对简单。即在需要的时候,将WebView当成一个独立的View(Activity)运行起来,在WebView内完成相关的展示操作。这种移动应用主体通常是Native App,Web技术只是起到补充作用。开发难度和Native App基本相当。
即在同一个View内,同时包括Native View和Web View。互相之间是覆盖(层叠)的关系。这种Hybrid App的开发成本较高,开发难度较大,但是体验较好。如百度搜索为代表的单View混合型移动应用,既可以实现充分的灵活性,又能实现较好的用户体验。
移动应用的主体是Web View,主要以网页语言编写,穿插Native功能的Hybrid App开发类型。这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。Web主体型的移动应用用户体验的好坏,主要取决于底层中间件的交互与跨平台的能力。国外的appMobi、PhoneGap和国内的WeX5、AppCan和Rexsee都属于Web主体型移动应用中间件。其中Rexsee不支持跨平台开发。appMobi和PhoneGap除基础的底层能力更多是通过插件(Plugins)扩展的机制实现Hybrid。
优势
- Hybrid App 同时拥有 Native 和 Web 的优点,开发模式比较灵活
- 支持动态化更新,有BUG直接修复更新H5就行,无需应用商城审核
- 可以使用桥接(JS Bridge)来调用系统的摄像头、相册等功能
- 支持跨平台,只要有 WebView,一套代码可以很容易跨iOS、安卓、Web、小程序、快应用多个平台。
缺点
- 受到终端网络质量的直接影响
- 受制于 Web 的性能,在长列表等场景依然无法做到和Native一样的体验。
当然静态文件加载速度是可以优化的,比如采用离线包方案。用户安装APP时自动下载静态文件压缩包,App自动解压静态文件。这样每次访问的是 App 本地的资源,加载速度可以得到质的提升。
如果文件有更新,那么客户端就去拉取远程版本,和本地版本进行对比,如果版本有更新,那就去拉取增量文件,用二进制 diff 算法 patch 到原来的文件中,这样可以做到热更新。
但是成本也比较高,不仅需要在服务端进行一次文件差分,还需要公司内部提供一套热更新发布平台。
创作不易,希望大家多多支持,文章每周持续更新,我们下期见.
程序员白话 | [原创]
点关注不迷路
可以微信搜一搜「
程序员白话」,大家有任何问题都可以通过微信公众号来联系我,知无不言~