Just My Life & My Work

Posts tagged ‘Flutter’

[Flutter] Debug 包和 Release 包

由於在整合國際牌的推播套件,搞了一星期遇卡關,iOS 測試沒問題,Android 取得裝置 Token 噴錯,最後發現是 Debug 包和 Release 包的問題,然後大陸工程師 10/1-10/9 假期中⋯⋯剛好趁這時候來徹底角解兩者差異。🥸

絕大部分時刻我都是包 Release 版本,而在上海的夥伴則是包 Debug 版本,在測試時發現兩包有不同反應,後來追問題才曉得套件有 Release/Debug 差異。

flutter build apk --flavor dev --release
flutter build apk --flavor dev --debug

在 Flutter 開發中,DebugRelease 版本扮演著不同的角色,開發者需要了解兩者差異,才能在開發與上架流程中正確選擇。

.

Debug 版本主要用於開發與測試。它啟用了 Flutter 的 Hot ReloadHot Restart,讓開發者能快速驗證修改結果。程式碼使用 JIT(Just-In-Time)編譯,啟動較慢、效能較低,但換來靈活的除錯體驗。Debug 版本通常包含完整的日誌輸出、Debug Banner,以及可以透過 DevTools 檢查 widget tree、記憶體與效能。它使用系統提供的 debug key 簽名,因此無法上架商店。

相對地,Release 版本則是提供給最終用戶的正式包。Flutter 在這個模式下會使用 AOT(Ahead-Of-Time)編譯,將 Dart 程式轉換為原生機器碼,大幅提升效能與啟動速度。Release 版本會進行最佳化,例如代碼壓縮與資源精簡,App 體積更小、更流暢。它不支援 Hot Reload,也不允許連接 DevTools,日誌輸出也會受到限制。最重要的是,Release 版本需要使用正式的 keystore 簽名,才能提交到 Google Play。

簡而言之,Debug 版本適合開發與測試,強調靈活性;Release 版本則面向使用者,追求效能與穩定性。開發者必須在不同階段切換模式,才能兼顧效率與品質。

(繼續閱讀…)

[Flutter] Package 與 Plugin

平常寫 Flutter App,我都會稱第三方套件為 Package,隱約曉得 Package 又可細分有無跟平台相依的套件。後來去了解後,才知道原來是有區分為 Package 與 Plugin。

翻成中文:

  • Package:套件
  • Plugin:外掛

.

(繼續閱讀…)

Flutter 技術重點

由於已經多年寫 Flutter App,為了讓初學者快速進入狀況,有必要列舉出 Flutter 技術重點。之後再撰寫從原生 App 轉開發 Flutter App 的遷移重點。🙃

本文將列出 Flutter 的十項技術重點,幫助開發者更好地理解和運用這個強大的 UI 工具包。Flutter 是由 Google 開發的開源框架,旨在幫助開發者快速構建高效能、美觀的跨平台應用。以下是 Flutter 的主要技術特點。

(繼續閱讀…)

同一專案開發多個品牌

工作上即將進行同一專案開發多個品牌,可以怎麼開始比較恰當,於是就跟夥伴阿遠分析主要可能的做法與其優劣。🤔

.

在更改一個程式碼專案來適應不同品牌時,選擇直接複製專案開發或是開分支修改都有其優缺點。哪種方式更適合取決於專案的維護策略、程式碼的複雜性和團隊的工作流程。

(繼續閱讀…)

Flutter 例外處理

透過 Flutter 框架開發的 App (含 iOS 與 Android) 已經上線,開始要追蹤用戶使用時,是否有發生不預期的狀況。

如同開發原生 iOS App 那樣,我將 Firebase Crashlytics 導入 Flutter App 中,一旦有任何崩潰、例外狀況,就會被記錄且上傳到 Firebase,讓我每天能明確掌握 App 使用狀況,並在適當時機修正並釋出新版本。🙃

這是我開啟記錄「例外」事件功能後,在 Firebase 上所搜集統計的資料。在沒有開啟此功能前是一片祥和,幾乎沒有「崩潰」事件。然而我為了優化 App 各種不預期的使用狀況,便有需要去了解會有哪些「例外」事件。🤔

(繼續閱讀…)

初學工程師偏好開發 Web 或 App

雖說我的立場是偏好開發 App,也已經有 10+ 年經驗,但還是想分析一下,對於初學者來說,如何做選擇會比較恰當。

大概在 2010 年前後,我有短期開發網頁應用程式,確實上手門檻較低,不需要額外硬體或軟體支援,便可以馬上寫簡單的程式。

但其實,若我一天有 48 小時,我會希望 Web 和 App 都能開發~😛

最終,我選擇 App 開發,那會是最貼近生活的一種開發工作。

(繼續閱讀…)

[Flutter] 本機 WebView 載入網頁檔案並與 App 互動

網頁已有的功能,想要完整移植到 App,可以怎麼做呢?刻一個原生的,會是個較佳的選項,因為使用者體驗可以很棒!然而就是得花時間去實現。🤪

我們想到可以在 App 載入網頁檔案,省去從頭刻畫面的時間,再來實現 WebView 與 App 互動的部分。

(繼續閱讀…)

[Flutter] 問號纇運算符

善用運算符號,可以減少寫些程式碼。在使用之前,必須了解它是怎麼運作,之後就能得心應手囉~

我目前只會 IF ELSE 來使用問號運算符,趁這時候多學點語法糖,讓我可少寫幾行程式碼,也可達到些成就感。🙃

Flutter 是以 Dart 程式語言來運行,線上可以直接測試程式碼:https://dartpad.dartlang.org/

(繼續閱讀…)

[圖解] 學習 Flutter 路線圖 (Learn Flutter Roadmap)

最近公司採用 Flutter 框架來開發 iOS Android App,所以有必要做全面性的學習。

看到這一張學習 Flutter 路線圖 (Flutter Roadmap),讓我十萬分興奮,因為我想要全部都學習!🤪

不過時間有限,想必得有策略式地逐步學習,進而掌握最關鍵且最實用的開發技術。

(繼續閱讀…)

[Flutter] RefreshIndicator class

使用 App 瀏覽資訊,很常會遇到可以往下捲的畫面,此時若一直往下拉到頂,上頭通常會出現重整動畫,經過一小段時間,畫面就會更新。😀

在 Flutter 中有已被定義好的 Widget,我們能夠輕易實現此友善的體驗,看起來效果挺棒的。

(繼續閱讀…)

標籤雲