Contents
Chào bạn đến với Fx Studio. Bài viết này có một chút đặc biệt trong series RxSwift. Thay vì đi vào các đề tài mới trong thế giới RxSwift, bài viết sẽ tổng hợp phần Basic RxSwift cho các bạn mới sẽ dễ tiếp cận hơn.
1. Giới thiệu
Life is not easy!
1.1. Basic RxSwift
Về định nghĩa cho Basic RxSwift, thì đó là một phạm trù rất lớn. Tuy theo phạm vi & mục đích mà bạn muốn mọi người hiểu, thì giới hạn phần Basic sẽ thay đổi theo.
Trong giới hạn mà Fx Studio đặt ra. Với kiến thức Basic được truyền tải này, bạn sẽ bắt đầu từ 1 người chưa biết gì về Rx hay Reactive Programming. Cho đến khi bạn nắm được sự hoạt động của các Observables và các thành phần cơ bản đầu tiên.
Các phần kiến thức Basic này khá là nhiều. Tuy nhiên, mình đã tiến hành lọc và bỏ đi khá nhiều phần không cần thiết. Ngoài ra, kiến thức rất khô khan. Bạn sẽ gặp bỡ ngỡ đầu tiên là việc áp dụng nó như thế nào vào dự án. Bên cạnh đó, việc trình bày và demo chỉ dựa trên code & console. Bạn sẽ không thấy được nó hoạt động trực quan, không thấy được sự biến đổi giao diện …
Phạm vi giới hạn:
-
- Observables
- Subscriptions
- Subjects
- Operators
1.2. Mini Series
Về toàn bộ series RxSwift, nó được chia ra nhiều phần lớn (hiện tại mình chưa chốt được số lượng các phần). Trong đó, phần Basic này thì mình tạm gọi là một Mini Series trong cả phần lớn. Mini Series sẽ trình bày các nội dung xuyên suốt như sau:
- Giới thiệu
Cách mà bạn tiếp cận với RxSwift, cũng như bắt đầu bước vào thế giới Reactive Programming. Ngoài ra, mục này sẽ truyền tải thêm nhiều khái niệm trong trường phái Rx. Và cuối cùng là cách cài đặt & sử dụng thư viện RxSwift.
- Observables & subscribe
Giới thiệu về Observables. Các thể loại Observables và các dạng đặc biệt của nó. Bên cạnh đó, trình bày về sự hoạt động cơ bản của Rx. Việc subscribe và quản lý các subscriptions. Cuối cùng là cách giải phóng và quản lý bộ nhớ tối ưu nhất trong RxSwift.
- Subjects
Giới thiệu các loại Subjects được dùng. Cách tạo, công dụng & cách hoạt động cho từng loại.
- Operators
Liệt kê các nhóm toán tử thường dùng dựa theo sự phân loại theo công năng của chúng. Trình bày các đặc điểm của từng toán tử. Demo sự hoạt động của từng toán tử.
2. Mục đích
2.1. Mục đích
Bạn học RxSwift để làm gì?
Tất nhiên, là để bạn tăng thêm lượng kiến thức và làm dự án xịn sò hơn. Vì học thêm cái gì cũng đều tốt hết. Nhưng mục đích chính mà mình muốn truyền đạt thông qua series này là:
Phần tiếp theo sau khi bạn đã hoàn thành về Basic iOS.
Ngoài ra, các mục đích khác thì hầu như mình giúp bạn chuẩn bị cho thế giới ngoài kìa đầy bão tố. Và theo xu thế lập trình mới, thì dường như Reactive Programming cũng đã len lỏi vào tất cả các nền tảng. Nó thay đổi thói quen lập trình của bạn rất nhiều. Mặc dù, Apple đã đưa ra Combine (một thư viện xịn sò & chính chủ để làm Reactive Programming trong iOS) nhưng vẫn không thể thay đổi thực tại được.
Nhà nhà & người người đều dùng Rx.
Và ngay cả các mô hình cũ như MVC & MVVM thì cũng được tăng cương sức mạnh bằng Rx. Bạn cũng dễ dàng tiếp cận nền tảng khác nếu nó cũng sử dụng Rx. Vì hầu hết đều giống nhau về mặc bản chất và tương đồng về toán tử.
Cuối cùng, bạn sẽ hình thành một nền tảng lập trình mới. Cùng là mục tiêu cuối cùng hướng tới.
Reactive Programming
Hoặc theo Apple thì nó được nâng tầm lên.
Asynchronous Programming
2.2. Đối tượng
Mặc dù là cơ bản, nhưng nó không phải dành cho tất cả mọi người trong giới iOS Dev.
Trước tiên, bạn phải học xong về lập trình iOS cơ bản.
-
- Tham khảo : Lập trình iOS cho mọi người
Tiếp theo, bạn phải hiểu kỹ các phần sau:
Cuối cùng, bạn cần nắm rõ các mô hình lập trình cơ bản trong iOS để có thể tiến được xa hơn.
Nếu như mọi thứ đối với bạn đều ổn rồi, thì …
Quẩy thôi!
3. Lộ trình cơ bản
3.1. Môi trường
-
- Swift 5.x
- Xcode 11
- RxSwift 5.x
Đó là những thông tin về version cho từng thành phần bạn sẽ dùng trong series này. Nguyên cả mini-series, bạn chỉ cần dùng mỗi Playground mà thôi. Nên vấn đề môi trường, bạn cũng không cần quá quan tâm lắm. Cách cài đặt và sử dụng thư viện thì mình cũng có hướng dẫn hết rồi.
Về mã nguồn của các demo ví dụ & các project được sử dụng trong tất cả các bài viết. Thì bạn có thể checkout theo repo sau đây:
3.2. Danh sách
-
- Giới thiệu
- Observables & Subscribe
- Subjects
- Operators
4. Thông tin và trạng thái
4.1. Thông tin
-
- Website: Fx Studio
- Link seri: https://fxstudio.dev/category/code/rxswift/
- Github: https://github.com/fx-studio/rxswift_notes
- Trạng thái: đang cập nhật
Nếu bạn có đóng góp hay nhận xét về series này, cách viết bài, cũng như nội dung truyền tải. Thì mình rất rất cảm ơn. Nếu có bất cứ vấn đề gì, thì bạn có thể liên lạc theo các địa chỉ dưới đây.
-
- Website: https://fxstudio.dev/contact/
- Email: lephuongtien.dev@gmail.com
4.2. Bản quyền
Về bản quyền của series RxSwift là của Fx Studio, bao gồm các bài viết trên website & mã nguồn trên GitHub. Và chúng hoàn toàn miễn phí cho các mục đích phi lợi nhuận và học tập. Tất cả các hành vi sao chép hay sử dụng vì mục đích thương mại đều là vi phạm.
Vui lòng để lại link bài viết gốc, nếu bạn muốn sử dụng & cũng như trích dẫn các nội dụng từ các bài viết trong Series RxSwift này.
Cảm ơn bạn đã ủng hộ Fx Studio và series RxSwift!
Related Posts:
Written by chuotfx
Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!
Leave a Reply Cancel reply
Fan page
Tags
Recent Posts
- Charles Proxy – Phần 1 : Giới thiệu, cài đặt và cấu hình
- Complete Concurrency với Swift 6
- 300 Bài code thiếu nhi bằng Python – Ebook
- Builder Pattern trong 10 phút
- Observer Pattern trong 10 phút
- Memento Pattern trong 10 phút
- Strategy Pattern trong 10 phút
- Automatic Reference Counting (ARC) trong 10 phút
- Autoresizing Masks trong 10 phút
- Regular Expression (Regex) trong Swift
You may also like:
Archives
- September 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (4)
- April 2024 (2)
- March 2024 (5)
- January 2024 (4)
- February 2023 (1)
- January 2023 (2)
- November 2022 (2)
- October 2022 (1)
- September 2022 (5)
- August 2022 (6)
- July 2022 (7)
- June 2022 (8)
- May 2022 (5)
- April 2022 (1)
- March 2022 (3)
- February 2022 (5)
- January 2022 (4)
- December 2021 (6)
- November 2021 (8)
- October 2021 (8)
- September 2021 (8)
- August 2021 (8)
- July 2021 (9)
- June 2021 (8)
- May 2021 (7)
- April 2021 (11)
- March 2021 (12)
- February 2021 (3)
- January 2021 (3)
- December 2020 (3)
- November 2020 (9)
- October 2020 (7)
- September 2020 (17)
- August 2020 (1)
- July 2020 (3)
- June 2020 (1)
- May 2020 (2)
- April 2020 (3)
- March 2020 (20)
- February 2020 (5)
- January 2020 (2)
- December 2019 (12)
- November 2019 (12)
- October 2019 (19)
- September 2019 (17)
- August 2019 (10)