[Video Summary] Ch. 5.5 Saving and Loading Items with SwiftData (Updated!)
Mô tả nhanh
Video này giới thiệu về SwiftData, một framework mới của Apple giúp quản lý dữ liệu trong ứng dụng iOS/macOS. Video hướng dẫn cách tạo model, lưu, tải và chỉnh sửa dữ liệu bằng SwiftData trong một ứng dụng To-Do list đơn giản, cũng như hướng dẫn cách sử dụng DB Browser để kiểm tra dữ liệu.
Video
Mô tả chi tiết
Video này giới thiệu về SwiftData, một framework mới của Apple giúp quản lý dữ liệu trong ứng dụng iOS/macOS. Video hướng dẫn cách tạo model, lưu, tải và chỉnh sửa dữ liệu bằng SwiftData trong một ứng dụng To-Do list đơn giản, cũng như hướng dẫn cách sử dụng DB Browser để kiểm tra dữ liệu.
Các bước chính:
- Giới thiệu SwiftData:
- SwiftData là framework mới để quản lý dữ liệu, thay thế CoreData.
- SwiftData cung cấp các chức năng CRUD (Create, Read, Update, Delete) database.
- Dữ liệu được mô hình hóa trực tiếp bằng code Swift.
- Cài đặt DB Browser for SQLite:
- DB Browser là công cụ miễn phí để xem dữ liệu trong simulator.
- Tải DB Browser từ trang web chính thức và cài đặt.
- Tạo Model với Class:
- Tạo file Swift mới, đặt tên
Todo
. - Tạo class
Todo
với các thuộc tính (properties) nhưitem
(tên công việc),reminderIsOn
,dueDate
,notes
,isCompleted
. - Khởi tạo các thuộc tính với giá trị mặc định.
- Thêm
@Model
macro và importSwiftData
.
- Tạo file Swift mới, đặt tên
- Thiết lập Model Container:
- Mở file
YourApp.swift
(ví dụ:TodoListApp.swift
). - Import
SwiftData
. - Thêm
.modelContainer
modifier vào view đầu tiên, truyền vào modelTodo.self
.
- Mở file
- Tạo Model Context:
- Trong file
DetailView.swift
, importSwiftData
. - Tạo biến môi trường
@Environment(.modelContext)
để quản lý dữ liệu trên màn hình.
- Trong file
- Kết nối Model với View:
- Thay đổi biến
@State
todo
thành kiểuTodo
(class vừa tạo). - Tạo biến tạm
@State private var item = ""
để lưu trữ dữ liệu củaitem
(tên to-do item) để binding với textfield. - Sử dụng
.onAppear
để lấy dữ liệu từ đối tượngTodo
vào các biến tạm khi view xuất hiện. - Thêm
.modelContainer
vàopreview
của view
- Thay đổi biến
- Lưu Dữ liệu:
- Trong action của nút Save, cập nhật các thuộc tính của đối tượng
Todo
bằng các giá trị từ các biến tạm. - Sử dụng
modelContext.insert(todo)
để thêm hoặc cập nhật dữ liệu. - Sử dụng
dismiss()
để đóng view sau khi lưu. - Thêm
modelContext.save()
sau khi insert để đảm bảo dữ liệu được lưu ngay.
- Trong action của nút Save, cập nhật các thuộc tính của đối tượng
- Đọc Dữ liệu:
- Trong
TodoListView.swift
, importSwiftData
. - Tạo biến môi trường
@Environment(.modelContext)
. - Sử dụng
@Query
để lấy dữ liệu từ SwiftData:@Query var todos: [Todo]
. - Hiển thị danh sách các
todos
trên ListView.
- Trong
- Kiểm tra dữ liệu bằng DB Browser:
- Thêm đoạn code
init()
vàoYourApp.swift
để in ra đường dẫn thư mục chứa dữ liệu simulator trên máy Mac. - Tìm file "default.store" trong thư mục đó, mở bằng DB Browser.
- Thêm/Chỉnh sửa dữ liệu từ ứng dụng, dùng DB Browser để theo dõi thay đổi.
- Thêm đoạn code
Video đã hướng dẫn chi tiết cách sử dụng SwiftData để quản lý dữ liệu trong ứng dụng iOS/macOS. Các kiến thức trong video này là cơ sở để xây các ứng dụng phức tạp hơn có sử dụng cơ sở dữ liệu.
Chúc bạn thành công!