iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

30天學習flutter系列 第 18

18.flutter的持久化存儲(一)

  • 分享至 

  • xImage
  •  

在我們使用裝置時,一定會遇到要將我們的App給關閉的時候,在我們使用App時,我們能透過狀態管理來正確的處理並運行我們的App,但我們關掉App時,裡面的狀態都消失不見了並且初始化了,所以我們需要一個持久化存儲的方案,將我們的狀態結果給存儲下來。

介紹

而在flutter我們可以透過一些方法來進行我們持久化存儲

  • 本地Data持久化存儲

ex.shared_preferencessqflite

  • 遠端Data持久化存儲

ex.firebaseremote server

我們先簡單介紹一下,shared_preferences、sqflite以及firebase這幾項,之後再將持久化存儲加入到我們的Todo app中

1.shared_preferences

從文檔上看介紹,shared_preferences將簡單資料封裝在特定平台的持久化存儲(ex. iOS上的 NSUserDefaults,Android上的 SharedPreferences)

!! 資料可能會異步持久化到磁盤,並且不能保證寫入返回後會持久化到磁盤,所以這個插件一定不能用於存儲關鍵數據
並且提供了這些資料型台int, double, bool, String, List<String>

我們看到了shared_preferences不保證能持久化,並且是以Key-Value方式保存,所以我們只存一些配置訊息(Ex.用戶登錄、用戶配置)等簡單資料

2.sqflite

當我們需要大量資料存在本地端時,並且存儲資料複雜,那麼我們可以使用sqflite來作為我們的存儲方案。sqflite是flutter中將sqlite給封裝讓我們能簡單操作套件,而sqlite是一個超輕量的db,並且時常被整合在使用者程式中

3.firebase

Firebase是Firebase,Inc.在2011年發布的行動和網路應用程式開發者平台,在2014年被Google收購。並且能同時支援iOS、Android和網頁的app來進行雲端開發,並提供了後端服務的平台,firebase提供了許多功能像是Realtime Database、Authentication、Analytics和Storage等等。可以有效縮短我們app開發時間,並專注在flutter前端

4.remote server

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來獲取天氣資訊


大致上的規劃是這樣,今天簡單的介紹一下,我們明天見


上一篇
17.flutter的狀態管理(五)
下一篇
19.flutter的持久化存儲(二)
系列文
30天學習flutter30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言