iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
0
Mobile Development

前端工程師的 Flutter 新手村挑戰系列 第 2

【前端的 Flutter 新手村】Day2-為什麼選擇Flutter?React Native、原生開發、PWA不好嗎?

決定要來研究App後,我看了許多資料,整理了三種常見的App開發方式:Native App、Hybrid App、Progressive Web App:

Native App 原生開發

最基本的開發方式就是原生開發,依照Android、iOS平台系統規範的開發語言、開發工具來製作App:

  • Android
    使用Java、C語言、Kotlin編寫,以Eclipse、Android Studio作為開發工具
  • iOS
    使用Swift、Objective-C編寫,以Xcode作為開發工具

原生開發的最大優勢就是效能好、互動性佳,能直接操控硬體裝置,但缺點是跨平台不能共用程式碼,需個別開發,在這種情況下,其開發人力及時間就會增加。

Hybrid App 混合開發

混合開發方式結合了App的原生開發方式與Html5技術混合運用,並且彌補了原生開發的缺點,跨平台的App不需要分別開發,同一套程式碼只需要做小部分修改即可供Android及iOS使用。而且程式碼維護方便,App更新速度也快,不需要每次更新都上應用程式商店審核,在伺服端修改更新即可。

常見的混合開發技術有React Native、Flutter、Cordova、AppCan......等

  • React Native
    React Native 自2015年創立,發展漸趨成熟,使用人數也不少,具有豐富的第三方套件,而且開發語言使用基於JS的React編寫,以網頁開發人員來說是個不錯的App入門技術。
  • Flutter
    Flutter較年輕,2018年創立,第三方套件不多,但Google官方的套件已夠用,開發語言為Dart。程式碼可直接跨平台,官方UI套件基於Material Design設計。

Cordova、AppCan就不另外介紹了。

Progressive Web App (PWA) 漸進式網頁

2016年 Google提出的概念,PWA的存在是為結合網站和 App 二者的特性,透過網站呈現如 APP 般的瀏覽優點,提供更好的用戶體驗。因為PWA的本質是網站,程式語言就是用Html5、Css3、JS,當然也沒有跨平台需要不同程式版本的問題,更新內容也是直接從伺服端更改就可以了。


總結以上

原生開發對我來說有點門檻太高了,而PWA雖然是結合了App和Web的優點,但目前有真正做到PWA的網站也不多,而且不能上架到App商店,所以選擇了投資報酬率相對較高的混合開發。

但為什麼我最後會選擇用Flutter而不是React Native呢?雖然React Native使用的程式語言對前端比較友善,但從Google Trends來看,Flutter搜尋熱度逐漸提升,使用人數漸增,甚至快超越React Native(如下圖)
https://ithelp.ithome.com.tw/upload/images/20190917/2012111163HAUqvN9O.png
而且使用Dart開發讓效能直接提升不少,更有跨平台好處,只要寫一套就可以讓Android和iOS使用,這麼俗又大碗的買賣誰不要~以未來性來看,我認為現在投資Flutter是個不錯的選擇/images/emoticon/emoticon37.gif


分享一些個人覺得很值得參考的網站:
Google PWA官網
更詳細的PWA分享看這裡
2019年React Native和Flutter比較


上一篇
【前端的 Flutter 新手村】Day1-網站前端也想來挑戰寫個App
下一篇
【前端的 Flutter 新手村】Day3-淺談Flutter的優秀之處
系列文
前端工程師的 Flutter 新手村挑戰30

尚未有邦友留言

立即登入留言