成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kotlin vs Flutter,我到底應該怎么選?

開發 開發工具
在移動應用開發方面,Kotlin和Flutter是目前比較火熱的兩門技術。其中,Kotlin是由Jetbrains研發,后被Google大力扶持,Flutter則是由Google自己獨立研發的。

 [[342166]]

正文 

在移動應用開發方面,Kotlin和Flutter是目前比較火熱的兩門技術。其中,Kotlin是由Jetbrains研發,后被Google大力扶持,Flutter則是由Google自己獨立研發的。從目前Google官方的態度來看,這兩門技術都被無限看好,Google也是在它們身上投入了大量的資源。但也正是由于Google的這種態度,導致很多開發者變得迷茫了:我到底是應該學習Kotlin還是Flutter呢?

關于這個問題,我也是被問了無數次,但每次回答都只能簡單回復幾句,無法全面概括,可能也做不到直至要害。因此一直以來,我都準備專門寫一篇文章來詳細對比Kotlin和Flutter,幫助大家答疑解惑。

巧合的是,前段時間瀏覽網頁,無意看到了一篇英文文章專門對這個問題進行了深度分析,我閱讀完之后深感自己寫不出比這更好更全面的文章了,因此決定直接將這篇文章翻譯并分享出來,相信一定會對大家有所幫助。

本篇文章的英文原文地址是:

https://goobar.io/2019/06/13/kotlin-vs-flutter-are-you-comparing-them-fairly/

我到底應該學Kotlin還是Flutter呢? 

這個問題要視情況而定。

不過在展開討論具體的情況之前,我們更應該先來審視一下,這是否是一個恰當的問題。因為,拿Kotlin和Flutter來進行比較,在一定程度上就好像是在拿蘋果和橘子來進行比較。

從概念上講,Kotlin是一門編程語言,而Flutter是一個跨平臺的UI工具集。

不過,由于這兩門技術之間的差異太過巨大,導致這個問題本身其實就是一個龐大的問題,因此要想很好地回答這個問題,我們必須得要先去了解一些其他相關的問題。

為什么你想要學習Kotlin或Flutter?

首先,你要問自己的第一個問題就是:“我為什么要學習Kotlin或Flutter?學會之后可以用來做什么?” 這個問題又可以展開為以下3點:

  • 你想要學習移動開發嗎?
  • 你想要得到一份移動開發者的工作嗎?
  • 你想要以個人開發者或小型團隊來開發一款自己的移動產品嗎?

關于這幾點我們逐個來進行分析。

1. 你想要學習移動開發嗎?

如果你的首要目標是對移動開發有所涉獵,并且能夠構建出一個小型的業余項目,那么選擇Kotlin還是Flutter其實是沒有什么太大區別的。

然而,需要謹記的是,當你在Flutter和Kotlin之間做選擇的時候,其實你也是在選擇:

  • Flutter/Dart
  • iOS/Swift/Objective-C
  • Android/Kotlin/Java

Flutter是一個完整的應用開發工具集,其中包括了使用Dart來作為編程語言,以及一系列的UI組件,還有一些獨有的編程模式、最佳實踐技巧、調試方法、工作流程等。

要想將Flutter和其他的平臺工具集進行對比,你還需要對它們所處的生態有比較完整的了解才行。

2. Kotlin和Flutter哪個更容易獲得一份工作?

如果你的首要目標是得到一份移動開發者的工作,那么比較好的一種選擇方式就是看哪種技能的需求量更高一些。

在LinkedIn上搜索與Kotlin和Flutter相關的工作崗位,得到的結果如下(數據限定在美國區域,時間截止到2019年6月):

  • Flutter:315份結果
  • Kotlin:3342份結果

Flutter畢竟還是一門比較新的技術,并且它對于一位移動開發者而言,學習成本是比較巨大的。相比之下,Kotlin對于Android開發者而言則非常容易上手??赡芤彩且驗檫@些原因,Flutter的工作崗位相對少了許多。

而工作崗位數量上的差別,可能同時意味著這兩件事情:

在你所在的地區,想要找一份Flutter相關的工作會相對比較困難。

如果你對Flutter已經有了足夠多的了解,將更容易在一些對Flutter需求量比較高的地區獲得一份工作。

這看上去有一些自相矛盾,并且這個方案的可實施性還要視你目前的生活狀況、找工作的緊急程度等條件因素而定。

而從另一方面來看,現在仍然有大量的需求招聘Android原生開發者,并且Kotlin對于更多人來說也是更加簡單易學的。當然,大量的工作崗位意味著將會有更多的選擇機會,同時也意味著會有更多的競爭者。

3. Kotlin和Flutter哪個更適合個人或小型團隊來開發產品?

如果你是想要使用Kotlin或Flutter來開發一款自己的應用程序,并投入商業運作,那么剛才所討論的那些你可以全部忘記,我們來重新思考一張更加完整的版圖。

如果你正在開發一款移動產品,那么你非常有可能希望它能夠同時運行在iOS和Android這兩大平臺上。

使用Flutter你可以輕松做到這一點,而使用Kotlin則非常困難。

如果你想使用Kotlin來進行跨平臺開發,可以構建一個Kotlin多平臺項目,也可以分別單獨開發一套iOS和Android的項目工程,但是不管使用哪種方式,你都必須同時對iOS和Android的原生開發有足夠多的了解才行。

所以,如果你的目標非常明確,就是要以低成本的方式開發一款跨平臺應用程序,那么Flutter無疑是更加合適的選擇。我們稍后會針對這一點進行更加詳細的討論。

你想要開發的到底是什么?

關于這個問題,也可以更加詳細地將它展開成以下5點:

  • 你想要開發一款出色的Android應用嗎?
  • 你想要開發一款出色的iOS應用嗎?
  • 你想要開發一款可以同時運行在iOS和Android平臺上的應用嗎?
  • 你希望你的應用程序不僅僅運行在移動平臺嗎?
  • 你需要自己來編寫后臺服務器程序嗎?

這些問題我們還是逐個進行討論。

1. 你想要開發一款出色的Android應用嗎?

如果你的目標是開發一款出色的Android應用,并且使用Android平臺提供給我們的各種最新特性,那么請選擇原生Android開發。

當然,這并不意味著你就必須要使用Android+Kotlin的組合模式,Android+Java的組合在未來很長一段時間內仍然是可以完美工作的。不過,我堅信學習Kotlin能夠讓你更加享受代碼的開發過程。

2. 你想要開發一款出色的iOS應用嗎?

類似地,如果你的目標是開發一款出色的iOS應用,并且使用平臺提供的各種最新特性,那么我的建議是使用Swift語言來進行原生iOS開發。

3. 你想要開發一款可以同時運行在iOS和Android平臺上的應用嗎?

如果你想要開發的是一款能夠同時運行在移動雙平臺的應用程序,這個問題就變得有趣了,因為在Kotlin和Flutter的選擇上面你將會有3種選項:

  • Android和iOS應用都使用原生的開發方式。
  • 開發兩個原生應用程序,但使用Kotlin多平臺項目來共享代碼。
  • 開發一個Flutter應用。

同時使用原生開發的方式要求你或你的團隊在雙平臺之間各自實現,且沒有任何代碼共享。如果你是位個人開發者,這可能會是最為低效的一種選項,除非你對iOS和Android的原生開發都非常精通。但同時這也會是最為安全的一種選項,因為原生開發是最成熟的一種開發方式,不管蘋果還是Google,未來都不可能放棄對原生開發的支持,并且你還能盡快使用到各種平臺的最新特性。

而如果你想開發兩個原生的應用程序,但是要盡可能多地共享兩個平臺之間的代碼,那么可以考慮構建一個Kotlin多平臺項目。不過這對于缺少經驗的開發者而言應該不是最佳的選項,因為Kotlin多平臺功能還很新,能夠使用的工具和第三方庫也非常少。

而開發一個Flutter應用應該是讓你的應用程序能夠同時運行到iOS和Android平臺上最快速的方式了,尤其當你是一位個人開發者,使用Flutter將可以節省大量的開發時間。另外,由于你并不需要接觸多少系統底層的API,也不用在乎不同平臺之間的視覺體驗和用戶體驗差異,因此可以省去很多編寫平臺專屬優化代碼的時間。

4. 你希望你的應用程序不僅僅運行在移動平臺嗎?

Flutter團隊并沒有僅僅只是把功能限定在了移動平臺上,而是將它進一步延伸到了網頁平臺,當然這個功能目前還在開發當中。Flutter給我們提供的便利性就是可以使用同一份代碼來讓應用程序運行到不同的平臺上面,而且隨著Flutter支持的平臺越多,使用Flutter的性價比就會越高。

當然你也可以考慮使用Kotlin多平臺項目來支持網頁平臺的開發,但是始終要記得,Kotlin多平臺項目的核心思路是共享代碼,因此你還是要為每個平臺去編寫原生的代碼,比如開發UI界面,以及對共享代碼進行調用等。注意,隨著你要支持的平臺越多,這種方案的成本也會越大。

5. 你需要自己來編寫后臺服務器程序嗎?

另外可能還有一種比較少見的場景,你需要自己來編寫后臺服務器程序嗎?一般的公司都會有專門的服務器人員來開發后臺服務器程序,而如果你需要自己來編寫服務器程序的話,Kotlin是值得進行研究的,因為借助Ktor框架可以輕松實現服務器端程序的編寫,而掌握Kotlin語言則是使用Ktor框架的前提條件。

你是否已經是一名移動開發者? 

關于到底是選擇Kotlin還是Flutter,我們還需要將一個重要的因素考慮在內,就是你當前的開發經驗以及技術能力在什么層次。這里討論以下兩種可能:

  • 你已經是一名Android開發者了?
  • 你已經是一名iOS開發者了?

1. 你已經是一名Android開發者了?

如果你已經非常熟悉Android原生開發了,學習Kotlin將會比學習Flutter快上許多倍。Kotlin會在你當前已掌握的知識基礎上迭代累加,并且能讓你的Android程序開發變得更有效率。

另外,學習Kotlin還可以讓你擁有開發后臺服務器程序的能力,只需要借助Ktor框架就能快速地開發出一個簡單的后臺服務器程序,從而讓你的工作流程變得更加簡單。

而學習Flutter則需要你去掌握一門新的語言(Dart),并且還要去了解一個全新的開發生態,這將需要花費比學習Kotlin多上許多倍的時間。

如果你并不是想要享受Flutter跨平臺特性所帶來的便利性,僅僅使用Flutter來開發Android平臺專屬的應用程序是一件沒有意義的事情。

2. 你已經是一名iOS開發者了?

而如果你是一名iOS開發者,現在想要了解應該學習Flutter還是Kotlin,情況就有點不同了。

如果你希望繼續使用原生的方式來開發iOS程序,不管Kotlin還是Flutter其實都起不到什么太大的作用。不過Kotlin至少可以給你提供一種編寫后臺服務器程序的能力。

而如果你想要開發跨平臺的應用程序,那么就需要在Kotlin多平臺項目和Flutter之間做選擇了。

正如前面所討論的,Flutter是將一套獨立的開發流程應用到了兩個移動平臺上面,而Kotlin多平臺項目則需要你對Kotlin和每個平臺的原生開發都有一定的了解才行。

所以在這種情況下,不論如何你都必須學習一門新語言(Dart或Kotlin),以及一套新的開發框架(Flutter或Android)。

你考慮過選擇Kotlin或Flutter的風險嗎? 

每當你準備學習一項新技術時,都會伴隨著一定的風險。在Kotlin和Flutter的選擇上面,有一些風險是值得考慮的。

Kotlin已經是一門相當穩定的技術,并且支持Android平臺開發已經有超過兩年的時間了。它可以和現有的Android工程代碼完全兼容,是一種風險非常低的方案,基本不會影響到你當前項目的穩定性。

相比較而言,Flutter則是一門風險相對較高的技術,因為它已經完全脫離了應用程序的原生開發方式。目前使用Flutter技術的成功項目案例比較少,對這項技術非常熟悉的開發者也比較少,這在招聘方面會造成一定的難度,可能需要現有的團隊都去學習這門新技術才行。

此外,Google曾經有過在不進行任何通知的情況下就將一個項目停掉的歷史,所以有些人或許會擔心Google未來是否會有可能放棄對Flutter或Kotlin的支持。

事實上,不管是Flutter還是Kotlin,目前都已經具備一定的規模,Google在短期內是不太可能放棄這兩項技術的,因此不管你的選擇是什么,都不必在這一點上擔心。

所以,你會學習Kotlin還是Flutter呢? 

看到這里,或許本篇文章在Kotlin和Flutter的選擇上面已經給你帶來了一些靈感,但它最終是沒有標準答案的。所以如果你想要讓我給出一個結論的話,我的回答仍然還是:這要視情況而定。

具體的情況最后再來簡單概括一下吧:

如果你想要快速找到一份移動開發者的工作,建議學習Kotlin來進行原生的Android開發(或Swift來進行iOS開發)。

如果你想要快速構建自己的跨平臺應用,建議嘗試Flutter。

如果你們的團隊想要構建跨平臺應用,可以考慮使用Flutter,原生開發,以及Kotlin多平臺項目。這三種選項其實都是可行的,具體的選擇要取決于你們團隊的規模、結構、以及項目本身。

如果你或你們團隊想要將一些重要的功能邏輯在多個平臺上面重用的話,建議了解一下Kotlin多平臺項目。

本文轉載自微信公眾號「郭霖」,可以通過以下二維碼關注。轉載本文請聯系郭霖公眾號。

 

責任編輯:武曉燕 來源: 郭霖
相關推薦

2022-05-23 09:56:04

前端ReactJSFlutter

2024-01-25 18:00:56

微服務系統KafkaRabbitMQ

2021-03-04 09:11:57

日志開發打印

2024-11-06 16:07:39

2010-01-07 10:09:38

千兆網絡交換機

2019-03-18 10:32:33

容災雙活同城

2025-04-02 11:40:00

框架FlaskDjango

2024-12-26 00:38:10

Bolt.newAILLM

2020-01-09 15:35:54

ReactAngularVue.js

2023-11-03 08:18:59

PostgresMySQL

2023-09-06 14:11:03

數據庫Redis消息隊列

2023-11-27 12:24:23

算法模型業務模型

2023-06-13 07:12:10

顯卡丐版游戲

2023-06-12 07:17:01

顯卡靜音旗艦版

2015-09-08 09:20:49

案例研究混合云云部署

2021-05-10 06:58:41

ChromeFlash版本號

2021-01-21 05:51:52

Chrome FlashWindows

2025-04-21 16:27:18

AIGPT?3.5工具

2019-09-19 08:00:00

Visual StudVisual Stud編程語言

2015-03-04 09:39:31

對象存儲系統Hadoop云存儲系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷中文在线 | 日本网站在线看 | 粉嫩国产精品一区二区在线观看 | 中文字幕亚洲精品在线观看 | 特级做a爰片毛片免费看108 | 日韩α片 | 日韩av一区二区在线观看 | 日韩在线观看 | av喷水| 羞羞视频免费在线观看 | 超碰在线播 | 国产视频三级 | 蜜臀久久 | 国产一区二区三区视频在线观看 | 欧美日韩国产在线观看 | 91亚洲精选 | 日韩在线一区二区三区 | 亚洲 精品 综合 精品 自拍 | 黑人成人网 | 日本成年免费网站 | a黄毛片| 黄网站色大毛片 | 成人黄色a | 亚洲视频在线一区 | 日韩精品成人 | 99re| 99精品在线观看 | 欧美日批 | 国产99久久 | 麻豆久久久久 | 国内久久 | 亚洲一区二区av在线 | 欧美一级大片免费看 | 亚洲精品v | 天堂资源视频 | 久久99精品久久久久子伦 | 黄色av网站在线观看 | 黄a网| 久久久久久成人 | 综合久久国产 | 久久九七|