RxSwift αž“αž·αž„ coroutines αž“αŸ… Kotlin - αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž–αžΈ AGIMA αž“αž·αž„ GeekBrains

RxSwift αž“αž·αž„ coroutines αž“αŸ… Kotlin - αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž–αžΈ AGIMA αž“αž·αž„ GeekBrains

αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž‚αžΊαž›αŸ’αž’ αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αž„αžŠαŸ‚αžšαžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž•αŸ’αž‘αŸαžšαž–αž½αž€αžœαžΆαž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž– "αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž’αž€αž˜αŸ’αž˜" αž‘αŸ…αžŸαŸ’αžαžΆαž“αž—αžΆαž– "αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž€αž˜αŸ’αž˜" αŸ” αž˜αž·αž“αžαžΆαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž›αŸ’αž’αž”αŸ‰αž»αžŽαŸ’αžŽαžΆαž€αŸαžŠαŸ„αž™ αž€αžΆαžšαž„αžΆαžš "αž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™" αž“αŸ…αžαŸ‚αž‘αžΆαž˜αž‘αžΆαžšαŸ” αžαžΆαž„αž›αžΎαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αžœαž·αžŸαŸαž™αžŸαž·αž€αŸ’αžŸαžΆ αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αž„αžŠαŸ‚αžšαŸ”

αž“αŸ…αž†αŸ’αž“αžΆαŸ†αž“αŸαŸ‡ GeekBrains αžŠαŸ‚αž›αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž˜αž αžΆαžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž…αž›αŸαžαž“αŸƒαžŸαž€αž›αžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αž’αž“αž‘αžΆαž‰ GeekUniversity αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜ AGIMA αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‡αžΆαž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž‡αŸ†αž“αžΆαž‰αžœαž·αž‡αŸ’αž‡αžΆαž‡αžΈαžœαŸˆ (αž–αž½αž€αž‚αŸαž”αž„αŸ’αž€αžΎαžαž‚αž˜αŸ’αžšαŸ„αž„αž”αž“αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αžœαž·αž”αž•αžαžαž›αžŸαžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹)αŸ” AGIMA αž“αž·αž„ GeekBrains αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‡αž˜αŸ’αžšαžΎαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‡αŸ’αžšαž˜αž»αž‡αž‘αžΉαž€αž™αŸ‰αžΆαž„αž‡αŸ’αžšαŸ…αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αŸ”

αž“αŸ…αžαŸ’αž„αŸƒαž˜αž»αž“αž™αžΎαž„αž”αžΆαž“αž“αž·αž™αžΆαž™αž‡αžΆαž˜αž½αž™ Igor Vedeneev αž’αŸ’αž“αž€αž―αž€αž‘αŸαžŸ iOS αž“αž·αž„ Alexander Tizik αž―αž€αž‘αŸαžŸ Android αŸ” αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαžŠαž›αŸ‹αž–αž½αž€αž‚αŸ αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž›αžΎαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΉαž„αžŠαŸ„αž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž–αž·αžŸαŸαžŸαž›αžΎαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ RxSwift ΠΈ αž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž“αŸ… Kotlin. αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαžαŸ†αž”αž“αŸ‹αž“αžΈαž˜αž½αž™αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ iOS αžŠαŸ„αž™αž”αŸ’αžšαžΎ RxSwift αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ

RxSwift αž“αž·αž„ coroutines αž“αŸ… Kotlin - αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž–αžΈ AGIMA αž“αž·αž„ GeekBrains
αž‚αŸ’αžšαžΌαž”αž„αŸ’αžšαŸ€αž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ Igor Vedeneev: "αž‡αžΆαž˜αž½αž™ RxSwift αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž αŸ„αŸ‡αž αžΎαžš"

αžαžΎαžŸαž·αžŸαŸ’αžŸαž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αž?

αž™αžΎαž„αž“αž·αž™αžΆαž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αŸ†αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒ MVVM + RxSwift αž”αž»αžšαžΆαžŽαŸ” αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“ αž™αžΎαž„αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž“αŸ…αž‡αž·αžαž”αŸ†αž•αž»αžαžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž…αŸ†αž–αŸ„αŸ‡αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αžœαžΆαž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαž“αŸ’αžαŸ’αžšαžΈαžŠαŸ„αž™αž”αŸ’αžšαžΎ iTunes αžŸαŸ’αžœαŸ‚αž„αžšαž€ API. αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž™αžΎαž„αž“αžΉαž„αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžšαž½αž˜αž‘αžΆαŸ†αž„αž–αž·αž…αžΆαžšαžŽαžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ RxSwift αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌ MVC αŸ”

RxSwift - αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ iOS αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ’αžšαž”αžαžŽαŸ’αžŒαž“αŸαŸ‡ αžαžΎαžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž‡αžΈαžœαž·αžαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?

αž”αž“αŸ’αž‘αžΆαžαŸ‹ RxSwift αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž“αž·αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αžœαžαŸ’αžαž»αŸ” αž§αž‘αžΆαž αžšαžŽαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αž αž“αž·αž„αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž”αŸ†αž•αž»αžαž‚αžΊαž€αžΆαžšαž…αž„αŸ– αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžšαž€αŸ’αž“αž»αž„ viewModel αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž€αŸ’αž›αžΆαž™αž‡αžΆαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ RxSwift αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αž”αŸ’αžšαž€αžΆαžŸ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž’αžΆαž“αŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž‡αž½αž™αž’αž—αž·αžœαžŒαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž’αŸ†αž–αžΈαž€αŸ’αžšαž”αžαžŽαŸ’αžŒαž€αŸαž‡αžΆαž”αžΌαž€αžŠαŸαž›αŸ’αž’αž˜αž½αž™αž“αŸ…αž›αžΎαž”αŸ’αžšαžœαžαŸ’αžαž·αžšαžΌαž”αž•αž„αžŠαŸ‚αžš αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜ αž“αž·αž„αž‡αžΆαž–αž·αžŸαŸαžŸαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž‡αžΆαž˜αž½αž™ RxSwift αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž‡αžΆαž„αž’αŸ’αž“αž€αžŠαž‘αŸƒ?

RxSwift αž˜αžΆαž“αžŸαž αž‚αž˜αž“αŸαž’αŸ†αž”αŸ†αž•αž»αžαŸ” αž“αŸ„αŸ‡αž‚αžΊαž˜αžΆαž“αž±αž€αžΆαžŸαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ†αž–αž»αž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αžšαž½αž…αž αžΎαž™αŸ” αž€αŸαž˜αžΆαž“αž€αžΆαžšαž…αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž RxSwift αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒ ReactiveX αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž˜αžΆαž“ analogue αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Android αž§αž‘αžΆαž αžšαžŽαŸ (RxJava, RxKotlin) αž αžΎαž™αž˜αž·αžαŸ’αžαžšαž½αž˜αž€αžΆαžšαž„αžΆαžšαž€αŸ’αž“αž»αž„αžŸαž·αž€αŸ’αžαžΆαžŸαžΆαž›αžΆαž’αžΆαž…αž“αž·αž™αžΆαž™αž—αžΆαžŸαžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαžαŸ’αž›αŸ‡αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ iOS αžαŸ’αž›αŸ‡αž‘αŸ€αžαž‡αžΆαž˜αž½αž™ Android αŸ”

αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž₯αžαžˆαž”αŸ‹αžˆαžš αž€αŸ†αž αž»αžŸαžαžΌαž…αžαžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž–αžΈαž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹ Swift αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž“αž·αž„αž€αžΆαžšαž…αž„αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ” αžŠαŸ„αž™αžŸαžΆαžš RxSwift αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž›αžΎαžŸβ€‹αž–αžΈβ€‹αž“αŸαŸ‡β€‹αž‘αŸ…β€‹αž‘αŸ€αž αžœαžΆβ€‹αž’αžΆαž…β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αžœαžΆβ€‹αžŠαŸ„αž™β€‹αžαŸ’αž›αž½αž“β€‹αž―αž„αŸ”

តើ RxSwift αž‚αž½αžšαž”αŸ’αžšαžΎαž“αŸ…αž―αžŽαžΆ?

  1. αž€αžΆαžšαž…αž„αŸ” αžαžΆαž˜αž€αŸ’αž”αž½αž“αž˜αž½αž™ αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ UI αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš UI αžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž˜αž·αž“αž”αŸ’αžšαžΆαž”αŸ‹αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž–αžΈαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžαžΆαžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αžΆαž”αŸ‹αžŠαŸαžαž αžΎαž™αŸ”
  2. αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αžŸαž˜αžΆαžŸαž’αžΆαžαž» αž“αž·αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αžŽαŸ’αžαžΆαž‰αŸ” αžαžΆαž˜αž€αžΆαžšαž–αž·αž αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ αž‚αžΌαžŸαž•αŸ‚αž“αž‘αžΈαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαžšαŸαž“αŸƒαžœαžαŸ’αžαž» αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆαž‘αŸ… UI αŸ” αžαžΆαž˜αž€αŸ’αž”αž½αž“αž˜αž½αž™ αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž‚αžΊαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αž™αžΎαž„αžŸαŸ’αžšαž‘αžΆαž‰αŸ‹ αž“αž·αž„αž’αŸ’αžœαžΎαžαžΆαž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αžšαžΉαž„?) αž€αžΆαžšαž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŠαžΌαž…αž‡αžΆ RxSwift αž“αŸ…αž“αžΉαž„αžŠαŸƒ αžœαžΆαž’αžΆαž…αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αžΉαž„αž’αŸ’αžœαžΎ αž αžΎαž™αžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αž’αŸ’αžœαžΎαžœαžΆαž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžœαžΆαž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸαŸ‡αžŠαŸ‚αž›αž’αž„αŸ’αž‚αž€αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸƒαž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž αžΎαž™αž€αžΆαžšαž’αžΆαž“αž€αžΎαž“αž‘αžΎαž„αŸ” αž”αžΎαž“αž·αž™αžΆαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‚αŸ’αž“αžΆ αž€αžΌαžŠαž’αžΆαž…αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαžαžΆαžšαžΆαž„αž˜αžΆαžαž·αž€αžΆ αž“αž·αž„αžŸαŸ€αžœαž—αŸ…αžαŸ’αž›αž½αž“αž―αž„αŸ”

αž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž“αŸ… Kotlin

RxSwift αž“αž·αž„ coroutines αž“αŸ… Kotlin - αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž–αžΈ AGIMA αž“αž·αž„ GeekBrains
αž‚αŸ’αžšαžΌαž”αž„αŸ’αžšαŸ€αž“αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ Alexander Tizik: "αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αŸ†αž“αžΎαž”αž‘αžΆαž˜αž‘αžΆαžšαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‘αŸ†αž“αžΎαž”"

αžαžΎαž’αŸ’αžœαžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αžšαŸ€αž“αž“αŸ…αž˜αž αžΆαžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™ GeekBrains αžŠαŸ‚αž›αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαžαŸ’αžšαžΈαž˜αžΆαžŸαž˜αŸ‰αžΆαž€?

αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈ, αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αž, αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸ…αž€αŸ’αž“αž»αž„ Kotlin αžŸαž»αž‘αŸ’αž’ αž“αž·αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Android αŸ” αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžŸαž·αžŸαŸ’αžŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αžΌαžœαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™ αžŠαŸ‚αž›αž’αŸ’αžœαžΈαŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž“αžΉαž„αž‘αž˜αŸ’αž›αžΆαž”αŸ‹αŸ” αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‚αžΊαž‡αžΆαž€αžΆαžšαž‚αžŽαž“αžΆαž’αžŸαž˜αž€αžΆαž› αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ Kotlin coroutines αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž…αŸ’αžšαž”αžΌαž€αž…αŸ’αžšαž”αž›αŸ‹ αžαž»αžŸαž–αžΈαž‚αŸ’αž“αžΆ αž¬αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αžαŸ’αž›αžΆαŸ†αž„αž–αŸαž€ αž“αž·αž„αž€αžΌαžŠαž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž‘αŸ…αž‡αžΆαžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžαŸ‚αž˜αž½αž™ αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž™αž›αŸ‹ αžŠαŸ„αž™αž‘αž‘αž½αž›αž”αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αž™αžΎαž„αž“αžΉαž„αžšαŸ€αž“αžŸαžšαžŸαŸαžšαž€αžΌαžŠ idiomatic αž“αŸ…αž€αŸ’αž“αž»αž„ coroutines αžŠαŸ‚αž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž αžΎαž™αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αž“αŸ… glance αžŠαŸ†αž”αžΌαž„ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αž·αž“αž˜αžΆαž“αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž‡αŸ’αžšαŸ…αž‡αŸ’αžšαŸ‡αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› coroutines αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αž’αŸ†αž–αžΈαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαžΌαž…αž‡αžΆ RxJava)αŸ” αž™αžΎαž„αž€αŸαž“αžΉαž„αž™αž›αŸ‹αž•αž„αžŠαŸ‚αžšαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαž‚αŸ†αž“αž·αžαžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αžŠαžΌαž…αž‡αžΆαž‚αŸ†αžšαžΌαžαž½αžŸαž˜αŸ’αžαŸ‚αž„ αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αžŠαžΌαž…αž‡αžΆαžƒαŸ’αž›αžΆαŸ†αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αž“αž·αž MVI αž‡αžΆαžŠαžΎαž˜αŸ”

αž“αž·αž™αžΆαž™αž’αžΈαž‰αŸ’αž…αžΉαž„ αžŠαŸ†αžŽαžΉαž„αž›αŸ’αž’αž‘αŸ€αžαŸ” αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆ αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž‘αŸ…αž€αžΆαž“αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Kotlin Coroutines αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“ Flow - analogue αž“αŸƒαž”αŸ’αžšαž—αŸαž‘ Flowable ΠΈ Observable αž–αžΈ RxJava αŸ” αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž–αž·αžαž‡αžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αž»αžαž„αžΆαžš coroutines αž–αŸαž‰αž›αŸαž‰αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž–αž·αž αžœαžΆαž“αŸ…αžαŸ‚αž˜αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ‚αž›αž˜αŸ’αž’αŸ– αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸƒ coroutines αž“αŸ…αž€αŸ’αž“αž»αž„ kotlin/native αžœαžΆαž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž αž»αžœαŸαž‘αž·αž€αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Kotlin αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž˜αž·αž“αž‘αž‘αž½αž›αžšαž„αž–αžΈαž€αžΆαžšαžαŸ’αžœαŸ‡αžαžΆαž RxJava ឬ analogues αž“αŸ…αž€αŸ’αž“αž»αž„ Kotlin αžŸαž»αž‘αŸ’αž’αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ coroutines αž“αŸ…αž€αŸ’αž“αž»αž„ kotlin/native αž˜αž·αž“αž‘αžΆαž“αŸ‹αž–αŸαž‰αž›αŸαž‰αž“αŸ…αž‘αžΎαž™αž‘αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸαž˜αž·αž“αž˜αžΆαž“αž‚αŸ†αž“αž·αžαž“αŸƒαžαž½αž’αž„αŸ’αž‚αž‘αŸαŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš Kotlin αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž‚αžΆαŸ†αž‘αŸ’αžšαžαž½αž’αž„αŸ’αž‚αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž›αžΎαž‚αŸ’αžšαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

Kotlin Coroutines - αžαžΎαž–αž½αž€αž‚αŸαž‡αž½αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Kotlin αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

Coroutines αž•αŸ’αžαž›αŸ‹αž±αž€αžΆαžŸαžŠαŸαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠαžŠαŸ‚αž›αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“ αžšαž€αŸ’αžŸαžΆαž”αžΆαž“ αž“αž·αž„αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž’αžŸαž˜αž€αžΆαž› αž“αž·αž„αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαŸ” αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž’αžŸαž˜αž€αžΆαž›αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž’αžΆαž…αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠαŸ”

តើ Coroutines αžαž»αžŸαž‚αŸ’αž“αžΆαž–αžΈαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž€αŸ’αžšαž»αž˜ Kotlin αž αŸ… coroutines lightweight threadsαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ coroutine αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αžαž˜αŸ’αž›αŸƒαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αžŸαŸ’αž“αžΌαž›αžšαž”αžŸαŸ‹αžœαžΆ coroutine αž‚αžΊαž‡αžΆαž€αžΆαžšαž‚αžŽαž“αžΆαžŠαŸ‚αž›αž•αŸ’αž’αžΆαž€αŸ” αžœαžΆβ€‹αž˜αž·αž“β€‹αž’αžΆαžŸαŸ’αžšαŸαž™β€‹αžŠαŸ„αž™β€‹αž•αŸ’αž‘αžΆαž›αŸ‹β€‹αž›αžΎβ€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž‹β€‹αžαŸ’αžŸαŸ‚β€‹αžŸαŸ’αžšαž‘αžΆαž™β€‹αž‘αŸ αžαŸ’αžŸαŸ‚β€‹αžŸαŸ’αžšαž‘αžΆαž™β€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·β€‹αžαŸ‚ coroutines αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αžαžΎαž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ Coroutine αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž¬αž–αž·αž”αžΆαž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ Kotlin "αž”αžšαž·αžŸαž»αž‘αŸ’αž’"?

αžšαžΆαž›αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž’αžŸαž˜αž€αžΆαž› αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› αž“αž·αž„ "αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„" αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αž›αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αž˜αŸ’αž›αžΆαž”αŸ‹ - αžαžΆαžαžΎαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž…αž»αž…αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž¬αž‡αžΆαžœαž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž˜αžΈαŸ—αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„ Kotlin αžŸαž»αž‘αŸ’αž’ αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„ Java αžŠαŸ‚αžš - αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈαž€αŸ’αžšαž”αžαžŽαŸ’αžŒαžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹ αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž· αž“αž·αž„αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžšαŸ€αž„αŸ—αžαŸ’αž›αž½αž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸαž‚αžΆαŸ†αž‘αŸ’αžšαž€αž˜αŸ’αžšαž·αžαž—αžΆαžŸαžΆαž“αŸ„αŸ‡αž‘αŸαŸ”

αž‡αžΆαž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“ αžœαžΆαž‚αžΊαž˜αžΆαž“αžαŸ†αž›αŸƒαž“αž·αž™αžΆαž™αžαžΆαž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αžΆαŸ†αž„αž–αžΈαžš (αž“αž·αž„αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžŸαŸ†αžαžΆαž“αŸ‹αž•αž„αžŠαŸ‚αžš) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžŸαŸ’αžšαž”αžαžΆαž˜αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžαžΆαž„αž€αŸ’αžšαŸ…αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž›αŸαž…αž‘αžΎαž„αž‡αžΆαž—αžΆαžŸαžΆ αž¬αž€αŸ’αžšαž”αžαžŽαŸ’αžŒ αž‚αŸ’αžšαžΌαž”αž„αŸ’αžšαŸ€αž“αž™αž€αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈ αž αžΎαž™αž€αŸ‚αž”αŸ’αžšαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαž€αŸ’αžŸαžΆαž˜αŸ’αžšαžΆαž˜αžŠαŸƒαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž›αžΎαž‡αžΈαž–αž…αžšαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž“αž·αž™αžΆαž™αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹