iOS 跨平臺(tái)開發(fā),該用 Flutter 還是 Swift?
【CSDN 編者按】在商業(yè)和開源代碼中被廣泛使用的 Flutter 和 Swift 你更中意哪一個(gè)呢?本文對(duì)兩者的優(yōu)勢(shì)、性能、流行度等方面進(jìn)行比較分析,幫助您找出更適合自己項(xiàng)目的框架或語言。
以下為譯文:
目前,iOS 應(yīng)用程序已經(jīng)成為一種有效的解決方案,如果你的公司還沒有這款應(yīng)用,就可能失去了潛在的收益。客戶對(duì)可靠、友好的應(yīng)用程序的需求從未像現(xiàn)在這樣高。幸運(yùn)的是,移動(dòng)技術(shù)的進(jìn)步使得開發(fā)高性能的 iOS 和 Android 應(yīng)用程序變得很容易。
然而,在你正式構(gòu)建應(yīng)用程序之前,你必須確定選用哪個(gè)框架會(huì)更好。iOS 應(yīng)用開發(fā)的兩個(gè)主要選擇是 Flutter/Dart 和 iOS/Swift。因此,我們對(duì)這兩種移動(dòng)應(yīng)用程序框架作以比較,以幫助您找出更適合自己項(xiàng)目的框架或語言。
Flutter VS Swift
2014 年,蘋果發(fā)布了其多范式編譯編程語言 Swift。它是一種開源的通用語言,專為原生 iOS 開發(fā)而設(shè)計(jì)。Swift 提供了許多好處,包括:
優(yōu)秀的文檔
免費(fèi)和開源
代碼可讀性好
速度快
高級(jí)功能
易于伸縮的動(dòng)態(tài)庫
Flutter 是谷歌開發(fā)的一個(gè)開源、多平臺(tái)的移動(dòng) SDK。它使用 Dart 編程語言,F(xiàn)lutter允許你在相同的源代碼中構(gòu)建 iOS、Android、Linux、Windows、Mac、Google Fuchsia 和 web 應(yīng)用程序。Flutter 和 Swift 有類似的優(yōu)勢(shì),還有幾項(xiàng)額外的好處:
免費(fèi)和開源,擁有更多的用戶
完美的文檔
速度快
圖形引擎
加速開發(fā)的各種工具
熱重載
兼容舊設(shè)備
便于界面創(chuàng)建的小部件
構(gòu)建速度
當(dāng)你使用本地編程語言時(shí),應(yīng)用程序的構(gòu)建時(shí)間都會(huì)比較快。因此,當(dāng)您比較Flutter、Kotlin 或 Swift 的干凈構(gòu)建時(shí)間時(shí),后一種語言肯定會(huì)更快。然而,當(dāng)您額外構(gòu)建時(shí),Dart 語言也會(huì)變得更有競(jìng)爭(zhēng)力。
上市時(shí)間
當(dāng)考慮到 Flutter 與原生 iOS 開發(fā)的上市時(shí)間時(shí),F(xiàn)lutter 確實(shí)很出色。很少有公司只想要一個(gè)單一平臺(tái)的應(yīng)用,所以如果你使用 Swift 來構(gòu)建一個(gè) iOS 應(yīng)用,你還必須為 Android 開發(fā)一個(gè)單獨(dú)的應(yīng)用。這可能會(huì)非常昂貴,因?yàn)殚_發(fā)人員將不得不構(gòu)建兩個(gè)獨(dú)立的代碼庫。
然而,當(dāng)您將 Flutter 用于跨平臺(tái)應(yīng)用程序開發(fā)時(shí),您可以利用一個(gè)代碼庫為多個(gè)平臺(tái)開發(fā)應(yīng)用程序。這些應(yīng)用程序不僅可以在各自的操作系統(tǒng)和設(shè)備上完美運(yùn)行,還可以減少開發(fā)、維護(hù)時(shí)間和費(fèi)用。
此外,F(xiàn)lutter 的發(fā)展速度更快。有很多集成開發(fā)環(huán)境(IDE)加速了 Flutter 應(yīng)用程序的開發(fā),例如 Visual Studio Code,它有許多與 Android Studio 和 IntelliJ 相同的特性,但它更輕更快。你可以在幾個(gè)月內(nèi)就向市場(chǎng)推出一個(gè)基本的 Flutter MVP(Minimum Viable Product,最小化可行產(chǎn)品),并隨著市場(chǎng)的變化逐步添加新功能,而不是等待一年半載或更長(zhǎng)時(shí)間來啟動(dòng)一個(gè)完全開發(fā)好的應(yīng)用程序。
插件和代碼重用性
我們已經(jīng)提到了 Flutter 出色的代碼重用性,以及使用單一代碼庫為多個(gè)平臺(tái)開發(fā)應(yīng)用程序的優(yōu)勢(shì)。該優(yōu)勢(shì)也減少了測(cè)試時(shí)間,因?yàn)殚_發(fā)者不必為兩個(gè)完全獨(dú)立的應(yīng)用程序測(cè)試其性能;而如果使用 Swift 或其他框架,他們可能就需要這樣做。Flutter 還提供了各種各樣的插件,以實(shí)現(xiàn)更快、更容易的開發(fā)。
性能
如果你有一大筆預(yù)算為每個(gè)平臺(tái)開發(fā)不同的應(yīng)用,那么 Swift 是一個(gè)很好的選擇。您將使用本地框架開發(fā)流暢、快速、可靠的應(yīng)用程序。然而,較小的預(yù)算并不意味著你必須在性能上妥協(xié)。
Flutter 應(yīng)用程序可以在所有平臺(tái)上提供本機(jī)級(jí)性能,因?yàn)樗鼈兪褂帽緳C(jī)編譯的代碼運(yùn)行,沒有解釋器干擾。此外,F(xiàn)lutter 動(dòng)畫包可以很容易地構(gòu)建一個(gè)整潔、直觀的用戶界面。大多數(shù) Flutter 動(dòng)畫小部件不僅具有預(yù)先設(shè)置的效果,而且也可以根據(jù)您的特定需求自定義。
流行度和用例
在 2020 年的 Stackoverflow 調(diào)查中,F(xiàn)lutter 在最受歡迎的框架、庫和工具的使用中位居前三名。Flutter 在 GitHub 上有 118 萬顆 star,而 Swift 只有 5.5 萬顆。當(dāng)然,這兩個(gè)框架都被用來創(chuàng)建各種各樣的應(yīng)用程序:
Swift Apps:
LinkedIn
SlideShare
Lyft
Firefox
Eventbrite
Flutter Apps:
Google Ads
Alibaba
Square
Ebay
Hamilton Musical
Reflectly
Groupon
Cryptomaniac
SpaceX Go
Realtor.com
從 Flutter 應(yīng)用程序示例中可以看到,該框架可用于各種規(guī)模的企業(yè)構(gòu)建各種應(yīng)用程序,包括零售商、金融機(jī)構(gòu)、供應(yīng)商、特許經(jīng)銷商等。
然而,在考慮 Swift /Dart 時(shí),請(qǐng)記住在某些情況下,本地框架可能會(huì)更好地服務(wù)。如果:
你的應(yīng)用程序大小比較小(1-3MB),因?yàn)?Flutter 應(yīng)用程序往往比本地應(yīng)用程序大很多。
當(dāng)你更新你的應(yīng)用時(shí),你需要使用熱代碼(hot code)推送來跳過應(yīng)用商店(App Store)的審查過程。
你正在開發(fā)一款更復(fù)雜的游戲,如《絕地求生》(PUBG)。Flutter 主要是為應(yīng)用程序設(shè)計(jì)的,而不是游戲。然而,這個(gè)框架對(duì)于簡(jiǎn)單的游戲來說工作得很好。
iOS 應(yīng)用程序的附加功能
當(dāng)著眼于為 iOS 應(yīng)用開發(fā)選擇合適的框架時(shí),不要認(rèn)為所有很酷的蘋果解決方案都只與本地框架兼容。它可以無縫集成以下功能:
Apple HealthKit ——允許設(shè)備將用戶的健康和健身數(shù)據(jù)讀取/寫入到他們的健康應(yīng)用程序,為用戶增加了不同層級(jí)的信息,并與他們當(dāng)前的解決方案完美匹配。
Machine learning ——利用設(shè)備上的機(jī)器學(xué)習(xí)開發(fā)創(chuàng)新、強(qiáng)大的功能,給用戶帶來全新的體驗(yàn)。
HomeKit ——應(yīng)用程序和設(shè)備能夠無縫連接到用戶當(dāng)前的智能家庭系統(tǒng),并使用 Siri 控制它們。
結(jié)論
Swift 本身就是一個(gè)很棒的本地框架,但 Flutter 提供了更多好處,包括使用單一源代碼為多個(gè)平臺(tái)開發(fā)應(yīng)用程序的能力。Flutter 可以完美地為各種各樣的應(yīng)用程序工作,它享有更多的社區(qū)支持,它將節(jié)省您的開發(fā)時(shí)間和資金。Swift 適用于原生應(yīng)用,但隨著 Flutter 的不斷改進(jìn),它在 iOS 應(yīng)用開發(fā)方面甚至?xí)^ Swift。
原文鏈接:https://evrone.com/flutter-vs-swift
聲明:本文由CSDN翻譯,轉(zhuǎn)載請(qǐng)注明來源。
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

面試題】即可獲取
