• APP技术选型,原生APP、混合APP及跨平台应用介绍


    前言

    第50次《中国互联网络发展状况统计报告》展示了很多有意思的数据。

    其中,截至2022年6月,我国网民规模为10.51亿,互联网普及率达74.4%。

    网民人均每周上网时长为29.5个小时,较2021年12月提升1.0个小时。

    得益于国产智能手机和移动互联网的发展,手机上网比例以绝对的优势领先,占比达到99.6%

    无到论作为产品经理还是开发人员都需要认识将来的电脑将会变成更适合办公和专业人士使用的工具,而手机才是普通大众的最终选择。

    从游戏行业,英雄联盟-> 王者荣耀,绝地求生->刺激战场,到电商行业。可以看出未来移动端开发将会占据主导地位。

    面向普通用户的移动端软件设计,需要考虑性能和UI美化、开发效率等多种因素,因此移动端发展至今也诞生了多种开发类型与技术。

    移动端开发在5G时代的重要性

     三种开发种类

    Native APP

    又称为原生APP 例如 Ios直接用 Object-C、Swift 语言进行开发。Android 使用 Java、kotlin进行开发

    Web App

    就是 html 开发的网页,说是一种APP但实际上就是指的在浏览器上的页面

    Hybrid App

    又称为 混合APPHtml5套壳,是使用Web技术开发页面,然后打包成 APP,打开的是一个APP,实际上里面是嵌套了一个浏览器。

    三种开发种类对应的架构模式

    App开发种类的选择

    对于开发者管理人员而言而言,可以根据产品需求性能要求项目时间来进行技术选型,

    跨平台开发

    移动领域的开发,面临不同操作系统需不同开发语言,同一操作系统存在不同版本,同一版本存在不同机型等难题,给移动开发增加了很大难度。 在移动开发领域,跨平台开发技术成为很多企业和开发者的首选,可以有效解决不同操作系统不同机型终端的开发难题,为企业节省时间成本和人员成本。

    跨平台开发框架推荐

    Hybrid:国产uni-app

    uni-app  使用Vue 作为界面开发,内部框架提供了一套面向不同平台特性调用的封装,只需要在js中调用相应的函数就可以调用相应平台的功能,如原生应用:读写手机存储、顶部通知等功能。

    开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

    如下图所示,一套代码,同时运行到iOS模拟器、Android模拟器、H5、微信开发者工具、支付宝小程序Studio、百度开发者工具、字节跳动开发者工具、QQ开发者工具(底部8个终端选项卡代表8个终端模拟器):

    Hybrid:React Native

    前端使用 React 框架编写,React Native 提供了一套面对 Android和Ios 的封装,让你在JS中直接通过调用函数就可以调用手机的原生功能

    Hybrid 又称为混合APP,基本上都是这种设计,界面采用Html,框架将底层功能封装为JS进行调用。

    React Native 很适合有React开发经验的工程师去使用。

    Native: Flutter

    简介

    Google推出,理念是:轻松、快速地构建漂亮的移动应用; 使用C、C ++、Dart和Skia(2D渲染引擎)构建;旨在帮助开发人员轻松实现恒定的60fps Flutter的历史最早可以追溯到2014年10月,其前身是Google内部孵化的Sky项目

    性能优势

    Flutter利用Skia绘图引擎,直接通过CPU、GPU进行绘制,不需要依赖任何原生的控件。

    Andriod操作系统中,编写的原生控件中实际上也是依赖于Skia进行绘制,所以Flutter在某些Andriod操作系统上甚至还要高于原生-因为原生Andriod中的Skia必须随着操作系统进行更新,而Flutter SDK中总是保持最新的

    跨平台框架优缺点对比

    框架uniAPPReact NativeFlutter
    学习成本
    性能
    优点跨平台比较多,包括了各种小程序一套代码可到处运行使用React+JS的方式,既保证了一定性能,也便于Web开发人员学习性能高 android=原生 ios<原生
    缺点广而不精, 平台太多而导致不能保证每套API的健壮性没有插件时需要自己开发有一定学习成本,需要学习Dart语言
    适用场景需要做多套小程序在不同平台运行,或对APP的性能要求不高只要求Android和Ios平台运行,并且拥有一定React经验对性能要求较高的APP,如大型商城或游戏
    支持平台iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等Ios、AndroidIos、Android

    尽管目前 React、Flutter 也相继支持了Windows、Mac。但是毕竟不是主流,而且没有必要非要让移动应用跨平台到PC端,设计尺寸和布局即使有响应式也会非常奇怪。

    PC 端跨平台框架推荐

    Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS.

    跨平台框架开发效率对比

    参考资料

    Flutter 相比 Native APP 开发有什么优势

    iOS

    Android

    React Native中文网

    Weex——关于移动端动态性的思考、实现和未来

    Flutter中文网

    移动跨平台框架Flutter介绍和学习线路

  • 相关阅读:
    Java 8 Stream 的使用场景
    港科夜闻|香港特首李家超,教育局局长蔡若莲与创新科技及工业局局长孙东亲临香港科大,聆听青年才俊之声...
    【SpringBoot】统一功能处理
    如何快速搭建母婴行业的微信小程序?
    在python中定义函数
    个人编程笔记 - 子类和父类有同名的成员?
    RepVGG 核心讲解
    548 - Tree (UVA)
    关于winform的chart--x轴时间格式的显示,以及x轴放大缩小的例子
    洛谷千题详解 | P1017 [NOIP2000 提高组] 进制转换【C++、Java、Pascal、Python语言】
  • 原文地址:https://blog.csdn.net/SUNbrightness/article/details/127598485