Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Swift API ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½ΠΈΠΆΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ Π²Π΅ΡΠ±Π»ΡΠ΄Π°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ ΠΊΠΎΠ΄Π° Swift: NotificationCenter.rac_notifications(forName:object:)
ΠΈ URLSession.rac_data(with:)
. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ IIRC ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Rex ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Cocoa Bindings Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ rex_
.
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ?
ΠΠ»Ρ Π΄Π²ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΌΠΎΠ΅ Π½Π΅ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΠΌΡ - makeProducer
.
ΠΠ°ΡΠΈΠ½Π°ΠΉΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°Π±ΡΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ Β«makeΒ», egxmakeIterator ().
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΠΏΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠΉ ΠΌΡΡΠ»ΠΈ, Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ΅Π΅ΡΡ ΠΈΠΌΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ IMO, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΠΎ notifications(forName:object:)
.
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠΏΡ Π΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌΠΈ - ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π². ΠΠ»ΠΈ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ ΡΠ΅Π±Π΅. Π― Π½Π° Π·Π°Π±ΠΎΡΠ΅.
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡ
ΡΠΎΡ
ΡΠ°Π½ΠΈΠΌ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ rac_
(Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ΄ ΠΎΡ Rex) ΠΈ Π½Π°ΠΉΡΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ Π΄Π»Ρ ReactiveSwift.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΈΠΌΠ΅Π½ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Π΄Π»Ρ Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΊΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π²ΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
view.bindables.text <~ property
// `view.bindables` is of type `Bindings<UIView>`, which conforms to `BindingsProtocol`
// that requires an associated type `Owner`.
//
// `view.bindables.text` is provided by the extension to `BindingsProtocol` for all
//`Owner` inherited from `UIView`.
(ΠΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ rac
? ΠΠΎ Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΈ ReactiveSwift, ΠΈ ReactiveCocoa ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ)
... ΠΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ view.textProxy
, view.reactiveText
ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π°.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: Ρ ΡΠΎΠ±ΡΠ°Π» Π±ΡΡΡΡΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ (https://github.com/RACCommunity/Rex/pull/143).
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ 2: Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ. :ΠΏ
ReactiveCocoa 5+ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Rex. RAC ΠΏΠΎΠ³Π»ΠΎΡΠΈΡ Π Π΅ΠΊΡΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½Π΅Ρ Π Π΅ΠΊΡ. ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ. πΈ
outlets
ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ΅Π½Π΄Π΅Π½ΡΠΎΠΌ.
"ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ" Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Β«rac_Β» ΠΈ Β«rex_Β» - ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΈΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ. Π― Π²ΡΠ±Π΅ΡΡ Β«ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉΒ», Β«Π°ΠΊΡΠΈΠ²Π½ΡΠΉΒ» ΠΈΠ»ΠΈ Β«ΡΠΈΠ³Π½Π°Π»Β», ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠ΅ΡΡ view.reactiveText, view.activeText ΠΈΠ»ΠΈ view.signalText.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Swift ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΡΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΡΠ΅ΡΠΈΠΊΡΠ°Ρ . Π’Π°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉ ΠΏΡΠΎΡΡΠΎ Π±ΡΠΎΡΠΈΠΌ ΠΈΡ ! : D
ΠΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎ Π½Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Ρ. π
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΠΊΡΠΈ bindable
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ view.bindables.something
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π²Π΅ΡΡΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ»ΡΠΊΠΈ, ΠΊΠ°ΠΊ %view.something
. π
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ / ΡΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² Swift 3.0. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΏΡΠΎΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ.
Π― Π±Ρ ΡΠΈΡΠΊΠ½ΡΠ» ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΡΠΈΡ ...
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠΊΠ° Π·Π°ΡΡΡΡΠ»ΠΈ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ².
ΠΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Ρ SnapKit, - ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, API RAC ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
struct UIButtonRACDSL {
var pressed: Signal<UIButton, NoError>
init(button: UIButton) { }
}
extension UIButton {
var rac: UIButtonRACDSL { return UIButtonRACDSL(button: self) }
}
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΌΠ°ΡΡΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ.
ΠΠ°, Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°Π½ΡΡΠ΅ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. ΠΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΠ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ rac
ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π±ΡΠ»ΠΎ Π±Ρ Ρ
ΠΎΡΠΎΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅.
rac
ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅ ... Π’ΠΠ ΠΠ§ΠΠΠ¬ !!! : heart_eyes:
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΡΠ°ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ RxSwift.
https://github.com/ReactiveX/RxSwift/blob/4952adb27c684b47792923b00015516849061eab/RxCocoa/Common/Reactive.swift
https://github.com/ReactiveX/RxSwift/blob/4952adb27c684b47792923b00015516849061eab/RxCocoa/iOS/UIControl%2BRx.swift
ΠΠ½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ Reactive
ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎ ΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ΠΈ Ρ
ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠΈΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π² Reactive
. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½ΠΈ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΡΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ .lazy
Π‘Π²ΠΈΡΡΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ Π²ΠΎΡΠΎΠ²ΡΡΠ²ΠΎ.
https://github.com/RACCommunity/Rex/pull/143/commit/86f03c3b2d4759c87254a9ea3b28939f23f6be56
π
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Ρ SnapKit, - ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, API RAC ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΌΠ°ΡΡΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ.