Skip to main content

Posts

Showing posts from December, 2019

COMBINE vs RXSWIFT : Giới thiệu Combine

Shai Mishali Hôm nay, tôi sẽ giới thiệu một frame work được Apple ra mắt vào năm 2019 tên là Combine, và chỉ ra sự khác biệt chính với RxSwift. Có lẽ con đường tốt nhất để bắt đầu là đọc định nghĩa Combine của Apple : "A unified, declarative API for processing values overtime." Tôi chắc rằng, đó là một định nghĩa quen thuộc, bởi vì như đã nói trước đây, bài viết này chúng ta sẽ nói về các tính năng giống và khác nhau giữa Combine và RxSwift. Chúng ta sẽ bắt đầu bằng ba thuộc tính chính của Combine: . Generic . Type safe . Composition first Apple nói rằng khái niệm Combine rất dễ hiểu và đơn giản để hiểu và sử dụng, nhưng khi kết hợp lại chúng sẽ cho phép thực hiện những điều phức tạp và thú vị hơn. Vào trong Combine chúng ta sẽ tìm thấy : . Publishers . Subscribers . Operators Publishers Publisher là một phần của Combine's API. Chúng định nghĩa cách mà các giá trị và các lỗi được tạo ra. Chúng là kiểu giá trị , trong Swift, Structs. Publishers cho p

Swift - Codable (P1)

Codable được giới thiệu cùng với phiên bản 4.0 của Swift, đem lại sự thuận tiện cho người dùng mỗi khi cần encode/ decode giữa JSON và Swift object. Codable là alias của 2 protocols: Decodable & Encodable . Decodable: Chuyển data dạng string, bytes... sang instance (decoding/ deserialization) . Encodable: Chuyển instance sang string, bytes... (encoding/ serialization) Table of contents . Swift Codable basic . Swift Codable manual encode decode . Swift Codable coding key . Swift Codable key decoding strategy . Swift Codable date decoding strategy . Swift Codable nested unkeyed container Swift Codable basic Chúng ta sẽ đi vào ví dụ đầu tiên của Swift Codable, mục tiêu sẽ là convert đoạn JSON sau sang Swift object (struct) { "name": "NhatHM", "age": 29, "page": "https://magz.techover.io/" } Cách làm: Đối với JSON có dạng đơn giản thế này, công việc của chúng ta chỉ là define Swift struct to Codable proto

Hiểu về SwiftUI Data Flow

https://medium.com/better-programming/understanding-swiftui-data-flow-79429a49ae35 Tôi thấy nhiều người có vấn đề cấu trúc với apps của họ trong SwiftUI - bởi vì nó là một mô hình hoàn toàn mới và bởi vì có rất ít tài liệu cho nó. Tôi muốn sử dụng bài viết này để chia sẻ một số ví dụ thực tế, cái dường như thiếu trong các tài liệu của Apple ObservableObject ObservableObject là môt protocol, cái là một phần của framework Combine. Để sử dụng nó bạn phải thêm protocol tới class model của bạn, sau đó đánh dấu @Published bất kỳ properties bạn muốn observed bởi SwiftUI trong model này. final class MoviesSelectedMenuStore: ObservableObject { @Published var menu: MoviesMenu init(selectedMenu: MoviesMenu) { self.menu = selectedMenu } } Khi nào sử dụng nó? Nó là một protocol tốt sử dụng trong ViewModel của bạn, hoặc trực tiếp trong model của bạn nếu bạn không phải hoặc không cần ViewModel. @ObservableObject Như là bạn có thể dự đoán,