【技术杂谈_一家之言】谈谈Hybrid App、Native App技术选型

简介: 【技术杂谈_一家之言】谈谈Hybrid App、Native App技术选型

210345bdj9m2o12mhj8v9d.jpg

Native:
是指使用Native技术来开发App。比如iOS系统使用iOS原生语言Object-C/Swift去开发iOS App;Android系统使用Android原生语言Java/Kotlin去开发Android App。因此Native App能完整访问平台上所有可用的Api(不必使用任何插件,虽然它们也有用),并且无需牺牲性能。因此,“同等质量”的Native App比Hybrid App(后面会提到)会更加“丝滑”。

(H5 App:
即直接使用Web技术开发App,但因用户体验感较差、反应速度慢页面切换流畅性较差、无法直接调用手机硬件(摄像头、麦克风等)、 并且对于用户来说这种App很难被用户发现,因此此开发技术已经被淘汰。)

Hybrid:
是指使用Hybrid(混合)技术来开发App。混合,即混合使用了Web技术、Native技术去开发App。地理定位、相机等继续使用原生模块,业务板块通过Web技术去开发,原生模块和Web业务模块之间的通信通过js等技术去实现,即增加了一层中间层、无法直接访问原生Api,损失了一定的性能。因此,“同等质量”的Native App比Hybrid App会更加“丝滑”。(两次提到“同等质量”了就展开讲一讲,之所以加“同等质量”,是因为一般我们在谈论或者比较Hybrid、Native技术的时候,都是参照理论模型忽略人的因素的;但在实际项目开发中、实际工作模型中,人是及其关键的因素,影响比重可能占到70%-80%,即一个开发能力较弱的工程师即便使用Native开发技术开发的App也未必非常“丝滑”,可能还非常卡顿,比如在主线程中加了各种操作;反而Hybrid开发技术因为上手快、模块化开发,开发出来的App反而相对比较“丝滑” )

同时,一般Hybrid App开发技术都会对Web渲染引擎进行优化,使得用户体验更加良好。并且像股票中的K线图这类Web技术再怎么优化都无法达到商用用户体验的,会使用Native技术进行开发,然后进行混合编码,即,即便同一个页面都可以实现一部分用Native技术进行开发、一部分用Hybrid技术进行开发,来保证达到能够商用的用户体验。

(常用的Hybrid开发技术国外有Google的Flutter、Facebook的React Native、PhoneGap(Cordova)等等,国内有APICloud、Appcan、WeX5等等)

我们回到主题,so hybrid or native?
我们先不做回答或者选择,我们再来比较一下这几种技术的优势劣势。(当然主要是Hybrid和Native技术)

Native App开发技术

优势:

  • 提供最佳的用户体验,最优质的用户界面,最华丽的交互
  • 针对不同平台提供不同体验
  • ...等等

劣势:

  • 移植到不同平台上比较麻烦
  • 应用开发成本较大:需要Android工程师、iOS工程师分别开发
  • 应用维护成本较大:需要维护Android、iOS两条技术栈
  • 应用开发周期较长:需要Android、iOS分别开发;由于Android工程师、iOS工程师技术能力存在差异、理解力存在差异,并且测试工程师需要分别测试,导致Android、iOS交付周期不一致、交付质量不一致、测试周期耗时较长。
  • ...等等

Hybrid App开发技术

优势:

  • 跨平台开发:一次编码开发iOS App、Android App(以前还能同时开发Windows Phone App)(考虑效率和成本,跨平台开发是我们一直的追求,比如PC时代CS应用向BS应用的演进)
  • 代码复用高,能较大提升开发效率:可以复用较多Web应用的代码;会把一些常用的原生功能比如拍照、定位等封装成通过模块(或者叫通用构件),开发时可以直接复用。(其次每次App开发,主要就是做业务功能开发,像拍照、定位等基础功能每个App都是一样,根据模块化编程思想,就应该把这些基础功能做成模块,以提高复用性,提高开发效率)
  • 技能复用,学习曲线低:会Web技术(JavaScript、HTML、CSS),就比较容易上手Hybrid App开发技术
  • 开发成本较低、维护成本较低
  • 缩短开发周期:一次交付iOS、Android应用
  • 缩短测试周期:iOS、Android应用交付时间一致,不需要分别等待;不用分别对iOS、Android进行业务功能测试,只需做一次业务功能测试,再做一次兼容性测试(native开发也需要);并且iOS、Android侧bug修复的时间是一致的,不需要分别等待
  • 支持热更新、热修复:如上所说一次开发其实95%+是做业务开发,业务开发又基本100%是使用Web技术开发,Web技术覆盖打开最新版本就是最新的内容了(就像我们每次打开网站都是他的最新版一样,开发发版对用户是透明的),所以其实可以绕过App Store、各大Android应用商店审核去发布最新功能或是热修复线上bug的(但是比较遗憾,这条路被苹果以安全因素为由彻底堵死了)
  • 可以快速验证商业模式:如上相对来说,hybrid开发周期短、开发成本低,就可以用来快速验证商业模式(验证成功后,有足够资源后,如果用户体验也是一个重要考虑点,可以移植到native,有些公司就这么干的)
  • 能商用,虽然性能、体验较同质量的Native App差,但是是足以商用的。比如淘宝、京东、滴滴、Uber、饿了吗、美团的App都已部分使用Hybrid开发技术,而且一些公司的技术团队已经开始积累Flutter的开发经验
  • ...等等

劣势:

  • 因需要通过中间层去调用原生Api,有一定性能损耗,相对native应用用户体验稍差
  • 大量图形和过渡情况下的性能问题。(比如前面提到的:像股票中的K线图这类Web技术再怎么优化都无法达到商用用户体验的,会使用Native技术进行开发,然后进行混合编码)
  • ...等等

最后,我们再回到主题,so hybrid or native?
没有对或者错,只有最适合自己的,我想大家心中都有符合自己情况的答案了。

目录
相关文章
|
6月前
|
前端开发 Java 数据安全/隐私保护
计算机Java项目|基于Andriod技术“厕ce”APP
计算机Java项目|基于Andriod技术“厕ce”APP
|
1月前
|
机器学习/深度学习 监控 安全
量化合约对冲策略交易app系统开发技术规则
量化合约对冲策略交易APP系统开发技术规则涵盖系统架构设计、量化策略实现、交易管理、风险管理、用户界面设计及性能优化等方面。通过模块化设计、分布式架构、数据持久化、策略开发、算法交易、回测优化、订单管理、持仓监控、资金安全、风险控制、实时监控、安全审计、界面设计、反馈机制、多语言支持、响应速度、资源优化和兼容性等措施,确保系统的稳定、安全、高效和易用。
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
103 12
|
2月前
|
NoSQL PHP Redis
布谷语音app源码服务器环境配置及技术开发语言
布谷语音app源码服务器环境配置及技术语言研发。。
|
4月前
|
SQL 网络协议 数据库连接
【Azure 应用服务】遇见“无法创建hybrid connection for App Service”的解决办法
【Azure 应用服务】遇见“无法创建hybrid connection for App Service”的解决办法
|
5月前
|
存储 安全 数据安全/隐私保护
移动APP安全加固技术深度解析
【7月更文挑战第12天】移动APP安全加固技术是保障移动应用安全的重要手段。通过对Android和iOS两大主流平台的安全加固,可以有效防止逆向分析、动态调试、数据篡改等安全威胁。在实际应用中,我们需要结合静态层面、动态层面和数据层面的加固技术,全方位地提升APP的安全性。同时,随着技术的不断发展,我们也需要不断关注新的安全威胁和加固技术,确保移动应用的安全性和稳定性。
|
5月前
|
机器学习/深度学习 人工智能 文字识别
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
|
6月前
|
存储 安全 前端开发
APP管理后台OSS技术改造
旨在记录之前使用的上传文件是放在服务器的现在改成了oss更加高效管理
|
6月前
|
移动开发 小程序 开发工具
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
623 1
|
5月前
|
小程序 API
跨端技术问题之哪些形态可以通过getApp()获取全局App实例
跨端技术问题之哪些形态可以通过getApp()获取全局App实例

热门文章

最新文章