ΠΠ½Π°Π½ΠΈΠ΅ΡΠΎ Π΅ Π΄ΠΎΠ±ΡΠΎ, ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ. ΠΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Π³ΠΈ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΠΈΡΠ΅ ΠΎΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ βΠΏΠ°ΡΠΈΠ²Π½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅β Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ βΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅β. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ Π΄Π° Π΅ Π΄ΠΎΠ±ΡΠ° ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°, Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°Π±ΠΎΡΠ° βΠ½Π° ΡΠ΅ΡΠ΅Π½β. ΠΠΎΡΠ½ΠΎΡΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π·Π° ΠΏΠΎΡΡΠΈ Π²ΡΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ.
Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° GeekBrains, ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΠ°ΠΊΡΠ»ΡΠ΅ΡΠ° Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° GeekUniversity, Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°ΡΠ° Π°Π³Π΅Π½ΡΠΈΡ AGIMA, ΡΠΈΠΉΡΠΎ Π΅ΠΊΠΈΠΏ ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ (ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΠΎΡΡΠ°Π»ΠΈ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ). AGIMA ΠΈ GeekBrains ΡΡΠ·Π΄Π°Π΄ΠΎΡ Π° ΡΠ°ΠΊΡΠ»ΡΠ΅Ρ Π·Π° Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΏΠΎΡΠ°ΠΏΡΠ½Π΅ Π² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ½Π·ΠΈ Π΄Π΅Π½ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΡΡ
ΠΌΠ΅ Ρ ΠΠ³ΠΎΡ ΠΠ΅Π΄Π΅Π½Π΅Π΅Π², ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ iOS, ΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ Π’ΠΈΠ·ΠΈΠΊ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ Android. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡ
ΡΠ°ΠΊΡΠ»ΡΡΠ°ΡΠΈΠ²ΡΡ ΠΏΠΎ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ΅ ΠΎΠ±ΠΎΠ³Π°ΡΠΈ Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π² iOS Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° RxSwift ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠ·Π±ΠΈΡΠ°Π΅ΠΌ ΡΡΠΈΡΠ΅Π» ΠΠ³ΠΎΡ ΠΠ΅Π΄Π΅Π½Π΅Π΅Π²: βΠ‘ RxSwift Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π»Π΅ΡΠΈβ
ΠΠ°ΠΊΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΡΠ΅Π½ΠΈΡΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π±ΠΈΡΠ°Π΅ΠΌΠΈΡ ΠΊΡΡΡ?
ΠΠΎΠ²ΠΎΡΠΈΠΌ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ°, Π½ΠΎ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ MVVM + RxSwift. ΠΠ±ΡΡΠΆΠ΄Π°Ρ ΡΠ΅ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠ° Π΄Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΠ΄ΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π½ΠΈΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΌΡΡΡΠΎ. Π’ΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΌΡΠ·ΠΈΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΎ
RxSwift - Π·Π°ΡΠΎ iOS ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΡΡ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠ°ΠΌΠΊΠ°, ΠΊΠ°ΠΊ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ°?
RxSwift ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΠ°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡΡΠ°: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π² viewModel. Π’Π°ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΡΡΠ°Π²Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° RxSwift Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΡΠΈΠ», ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ ΠΈ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ°. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° ΡΡΡΠΎ Π΅ Π΄ΠΎΠ±ΡΡ ΠΏΠ»ΡΡ Π² Π°Π²ΡΠΎΠ±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΎΠΏΠΈΡΡΡ Ρ RxSwift ΡΠ΅ ΠΎΡΠ΅Π½ΡΠ²Π°Ρ Π½Π° ΠΏΠ°Π·Π°ΡΠ°.
ΠΠ°ΡΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΈ ΡΠ°ΠΌΠΊΠ° ΠΏΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈ?
RxSwift ΠΈΠΌΠ° Π½Π°ΠΉ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ. Π’ΠΎΠ΅ΡΡ ΠΈΠΌΠ° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΡΠ°Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ, ΠΏΡΠ΅Π΄ ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ, Π²Π΅ΡΠ΅ Π΄Π° Π΅ ΡΠ΅ΡΠ΅Π½ ΠΎΡ Π½ΡΠΊΠΎΠ³ΠΎ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠΎΠ΄Π²ΡΡΠ·ΠΈΠΈ ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° RxSwift Π΅ ΡΠ°ΡΡ ΠΎΡ ReactiveX. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠΌΠ° Π°Π½Π°Π»ΠΎΠ³ Π·Π° Android Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (RxJava, RxKotlin) ΠΈ ΠΊΠΎΠ»Π΅Π³ΠΈΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠΈΠ»Π½ΠΈΡΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΡΡ Ρ iOS, Π΄ΡΡΠ³ΠΈ Ρ Android.
Π Π°ΠΌΠΊΠ°ΡΠ° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ, Π΄ΡΠ΅Π±Π½ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ, Π΄ΠΎΠ±Π°Π²Ρ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Swift ΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ RxSwift Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ°ΠΌΠΈ.
ΠΡΠ΄Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° RxSwift?
- ΠΠΎΠ΄Π²ΡΡΠ·ΠΈΠΈ. ΠΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΊΠ°Ρ ΡΠ΅Π°Π³ΠΈΡΠ°ΠΉΠΊΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π΄Π°Π½Π½ΠΈΡΠ΅, Π° Π½Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΊΠ°Π·Π²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ΅ Π΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅.
- ΠΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π‘Π°ΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Ρ. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΡΠΊ Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°, Π΄Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Π² ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ, Π΄Π° Π³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Π½ΠΈΠ΅ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ»Π΅Π΄Π²Π°ΠΌΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅
SOLID ?). ΠΠΌΠ°ΠΉΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠΎ RxSwift ΠΏΠΎΠ΄ ΡΡΠΊΠ°, ΡΡΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ ΠΠΠΠΠ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΠΠΠ ΡΠ΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π° ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ°. ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠΎΠ΄ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΠΊΠ½ΠΈΠ³Π°.
ΠΠΎΡΡΡΠΈΠ½ΠΈ Π² Kotlin
Π£ΡΠΈΡΠ΅Π»ΡΡ ΠΏΠΎ ΠΈΠ·Π±ΠΈΡΠ°Π΅ΠΌ ΠΊΡΡΡ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ Π’ΠΈΠ·ΠΈΠΊ: βΠ‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°β
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π° Π²ΡΠ² ΡΠ°ΠΊΡΠ»ΡΠ΅ΡΠ° Π½Π° GeekBrains ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π±ΡΠ°Π½Π΄ΠΈΡΠ°Π½ΠΎΡΠΎ ΡΡΠΈΠΌΠ΅ΡΠ΅ΡΠΈΠ΅?
Π’Π΅ΠΎΡΠΈΡ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π² ΡΠΈΡΡ Kotlin ΠΈ Π² ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ°, Π½Π° ΡΡΠ΅Π½ΠΈΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΊΠΎΡΡΡΠΈΠ½ΠΈ. Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΎ ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠ΅ Π½Π° Kotlin ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΠ±ΡΡΠΊΠ²Π°Ρ, Ρ Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π΅Π½ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΊΠΎΠ΄ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ Π΄ΠΎ Π΅Π΄ΠΈΠ½, Π»Π΅ΡΠ΅Π½ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΡΠΈΠ», ΠΏΠ΅ΡΠ΅Π»Π΅ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π©Π΅ ΡΠ΅ Π½Π°ΡΡΠΈΠΌ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΊΠΎΠ΄ Π² ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ Π½Π° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄ Π΄ΠΎΡΠΈ Π±Π΅Π· Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠ΅ (ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΠΎ RxJava). Π©Π΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΡΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π°ΠΊΡΡΠΎΡΠ°, Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠ°ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° MVI.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΎΡΠ΅ Π΄ΠΎΠ±ΡΠΈ Π½ΠΎΠ²ΠΈΠ½ΠΈ. ΠΠΎΠΊΠ°ΡΠΎ ΠΈΠ·Π±ΠΈΡΠ°Π΅ΠΌΠΈΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅, Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Kotlin Coroutines, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΊΠ»Π°ΡΡΡ Flow
- Π°Π½Π°Π»ΠΎΠ³ Π½Π° Π²ΠΈΠ΄ΠΎΠ²Π΅ΡΠ΅ Flowable
ΠΈ Observable
ΠΎΡ RxJava. ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΡΡΡΡΠΈΠ½Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΡΠ½ΠΎ Π΅, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΌΡΡΡΠΎ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈ Π² kotlin/native, Π²Π΅ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΈΡΠ°Ρ ΠΌΡΠ»ΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kotlin ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΡΠ°Π΄Π° ΠΎΡ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° RxJava ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ·ΠΈ Π² ΡΠΈΡΡ Kotlin, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈ Π² kotlin/native Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΡΠΌΠ° ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π·Π° Π°ΠΊΡΡΠΎΡΠΈ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π΅ΠΊΠΈΠΏΡΡ Π½Π° Kotlin ΠΈΠΌΠ° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ Π°ΠΊΡΡΠΎΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
Kotlin Coroutines - ΠΊΠ°ΠΊ ΡΠ΅ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Kotlin?
Π‘ΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΠ΄Π΅ΡΠ½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ΅ΡΠΈΠΌ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΠΈ ΡΠΈΠ³ΡΡΠ΅Π½, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π΅Π½. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΡΠ°ΠΌΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π²Π΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π°.
ΠΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΊΠΎΡΡΡΠΈΠ½ΠΈΡΠ΅ ΠΎΡ Π½ΠΈΡΠΊΠΈΡΠ΅?
ΠΠΊΠΈΠΏΡΡ Π½Π° Kotlin Π½Π°ΡΠΈΡΠ° ΠΊΠΎΡΡΡΠΈΠ½ΠΈΡΠ΅ Π»Π΅ΠΊΠΈ Π½ΠΈΡΠΊΠΈ. ΠΠ»ΡΡ ΡΠΎΠ²Π° ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΡΠ½Π΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π·Π°ΡΠΎΡΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π΅ ΠΏΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΠ΅ Π·Π°Π²ΠΈΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ; Π½ΠΈΡΠΊΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Coroutine, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ ΠΈΠ»ΠΈ ΡΠ° ΡΡΡΠ΄Π½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° βΡΠΈΡΡβ Kotlin?
ΠΡΠΈΡΠΊΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ, ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ, βΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈβ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ Π΄ΠΎΠ±ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ β Π±ΠΈΠ»ΠΎ ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΠ°ΠΊΠ²Π°Π½ΠΈΡ, Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ Π°Π±ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
Π ΡΠΈΡΡΠΈΡ Kotlin ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½, ΠΊΠ°ΠΊΡΠΎ Π² Java - Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ°ΠΌΠΊΠΈ, Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΠΌΠΈΠ½ΡΡΠΈ, Π½ΠΎ Π½ΠΈΡΠΎ Π΅Π΄Π½Π° ΠΎΡ ΡΡΡ Π½ΡΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ.
ΠΠ°ΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΠΈ Π΄Π²Π΅ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Π΅ΠΌΠΈ (ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΡΡΡΠΎΠ²Π΅) ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠ½ΡΠ½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π²Π°ΠΆΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π΅Π·ΠΈΡΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΊΠΈ, ΡΡΠΈΡΠ΅Π»ΠΈΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΡΡΠΆΠΈΡΠ΅ ΠΏΡΡΡΡΠ° ΡΠΈ Π½Π° ΠΏΡΠ»ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com