【CSDN 编者按】在商业和开源代码中被广泛使用的 Flutter 和 Swift 你更中意哪一个呢?本文对两者的优势、性能、流行度等方面进行比较分析,帮助您找出更适合自己项目的框架或语言。

作者 | Tim Sneath       译者 | 风车云马

出品 | CSDN(ID:CSDNnews)

以下为译文:

目前,iOS 应用程序已经成为一种有效的解决方案,如果你的公司还没有这款应用,就可能失去了潜在的收益。客户对可靠、友好的应用程序的需求从未像现在这样高。幸运的是,移动技术的进步使得开发高性能的 iOS 和 Android 应用程序变得很容易。

然而,在你正式构建应用程序之前,你必须确定选用哪个框架会更好。iOS 应用开发的两个主要选择是 Flutter/Dart 和 iOS/Swift。因此,我们对这两种移动应用程序框架作以比较,以帮助您找出更适合自己项目的框架或语言。

Flutter VS Swift

2014 年,苹果发布了其多范式编译编程语言 Swift。它是一种开源的通用语言,专为原生 iOS 开发而设计。Swift 提供了许多好处,包括:

  • 优秀的文档

  • 免费和开源

  • 代码可读性好

  • 速度快

  • 高级功能

  • 易于伸缩的动态库

Flutter 是谷歌开发的一个开源、多平台的移动 SDK。它使用 Dart 编程语言,Flutter允许你在相同的源代码中构建 iOS、Android、Linux、Windows、Mac、Google Fuchsia 和 web 应用程序。Flutter 和 Swift 有类似的优势,还有几项额外的好处:

  • 免费和开源,拥有更多的用户

  • 完美的文档

  • 速度快

  • 图形引擎

  • 加速开发的各种工具

  • 热重载

  • 兼容旧设备

  • 便于界面创建的小部件

构建速度

当你使用本地编程语言时,应用程序的构建时间都会比较快。因此,当您比较Flutter、Kotlin 或 Swift 的干净构建时间时,后一种语言肯定会更快。然而,当您额外构建时,Dart 语言也会变得更有竞争力。

上市时间

当考虑到 Flutter 与原生 iOS 开发的上市时间时,Flutter 确实很出色。很少有公司只想要一个单一平台的应用,所以如果你使用 Swift 来构建一个 iOS 应用,你还必须为 Android 开发一个单独的应用。这可能会非常昂贵,因为开发人员将不得不构建两个独立的代码库。

然而,当您将 Flutter 用于跨平台应用程序开发时,您可以利用一个代码库为多个平台开发应用程序。这些应用程序不仅可以在各自的操作系统和设备上完美运行,还可以减少开发、维护时间和费用。

此外,Flutter 的发展速度更快。有很多集成开发环境(IDE)加速了 Flutter 应用程序的开发,例如 Visual Studio Code,它有许多与 Android Studio 和 IntelliJ 相同的特性,但它更轻更快。你可以在几个月内就向市场推出一个基本的 Flutter  MVP(Minimum Viable Product,最小化可行产品),并随着市场的变化逐步添加新功能,而不是等待一年半载或更长时间来启动一个完全开发好的应用程序。

插件和代码重用性

我们已经提到了 Flutter 出色的代码重用性,以及使用单一代码库为多个平台开发应用程序的优势。该优势也减少了测试时间,因为开发者不必为两个完全独立的应用程序测试其性能;而如果使用 Swift 或其他框架,他们可能就需要这样做。Flutter 还提供了各种各样的插件,以实现更快、更容易的开发。

性能

如果你有一大笔预算为每个平台开发不同的应用,那么 Swift 是一个很好的选择。您将使用本地框架开发流畅、快速、可靠的应用程序。然而,较小的预算并不意味着你必须在性能上妥协。

Flutter 应用程序可以在所有平台上提供本机级性能,因为它们使用本机编译的代码运行,没有解释器干扰。此外,Flutter 动画包可以很容易地构建一个整洁、直观的用户界面。大多数 Flutter 动画小部件不仅具有预先设置的效果,而且也可以根据您的特定需求自定义。

流行度和用例

在 2020 年的 Stackoverflow 调查中,Flutter 在最受欢迎的框架、库和工具的使用中位居前三名。Flutter 在 GitHub 上有 118 万颗 star,而 Swift 只有 5.5 万颗。当然,这两个框架都被用来创建各种各样的应用程序:

Swift Apps:

  • LinkedIn

  • SlideShare

  • Lyft

  • Firefox

  • Eventbrite

Flutter Apps:

  • Google Ads

  • Alibaba

  • Square

  • Ebay

  • Hamilton Musical

  • Reflectly

  • Groupon

  • Cryptomaniac

  • SpaceX Go

  • Realtor.com

从 Flutter 应用程序示例中可以看到,该框架可用于各种规模的企业构建各种应用程序,包括零售商、金融机构、供应商、特许经销商等。

然而,在考虑 Swift /Dart 时,请记住在某些情况下,本地框架可能会更好地服务。如果:

  • 你的应用程序大小比较小(1-3MB),因为 Flutter 应用程序往往比本地应用程序大很多。

  • 当你更新你的应用时,你需要使用热代码(hot code)推送来跳过应用商店(App Store)的审查过程。

  • 你正在开发一款更复杂的游戏,如《绝地求生》(PUBG)。Flutter 主要是为应用程序设计的,而不是游戏。然而,这个框架对于简单的游戏来说工作得很好。

iOS 应用程序的附加功能

当着眼于为 iOS 应用开发选择合适的框架时,不要认为所有很酷的苹果解决方案都只与本地框架兼容。它可以无缝集成以下功能:

  • Apple HealthKit ——允许设备将用户的健康和健身数据读取/写入到他们的健康应用程序,为用户增加了不同层级的信息,并与他们当前的解决方案完美匹配。

  • Machine learning ——利用设备上的机器学习开发创新、强大的功能,给用户带来全新的体验。

  • HomeKit ——应用程序和设备能够无缝连接到用户当前的智能家庭系统,并使用 Siri 控制它们。

结论

Swift 本身就是一个很棒的本地框架,但 Flutter 提供了更多好处,包括使用单一源代码为多个平台开发应用程序的能力。Flutter 可以完美地为各种各样的应用程序工作,它享有更多的社区支持,它将节省您的开发时间和资金。Swift 适用于原生应用,但随着 Flutter 的不断改进,它在 iOS 应用开发方面甚至会超过 Swift。

原文链接:https://evrone.com/flutter-vs-swift

声明:本文由CSDN翻译,转载请注明来源。

60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!

直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!

iOS 跨平台开发,该用 Flutter 还是 Swift?相关推荐

  1. Delphi XE10 精简 支持 Android 、 IOS 跨平台开发

    2019独角兽企业重金招聘Python工程师标准>>> 版本说明: 由于 XE5 时代 Delphi 安装体积急剧膨胀(完整安装接近 10G,程序文件.安装缓存超过 20G+),按照 ...

  2. 移动端跨平台开发方案解析

    原生开发 Native App是一种基于智能手机本地操作系统如iOS.Android.WP并使用原生程式编写运行的第三方应用程序,也叫本地app.一般使用的开发语言为Java.C++.Objectiv ...

  3. 原生革命--跨平台开发技术解析

    这篇文章,我将着重分析当前主流跨平台开发解决方案(偏架构)如Flutter.RN.Weex.Hybrid App,并对新晋跨端解决方案Fusion和Chameleon做一些分析,在传统原生开发不断被唱 ...

  4. android应用程序开发_Kotlin与Flutter:Android跨平台应用程序开发,到底选择哪个?...

    移动互联时代--应用为王 移动互联网时代,很难想象没有应用程序的生活.从我们睁眼醒来的那一刻到我们真正睡觉的那一刻,无数的应用程序围绕着我们.根据统计,国人平均在移动设备上花费4个小时以上! 而这其中 ...

  5. 跨平台开发Flutter初体验

    Flutter的横空出世,很大程度上降低了移动应用的开发成本:我是一名苦逼的iOS开发者,兼职写点Android开发,对Flutter的出现比一般人要敏感很多,在此之前个人的看法是跨平台没什么前景,学 ...

  6. 为什么 Flutter 是跨平台开发的终极之选

    跨平台开发是当下最受欢迎.应用最广泛的框架之一.能实现跨平台开发的框架也五花八门,让人眼花缭乱.最流行的跨平台框架有 Xamarin.PhoneGap.Ionic.Titanium.Monaca.Se ...

  7. 为什么Flutter是跨平台开发的终极之选

    作者 | Anchal Malik 译者 | 王强 来源 | 前端之巅 跨平台开发是当下最受欢迎.应用最广泛的框架之一.能实现跨平台开发的框架也五花八门,让人眼花缭乱. 最流行的跨平台框架有 Xama ...

  8. 为什么Flutter是跨平台开发的终极之选,这篇文章可以满足你80%日常工作

    本质上来说,跨平台开发就是"一石二鸟"的开发技术.下面简单解释一下.早期没有跨平台框架的时候,开发者必须为同一应用的各个平台(比如 Android.iOS.Windows 等)分别 ...

  9. 移动端跨平台开发Flutter 与 React Native对比

    移动端跨平台开发Flutter 与 React Native 深入对比分析 2019年6月21日20:41:35 发表评论 154 views 移动端跨平台在经历数年沉浮之后,如今还能在舞台聚光灯下雀 ...

最新文章

  1. 【EventBus】发布-订阅模式 ( Android 中使用 发布-订阅模式 进行通信 )
  2. 使用ILSpy探索C#7.0新增功能点
  3. 笔记,Vector类模板的基本功能
  4. List和Set以及Map的选用
  5. 转移到ios下载安卓_安卓和IOS角色互转 和平精英跨系统角色转移服务将上线
  6. 【微信插件】P3微信插件测试使用步骤
  7. 谈谈几个SpringCloud常见面试题及答案
  8. thinkphp 常用SQL执行语句总结
  9. EF调用执行Oracle中序列
  10. python: 在pycharm打开带有中文字符的文件时,乱码,File was loaded in the wrong encoding: ‘UTF-8‘
  11. springboot 学习笔记【1】开发第一个spring boot应用
  12. 课程设计题五:汽车尾灯控制器设计
  13. Sun jdk、Open jdk、Icedtea jdk 之间的关系
  14. 运放的原理、应用、参数和命名规则
  15. 英文论文画图常用软件
  16. 为什么oracle依旧是很多大公司数据库首选?
  17. #汇编语言字符串的输出(dosbox运行时输出乱码问题解决)
  18. android开发 图片旋转
  19. 编程修养-C语言篇(下)(转)
  20. 在大学时的分布式数据库读书笔记 拿出来分享

热门文章

  1. X server:linux 图形界面原理
  2. ZBrush中如何实现智能对称
  3. mysqlbackup 重建带有gtid特性的slave
  4. ZooKeeper在分布式应用中的作用
  5. JavaScript基本数据类型和引用数据类型
  6. 计算机中 堆 、栈、
  7. HTML标记之Form表单
  8. [转]linux下完全备份数据库mysql
  9. POJ-3422-Kaka's Matrix Travels(最小费用最大流)
  10. 枚举类型和int以及string的相互转换