5G到来,App的未来,是JavaScript,Flutter还是Native ?

〖程序员的自我修养 - 认知剖析篇③〗- 十大编程语言的优缺点 我们掌握不了所有的编程语言,但我们掌握的语言越多,在未来的发展与可塑性上就越强,就越容易受到企业的青睐,如果是作为自由开发者的话,也就越会有客户和开发团队与我们合作。 考虑到这一点,希望各位小伙伴能规划好自己的学习计划,并开始一一学习,以成为某一细分领域的技术专家或者某个蓬勃发展领域的顶级专家。 阅读详情
Native App

React Native(RN)发布于2015年,也是使用JavaScript语言进行跨平台APP的开发。与H5开发不同的是,它使用JS桥接技术在运行时编译成各个平台的Native代码,其使用的技术Facebook的Flux技术。

其特点是:

  • 使用JavaScript语言,由于JS被广泛地使用,所以RN也很容易被接受。

  • RN依赖JS的运行时环境,也就是JS桥接技术。其使用Facebook的Flux架构。

  • RN仅提供了UI渲染和设备访问的API,很多功能必须依赖第三方库来实现对本地组件的使用。

  • 生态目前比较完善,使用的公司也比较多,特别是对JS比较熟悉的同学容易上手。

  • 支持热部署,开发过程中可以节约很多时间。

但是它也并不是完美的:

  • 它的渲染方式还是调用各个平台的原生控件,有时需要针对不同的平台做不同的优化。

  • 其性能相对于H5有很大的提高,但是并没有完美解决,白屏,丢帧问题依然存在。

传统的原生APP开发模式,有IOS和AOS两大系统,需要各自语言开发各自APP。

目前也有很多跨平台应用使用React Native。它也是跟Flutter对比的主要对象。

优点:其优点是目前的生态相对比较成熟

缺点:开发和发布成本高

  • 举个栗子:网易管家APP (Tab1,Tab2)
  • 应用技术:Swift,OC,JAVA
WebApp

常被人提起的H5技术,其实就是网页+JavaScript。比如目前的一些流行的JS框架Vue,React,AngularJS等都是为了构建网页。针对移动端构建出来的网页可以实现在跨平台的功能,但是其缺点也很明显:

  • 渲染效率低下,用户体验差。很多H5在iOS平台表现尚可,但是在Android上特别是一些低端机上的表现确实让人不敢恭维。

  • 网页调用设备硬件相关API比较困难,而且支持的功能较少,实现此类需求是H5的短板。

  • 移动端的网站,常被称为H5应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Single Page

  • Application)模式开发出的网站,与MPA(Multi-page Application,再后面做介绍)对应。

优点 :开发和发布成本最低

缺点 :性能和体验不能讲是最差的,但也受到浏览器处理能力的限制,多次下载同样会占用用户一定的流量

  • 举个栗子:网易管家APP(Tab3)
  • 应用技术:ReactJS,RegularJS等

Hybrid App

  • 混合模式移动应用,介于web-app、native-app这两者之间的app,兼具“Native App良好交互体验的优势”和“Web App跨平台
  • 开发的优势”(百度百科解释)
  • 主要的原理是,由Native通过JSBridge等方法提供统一的API,然后用HTML+CSS实现界面,JS来写逻辑,调用API,最终的页

** 面在webview中显示,这种模式下,Android、iOS的API一般有一致性,Hybrid App所有有跨平台效果。**

优点: 开发和发布都比较方便,效率介于Native App、Web App之间

缺点: 学习范围较广,需要原生配合

  • 举个栗子:网易云音乐,我爱我家App

** 应用技术:** PhoneGap,AppCan,Wex5

React Native App

Facebook发现Hybrid App存在很多缺陷和不足,于是发起开源的一套新的APP开发方案RN App。。使用JSX语言写原生界面,

js通过JSBridge调用原生API渲染UI交互通信。

优点: 效率体验接近Native App,发布和开发成本低于Native App

缺点: 学习有一定成本,且文档较少,免不了踩坑

举个栗子:Facebook、youtube、discord、QQ、百度等等

image

WEEX App

  • 阿里巴巴开发团队在RN的成功案例上,重新设计出的一套开发模式,站在了巨人肩膀上并有淘宝团队项目做养料,广受关注,

2016年4月正式开源,并在v2.0版本官方支持Vue.js,与RN分庭抗礼。

优点: 开发效率和体验上跟RN不相上下,并且跨平台性更强

缺点: 刚刚起步,社区没有RN活跃

  • 举个栗子:淘宝、天猫、饿了么等

  • Flutter 咸鱼正在使用 , 而且他们也推荐大家尝试新技术 来自谷歌,不过貌似国内岗位少,有人说写这个35岁后可以出国。(我等将信将疑)

image

Flutter介绍

Flutter是Google推出的开源移动应用开发框架。开发者可以通过开发一套代码同时运行在iOS和Android平台。

它使用Dart语言进行开发,并且最终编译成各个平台的Native代码,这样既保证了开发效率,也保证了各个平台的运行效率。其相当于从头到尾重写了一套UI框架,不依赖具体平台的组件。其所有的组件都是"Widget"。渲染引擎则依靠高效渲染库Skia实现。

Flutter也看到了目前的跨平台解决方案并不完美,所以它借鉴了React Native的一些思想,做出了很大的优化。它将代码编译成原生代码,并且直接在各个平台中使用其高效渲染引擎Skia进行渲染,没有桥接,不调用平台相关控件。

这种设计思想完美解决了不同平台的性能问题。

归功于其设计思想,我们可以真正实现一套代码,运行不同的平台。在其推出之后,关注的开发者数量和相关的教程的增长速度远超当时的React Native。

其特点包括:

  • 使用Google自主开发的Dart语言。Dart语言是一个强类型的语言,很好地支持面向对象,并且易于学习和使用。
  • 使用谷歌自己的Skia渲染引擎,Android自带Skia引擎,iOS平台上Flutter也会把Skia引擎打包到APP中,实现高效渲染。
  • 目前有非常丰富的视图组件,可以点击这里查看其组件目录,包括Android上常用的材料设计(Material Design)的UI风格,和iOS风格(Cupertino)。由于其渲染不依赖各平台相关组件,所以运行在不同平台上的效果是一致的。
  • 同样支持热部署,开发时可以像网页开发一样实时看到效果。

目前它存在的一些问题是:

  • 国内学习资源目前并不丰富,使用Flutter的公司也比较少。
  • 相关的生态还没有React Native那样丰富,但是其发展速度大大超过了React Native。

总结

运用于跨平台开发的语言还有很多,如PWA,Uni App等。个人看来,Flutter最具有发展潜力的其中一个,虽然Flutter目前并不是非常流行,但是笔者相信它是跨平台解决方案的未来。如果谷歌的新系统Fuchsia OS能像当今的Android这样如日中天,甚至替代掉Android的话,Flutter的发展也会迎来它的顶峰。

如果你想做一个企业名片之类的东西,让更多人知道自家产品,那也许一个网站就够了;但如果产品核心功能只有native app才能提供,或者你想要确保用户有更好的体验、更强的黏性,那可能就需要做native app。

阅读更多

一波Flutter酷炫特效来袭

金三银四,2019最新面试实战总结

从来不纠结算法,冒泡排序这样优化?

动画:一招学会TCP的三次握手和四次挥手

关于Gradle, 搞定Groovy闭包这一篇就够了

相信自己,没有做不到的,只有想不到的

欢迎关注公众号 :你说神码,id:info1024Q ,一起交流 和学习技术
你说神码

社群电商平台系统开发与实战:后端API+管理后台+H5+小程序+App 社群电商(Community E-commerce)是近年来电商领域的重要演进方向,其核心在于通过社交关系链提升用户粘性与转化效率。典型应用场景包括微信群电商、团购小程序、社区拼团平台等。随着5G、AI推荐、小程序生态的成熟,社群电商正朝着高并发、低延迟、智能化的方向发展。从技术角度看,社群电商平台需要支持高并发访问、实时消息推送、多端协同、数据驱动运营等能力,这对系统架构设计提出了更高的要求。趋势关键词:微服务架构、前后端分离、容器化部署、AI推荐引擎、多端统一数据中台。 阅读详情

相关推荐

设计师必看!用Figma MCP自动生成开发文档的隐藏技巧

本文为设计师揭秘利用Figma MCP协议自动生成开发文档的隐藏技巧。通过将设计稿转化为结构化数据,实现设计规范的自动化输出、版本同步与动态更新,并借助AI助手提升协作效率,彻底告别繁琐的手动标注与沟通。

berry的博客 923

2021编程语言排行榜出炉

今日,IEEE Spectrum 发布了 2021 年度编程语言排行榜,其中 Python 在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置。另外值得关注的是微软 C# 语言,它的排行从 2020 年的第 23 名跃升至了今年的第 6 名,称得上是今年的大势语言。 2021 年度编程语言排行榜依然从 8 个信息源按照 11 种指标收集数据,最终得到了数十种编程语言流行度的整体排名。这 8 个信息源分别为 CareerBuilder、GitHub、Google、Hacker News、IEEE、Reddi

Happy Simon 10万+

体素坐标(voxel_coors)在mmdetection3d中的理解

体素坐标(voxel_coors)在mmdetection3d中的理解

weixin_38362784的博客 4217

盘点时下最流行的十大编程语言优缺点,附2024年1月最新的编程语言排行榜单

近期,TIOBE公布了2024年1月最新的编程语言排行榜,C#由于在近一年内涨幅最大(+1.43%),首次荣获年度编程语言奖。下面分别来分析一下前十名编程语言的优缺点,看看哪种语言更适合你。 总的来说,没有最好的编程语言,只有最适合自己的编程语言。各位可以根据自己的实际开发需求,选择1~2种语言进行深入学习。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2万+

nsight-system教程

参考nsight-compute使用教程-优快云博客。

youzjuer的博客 1893

NCCL分布式训练中ibv_reg_mr_iova2内存分配失败的3种解决方案(附详细排查流程)

本文深入探讨了NCCL分布式训练中ibv_reg_mr_iova2内存分配失败的3种解决方案,包括快速临时修复、标准系统配置和PAM模块根治方案。详细分析了错误原因,提供了完整的排查流程和性能优化建议,帮助开发者高效解决RDMA网络环境下的内存锁定问题。

nut55的博客 624

2025年最新编程语言排行榜

以下是,综合了和。

2403_82840866的博客 1万+

逆向CarPlay协议时,除了USB主从切换,你还需要注意这3个关键点

本文深入探讨逆向CarPlay协议时的3个关键点,包括MFi协议背景、多通道协同工作机制和协议分析工具的高级过滤技巧。特别解析了USB主从切换后的复杂交互过程,帮助安全研究员和逆向工程师更好地理解CarPlay协议的核心机制与潜在安全研究切入点。

weixin_29164497的博客 381

⭐️开发语言怎么选? 别急!深度了解【2024年全球排行榜TOP20编程语言榜单排名的特点、难易程度、跨平台性、适用领域】是什么,能干嘛?重点不是语言的新旧,是否热门语言,而是找到适合自己的技术栈!

许多朋友在面对 “学编程选择哪种开发语言?”这个问题的时候,可能只是跟自己认识的大神轻聊几句跟培训机构老师沟通了几天自己上网搜索了解各种开发语言的基本资料只是偶闻其中一项技术便开始学习了之后便在在网络上搜寻资源开始学习。随后随着学习的深入,很多人发现自己所学的并非真正热爱的领域,或者说,自己所学的东西并不能实现,或者高速有效率的实现自己想要的东西,后续在网络继续深入了解的时候,才发现自己对另一项技术产生了更浓厚的兴趣,从而感觉先前的努力方向错了,于是又转而学习其他内容。

Python老吕的博客 9421

7 series FPGAs Transceiver Wizard IP核使用和测试

学习FPGA一段时间了,前面一直没有系统的总结,这学期把在项目中用到的IP核和一些调试过程中遇到的问题总结一下发出来,坚持下去,一起进步! 今天总结一下的GTH核的使用和测试。 软件版本:Vivado 2017.4 IP核版本:7 Series FPGAs Transceivers Wizard (3.6) FPGA:xc7vx690tfft1927 实现功能: 四路光纤数据接收,由于GTX IP...

qq_39921762的博客 1万+

Weka学习笔记01:初探Weka世界

下载、安装和启动Weka、Weka数据格式

howard2005的专栏 1469

5G到来,谁掌App的未来,是JavaScript还是Native ?

说说几种常见的APP开发模式 Native App 传统的原生APP开发模式,有IOS和AOS两大系统,需要各自语言开发各自APP。 优点:性能和体验都是最好的 缺点:开发和发布成本高 举个栗子:网易管家APP (Tab1,Tab2) 应用技术:Swift,OC,JAVA WebApp 移动端的网站,常被称为H5应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Singl...

qianduan6666666的博客 950

爬虫Incapsula reese84加密案例:Etihad航空

声明:该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。

老衲爱洗头的博客 2429

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

APP开发的几种技术类型,原生APP、混合APP及跨平台应用介绍。uniapp、React Native、Flutter对比,Flutter的优势

一个吃水不忘挖井人的博客。希望能帮助到你 4511

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

React Native和Flutter的区别

兄弟,咱从实战角度聊React Native(RN)和Flutter的核心区别,以及测试时必须盯死的点——当年带团队做过两款跨平台APP(一款RN、一款Flutter),踩过“RN桥接卡顿”“Flutter Release模式崩了”的大坑,下面全是能直接落地的对比和测试要点,新人也能看懂!

我是一名在测试领域扎根15年+的“老匠人” 824

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

谈谈跨平台的app开发 坚定的选择了flutter

目前市场上,(市场也许用的不对),比较常见的技术有xamrin、RN、Flutter,确切的说flutter是后起之秀,笔者也是最近才开始学习,xamrin是微软系的技术,笔者也很早就开始学习了,RN笔者也学习了一小段时间,xamrin和RN 笔者在学习时候的最大感受就是累,完全体会不到编程的乐趣。 先说说xamrin,我看了一阵子,官网的教程看了一遍,想实现一个复杂一点的界面,想破...

a713040869的博客 719

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

来自未来,2022 年的前端人都在做什么?

来自上帝视角的总览这是一份来自未来的文档,感谢你对前端技术领域持续关注。编程语言趋势大观:Python 反超 JavaScript数据来源Github根据 Github 的相关数据我们可...

奇舞周刊 1034

移动端开发调试全攻略:从工具配置到实战技巧

移动端调试是开发过程中不可或缺的环节,涉及跨平台、跨设备的复杂环境。其核心原理是通过专用工具链实现代码与设备的双向通信,解决移动端特有的‘所见非所得’问题。在技术价值上,高效的调试能显著提升开发效率,降低测试成本。常见应用场景包括UI适配检查、网络请求分析和性能优化等。以React Native和Flutter为代表的跨平台框架,更需要掌握专用的调试工具如React Native Debugger和Flutter DevTools。通过Charles抓包、Chrome远程调试等热词技术,开发者可以构建完整的

weixin_34292402的博客 379

三步完整指南:让 Folia 全屏歌词动画在电脑上跑起来

Folia 是一款开源的全屏沉浸式歌词动画播放器,支持本地曲库、Navidrome,以及网易云、QQ 音乐、酷狗等在线音源。本文分三条路线讲清 Windows、macOS、Linux 桌面安装与 NAS Docker 部署的完整步骤,照着做,你就能让全屏歌词在自己设备前动起来。 ## Folia 跑起来是什么样:先记住三个核对点 把安装标准放在最前面,装完之后你对着勾就行: 1. 打开应用,

gitblog_00708的博客 1084
上一篇: 漫画:一招学会TCP的三次握手和四次挥手
下一篇: Google I/O 2019全纪录:AI惊艳,Android Q真香,还有两款新硬件
你说神码
博客等级 码龄9年 41粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值