Swift-咖啡豆庫存紀錄App

實作一個可以新增,讀取,刪除,修改 & 儲存資料的 App

--

身為曾經跌入精品咖啡世界的我,隨時身上有三四支熟豆是非常正常的,但豆子放久新鮮度就不夠,香氣口感都會大大減分,有個App隨時記錄庫存量也相當方便。

藉著這次作業,先嘗試依照上課教學的範例製作一個簡易的紀錄App,大致紀錄品名、重量、焙度、烘豆日期、店家名稱以及備註,由於資料量不大,在資料儲存部分會選擇UserDefaults。

Step1. 前置作業

建立一個Table View Controller,套用自訂的CoffeeBeansTableViewController類別,右上方增加一個Add的Button item,同時拉一個Navigation Controller。

建立一個Table View Controller,套用自訂的EditCoffeeBeansTableViewController類別,從Add拉一條segue至此,右上角增加一個Done的Button item。

同時自訂一個自行定義的CoffeeBeans檔案,利用unwind segue在點擊Done後可回到前一頁。

前置作業
前置作業.gif

Step2. 將編輯的資料回傳列表

利用unwind segue傳資料回列表,所以須從unwind segue的源頭,也就是EditCoffeeBeansTableViewController設定要回傳的資料,這裡是使用prepare的方法。

Step3. 建立刪除列表資料功能

刪除的方法有分swipe cell & 點選Edit,這裡使用的swipe cell,即cell左滑會出現delete button,使用的是UITableViewDataSource protocol的function。

step4. 修改列表內容功能

preare的方法回傳點選列表的資料回編輯頁面,由於需在編輯頁面顯示列表資料,故須在viewDidLoad寫入顯示編輯頁面時的資料,同時需修改unwind segue的判斷式,確認是修改資料或是新增資料。

Step5. 建立儲存資料的功能

使用UserDefaults來儲存,在自訂型別的情況下,需藉由將資料轉成Data寫入,當需要讀取時,則由Data轉成資料讀出,故首先須先去改寫一開始自訂的型別,將其設為Codable,同時新增寫入與讀出的語法。

在刪除、新增或修改資料處都需要給一個儲存的程式碼,CoffeeBeansTableViewController的viewDidLoad要記得需將檔案讀出!

成品分兩段如下

part1
part2

藉這次練習有更加了解相關的語法與原理,但仍有許多地方模糊不清,需花更多時間了解,內容如有理解錯誤的敬請見諒!整體美感仍有待加強!

上方是「如果我不在咖啡館,就在往咖啡館的路上」的原文:Wenn der Altenberg nicht im Kaffeehaus ist, ist er am Weg dorthin — Peter Altenberg

--

--