Just My Life & My Work

最近踏入跨平台開發,過去有開發過 Xamarin 和 Ionic 的我,原先對跨平台不屑一顧,不過在遇到 Flutter 之後,開始有不一樣的期待!為什麼呢?

第一,開發效率比其他跨平台程式語言還要好;第二,成果效能不輸給原生開發。

在此節錄高手的電子書內容,跟著前人的腳步學習,代表好的開始~😀

其實在幫忙維護公司產品時,覺得花太多時間在編譯上,每次編譯動輒一分鐘以上,若不小心動到核心檔案,編譯時間可能將近 5 分鐘,等待的過程我會滑手機,或是想著下一步要怎麼改動程式碼,行雲流水的思緒被中斷,實在不是很爽快呢~

因緣際會接觸了 Flutter 跨平台開發,第一次聽到 Flutter 是在港商公司,我的 Leader 耳聞 Google 最新跨平台技術誕生,就跟老闆提議可考慮用此技術來改善 UI/UX 不平衡的狀況。不久,老闆就裁掉 50 多人的 IT 部門,很快再招募新一批人馬,使用 Flutter 快速迭代開發,我看到上架到 App Store,下巴差點沒掉下來⋯⋯

如今已過兩年,Flutter 發展得比 React Native 還要蓬勃,想必是其有過人之處!😌

首先來了解,原生開發的特色與有何優缺點~

原生開發

原生應用程序是指某一個移動平台(比如 iOS 或 Android)所特有的應用,使用相應平台支持的開發工具和語言,並直接調用系統提供的 SDK API。

比如 Android 原生應用就是指使用 Java 或 Kotlin 語言直接調用 Android SDK 開發的應用程序;而 iOS 原生應用就是指通過 Objective-C 或 Swift 語言直接調用 iOS SDK 開發的應用程序。

原生開發有以下主要優勢:

  • 可訪問平台全部功能(定位、相機、藍芽、陀螺儀);
  • 速度快、性能高、可以實現複雜動畫及繪製,整體用戶體驗非常好;

主要缺點:

  • 平台特定,開發成本高;不同平台必須維護不同代碼,人力成本隨之變大;
  • 內容固定,動態化弱,大多數情況下,有新功能更新時只能發新版;

在移動互聯網發展初期,業務場景並不復雜,原生開發還可以應對產品需求迭代。但近幾年,隨著物聯網時代到來、移動互聯網高歌猛進,日新月異,在很多業務場景中,傳統的純原生開發已經不能滿足日益增長的業務需求。主要表現在:

  • 動態化內容需求增大;當需求發生變化時,純原生應用需要通過版本升級來更新內容,但應用上架、審核是需要周期的,這對高速變化的互聯網時代來說是很難接受的,所以,對應用動態化(不發新版也可以更新應用內容)的需求就變的迫在眉睫。
  • 業務需求變化快,開發成本變大;由於原生開發一般都要維護 Android、iOS 兩個開發團隊,版本迭代時,無論人力成本,還是測試成本都會變大。

總結一下,純原生開發主要面臨動態化開發成本兩個問題,而針對這兩個問題,誕生了一些跨平台的動態化框架。

跨平台技術簡介

針對原生開發麵臨問題,人們一直都在努力尋找好的解決方案,而時至今日,已經有很多跨平台框架(注意,本書中所指的「跨平台」若無特殊說明,即特指 Android 和 iOS 兩個平台),根據其原理,主要分為三類:

  • H5+ 原生(Cordova、Ionic、微信小程序)
  • JavaScript 開發+原生渲染(React Native、Weex、快應用)
  • 自繪 UI+原生(QT for mobile、Flutter)

居然沒有 Xamarin 介紹,太令人驚訝啦⋯⋯可能是作者沒有做研究吧!?抑或是 Xamarin 已經沒落?!替微軟哭哭~😂

想起 2019 年,跟我交接的 House 聊到~

我:兩平台兩人分別開發,如果時程是兩個月,那麼 Flutter 一個人開發兩平台,時程可以是 1.75 個月嗎?
他:2.6~2.8
他:Native:2人 x 2個月,Flutter:1人 x 2.8個月
我:厲害喔!
我:看來預算若夠的話,顧兩個人來寫會比較快🤓

參考:移動開發技術簡介

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: