網誌

  • Flutter 常用指令

    以下為命令提示字元或VS Code的終端機介面下,常用的指令: 如果Flutter專案目錄有異動,在編譯程式時可能會出現cache路徑錯誤之類的異常。這時候可以先清除 cache:flutter clean然後再重新取得 package 來排除問題:flutter pub get Read more

  • Flutter Structure Chart 架構圖

    下圖為 Flutter SDK 的架構。 Read more

  • 推薦原塊牛排館 – いきなりステーキ (台灣分店)

    它們主打的是原塊煎牛排,直接冰箱取出原塊牛肉稱重計價,然後直接煎給你吃。現場可以聞到牛排經過梅納反應的香味,而不是醃料的味道👍另外,取出的牛肉廚師現場把過多的肥肉切掉再稱重,讓人安心👍 Google Map 評論:https://maps.app.goo.gl/eGt8XmQk9ffZieF28?g_st=ic Read more

  • 解決 Flutter 編譯 Windows 程式出錯 Exception: Building with plugins requires symlink support

    在編譯成 Windows 程式時,若偵錯主控台出現如下般錯誤: Launching lib\main.dart on Windows in debug mode…Exception: Building with plugins requires symlink support.Please enable Developer Mode in your system settings. Run start ms-settings:developersto open settings. 則可循該錯誤訊息的指示,開啟 Windows… Read more

  • Flutter Web Service Client Sample 範例 (續) – 可編輯的表格內容

    主要差異為 DataCell 內的 Text 改成可編輯的 TextField。 components/post_table_with_search_and_edit.dart Read more

  • 關於 Flutter 的 StreamBuilder

    在 Flutter 中,StreamBuilder 是一個非常有用的 widget,它可以根據與 Stream 的最新交互快照自我構建。這個 widget 特別適合於需要即時更新內容的應用場景,如聊天應用、社交網絡等。 StreamBuilder 的基本用法如下: StreamBuilder( stream: stream, // 你的 Stream 對象 builder: (BuildContext context, AsyncSnapshot snapshot) { // 這裡是 UI 構建邏輯,可以根據 snapshot 的數據來決定顯示什麼 },) 當提供一個… Read more

  • 關於 Flutter 的 FutureBuilder

    在使用Flutter進行開發時,我們經常會遇到需要處理異步操作的情況,比如從網路上獲取數據或進行耗時的運算。為了在使用者介面上呈現異步操作的結果,Flutter提供了一個名為FutureBuilder的Widget。FutureBuilder是一個功能強大且靈活的工具,它能幫助我們簡化異步操作的處理,並能根據操作的狀態動態地構建使用者介面。 FutureBuilder是一個Widget,其功能是根據異步操作的狀態動態地構建使用者介面。它會接收一個Future物件作為輸入,並根據Future的不同狀態(未完成、完成、錯誤)來構建不同的使用者介面。FutureBuilder能夠將異步操作的結果直接用於構建使用者介面,無需手動管理狀態或訂閱事件。 FutureBuilder的運作方式相當直觀,它透過接收一個Future物件並監聽其狀態的變化來構建使用者介面。根據Future的狀態,FutureBuilder會調用不同的回調函數來構建對應的使用者介面: 使用情境 獲取網路數據並構建使用者介面:FutureBuilder非常適合於從網路獲取數據並將其用於構建使用者介面的情境。我們可以在FutureBuilder的future參數中傳遞一個異步的網路請求,並根據請求的結果來構建不同的使用者介面,例如顯示正在加載的使用者介面、成功獲取數據後的使用者介面或錯誤提示的使用者介面。 進行異步計算和處理:除了獲取網路數據,FutureBuilder也適用於執行耗時的計算或其他異步操作,並根據操作結果來構建使用者介面。我們可以在future參數中傳遞一個異步的計算函數,並根據計算結果來構建相應的使用者介面。 與其他Widget結合使用:FutureBuilder可以與其他小部件組合使用,以實現更複雜的異步操作和使用者介面交互。例如,我們可以將FutureBuilder嵌入在ListView或GridView中,以構建一個根據異步數據生成的動態列表的使用者介面。 使用時的注意事項 避免頻繁重建使用者介面:由於FutureBuilder會根據異步操作的狀態動態地構建使用者介面,因此在每次狀態變化時都會觸發使用者介面的重建。為了避免不必要的重建,我們可以使用const關鍵字來標記不需要重新構建的部分,或者將FutureBuilder封裝在StatefulWidget中,通過維護狀態來控制使用者介面的重建。 錯誤處理和錯誤信息展示:FutureBuilder提供了errorBuilder回調函數,用於處理Future發生錯誤的情況。在構建錯誤提示的使用者介面時,我們應該提供有意義的錯誤信息,並考慮使用者體驗和友善的錯誤處理方式。 替代方案 雖然FutureBuilder是處理異步操作和構建使用者介面的常見工具,但在特定情況下,你可能會考慮使用其他的替代方案。以下是一些常見的替代方案: StreamBuilder:如果你的異步操作返回的是一個數據流(Stream),而不只是一個Future,那麼可以使用StreamBuilder來處理。StreamBuilder與FutureBuilder相似,但用於處理數據流的更新。它監聽數據流的狀態變化,並根據流的狀態構建相應的使用者介面。 Provider和ChangeNotifier:如果你需要在異步操作中更新應用程式的狀態,並通知使用者介面進行相應的更新,可以使用Provider和ChangeNotifier。Provider是Flutter生態中的狀態管理工具,而ChangeNotifier是一個可觀察的模型,用於追蹤狀態的變化。你可以使用Future或其他異步操作來更新ChangeNotifier,並通過Provider將狀態提供給使用者介面組件。 StatefulWidget和State:如果你需要更細緻地控制異步操作和使用者介面的交互,可以使用StatefulWidget和State。你可以創建一個帶有狀態的小部件,將異步操作封裝在狀態中,並在狀態的生命週期方法中處理異步操作和使用者介面更新。 Reactive框架:在Flutter生態系統中,還有一些基於響應式編程的框架,例如ReactiveX和RxDart。這些框架提供了豐富的操作符和轉換器,用於處理異步操作和數據流。如果你對響應式編程有一定的了解,並且需要處理複雜的異步操作和數據流轉換,可以考慮使用這些框架。 需要注意的是,這些替代方案並不是FutureBuilder的直接替代品,而是根據具體的需求和情況選擇合適的工具和模式。FutureBuilder在處理簡單的異步操作和構建基本使用者介面時非常方便,但在複雜的場景下,其他方案可能更適合。根據你的項目需求和個人偏好,選擇最適合的工具和模式來處理異步操作和構建使用者介面。 Read more

  • Flutter Web Service Client Sample 範例 (續) – 自動儲存和載入最後一次查詢條件

    承前一天的查詢方塊功能,透過 SharedPreferences 套件儲存和載入查詢的條件。讓 App開啟時自動載入最後一次的查詢條件。(此機制常用於儲存使用者的登入帳號密碼並自動登入) daos/shared_preferences_dao.dart daos/post_dao.dart components/post_table_with_search.dart screens/post_screen.dart pubspec.yaml Read more

Welcome to my blog!

I’m Amy, a minimalist and simple living enthusiast who has dedicated her life to living with less and finding joy in the simple things. Through this blog, I aim to share my expertise, insights, and experiences. Join me on this journey as we explore the world of slow, purposeful living together!

Find us on:

Stay updated with our latest recipes and other news by joining our newsletter.