Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【程式工作坊】初窺 Flutter 開發

GDSC NYCU
October 20, 2023
33

【程式工作坊】初窺 Flutter 開發

📣 GDSC NYCU 第二次社課來啦~

想了解 Flutter 嗎?

想認識開發語言 Dart 的特性嗎?

想挖掘開發生態系統相關基本知識嗎?

想一探究竟校務系統開發的秘辛嗎?

想嘗試 Flutter 的應用,並建立 App 嗎?

沒問題!只要來參加 GDSC NYCU 的第二次社課,我們將帶您了解 Flutter 及其相關應用,也會讓參與者實際體驗這項技術,建立基本的預設 App 🤩

📍 沒有基礎的人可以參加嗎?

💫 沒問題!只要是

· 對 Flutter 有興趣

· 想學習開發語言 Dart 的特性

· 希望透過 Flutter 建立基本預設App

都非常歡迎~就算是新手也沒關係🙌

(不論是社員/會員,沒有加入 GDSC NYCU 的人也可以參加!)

📍 社課詳細資訊

主題:初窺 Flutter 開發

講者:房志剛

時間:2023.10.19(四) 19:00~21:00(18:45開放入場)

地點:國立陽明交通大學 光復校區 工程三館地下室015

GDSC NYCU

October 20, 2023
Tweet

Transcript

  1. 房志剛 在 圈圈科技 App 工程師 畢業於 中山大學資訊工程研究所 GDG Taipei Organizer

    高科校務通 v3 和 中山校務通作者 目前專注於 APP 開發 by Flutter
  2. 原生架構(Android為例) 程式碼 (Java & Kotlin) 系統提供元件 (OEM Widget) 繪圖 硬體

    (相機、感測器等) 應用程式 作業系統 事件 系統 API
  3. Flutter 架構 繪圖 原生應用程式 事件 你的應用程式 Dart 程式碼 橋接程式碼 原生程式碼

    介面彩現程式碼 作業系統 硬體 (相機、感測器等) 系統 API
  4. Flutter 架構 繪圖 原生應用程式 事件 你的應用程式 Dart 程式碼 橋接程式碼 原生程式碼

    介面彩現程式碼 作業系統 硬體 (相機、感測器等) 系統 API 備註: Flutter 3.7 以後 iOS 採用 Impeller
  5. Flutter 架構 繪圖 原生應用程式 事件 你的應用程式 Dart 程式碼 橋接程式碼 原生程式碼

    介面彩現程式碼 作業系統 硬體 (相機、感測器等) 系統 API 備註: Flutter 3.7 以後 iOS 採用 Impeller
  6. Dart 是什麼? • 由 Google 開源的靜態程式語言 • 以物件導向設計的語言 • 套件管理官方使用

    Pub • 語言開發歷程 ◦ 最初是作為瀏覽器 JavaScript 替代方案開發 ◦ 中期提供 Dart 轉譯 JavaScript 的方案 ◦ 現在專注提供 Flutter 應用層使用 • 語言吉祥物:Dash
  7. Flutter 能使用元件 • 以 Material Design 為主的 Widget • 另外提供

    iOS 樣式的 Cupertino Widget • 其他平台須透過套件使用 ◦ fluent_ui (Windows) ◦ macos_ui (macOS) ◦ yaru_widgets (Ubuntu)
  8. class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) {

    return Scaffold( appBar: AppBar( title: Text('Welecome'), ), body: Center( child: Text( 'Hello world!', ), ), ); } }
  9. MyWidget Scaffold Center AppBar Text Text class MyWidget extends StatelessWidget

    { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Welecome'), ), body: Center( child: Text( 'Hello world!', ), ), ); } }
  10. 其他跨平台方案 • 以內嵌瀏覽器(WebView)為主 ◦ 開始於 2012 ◦ ex. Cordova, ionic...

    • 以 JavaScript 映射為主 ◦ 開始於 2015 ◦ React Native, Native Script...
  11. Flutter 較為適合 • 功能著重於純介面開發 ◦ ex. 電商平台 • 較少存取硬體設備 •

    需要有一致性介面呈現 • 較少需要與原生元件互動 ◦ ex. WebView
  12. Pub

  13. Firebase • Google 雲端分析平台 • 改善使用者體驗 • 安全保障分析資訊 • 可提供

    ◦ 行為分析 ◦ 程式崩潰分析 ◦ 遠端參數設定 ◦ 雲端推播 ◦ 雲端部署網頁 ◦ 機器學習模型分析
  14. Google 使用 Flutter 開發的 App • Google Earth • Google

    Wallet • Google Analytics • Google Classroom • Google Play Console • Google Cloud • Youtube Create
  15. 手機平台 • 迎來下一代繪製引擎 Impeller • Android ◦ 需要了解 Gradle 與

    Manifest 設計 ◦ 對於 targetSdkVersion 需要了解最新支援版本 • iOS ◦ 需要了解 Cocoapods,目前不支援 Swift Package Managment ◦ 最低的 iOS 支援版本 通常會受限於套件 ◦ 目前 Flutter 3.7 以後都使用 Impeller,對於中文支援需加強
  16. 網頁平台 • 漸漸從 Dart2JS 轉向 Dart2Wasm • 適合提供給 SPA (Single

    Page Application) • 搜尋最佳化(SEO) 無法有效支援 • 效能上仍不及現代化網頁開發(Modern Web)
  17. 桌面平台 • 官方提供 Scaffold & Widget 沒有支援響應式 ◦ 透過 MediaQuery

    類別判斷裝置尺寸 • PlatformView 尚未支援 • 些許鍵盤事件 ex.羅技滑鼠上一頁 • Firebase 桌面平台沒有完整支援 • 尚未完整支援 ARM64 Windows • 發布工具仍有發展空間 • 多視窗支援尚未完整
  18. IDX

  19. Coding 現場 @Discord 每週二晚上九點 - Flutter 開發實踐 - 實作「山友」App -

    討論 Flutter 相關議題 - Discord 語音頻道 - YouTube 直播錄影