All Projects → RxSwiftCommunity → RxCocoa-Texture

RxSwiftCommunity / RxCocoa-Texture

Licence: MIT license
RxCocoa Extension Library for Texture.

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to RxCocoa-Texture

Bark
Bark is an iOS App which allows you to push customed notifications to your iPhone
Stars: ✭ 2,371 (+2319.39%)
Mutual labels:  rxswift, ios-app, rxcocoa
RxMVVM-Texture
RxSwift MVVM pattern best practice built on Texture(AsyncDisplayKit) and written in Swift
Stars: ✭ 84 (-14.29%)
Mutual labels:  rxswift, texture, asyncdisplaykit
DailyNews
Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.
Stars: ✭ 31 (-68.37%)
Mutual labels:  rxswift, ios-app, rxcocoa
Httper Ios
App for developers to test REST API.
Stars: ✭ 376 (+283.67%)
Mutual labels:  rxswift, ios-app
MovieInfoMVVMiOS
Movie Info app using TMDb API built with MVVM
Stars: ✭ 38 (-61.22%)
Mutual labels:  rxswift, rxcocoa
Rxxmly
RxSwift 实现MVVM高仿喜马拉雅的函数响应式编程
Stars: ✭ 313 (+219.39%)
Mutual labels:  rxswift, ios-app
Rxdatasources Texture
ASTable and ASCollection Data Sources for RxSwift (Texture)
Stars: ✭ 25 (-74.49%)
Mutual labels:  rxswift, texture
Papr
🌁 An Unsplash app for iOS
Stars: ✭ 1,025 (+945.92%)
Mutual labels:  rxswift, ios-app
Rxasdatasources
RxDataSource for AsyncDisplayKit/Texture
Stars: ✭ 114 (+16.33%)
Mutual labels:  rxswift, texture
Texture-KR-Wiki
Texture (AsyncDisplayKit) Wiki - 한국어
Stars: ✭ 42 (-57.14%)
Mutual labels:  texture, asyncdisplaykit
Gitiny
An iOS app for GitHub with exploring trending
Stars: ✭ 247 (+152.04%)
Mutual labels:  rxswift, ios-app
CLE-Architecture-Tools
A library for making view controller presentation and dismissal more functional.
Stars: ✭ 32 (-67.35%)
Mutual labels:  rxswift, rxcocoa
TVToday
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager
Stars: ✭ 27 (-72.45%)
Mutual labels:  rxswift, ios-app
GITGET
GitHub의 Contributions를 iOS의 Widget으로 보여주는 App
Stars: ✭ 101 (+3.06%)
Mutual labels:  rxswift, rxcocoa
awesome-demo-app
100% programmatically written in Swift. Clearly demonstrating the RxSwift, RxCocoa, RxRealm & SnapKit.
Stars: ✭ 16 (-83.67%)
Mutual labels:  rxswift, rxcocoa
Cathay
an iOS project for demonstration of Reactive Programming
Stars: ✭ 21 (-78.57%)
Mutual labels:  rxswift, rxcocoa
StackBarButtonItem
🔲 StackBarButtonItem can use BarButtonItem like StackView
Stars: ✭ 55 (-43.88%)
Mutual labels:  rxswift, rxcocoa
Mp3ID3Tagger
🎶🎵A macOS application to edit the ID3 tag of your mp3 files. Developed with RxSwift and RxCocoa. 🎸🎼
Stars: ✭ 17 (-82.65%)
Mutual labels:  rxswift, rxcocoa
Reduxmoviedb
🎥 See the upcoming movies! ReSwift + RxSwift 💖 Hacktoberfest 🎃
Stars: ✭ 137 (+39.8%)
Mutual labels:  rxswift, ios-app
IGListKit-AsyncDisplayKit-Example
IGListKit be used with AsyncDisplayKit in Swift
Stars: ✭ 34 (-65.31%)
Mutual labels:  texture, asyncdisplaykit

alt text

CI Status Version License Platform

Notice

pod 'RxCocoa-Texture', '3.x.x'

Your Contributions always welcome welcome!.

Concept

RxCocoa provides extensions to the Cocoa and Cocoa Touch frameworks to take advantage of RxSwift. Texture provides various basic UI components such as ASTableNode, ASControlNode, ASButtonNode and so on. ref: Node Subclasses

So, This Library provides extensions to the Texture frameworks to take advantage of RxSwift like a RxCocoa

ref: Texture + RxSwift Interactive Wrapper

Example

Extension

ASBinder

: Subscribed Observer operates asynchronously.

Expectation Flow Expectation UI

But, Node dosen't know that event value applied on UI before draw.

Unexpectation Flow Unexpectation UI

In this case, Node should use setNeedsLayout. but, [bind:_] doesn't call setNeedsLayout automatically.

Normally, you can use like this code

// Profile NetworkImage Node is default
// username, description is Optional

// *** self is usernameNode supernode
viewModel.username
         .subscribe(onNext: { [weak self] text in 
            self?.usernameNode.rx.text(Node.usernameAttributes).onNext(text)
            self?.setNeedsLayout() // Here
         })
         .disposed(by: disposeBag)

If you use ASBinder then you don't need call setNeedsLayout. ASBinder will operates it automatically.

// Profile NetworkImage Node is default
// username, description is Optional

// *** self is usernameNode supernode
viewModel.username
         .bind(to: usernameNode.rx.text(Node.usernameAttributes),
               setNeedsLayout: self) 
         .disposed(by: disposeBag)

// *** self is descriptionNode supernode
viewModel.desc
         .bind(to: descriptionNode.rx.text(Node.descAttributes),
               setNeedsLayout: self) 
         .disposed(by: disposeBag)

If you don't need setNeedsLayout then just write code like this.

// setNeedsLayout default is nil!
viewModel.username
         .bind(to: usernameNode.rx.text(Node.usernameAttributes)) 
         .disposed(by: disposeBag)

viewModel.desc
         .bind(to: descriptionNode.rx.text(Node.descAttributes)) 
         .disposed(by: disposeBag)
ASBinder Flow Output UI

Installation

RxCocoa-Texture is available through CocoaPods. To install it, simply add the following line to your Podfile:

swift 4.x

pod 'RxCocoa-Texture'

Caution

This library has been migrated to Texture 2.7. When Rx subscribe logic moves from initialization to didLoad method. I no longer faced this problem. When using RxSwift / RxCocoa, it is safe to subscribe from the didLoad method. TextureGroup/Texture#977

Author

Geektree0101, [email protected]

License

This library belongs to RxSwiftCommunity. RxCocoa-Texture is available under the MIT license. See the LICENSE file for more info

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].