在我們使用裝置時,一定會遇到要將我們的App給關閉的時候,在我們使用App時,我們能透過狀態管理來正確的處理並運行我們的App,但我們關掉App時,裡面的狀態都消失不見了並且初始化了,所以我們需要一個持久化存儲的方案,將我們的狀態結果給存儲下來。
而在flutter我們可以透過一些方法來進行我們持久化存儲
ex.
shared_preferences
、sqflite
ex.
firebase
、remote server
我們先簡單介紹一下,shared_preferences、sqflite以及firebase這幾項,之後再將持久化存儲加入到我們的Todo app中
從文檔上看介紹,shared_preferences將簡單資料封裝在特定平台的持久化存儲(ex. iOS上的 NSUserDefaults,Android上的 SharedPreferences)
!! 資料可能會異步持久化到磁盤,並且不能保證寫入返回後會持久化到磁盤,所以這個插件一定不能用於存儲關鍵數據
並且提供了這些資料型台int, double, bool, String, List<String>
我們看到了shared_preferences不保證能持久化,並且是以Key-Value方式保存,所以我們只存一些配置訊息(Ex.用戶登錄、用戶配置)等簡單資料
當我們需要大量資料存在本地端時,並且存儲資料複雜,那麼我們可以使用sqflite來作為我們的存儲方案。sqflite是flutter中將sqlite給封裝讓我們能簡單操作套件,而sqlite是一個超輕量的db,並且時常被整合在使用者程式中
Firebase是Firebase,Inc.在2011年發布的行動和網路應用程式開發者平台,在2014年被Google收購。並且能同時支援iOS、Android和網頁的app來進行雲端開發,並提供了後端服務的平台,firebase提供了許多功能像是Realtime Database、Authentication、Analytics和Storage等等。可以有效縮短我們app開發時間,並專注在flutter前端
remote server就是我們在遠處架設伺服器,並透過網路傳輸資料進行處理,並將結果存儲在server端裡的db,當要用時就透過連接server來獲取資料。(Ex.Web Server)
今天簡單的介紹一下這幾類的持久化存儲方法,我們明天接著再我們的Todo App加入。我們的Todo規劃目前是這樣:
a) 使用shared_preferences
簡易存取User登入以及User一些簡單資料
b) 使用sqflite
來存儲我們的Todo資料
c) 透過firebase
來進行我們User登入和資料,以及將我們Todo資料同步上去
d) 透過restful api來獲取天氣資訊
大致上的規劃是這樣,今天簡單的介紹一下,我們明天見