APP 采用原生开发还是混合开发,哪种方式好?
最近也有不少用户留言,问一些基础的内容,例如:App 采用怎样的开发方式更好?便有感而发,希望通过这篇文章再做一下小结。
先亮结果,是采用原生还是混合的开发方式,需要先了解业务规划,然后根据业务的实际需求再制定研发技术选型及研发计划。
为什么只能一事一议?这个还得从技术架构的优劣势开始说起。
基础科普
首先还是先科普下原生开发和混合开发的定义。
原生开发是指使用特定平台(如 iOS、Android 等)的本地语言和工具来编写应用程序,并直接运行在该平台上。原生应用程序的界面和用户体验通常会非常流畅和响应迅速,但原生开发需要掌握平台特定的语言和工具,并需要为不同平台分别开发独立的应用。
混合开发是指开发人员使用通用的 Web 技术(如 HTML、CSS 和 JavaScript)来编写应用程序,并通过 WebView 组件将应用程序嵌入到原生容器中。混合应用程序可以实现跨平台开发,并且可以使用许多通用的开发工具、框架和库来加速开发时间。但是,由于需要通过 WebView 间接访问硬件资源和功能,所以混合应用程序的性能可能比原生应用程序差,在效果和用户体验方面也不如原生应用程序好。
为什么现在满大街的混合开发?
这还得说到互联网的业务发展。
人是社会的动物,这句话的核心关键词是”动物“,是动物就意味着有”喜新厌旧“的需要,换句话说,在互联网繁盛的时代,业务场景就得跟随着用户的需要而更新迭代,也就是说,在效率和质量方面,原本平衡的天平已经有所倾斜。
混合开发的主流模式是结合原生和 HTML5 的技术(主流,但不是唯一,现在更流行的是小程序技术),取长补短的一种开发模式,原生代码部分利用 WebView 插件或者其它的框架为 HTML5 提供了一个容器,程序主要的业务实现、界面展示是利用 H5 相关的 Web 技术进行实现的。比如现在的京东、淘宝、今日头条等都是利用的混合开发模式。
渐渐地,2017 年微信推出了小程序开放平台,并倾注了大力气在小程序生态的建设上,逐渐的,「App+小程序」的混合模式的开发也逐步被推崇。「App+小程序」的 App 混合开发模式的优势可以总结为:
远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
能获取更多系统权限,完成更加丰富的产品设计;
可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
包尺寸有效减少,节省流量和存储
依托小程序技术标准的发展,小程序容器技术逐渐变成了混合开发的“标配”。市面上一些比较知名的小程序容器技术产品包括:微信、支付宝、百度、抖音小程序等,他们都是以完善大社交平台自有小程序生态的技术底座,能提供第三方进行私有化部署的有:FinClip、mPaaS 等产品。据了解,FinClip自行研发的小程序容器技术,能够让企业的 App 能具备快速运行小程序的能力,他们家的 SDK 还能嵌入除 App 以外的职能设备终端中(如 Linux、Windows、MacOS、麒麟等操作系统上运行)。
混合开发的技术价值和业务价值
技术价值除了上述所罗列的好处之外,「热更新」和「跨平台」的能力也是深受开发者的喜爱。
业务价值上,第三方生态的快速引入,是小程序技术作为混合开发的组合的一个核心价值。
自 2017 年微信小程序正式上线以来,它迅速成为了中国移动互联网行业的一个重要的生态系统。截至 2021 年底,微信小程序月活跃用户已经超过 1.2 亿,覆盖了电商、金融、医疗、教育、旅游、出行等各个行业应用场景。微信小程序生态系统也不断完善,为开发者提供了丰富的开发工具、模板和开源组件等资源。
如果说,互联网 1.0,各自平台重复造车轮;互联网 2.0,模板化的前端页面打造大大减少研发的冗余开发工作;互联网 3.0,生态为王,谁能在最短时间内引入足够多的生态,就能迅速的加深自己的护城河,聚焦自己擅长的核心技术的研发和业务深化。
当然,最后的最后,在我们选择各种开发模式的时候,还是要结合自己的实际应用来选择。比如开发工具类的 app 时,一般选用原生开发,因为需要操作体验好、反应速度快;比如开发商城、O2O 类的 app,则采用混合模式开发 app 比较合适;小程序技术则适合生态引入;HTML5 的开发一般都用于移动端的网页开发。
评论