ios跨平台开发,该用flutter还是swift?(代码片段)

程序员大咖 程序员大咖     2022-11-29     233

关键词:

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

【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翻译,转载请注明来源。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

如何从用 Swift 编写的 Flutter 平台特定代码启动 ViewController?

】如何从用Swift编写的Flutter平台特定代码启动ViewController?【英文标题】:HowtolaunchaViewControllerfromFlutterPlatformSpecificcodewritteninSwift?【发布时间】:2019-05-0805:31:19【问题描述】:我正在为Paytm创建一个插件,并为Android和iOS编写特定... 查看详情

如何在 Flutter 中为 Web 编写特定于平台的代码?

】如何在Flutter中为Web编写特定于平台的代码?【英文标题】:Howtowriteplatformspecificcodeforwebinflutter?【发布时间】:2021-09-2800:11:26【问题描述】:在Flutter中,我们使用平台通道,允许我们调用特定于平台的API,无论是Android上的Kotli... 查看详情

google的flutter工具允许开发者开发跨平台应用

...,因为它们都需要单独的开发时间和团队。随着Google新的跨平台开发工具的最终第一个版本发布,这一切可能都将改变。想象一下,您可以使用一个工具包来编写功能,允许将UI框架单独无缝地提供给您。Flutter在今年早些时候的... 查看详情

flutter跨平台框架(dart语言)

.../-英文网)Flutter是一种趋势,势必会取代RN,成为最主流的跨平台开发框架,基于Dart语言。ios开发必须Mac电脑。android开发window、linux、Mac均可。 查看详情

flutter入门---内部分享

...解,故而借此契机,上手试试。简介Flutter是Google推出的跨平台开发框架。?前?支持iOS,Android开发,对web端和桌面端支持还在开发中。2017年年5月,Flutter发布第一个版本。2018年年12月,第一个稳定版本,1.0发布。Flutter的开发语言是... 查看详情

flutter技术概览(代码片段)

...发者在iOS和Android平台上开发高质量的原生应用。Flutter是跨平台的免费开源UI框架,iOS和Android可以共用一套代码。Flutter官网地址为https://flutter.io/。Flutter的主要优点如下:免费开源利用保持状态的热重载(HotReload)... 查看详情

跨平台开发最终选择了flutter

...。对于这些框架的原理也有深刻的认识,但是这样的跨平台开发 查看详情

Flutter插件开发未解决参考:io

】Flutter插件开发未解决参考:io【英文标题】:FlutterplugindevelopmentUnresolvedreference:io【发布时间】:2019-11-1918:58:21【问题描述】:这是我第一次尝试创建flutter插件,我从androidstudio创建了flutter插件项目并且运行良好,当我尝试为an... 查看详情

初识flutter

初识flutterflutter是Google开发的一套全新的跨平台开源框架。目前flutter已经发布很多很多版本,正在逐步的完善,它的目标其实是和reactnative一样的,就是同一份代码可以同时运行在Android和iOS两个系统上。如果你同时有reactnative和f... 查看详情

八天让ios开发者上手flutter!(代码片段)

...UI就可以提升不少身价…这些年过来,有无数的前端跨平台框架兴起。却只有flutter一家独秀&# 查看详情

八天让ios开发者上手flutter!(代码片段)

...UI就可以提升不少身价…这些年过来,有无数的前端跨平台框架兴起。却只有flutter一家独秀&# 查看详情

flutter是跨平台开发终极之选吗?android开发该如何快速上手flutter?

跨端技术是Android程序员乃至所有移动开发程序员一直在研究的课题。3月4日,谷歌正式发布了Flutter的2.0。该版本最大的特性就是可以支持五大主流的操作系统:iOS、Android、Linux、Windows和MacOS。官方甚至还说丰田将会把Flut... 查看详情

[flutter]windows平台flutter开发环境搭建(andoridstudio)(代码片段)

前两天网友在群里说起了Flutter,就了解了一下,在手机上跑了它的demo,正接就被打动了。虽然网上有很多教程,但真正开始的时候,还是会碰到很多坑。下面详细的讲解Flutter+AndroidStudio开发环境搭建。 1.下载AndroidStudio网址... 查看详情

flutter开发入门实践

 前言:  Flutter是Google推出的跨平台解决方案,  开发语言:Dart    优势:  劣势:   学习推荐:  官方网站:https://flutter.io/  书籍:《Flutter技术入门与实战》  社区:https://flutterchina.club/    ... 查看详情

ios(swift版)flutter集成关键步骤

参考技术A1.在项目目录执行fluttercreate-tmoduleXXX(flutter模块名);2.修改Podfile,设置path,关联podhelper.rb,注意采用loadFile.join(),不采用之前的eval语句,在targetdo下install;3.执行podinstall;4.修改AppDelegate为FlutterAppDelegate;5.初始化并注... 查看详情

基于weex的flutter项目框架

...适配。如今火热的Flutter相比Weex和Rn来说,给出了更好的跨平台解决方案。所以我们设计了一套基于Weex实现,底层跑在FlutterEngine上的框架。 底层的Runtime采用isolateengine,框架业务逻辑,Dom的解析逻辑和Render逻辑都跑在这里。... 查看详情

flutter介绍-flutter,h5,reactnative之间的对比

...染库Skia实现。下面我们对比一下H5、ReactNative、Flutter这些跨平台的解决方案。移动端的跨平台技术H5技术常被人提起的H5技术,其实就是网页+JavaScript。比如目前的一些流行的JS框架Vue,React,AngularJS等都是为了构建网页。针对移... 查看详情

如何在不同平台上搭建flutter开发环境(代码片段)

文章目录整体思路开发流程具体细节在Windows平台上搭建Flutter开发环境在Mac平台上搭建Flutter开发环境调试和打包运行在不同平台上的程序在Android平台上调试打包程序在IOS平台上调试和打包程序内容总结我们可以到官网的文档中... 查看详情