RxSwift ืื•ืŸ Coroutines ืื™ืŸ Kotlin - ืึทืŸ ื™ืœืขืงื˜ื™ื•ื• ืื™ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึฟื•ืŸ AGIMA ืื•ืŸ GeekBrains

RxSwift ืื•ืŸ Coroutines ืื™ืŸ Kotlin - ืึทืŸ ื™ืœืขืงื˜ื™ื•ื• ืื™ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึฟื•ืŸ AGIMA ืื•ืŸ GeekBrains

ื•ื•ื™ืกืŸ ืื™ื– ื’ื•ื˜, ื ืึธืจ ื’ืจื•ื™ืก. ืึธื‘ืขืจ ืคื™ืจ ืื™ื– ืื•ื™ืš ื“ืืจืฃ ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ื“ืึทื˜ืŸ, ื˜ืจืึทื ืกืคืขืจื™ื ื’ ื–ื™ื™ ืคื•ืŸ ื“ื™ "ืคึผืึทืกื™ื•ื• ืกื˜ืึธืจื™ื“ื–ืฉ" ืกื˜ืึทื˜ื•ืก ืฆื• ื“ื™ "ืึทืงื˜ื™ื•ื• ื ื•ืฆืŸ" ืกื˜ืึทื˜ื•ืก. ื ื™ื˜ ืงื™ื™ืŸ ืขื ื™ืŸ ื•ื•ื™ ื’ื•ื˜ ื“ื™ ื˜ืขืึธืจืขื˜ื™ืฉ ื˜ืจื™ื™ื ื™ื ื’ ืื™ื–, ืึทืจื‘ืขื˜ "ืื™ืŸ ื“ืขื ืคืขืœื“" ืื™ื– ื ืึธืš ืคืืจืœืื ื’ื˜. ื“ื™ ืื•ื™ื‘ืŸ ืึทืคึผืœื™ื™ื– ืฆื• ื›ึผืžืขื˜ ืงื™ื™ืŸ ืคืขืœื“ ืคื•ืŸ ืœืขืจื ืขืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜, ืคื•ืŸ ืงื•ืจืก, ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’.

ื“ืึธืก ื™ืึธืจ, GeekBrains, ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื™ื™ื™ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืึธื ืœื™ื™ืŸ ืื•ื ื™ื•ื•ืขืจืกื™ื˜ืขื˜ GeekUniversity, ืื ื’ืขื”ื•ื™ื‘ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ืึทื’ืขื ื˜ื•ืจ AGIMA, ื•ื•ืขืžืขื ืก ืžืึทื ืฉืึทืคึฟื˜ ืื™ื– ืคืึทื›ืžืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก (ื–ื™ื™ ืžืึทื›ืŸ ืงืึธืžืคึผืœืขืงืก ื”ื•ื™ืš-ืžืึทืกืข ืคึผืจืึทื“ื–ืฉืขืงืก, ืคึฟื™ืจืžืข ืคึผืึธืจื˜ืึทืœืก โ€‹โ€‹ืื•ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื“ืึธืก ืื™ื– ืึทืœืข). AGIMA ืื•ืŸ GeekBrains ื”ืึธื‘ืŸ ื‘ืืฉืืคืŸ ืึทืŸ ื™ืœืขืงื˜ื™ื•ื• ืคึฟืึทืจ ืึท ื˜ื™ืฃ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ ื“ื™ ืคึผืจืึทืงื˜ื™ืฉ ื™ืฉื•ื– ืคื•ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’.

ื“ื™ ืื ื“ืขืจืข ื˜ืึธื’ ืžื™ืจ ื’ืขืจืขื“ื˜ ืžื™ื˜ Igor Vedeneev, ืึทืŸ ื™ืึธืก ืžื•ืžื›ืข, ืื•ืŸ Alexander Tizik, ืกืคึผืขืฉืึทืœื™ื™ื–ื™ื ื’ ืื™ืŸ ืึทื ื“ืจื•ื™ื“. ื“ืึทื ืง ืฆื• ื–ื™ื™, ื“ื™ ื™ืœืขืงื˜ื™ื•ื• ืื•ื™ืฃ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ื– ืขื ืจื™ื˜ืฉื˜ ืžื™ื˜ ืคึผืจืึทืงื˜ื™ืฉ ืกืคึผืขืฆื™ืขืœืข ืงื•ืจืก ืื•ื™ืฃ ื“ื™ RxSwift ืคืจื™ื™ืžื•ื•ืขืจืง ะธ ืงืึธืจื•ื˜ื™ื ืข ืื™ืŸ ืงืึธื˜ืœื™ืŸ. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื•ื•ื™ื›ื˜ื™ืงื™ื™ื˜ ืคื•ืŸ ื™ืขื“ืขืจ ื’ืขื’ื ื˜ ืคึฟืึทืจ ืคึผืจืึธื•ื’ืจืึทืžืขืจื–.

ืจื™ืึทืงื˜ื™ื•ื• ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืื™ืŸ ื™ืึธืก ื ื™ืฆืŸ RxSwift ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ

RxSwift ืื•ืŸ Coroutines ืื™ืŸ Kotlin - ืึทืŸ ื™ืœืขืงื˜ื™ื•ื• ืื™ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึฟื•ืŸ AGIMA ืื•ืŸ GeekBrains
ื™ืœืขืงื˜ื™ื•ื• ืœืขืจืขืจ ื™ื’ืึธืจ ื•ื•ืขื“ืขื ืขืขื•ื•: "ืžื™ื˜ RxSwift, ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ืคืœื™ืขืŸ"

ื•ื•ืึธืก ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื‘ืึทืงื•ืžืขืŸ ืกื˜ื•ื“ืขื ื˜ืŸ ื‘ืขืฉืึทืก ื“ื™ ื™ืœืขืงื˜ื™ื•ื•?

ืžื™ืจ ืจืขื“ืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื•ื•ืขื’ืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง, ืึธื‘ืขืจ ืื•ื™ืš ื•ื•ื™ื™ึทื–ืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ ืขืก ืื™ืŸ ื“ื™ ืงืœืึทืกื™ืฉ MVVM + RxSwift ืงืึธืžื‘ื™ื ืึทืฆื™ืข. ืขื˜ืœืขื›ืข ืคึผืจืึทืงื˜ื™ืฉ ื‘ื™ื™ืฉืคื™ืœืŸ ื–ืขื ืขืŸ ืื•ื™ืš ื“ื™ืกืงืึทืกื˜. ืฆื• ืงืึธื ืกืึธืœื™ื“ื™ืจืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ื“ืึทื˜ืŸ, ืžื™ืจ ืฉืจื™ื™ึทื‘ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทื– ืื™ื– ื•ื•ื™ ื ืึธืขื ื˜ ื•ื•ื™ ืžืขื’ืœืขืš ืฆื• ืคืขืœื“ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ. ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืžื•ื–ื™ืง ื–ื•ื›ืŸ ื™ื˜ื•ื ืขืก ื–ื•ืš ืึทืคึผื™. ื“ืึธ ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืœื™ื™ื’ืŸ ืึทืœืข ื“ื™ ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื–, ืคึผืœื•ืก ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึท ืกื™ืžืคึผืœืขืจ ืึธืคึผืฆื™ืข ืคึฟืึทืจ ื ื™ืฆืŸ RxSwift ืื™ืŸ ื“ื™ MVC ืคึผืึทืจืึทื“ื™ื’ื.

RxSwift - ื•ื•ืึธืก ื“ืึทืจืฃ ืึท ื™ืึธืก ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ื“ืขื ืคืจื™ื™ืžื•ื•ืขืจืง, ื•ื•ื™ ืงืขืŸ ื“ืึธืก ืžืึทื›ืŸ ืœืขื‘ืŸ ื’ืจื™ื ื’ืขืจ ืคึฟืึทืจ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ?

RxSwift ืกื˜ืจื™ืžืœื™ื™ื ื– ืึทืจื‘ืขื˜ ืžื™ื˜ ื’ืขืฉืขืขื ื™ืฉ ืกื˜ืจื™ืžื– ืื•ืŸ ืงืึทื ืขืงืฉืึทื ื– ืฆื•ื•ื™ืฉืŸ ืึทื‘ื“ื–ืฉืขืงืฅ. ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืื•ืŸ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ื‘ื™ื™ืฉืคึผื™ืœ ืื™ื– ื‘ื™ื™ื ื“ื™ื ื’ื–: ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ื“ื•ืจืš ืคืฉื•ื˜ ืฉื˜ืขืœืŸ ื ื™ื™ึท ื•ื•ืึทืœื•ืขืก ืื™ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ืŸ ื“ื™ ViewModel. ืื–ื•ื™, ื“ื™ ืฆื•ื‘ื™ื ื“ ื•ื•ืขืจื˜ ื“ืึทื˜ืŸ-ื’ืขื˜ืจื™ื‘ืŸ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, RxSwift ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืกื™ืกื˜ืขื ืื™ืŸ ืึท ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืข ืกื˜ื™ืœ, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื“ื™ื™ืŸ ืงืึธื“ ืื•ืŸ ืคืึทืจื’ืจืขืกืขืจืŸ ืจื™ื“ืึทื‘ื™ืœื™ื˜ื™. ืึทืœืข ื“ืขื ื”ืขืœืคึผืก ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืžืขืจ ื™ืคื™ืฉืึทื ื˜ืœื™.

ืคึฟืึทืจ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ื•ื•ื™ืกืŸ ืคื•ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืื™ื– ืื•ื™ืš ืึท ื’ื•ื˜ ืคึผืœื•ืก ืื•ื™ืฃ ืึท ื ืขืžืขื  ื–ื™ื› ื•ื•ื™ื“ืขืจ, ื•ื•ื™ื™ึทืœ ืึท ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ืจื™ืึทืงื˜ื™ื•ื• ืคึผืจืึธื’ืจืึทืžืžื™ื ื’, ืื•ืŸ ืกืคึผืขืฆื™ืขืœ ื“ืขืจืคืึทืจื•ื ื’ ืžื™ื˜ RxSwift, ืื™ื– ื•ื•ืึทืœื™ื•ื“ ืื™ืŸ ื“ื™ ืžืึทืจืง.

ืคืืจื•ื•ืืก ืงืœื™ื™ึทื‘ืŸ ื“ืขื ื‘ืึทื–ื•ื ื“ืขืจ ืคืจื™ื™ืžื•ื•ืขืจืง ืื™ื‘ืขืจ ืื ื“ืขืจืข?

RxSwift ื”ืื˜ ื“ื™ ื’ืจืขืกื˜ืข ืงื”ืœ. ื“ืึธืก ืื™ื–, ืขืก ืื™ื– ืึท ื’ืจืขืกืขืจืข ื’ืขืœืขื’ื ื”ื™ื™ึทื˜ ืึทื– ื“ืขืจ ืคึผืจืึธื‘ืœืขื ื•ื•ืึธืก ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืื™ื– ืคื™ื™ืกื™ื ื’ ืื™ื– ืฉื•ื™ืŸ ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืขืžืขืฆืขืจ. ืื•ื™ืš ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื‘ื™ื™ื ื“ื™ื ื’ื– ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ. ื“ืขืจืฆื•, RxSwift ืื™ื– ืึท ื˜ื™ื™ืœ ืคื•ืŸ ReactiveX. ื“ืึธืก ืžื™ื™ื ื˜ ืึทื– ืขืก ืื™ื– ืึทืŸ ืึทื ืึทืœืึธื’ ืคึฟืึทืจ ืึทื ื“ืจื•ื™ื“, ืœืžืฉืœ (RxJava, RxKotlin), ืื•ืŸ ืงืึธืœืขื’ืขืก ืื™ืŸ ื“ื™ ื•ื•ืึทืจืฉื˜ืึทื˜ ืงืขื ืขืŸ ืจืขื“ืŸ ื“ื™ ื–ืขืœื‘ืข ืฉืคึผืจืึทืš ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืข, ื˜ืจืึธืฅ ื“ืขืจ ืคืึทืงื˜ ืึทื– ืขื˜ืœืขื›ืข ืึทืจื‘ืขื˜ ืžื™ื˜ ื™ืึธืก, ืื ื“ืขืจืข ืžื™ื˜ ืึทื ื“ืจื•ื™ื“.

ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืื™ื– ืงืขืกื™ื™ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜, ืžื™ื ืขืจื•ื•ืขืจื˜ื™ืง ื‘ืึทื’ื– ื–ืขื ืขืŸ ืงืขืจืขืงื˜ืึทื“, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืกื•ื•ื™ืคื˜ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ืื•ืŸ ื ื™ื™ึทืข ื‘ื™ื™ื ื“ื™ื ื’ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ. ื–ื™ื ื˜ RxSwift ืื™ื– ืึธืคึฟืŸ ืžืงื•ืจ, ืื™ืจ ืงืขื ืขืŸ ื ืึธื›ื’ื™ื™ืŸ ืึทืœืข ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ. ื“ืขืจืฆื•, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืœื™ื™ื’ืŸ ื–ื™ื™ ื–ื™ืš.

ื•ื•ื• ื–ืึธืœ RxSwift ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜?

  1. ื‘ื™ื ื“ื™ื ื’ืก. ื•ื•ื™ ืึท ื”ืขืจืฉืŸ, ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ื™ ื•ื™, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ื•ื™, ื•ื•ื™ ืื•ื™ื‘ ืื™ืจ ืจืขืึทื’ื™ืจืŸ ืฆื• ื“ืึทื˜ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืื•ืŸ ื ื™ืฉื˜ ื‘ืคื™ืจื•ืฉ ื–ืึธื’ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ืึทื– ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ.
  2. ืฉื™ื™ื›ื•ืช ืฆื•ื•ื™ืฉืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. ื ืึธืจ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ. ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื ืขืฅ. ืื™ืŸ ืคืึทืงื˜, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึทื–ืึท ืึท ืคึผืฉื•ื˜ ืึธืคึผืขืจืึทืฆื™ืข. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื™ืงืŸ ืึท ื‘ืงืฉื”, ืžืึทืคึผืข ื“ืขื ืขื ื˜ืคืขืจ ืื™ืŸ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืึทื‘ื“ื–ืฉืขืงืฅ, ืจืึทื˜ืขื•ื•ืขืŸ ืขืก ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืฉื™ืงืŸ ืขืก ืฆื• ื“ื™ ื•ื™. ื•ื•ื™ ืึท ื”ืขืจืฉืŸ, ืคืึทืจืฉื™ื“ืขื ืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื–ืขื ืขืŸ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืคึผืขืจืคืึธืจืžื™ื ื’ ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื– (ืžื™ืจ ืœื™ื‘ืข ืื•ืŸ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ืคึผืจื™ื ืกืึทืคึผืึทืœื– SOLID?). ืžื™ื˜ ืึท ื’ืขืฆื™ื™ึทื’ ื•ื•ื™ RxSwift ืื™ืŸ ื”ืึทื ื˜, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื•ื•ืึธืก ื“ื™ ืกื™ืกื˜ืขื ื•ื•ืขื˜ ื˜ืึธืŸ, ืื•ืŸ ื•ื•ื™ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ืื ื“ืขืจืข ืขืจื˜ืขืจ. ืขืก ืื™ื– ืจืขื›ื˜ ืฆื• ื“ืขื ืึทื– ื‘ืขืกืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืึธื“ ืื™ื– ืึทื˜ืฉื™ื•ื•ื“ ืื•ืŸ ืจื™ื“ืึทื‘ื™ืœื™ื˜ื™ ื™ื ืงืจื™ืกื™ื–. ืœืขืคื™ืขืจืขืš ื’ืขืจืขื“ื˜, ื“ื™ ืงืึธื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ ืึท ืื™ื ื”ืึทืœื˜ ื˜ื™ืฉ ืื•ืŸ ื“ื™ ื‘ื•ืš ื–ื™ืš.

ืงืึธืจื•ื˜ื™ื ืข ืื™ืŸ ืงืึธื˜ืœื™ืŸ

RxSwift ืื•ืŸ Coroutines ืื™ืŸ Kotlin - ืึทืŸ ื™ืœืขืงื˜ื™ื•ื• ืื™ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึฟื•ืŸ AGIMA ืื•ืŸ GeekBrains
ื™ืœืขืงื˜ื™ื•ื• ืงื•ืจืก ืœืขืจืขืจ ืืœืขืงืกืื ื“ืขืจ ื˜ื™ื–ื™ืง: "ืžืึธื“ืขืจืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืจื™ืงื•ื•ื™ื™ืขืจื– ืžืึธื“ืขืจืŸ ื˜ืขื›ื ื™ืฉ ืžื™ื˜ืœืขืŸ"

ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืœืขืจื ื˜ ืื™ืŸ ื“ื™ GeekBrains ืคื™ื™ื™ืงื™ื™ึทื˜ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื‘ืจืึทื ื“ื™ื“ ืคืขืจื˜ืœ?

ื˜ืขืึธืจื™ืข, ืคืึทืจื’ืœื™ื™ึทืš ืžื™ื˜ ืื ื“ืขืจืข ืึทืคึผืจืึธื•ื˜ืฉื™ื–, ืคึผืจืึทืงื˜ื™ืฉ ื‘ื™ื™ืฉืคื™ืœืŸ ืื™ืŸ ืจื™ื™ืŸ ืงืึธื˜ืœื™ืŸ ืื•ืŸ ืื™ืŸ ื“ื™ ืึทื ื“ืจื•ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžืึธื“ืขืœ. ื•ื•ื™ ืคึฟืึทืจ ืคื™ืจ, ืกื˜ื•ื“ืขื ื˜ืŸ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื–ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื•ื•ืึธืก ืึทืœืฅ ืื™ื– ื˜ื™ื™ื“ ืฆื• ืงืึธืจืึธื•ื˜ื™ื ืขืก. ื“ืขืจ ืคืึทืงื˜ ืื™ื– ืึทื– ืจื•ื‘ึฟ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืึธืจ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืื•ืŸ ืคึผืึทืจืึทืœืขืœ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’. ืึธื‘ืขืจ ืงืึธื˜ืœื™ืŸ ืงืึธืจืึธื•ื˜ื™ื ืขืก ืœืึธื–ืŸ ืงืึทื ืคื™ื•ื–ื™ื ื’, ื›ืขื˜ืขืจืึทื“ื–ืฉื™ื ื™ืึทืก ืึธื“ืขืจ ืึธื•ื•ื•ืขืจืœื™ ืงืึธืžืคึผืœืขืงืก ืื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’-ืคืื“ืขืจืŸ ืงืึธื“ ืฆื• ื–ื™ื™ืŸ ืจื™ื“ื•ืกื˜ ืฆื• ืึท ืื™ื™ืŸ, ื’ืจื™ื ื’-ืฆื•-ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื ื•ืกื—, ื’ื™ื™ื ื™ื ื’ ื‘ืขื ืขืคื™ืฅ ืื™ืŸ ืจื™ื›ื˜ื™ืง ื“ื•ืจื›ืคื™ืจื•ื ื’ ืื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’.

ืžื™ืจ ื•ื•ืขืœืŸ ืœืขืจื ืขืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื™ื“ื™ืึทืžืึทื˜ื™ืง ืงืึธื“ ืื™ืŸ ืงืึธืจืึธื•ื˜ื™ื ืขืก ื•ื•ืึธืก ืกืึทืœื•ื•ื– ืคึผืจืึทืงื˜ื™ืฉ ืคึผืจืึธื‘ืœืขืžืก ืื•ืŸ ืื™ื– ืคืึทืจืฉื˜ื™ื™ื™ืง ื‘ื™ื™ึท ืขืจืฉื˜ืขืจ ื‘ืœื™ืง ืืคื™ืœื• ืึธืŸ ื˜ื™ืฃ ื•ื•ื™ืกืŸ ืคื•ืŸ ื•ื•ื™ ืงืึธืจืึธื•ื˜ื™ื ื– ืึทืจื‘ืขื˜ (ื•ื•ืึธืก ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื–ืึธื’ื˜ ื•ื•ืขื’ืŸ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื•ื•ื™ RxJava). ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืงืึทื ืกืขืคึผืก, ืึทื–ืึท ื•ื•ื™ ื“ืขืจ ืึทืงื˜ื™ืึธืจ ืžืึธื“ืขืœ, ืฆื• ืกืึธืœื•ื•ืข ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืคึผืจืึธื‘ืœืขืžืก, ืึทื–ืึท ื•ื•ื™ ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขืจื›ืึทื•ืก ืื™ืŸ ื“ื™ MVI ื‘ืึทื’ืจื™ืฃ.

ืื’ื‘, ืžืขืจ ื’ื•ื˜ืข ื ื™ื™ืขืก. ื‘ื™ื™ื ืจืขืงืืจื“ื™ืจืŸ ื“ื™ ื•ื•ืืœ-ื˜ืขื’ ืื™ื– ืืจื•ื™ืกื’ืขืงื•ืžืขืŸ ื ืืคื“ืขื™ื˜ ืฆื• ื“ืขืจ ืงื•ื˜ืœื™ืŸ ืงืืจืื•ื˜ื™ื ืขืก ื‘ื™ื‘ืœื™ืื˜ืขืง, ืื™ืŸ ื•ื•ืขืœื›ืŸ ื“ืขืจ ืงืœืืก ื”ืื˜ ื–ื™ืš ื‘ืื•ื•ื™ื–ืŸ. Flow - ืึทื ืึทืœืึธื’ ืคื•ืŸ ื˜ื™ื™ืคึผืก Flowable ะธ Observable ืคึฟื•ืŸ RxJava. ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื™ืกืขื ืฉืึทืœื™ ืžืื›ื˜ ืงืึธืจืึธื•ื˜ื™ื ืขืก ืฉื˜ืจื™ืš ื’ืึทื ืฅ ืคึฟื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’. ืืžืช, ืขืก ืื™ื– ื ืึธืš ืคึผืœืึทืฅ ืคึฟืึทืจ ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’: ื˜ืจืึธืฅ ื“ืขื ืคืึทืงื˜ ืึทื– ื“ืึทื ืง ืฆื• ื“ื™ ืฉื˜ื™ืฆืŸ ืคื•ืŸ ืงืึธืจืึธื•ื˜ื™ื ื– ืื™ืŸ ืงืึธื˜ืœื™ืŸ / ื’ืขื‘ื•ื™ืจืŸ, ืขืก ืื™ื– ืฉื•ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืžื•ืœื˜ื™-ืคึผืœืึทื˜ืคืึธืจืžืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ืงืึธื˜ืœื™ืŸ ืื•ืŸ ื ื™ืฉื˜ ืœื™ื™ื“ืŸ ืคื•ืŸ ื“ื™ ืคืขืœืŸ ืคื•ืŸ ืจืงื“ื–ืฉืึทื•ื•ืึท ืึธื“ืขืจ ืึทื ืึทืœืึธื’ื•ืขืก ืื™ืŸ ืจื™ื™ืŸ ืงืึธื˜ืœื™ืŸ, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืึธืจืึธื•ื˜ื™ื ืขืก ืื™ืŸ ืงืึธื˜ืœื™ืŸ / ื’ืขื‘ื•ื™ืจืŸ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื’ืึทื ืฅ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ืึทืงื˜ืขืจื–. ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ื™ ืงืึธื˜ืœื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ื”ืื˜ ืคึผืœืึทื ื– ืฆื• ืฉื˜ื™ืฆืŸ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืึทืงื˜ืขืจื– ืื•ื™ืฃ ืึทืœืข ืคึผืœืึทื˜ืคืึธืจืžืก.

Kotlin Coroutines - ื•ื•ื™ ื˜ืึธืŸ ื–ื™ื™ ื”ืขืœืคึฟืŸ ืึท Kotlin ื“ืขื•ื•ืขืœืึธืคึผืขืจ?

Coroutines ืฆื•ืฉื˜ืขืœืŸ ืึท ื’ืจื•ื™ืก ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืงืึธื“ ื•ื•ืึธืก ืื™ื– ืœื™ื™ื ืขื•ื•ื“ื™ืง, ืžื™ื™ื ื˜ื™ื™ื ื“ ืื•ืŸ ื–ื™ื›ืขืจ, ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืื•ืŸ ืงืึทื ืงืขืจืึทื ืกื™. ืื™ืจ ืงืขื ื˜ ืื•ื™ืš ืฉืึทืคึฟืŸ ืึทื“ืึทืคึผื˜ืขืจื– ืคึฟืึทืจ ืื ื“ืขืจืข ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืคืจืึทืžืขื•ื•ืึธืจืงืก ืื•ืŸ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ื•ื•ืึธืก ืงืขืŸ ืฉื•ื™ืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ื“ื™ ืงืึธื“ืขื‘ืึทืกืข.

ื•ื•ื™ ื–ืขื ืขืŸ Coroutines ืึทื ื“ืขืจืฉ ืคื•ืŸ ืคึฟืขื“ืขื?

ื“ื™ ืงืึธื˜ืœื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ืจื•ืคื˜ ืงืึธืจืึธื•ื˜ื™ื ืขืก ืœื™ื™ื˜ื•ื•ื™ื™ื˜ ืคึฟืขื“ืขื. ืคึผืœื•ืก, ืึท ืงืึธืจืึธื•ื˜ื™ื ืข ืงืขื ืขืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืขื˜ืœืขื›ืข ื•ื•ืขืจื˜, ื•ื•ื™ื™ึทืœ, ืื™ืŸ ื–ื™ื™ืŸ ื”ืึทืจืฅ, ืึท ืงืึธืจื•ื˜ื™ื ืข ืื™ื– ืึท ืกื•ืกืคึผืขื ื“ืขื“ ื›ืขื–ืฉื‘ืŸ. ืขืก ืื™ื– ื ื™ืฉื˜ ื’ืœื™ื™ืš ืึธืคืขื ื’ืขืŸ ืื•ื™ืฃ ืกื™ืกื˜ืขื ืคึฟืขื“ืขื; ืคึฟืขื“ืขื ื‘ืœื•ื™ื– ื•ื™ืกืคื™ืจืŸ ืงืึธืจืึธื•ื˜ื™ื ืขืก.

ื•ื•ืึธืก ืคึผืจืึทืงื˜ื™ืฉ ืคึผืจืึธื‘ืœืขืžืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“ ืžื™ื˜ Coroutine, ื•ื•ืึธืก ืงืขื ืขืŸ ื ื™ื˜ ืึธื“ืขืจ ื–ืขื ืขืŸ ืฉื•ื•ืขืจ ืฆื• ืกืึธืœื•ื•ืข ืžื™ื˜ "ืจื™ื™ืŸ" ืงืึธื˜ืœื™ืŸ?

ืงื™ื™ืŸ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก, ืคึผืึทืจืึทืœืขืœ, "ืงืึทืžืคึผืขื˜ื™ื˜ื™ื•ื•" ื˜ืึทืกืงืก ื–ืขื ืขืŸ ื’ืขื–ื•ื ื˜ ืกืึทืœื•ื•ื“ ืžื™ื˜ ืงืึธืจืึธื•ื˜ื™ื ืขืก - ืฆื™ ืขืก ืคึผืจืึทืกืขืกื™ื ื’ ื‘ืึทื ื™ืฆืขืจ ืงืœื™ืงืก, ื’ื™ื™ืŸ ืึธื ืœื™ื™ืŸ ืึธื“ืขืจ ืึทื‘ืึธื ื™ืจืŸ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืคึฟื•ืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก.

ืื™ืŸ ืจื™ื™ืŸ ืงืึธื˜ืœื™ืŸ, ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ื–ืขื ืขืŸ ืกืึทืœื•ื•ื“ ืื™ืŸ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขื’ ื•ื•ื™ ืื™ืŸ ื“ื–ืฉืึทื•ื•ืึท - ืžื™ื˜ ื“ื™ ื”ื™ืœืฃ ืคื•ืŸ ื˜ื•ื™ื–ื ื˜ืขืจ ืคื•ืŸ ืคืจืึทืžืขื•ื•ืึธืจืงืก, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ื”ืื˜ ื–ื™ื™ึทืŸ ืคึผืจืึธืก ืื•ืŸ ืงืึธื ืก, ืึธื‘ืขืจ ืงื™ื™ืŸ ืคื•ืŸ ื–ื™ื™ ื”ืื˜ ืฉืคึผืจืึทืš ืžื“ืจื’ื” ืฉื˜ื™ืฆืŸ.

ื•ื•ื™ ืึท ืžืกืงื ื, ืขืก ืื™ื– ื•ื•ืขืจื˜ ืฆื• ื–ืึธื’ืŸ ืึทื– ื‘ื™ื™ื“ืข ื™ืœืขืงื˜ื™ื•ื•ื– (ืื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึธืจืกืึทื– ืื•ื™ืš) ื–ืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืื™ืŸ ืœื•ื™ื˜ ืžื™ื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื˜ื ืึธื™ื. ืื•ื™ื‘ ื•ื•ื™ื›ื˜ื™ืง ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ืฉืคึผืจืึทื›ืŸ ืึธื“ืขืจ ืคืจืึทืžืขื•ื•ืึธืจืงืก, ืœืขืจืขืจืก ื ืขืžืขืŸ ื“ืขื ืื™ืŸ ื—ืฉื‘ื•ืŸ ืื•ืŸ ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื. ืึทืœืข ื“ืขื ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื”ืึทืœื˜ืŸ ื“ื™ื™ืŸ ืคื™ื ื’ืขืจ ืื•ื™ืฃ ื“ื™ ื“ื•ื™ืคืขืง ืคื•ืŸ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก, ืึทื–ื•ื™ ืฆื• ื–ืึธื’ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’