首页 > 编程语言 >cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

时间:2024-09-09 09:15:12浏览次数:12  
标签:03 plateform cross React 跨平台 Flutter Native

跨平台系列

cross-plateform 跨平台应用程序-01-概览

cross-plateform 跨平台应用程序-02-有哪些主流技术栈?

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

cross-plateform 跨平台应用程序-04-React Native 介绍

cross-plateform 跨平台应用程序-05-Flutter 介绍

cross-plateform 跨平台应用程序-06-uni-app 介绍

cross-plateform 跨平台应用程序-07-Taro 介绍

cross-plateform 跨平台应用程序-08-Ionic 介绍

cross-plateform 跨平台应用程序-09-phonegap/Apache Cordova 介绍

cross-plateform 跨平台应用程序-10-naitvescript 介绍

如果只能选择一跨平台框架技术,近10年内可以使用,你觉得哪一个最有学习和使用的价值?为什么

选择一个跨平台框架技术时,需要考虑多个因素,包括框架的成熟度、社区支持、性能、生态系统、以及未来发展趋势。

基于当前(2024年)的市场和技术趋势,以下是几个值得考虑的跨平台框架:

  1. React Native

    • 由 Facebook 支持,拥有庞大的社区和丰富的生态系统。
    • 允许使用 JavaScript 和 React 构建原生应用,适合 Web 开发者。
    • 性能优良,许多流行的应用如 Instagram 和 Facebook 都使用 React Native。
  2. Flutter

    • 由 Google 支持,使用 Dart 语言。
    • 提供了高性能的渲染引擎和丰富的组件库。
    • 支持跨平台开发,包括移动、Web、桌面和嵌入式设备。
  3. Xamarin

    • 由 Microsoft 支持,使用 C# 和 .NET 框架。
    • 允许开发者利用现有的 .NET 技能来构建原生应用。
    • 提供了良好的性能和访问原生 API 的能力。
  4. NativeScript

    • 开源框架,使用 JavaScript 或 TypeScript。
    • 直接使用原生平台的 UI 组件,提供原生应用的性能和用户体验。

在这些框架中,FlutterReact Native 尤为突出,它们都有强大的企业支持、活跃的社区和不断增长的生态系统。它们都支持最新的开发实践和技术,如热重载、丰富的组件库和现代的编程语言。

如果要选择一个在未来10年内具有持续价值的框架,我会选择 Flutter,原因如下:

  1. 性能:Flutter 使用自己的渲染引擎,提供了高性能的图形和动画,这对于现代应用至关重要。

  2. 语言支持:Dart 语言由 Google 支持,并且正在不断发展,它提供了稳定的性能和未来的发展潜力。

  3. 跨平台支持:Flutter 不仅支持移动平台,还支持 Web、桌面和嵌入式设备,这使得它具有更广泛的应用范围。

  4. 成熟度和稳定性:Flutter 自2017年发布以来已经证明了其稳定性和成熟度,许多大型企业和应用都选择了 Flutter。

  5. 未来趋势:随着 5G 和物联网的发展,Flutter 的跨平台能力和高性能特性将更加重要。

当然,最终的选择还应考虑你的具体需求、团队的技术栈、项目类型和目标用户群体。每个框架都有其优势和限制,因此在做出决策时,应进行全面的评估。

flutter vs React Native 的性能差异

React Native 和 Flutter 都是流行的跨平台移动应用开发框架,它们在性能方面各有特点和优势。

React Native

  • React Native 允许使用 JavaScript 和 React 构建原生应用,其性能在不断优化。例如,React Native 0.75 版本引入了 Yoga 3.1,增强了布局能力,并继续推进新架构的稳定化,提高了性能和稳定性 。
  • React Native 的性能受限于 JavaScript 桥接层与原生代码的交互,这可能会引入额外的性能开销。但是,React Native 提供了多种优化手段,比如使用 FlatListSectionList 组件来优化长列表的渲染性能 。

Flutter

  • Flutter 使用自己的渲染引擎 Skia,并且通过 Dart 的 Ahead-Of-Time (AOT) 编译,使得应用性能非常接近原生应用。Flutter 应用通常能提供流畅的用户体验,因为它们直接与硬件交互,减少了桥接层的开销 。
  • Flutter 性能调优包括减少资源消耗操作、控制 build() 方法耗时、谨慎使用 saveLayer()、减少不透明度和裁剪的使用、优化列表渲染等 。
  • 某些 Flutter 应用性能一般可能是因为应用本身的优化不足,如过度使用复杂 Widget、资源管理不当或冗余的 UI 更新 。

总的来说,React Native 和 Flutter 都能构建高性能的移动应用,但它们的性能也受到开发者编码实践和优化工作的影响。

选择合适的框架取决于项目需求、团队熟悉度以及期望的应用性能和用户体验。

个人选择

个人理解,flutter 整体的设计理念还是比较值得学习。

但是这也是近 10 年的问题,有一点像当前 jvm 一样,也许多年后有一个前端的微服务?

整体而言设计理念+生态才是最重要的,其他的体积之类的可以优化改造。

大不了直接分别编译。

标签:03,plateform,cross,React,跨平台,Flutter,Native
From: https://www.cnblogs.com/houbbBlogs/p/18403916

相关文章

  • python3 ModuleNotFoundError: No module named 'CommandNotFound'
    前言python3报错:ModuleNotFoundError:Nomodulenamed'CommandNotFound'这是linux安装多版本python时的一个遗留问题,如果修改了默认系统的/usr/bin/python的软连接到新安装的版本,然后在/usr/bin下将名为python3的软链接指向了新版本的python。因为Python版......
  • python3 报错ModuleNotFoundError: No module named 'apt_pkg'
    前言aptupdate无法执行,python3报错ModuleNotFoundError:Nomodulenamed'CommandNotFound'这是因为将python版本升级后的问题正确做法将路径:/usr/lib/python3/dist-packages下的文件apt_pkg.cpython-36m-x86_64-linux-gnu.so,文件名没有跟随python版本进行更改,正确做......
  • 【408DS算法题】038进阶-图深度优先遍历DFS
    Index题目分析实现总结题目设计函数实现对图的深度优先遍历。分析实现类似于图的BFS的分析思路,图的DFS和二叉树的DFS思路相同,但需要额外考虑结点是否已经被访问过。此处同样用布尔数组visited来记录每个结点的访问情况,对于邻接矩阵存储方式的图的DFS,依照先序遍......
  • 20240909_031725 c语言 执行输出语句的流程
    源代码-》编译后代码-》可执行代码下图为可执行代码的示例路径:......
  • AtCoder Beginner Contest 203 (Sponsored by Panasonic) A~E 题解
    A-Chinchirorin题目大意给定三个整数\(a,b,c\),如果它们中有两个相等,输出另一个;否则,输出\(0\)。\(1\lea,b,c\le6\)输入格式\(a~b~c\)输出格式如果\(a,b,c\)中有两个相等,输出另一个;否则,输出\(0\)。样例\(a\)\(b\)\(c\)输出\(2\)\(5\)\(2\)\(5\)\(4\)......
  • 使用微信小程序-云开发时报错: Error: errCode: -401003 api parameter type error |
    错误Uncaught(inpromise)thirdScriptErrorerrCode:-401003apiparametertypeerror|errMsg:parameter.datashouldbeobjectinsteadofundefined;Error:errCode:-401003apiparametertypeerror|errMsg:parameter.datashouldbeobjectinsteadofundef......
  • Day03 链表part01| LeetCode 203. 移除链表元素,707. 设计链表,206. 反转链表
    链表理论基础链表一种通过指针串联在一起的线性结构数据域指针域(存放指向下一个节点的指针,最后一个节点的指针域指向NULL)入口节点——head头节点链表类型单链表双链表两个指针域一个指向下一个节点一个指向上一个节点循环链表首尾相连约瑟夫环问题......
  • 运用DBLINK与数据泵导数据时报错ORA-39006、ORA-39113、PLS-00352、PLS-00201、ORA-39
    问题描述:运用DBLINK与数据泵导数据时报错ORA-39006、ORA-39113、PLS-00352、PLS-00201、ORA-39097,如下所示:数据库:源端oracle12.2.0.1目标端:oracle12.2.0.11、问题重现[oracle@hisdb1scripts]$tail-500fnohup.outImport:Release12.2.0.1.0-ProductiononFriSep......
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——03完成驱动的移植
            本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前......
  • 陈润生院士新书推荐:中国生物信息学2035发展战略
    生物信息学(bioinformatics)是生命科学与计算机科学、信息科学、数学、统计学、系统科学等多学科相互交融而成的新兴学科。随着生命科学领域研究范式的变革,生物信息学已经从一门新兴交叉学科,发展成为催生生命科学领域新的研究方向和重大科学发现的重要原动力,也成为各国在生命健康和......