- vừa được xem lúc

SwiftData là gì? Tự làm chủ SwiftUI 5 và SwiftData cùng với Mastering SwiftUI 5 của Appcoda

0 0 6

Người đăng: Nguyễn Lê Tuấn

Theo Viblo Asia

SwiftUI tiếp tục là công nghệ hàng đầu để phát triển ứng dụng trên các thiết bị Apple. iOS 17 vừa ra mắt với nhiều tính năng SwiftUI mới thú vị như SwiftData, async image loading, v.v. Để tận dụng tối đa iOS 17, chúng tôi đã cập nhật nội dung cuốn sách "Mastering SwiftUI 5" và bổ sung tất cả các tính năng mới của SwiftUI trên iOS 17.

SwiftData là một framework mới của Apple giới thiệu tại WWDC 2022, cho phép xây dựng ứng dụng dữ liệu bằng cách kết hợp SwiftUI và Core Data.

Một số ví dụ về cách sử dụng SwiftData trong SwiftUI:

  • Tạo mô hình dữ liệu bằng entitiesrelationships giống như Core Data truyền thống. Sau đó sử dụng @FetchRequest để lấy dữ liệu từ mô hình vào SwiftUI views.
  • Sử dụng @ObservableObject để theo dõi thay đổi dữ liệu và cập nhật giao diện.
  • Thao tác dữ liệu bằng các hàm như fetch, delete, update ngay trong SwiftUI mà không cần context.
  • Tích hợp với CloudKit để lưu trữ dữ liệu trên iCloud một cách dễ dàng.
  • Sử dụng new Swift Charts library để hiển thị dữ liệu dạng biểu đồ, bảng. Như vậy SwiftData giúp lập trình viên iOS có thể xây dựng ứng dụng dữ liệu một cách dễ dàng, nhanh chóng hơn mà không cần quan tâm nhiều tới chi tiết thấp của Core Data.

Đây là một ví dụ đơn giản về cách sử dụng SwiftData trong SwiftUI:

// Tạo entity Task
@Entity struct Task: Identifiable { @ID var id: UUID var title: String var completed: Bool
} // Tạo view hiển thị danh sách task
struct TaskListView: View { // Fetch tất cả các task @FetchRequest(sortDescriptors: [SortDescriptor(\.title)]) var tasks: FetchedResults<Task> var body: some View { List { ForEach(tasks) { task in Text(task.title) } } }
} // Thêm mới task
func addTask() { let newTask = Task(title: "Mua sữa", completed: false) persist(newTask)
} // Xoá task
func removeTask(at offsets: IndexSet) { let taskToDelete = offsets.map { tasks[$0] } delete(taskToDelete) }

Điểm mấu chốt là sử dụng các property wrappers như @Entity, @FetchRequest để tương tác với dữ liệu, không cần quan tâm tới context. Các thao tác CRUD được đơn giản hoá thành các hàm persist, delete, update.

Trong phiên bản mới này, bạn sẽ học cách:

  • Sử dụng SwiftData để quản lý data một cách dễ dàng
  • Áp dụng async image loading để tăng tốc độ load ảnh
  • Tận dụng Swift Charts API mới để vẽ biểu đồ đẹp mắt
  • Cập nhật code lên SwiftUI 3 cho iOS 17 và Xcode 15 Với hơn 700 trang và 25 chương, đây là tài liệu hoàn hảo để nâng cao kỹ năng SwiftUI của bạn.

Hãy trở thành coder SwiftUI chuyên nghiệp trên iOS 17 bằng cách sở hữu ngay những cuốn sách thực chiến này! Đặt mua ngay để nhận được phiên bản PDF và các bản cập nhật trong năm 2023:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 254

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 189

- vừa được xem lúc

Swift: Tạo custom phép toán tử (Operator) của riêng bạn!

Swift cho phép bạn tạo các toán tử có thể tùy chỉnh của riêng bạn. Điều này đặc biệt hữu ích khi bạn xử lý các loại dữ liệu của riêng mình. Operator Types in Swift. Có năm loại toán tử chính trong Swift.

0 0 45

- vừa được xem lúc

Chương 6 Protocol oriented programming.

Cuốn sách này là về lập trình hướng protocol. Khi Apple thông báo swift 2 ở WWDC 2015.

0 0 29

- vừa được xem lúc

Ví dụ về UIActivityViewController

Trên iOS, UIActivityViewController cung cấp giao diện thống nhất để người dùng chia sẻ và thực hiện các hành động trên văn bản, hình ảnh, URL và các mục khác trong ứng dụng. let string = "Hello, world!". let url = URL(string: "https://nshipster.com").

0 0 46

- vừa được xem lúc

Quản lý self và cancellable trong Combine.

. . Công việc quản lý bộ nhớ memory management thường trở nên phức tạp khi chúng ta thực hiện các tác vụ bất đồng bộ asynchronous vì chúng ta thường phải lưu giữ một số object nằm ngoài scope mà object được define trong khi vẫn phải đảm bảo được việc giải phóng object đó được thực hiện đúng quy trìn

0 0 29