Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh
RxCocoa
RxSwift triển khai các hàm tương tự của Cocoa. RxCocoa hỗ trợ tất cả các API của UIKit và Cocoa. Ngoài ra RxCocoa còn có các tính năng mở rộng, và bạn cũng có thể tự viết hàm mở rộng cho nó.
Tuyển swift lương cao hấp dẫn cho bạn
Ví dụ về Rx hỗ trợ lắng nghe sự kiện nút switch:
toggleSwitch.rx.isOn
.subscribe(onNext: { enabled in
print( enabled ? "it's ON" : "it's OFF" )
})
trong sự kiện onNext, mỗi khi có sự thay đổi trạng thái của nút mà hiển thị nó đang bật hay tắt, hoặc xử lý tùy ý theo logic app. RxCocoa cung cấp rx.isOn để bạn có thể đăng ký lắng nghe sự kiện đó.
Tương tự, RxCocoa cung cấp API cho nhiều control khác như UITextField, URLSesion, UIViewController…
Cài đặt RxSwift
RxSwift có sẵn trên github tại đường dẫn:
https://github.com/ReactiveX/RxSwift.
RxSwift được phát hành dưới giấy phép MIT, nói đơn giản là bạn có quyền làm gì tùy ý với source code, với điều kiện bạn phải thông báo quyền phải được bao gồm trong các ứng dụng bạn phân phối. Có rất nhiều thứ cần khám phá trong repository này, bao gồm thư viện RxSwift và RxCocoa, nhưng bạn vẫn có thể tìm thấy RxTest và RxBlocking trong đó, cho phép bạn viết unit test. Bên cạnh mã nguồn tuyệt vời, bạn sẽ thấy Rx.playground, trình diễn nhiều toán tử của nó, hay RxExample, chứa nhiều ví dụ trong thực tế. Có nhiều cách để cài đặt RxSwift:
- Cài đặt bằng CocoaPods
B1: Đầu tiên các bạn tạo project của mình.
B2: init pod file bằng lệnh: pod init.
Trường hợp nếu máy bạn chưa cài CocoaPod thì gõ lệnh này trước:
sudo gem install cocoapods
B3: sửa Podfile thành:
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '6.0.0-rc.2'
pod 'RxCocoa', '6.0.0-rc.2'
end
# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
pod 'RxBlocking', '6.0.0-rc.2'
pod 'RxTest', '6.0.0-rc.2'
end
B4: Gõ pod install và thư viện đã cài xong.
2. Cài đặt RxSwift bằng Carthage
B1: Cài đặt Carthage theo hướng dẫn:
https://github.com/ Carthage/Carthage#installing-carthage
B2: Thêm file mới tên là Cartfile vào project của bạn, và thêm dòng:
github "ReactiveX/RxSwift" "6.0.0-rc.2"
B3: Gõ lệnh:
carthage update
Cộng đồng RxSwift
Cộng đồng hiện tại đang hoạt động rất sôi nổi, nhiệt tình và giúp đỡ nhau. Bạn có thể tham gia cộng đồng tại đường dẫn:
Nhiều thư viện mới mọc lên như nấm sau mưa, xem tại đây:
https://github.com/RxSwiftCommunity
Tiếp theo là bạn có thể tham gia chat với các developer khác tại Slack:
http://rxswift-slack.herokuapp.com
Tổng kết
Vậy qua 5 bài đầu tiên, bạn đã có 1 cái nhìn cơ bản về RxSwift. Bạn đã tìm hiểu về sự phức tạp của lập trình bất đồng bộ, chia sẻ state, tạo ra side effects.
Bây giờ bạn đã biết RxSwift là giải pháp tuyệt vời để giải quyết các khó khăn đó. Chúng ta sẽ cùng nhau đi sâu vào từng phần của RxSwift trong bài tiếp theo. Cùng nghiên cứu về Observables.
Bài viết gốc được đăng tải tại codetoanbug.com
Có thể bạn quan tâm:
- RxSwift 6: Observables
- RxSwift 8: Tạo observable factories
- RxSwift 3: Thuật ngữ về lập trình bất đồng bộ (Asynchronous programming glossary)
Xem thêm Việc làm IT hấp dẫn trên TopDev