前端开发APP应该采取什么框架?

news2024/11/16 16:33:58

近十年,随移动网络在人们生活中的不断渗透以及线上服务需求的不断提升,人们对于桌面应用、APP、小程序、物联网终端设备等的需求不断提升。据公开数据显示,2022年,小程序数量已超550万;工信部数据显示,截止2月底,国内市场APP数量为259万款。

对于前端开发人员来说,选择适当的框架来构建高效、可靠、易于维护的应用程序是至关重要的。本文将介绍一些当前流行的前端框架并讨论它们在APP开发中的应用。

全球软件开发人员使用的跨平台移动框架比例图:

▲来源:statista

Reасt Native和Flutter一直都是保持这市场大部分的占有率,因此比较推荐这两个框架进行学习和开发,如果是需要跨多平台推荐使用Uni-app。

Reасt Nаtive框架

我不允许现在的前端开发同学还不知道这个框架!

框架简介:

Fасebооk于 2018 年发布了Reасt Native,一个基于 JаvаSсriрt 的 APP 开发框架。这个框架在全世界的开发者中需求量很大,有42%的移动应用程序开发者使用它。通过Reасt Nаtive开发的APP,在安卓和iOS 上都能达到原生的视觉效果和用户体验。

目前以下主流APP都有在使用此框架:

框架优势:

  • 无缝跨平台

  • JavaScript语言开发

JavaScript目前的使用率是68%,而Reасt Native是用JavaScript编写的,前端开发无需重新学习

  • 快速开发,提升效率

Reасt Native框架提供了大量的基础组件让开发更加便捷,提升了开发时间效率

  • 热重载

为开发人员提供最好的开发体验,借助 JavaScript 的动态特性, React Native 能够让你光速迭代。不要再傻等编译了,改、存、刷新!

  • 开发者社区

一个易于访问的开源平台欢迎来自每个开发人员的框架贡献,这为开发人员提供了充分的优势。

框架不足:

  • JavaScript是最灵活和最广泛使用的编程语言之一,但同时也是弱类型语言因此,没有类型安全

  • React Native在最初渲染之前需要花费大量时间来初始化运行

比较推荐前端开发同学使用此框架。

Flutter框架

框架简介:

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

目前以下主流APP都有在使用此框架

腾讯:

微信、QQ、QQ邮箱

阿里:

闲鱼、淘宝、菜鸟、UC、盒马、饿了么

其它:

B站、微博、快手、链家

框架优势:

  • 性能强大,拥有原生级别的性能

Flutter自带渲染引擎,实现了全套的图形SDK。因此Flutter从架构上就拥有和原生同级别性能的能力

  • UI跨平台稳定

Google直接在两个平台上在底层重写了UIKit,不依赖于Css等外部解释器,可以获得非常稳定的UI表达效果

  • 可选静态的语言,语言特性优势

Dart是一个静态语言,这也是相对于js的一个优势

  • 热重载

Flutter巧妙的结合了两种编译模式,Debug模式使用JIT编译,Release模式使用AOT编译。日常开发时可以获得几乎0等待的热更新能力,正式发布时又可以获得AOT的执行效率。

框架不足:

  • 对于前端开发来说要学习Dart语言,然后要学习Flutter SDK的各种功能

  • 伪装的跨平台,只是UI层面的跨平台

  • 对于前端和客户端原生来说,Flutter的生态环境并没有特别丰富

uni-app框架

框架简介:

它是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台的跨多平台开发框架。

框架优势:

  • 跨多端平台

一套代码可以运行在ios、安卓、微信小程序、支付宝小程序等环境中,大大的提升了开发的效率,不需要去维护多终端的代码,节省人力物力

  • 上手快,学习成本低

基于vue.js, 前端同学几乎不需要学习,立马可以上手开发,解决了学习的成本,可以大幅度提高开发效率

  • 丰富的开发社区

uni-app的社区环境非常丰富,插件选择多样,足足有上千款的插件,基本可以满足大部分企业需求

框架不足:

  • uni-app自己的内置组件不足以支撑一个项目的完成开发,需要团队自己根据业务需求开发组件

  • uni-app由于发布的时间不是很长,本身的开发文档描述的不够仔细,需要有开发经验的团队才能排除困难

  • uni-app不支持三维图的效果展示,而且一些特别复杂的特效表现开发时也过于复杂,甚至难以实现

总之,在选择前端开发框架时,我们需要考虑应用程序的具体开发需求,评估每种框架的优缺点,并根据需求做出最佳选择。无论选择哪种框架,我们都需要不断学习和提高自己的技能,以便更好地应对快速变化的技术发展。

参考资料:

Reасt Nаtive官网:https://www.reactnative.cn/

Flutter中文镜像网站:https://flutterchina.club/

Flutter官网:https://flutter.dev/

uniapp官网:https://uniapp.dcloud.net.cn/

《主流的APP开发方式》,数字贵州,知乎

《2023年最全盘点 | 16款跨平台应用程序开发框架》,FinFish,知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会议回顾!2023机器视觉在线研讨会圆满结束

4月20日下午,持续两小时的“融合生态,让制造与视俱进”2023机器视觉在线研讨会圆满结束,此次会议联合机器视觉产业链上中下游厂商,共同分享工业机器视觉领域最新技术和应用案例,专题讲解与观众问答相互交织&#xff0c…

OpenAI API调用

上次简单写了一篇对ChatGPT的一些看法,最近想深入研究一下。 极客时间上有个课程《AI大模型之美》,看了一下还可以。当做入门是不错的,但还是有很多细节可以打磨,不过毕竟是在风口上的课,也能接受。 本次演示如何调用…

【小知识点总结】Java中的split函数的用法(二)

一、String.split()函数有两种形式 split(String regex) 会默认忽略字符串后面的分隔符split(String regex,int limit) regex:可以是字符串或者正则表达式 limit:可以限制返回的数组的元素个数,当其值为-1时,表示任意大小 // s.split("-")会忽…

阿赵的MaxScript学习笔记分享十五《MaxScript界面的进阶应用》

MaxScript学习笔记目录 大家好,我是阿赵,之前介绍过MaxScript的各种UI控件的用法,这次介绍一些稍微复杂一点的用法。 一、例子介绍 这次要做的例子,有一部分是使用了dotNet的UI控件,一部分是MaxScript自带的UI用法&a…

理解Vuex【Vue】

5. vuex 5.1 理解vuex 5.1.1 vuex是什么 概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式&#x…

AI风范,院士点赞丨北京人工智能峰会暨AI金雁奖颁奖典礼成功举办,实在智能再获AI金雁奖

4月14日,由中国电子商会人工智能委员会主办,中国创业者俱乐部、北京集智未来人工智能产业创新基地联合主办的“2023北京人工智能峰会暨AI金雁奖颁奖典礼”举行,汇聚了人工智能各领域的产学研专家、院士、人工智能企业代表近300人,…

Jenkins自动拉取SVN源代码构建打包vue前端项目

目录 1.功能需求 2.安装插件 2.1 安装NodeJS插件 2.2 安装SVN插件 3.配置环境 3.1 NodeJS环境 4.新建任务配置部署信息 4.1 源代码管理 4.2 构建触发器 4.3 构建环境 4.4 构建步骤 5.构建项目 5.1 点击查看控制台日志 1.功能需求 使用Jenkins从SVN上拉取Vue项…

C#基础学习--异步编程

什么是异步 启动程序时,系统会在内存中创建一个新的进程。进程是构成运行程序的资源的集合。进程是构成运行程序的资源的集合。这些资源包括虚地址空间,文件句柄和许多其他程序运行所需的东西 在进程内部,系统创建了一个称为线程的内核&…

思科实验 EIGRP

1.1.1 实验目的 通过对 CCNA 课程中的 EIGRP 实验部分进行回顾,从而更加准确掌握 EIGRP 路由协议的 配置方法,以及对 network 命令的正确理解。并且学会对 EIGRP 路由协议查看排错的相关命 令。 1.1.2 实验拓扑 拓扑说明:本实验由两台思科路…

ai文案生成器免费-ai文案改写软件免费

让你的文章更加精彩- AI文章润色 在今天的信息化时代,文章编辑变得越来越容易。但是,如何让自己的文章在海量信息中脱颖而出并吸引更多的阅读者却是一项挑战。 如果你是一位写作爱好者或你是一位工作中需要写作的从业者,你会发现你需要让你…

蓝桥杯15单片机--串口通信模块

目录 一、计算机常用通信方式 二、串口通信UART 三、串口通信寄存器 (1)串行口1控制寄存器SCON和PCON ​(2)串行口1数据缓冲器SBUF (3)串行口1辅助寄存器AUXR (4)串行口1中断…

蛇优化算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 蛇优化算法算法流程图初始化进化操作搜索阶段(无食物)——全局搜索搜索阶段(有食物)——局部搜索战斗模式交配模式 备…

SAS学习第9章:卡方检验之适合性检验与独立性检验

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时&#xf…

APP渗透—MobSF安全评估、frida、r0capture抓包

APP渗透—MobSF安全评估、frida、r0capture抓包 1. 前言2. 补充AppInfoScanner相关内容3. MobSF安全评估3.1. 下载MobSF3.2. 安装Docker3.2.1. 查看Linux内核版本3.2.2. 更新yum包3.2.3. 安装Docker软件包3.2.4. 设置yum源3.2.5. 查看Docker版本3.2.6. 安装Docker3.2.7. 设置Do…

计算广告(十六)

营销渠道效果评估与归因 分析背景 营销活动的投放目标通常是品牌知名度和直接效果的结合。除了品牌宣传,受众在品牌指定页面上的浏览、注册、咨询、收藏、成交等,都可作为营销活动的目标转化。衡量投放的渠道各自对目标转化的贡献如何,投入…

成基于时间轮实现的定时器解决方案

文章目录 定时器的使用场景定时器与其他组件的关系定时器与网络事件在一个线程定时器与网络事件在不同线程当中处理大量定时任务怎么处理 定时器设计接口设计数据结构的抉择 时间轮时间轮的概念设计单层级时间轮1、时间轮大小2、时间精度 空推进问题多层时间轮 Skynet定时器实现…

TS-黑马(一)

目录: (1)ts-入门 (2)ts-类型-标注位置 (3)ts-类型-复杂类型 (4)ts-类型-函数类型 (1)ts-入门 我们讲过javaScript语言是动态的语言&#xf…

一次组件化与Android Jetpack的实践

前言 至今为止从事Android开发两年多了,17年开始实习时,恰逢APP刚刚立项不久,当时新项目沿用了旧项目古老的MVC架构。从那之后一直都是根据飘忽不定的需求,没有规则的垒代码。 直到18年中,其他项目组开发的APP要求集…

C语言入门篇——介绍篇

目录 1、什么是C语言 1、C语言的优点 3、语言标准 4、使用C语言的步骤 5、第一个C语言程序 6、关键字 1、什么是C语言 1972年,贝尔实验室的丹尼斯里奇和肯汤普逊在开发UNIX操作系统时设计了C语言,C语言是在B语言的基础上进行设计。C语言设计的初衷…

算法记录 | Day38 动态规划

对于动态规划问题,将拆解为如下五步曲 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509.斐波那契数 思路: 确定dp数组(dp table)以及下标的含义&#x…