Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Coroutines in Kotlin
Search
Mukhamed Issa
June 20, 2019
Technology
0
61
Coroutines in Kotlin
Mukhamed Issa
June 20, 2019
Tweet
Share
More Decks by Mukhamed Issa
See All by Mukhamed Issa
Backend Driven UI на Anko Layouts
mukhamedissa
0
44
Why Kotlin
mukhamedissa
0
54
Other Decks in Technology
See All in Technology
欲しいを叶える個人開発の進め方 / How to Run an Indie Project That Brings Your Ideas to Life
endohizumi
0
320
生成AI素人でも玄人でもない私がセイセイAIチョットワカルために勉強したこと
wkm2
2
310
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
810
AI駆動開発とRAGプロダクトへの挑戦の軌跡 - 弁護士ドットコムでの学びから -
bengo4com
2
780
AI時代のAPIファースト開発
nagix
1
440
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
270
技術選定 したい人 したくない人
shirayanagiryuji
0
330
AWSが推進するAI駆動開発ライフサイクル入門 〜 AI駆動開発時代に必要な人材とは 〜/ introduction_to_aidlc_and_skills
fatsushi
7
4.6k
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
16
3k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
57
47k
AgentCore RuntimeをVPCにデプロイして 開発ドキュメント作成AIエージェントを作った
alchemy1115
3
290
『誰の責任?』で揉めるのをやめて、エラーバジェットで判断するようにした ~感情論をデータで終わらせる、PMとエンジニアの意思決定プロセス~
coconala_engineer
0
1.7k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
130
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
300
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Producing Creativity
orderedlist
PRO
348
40k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.3k
Building Adaptive Systems
keathley
44
2.9k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
190
Darren the Foodie - Storyboard
khoart
PRO
3
2.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
160
Transcript
Корутины в Kotlin Мухамед Иса Android разработчик
Немного истории
Немного истории • Корутины не нова • Впервые появились в
Simula в 1967 году • С -> 1972 • С++ -> 1985 • Java -> 1995 • C# -> 2000 • Kotlin -> 2011
Немного истории • Корутины не нова • Впервые появились в
Simula в 1967 году • С -> 1972 • С++ -> 1985 • Java -> 1995 • C# -> 2000 • Kotlin -> 2011 ???
Немного истории • Корутины не нова • Впервые появились в
Simula в 1967 году • С -> 1972 • С++ -> 1985 • Java -> 1995 • C# -> 2000 • Kotlin -> 2011 Threads
Эра асинхронного программирования • Концепция async/await в C# с 2012
года
Эра асинхронного программирования • Концепция async/await в C# с 2012
года • Typescript 1.7 (2015 год)
Эра асинхронного программирования • Концепция async/await в C# с 2012
года • Typescript 1.7 (2015 год) • Python 3.5 (2015 год)
Эра асинхронного программирования • Концепция async/await в C# с 2012
года • Typescript 1.7 (2015 год) • Python 3.5 (2015 год) • ES8 (2017 год)
Эра асинхронного программирования • Концепция async/await в C# с 2012
года • Typescript 1.7 (2015 год) • Python 3.5 (2015 год) • ES8 (2017 год) • Kotlin 1.1 Coroutines (2017 год) • Планируется в C++ 20
В чем проблема?
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks Вызываем callback как только получим
результат
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell
Нет средств языка. Используем Callbacks Callback hell Обработка ошибок
На помощь приходят Futures/Promises/Rx
Futures
Futures Future
Futures
Futures
Futures
Futures
Futures Нужно больше операторов
Корутины!
Корутины!
Корутины! Keyword
Корутины! Keyword Сигнатура
Корутины!
Корутины!
Корутины!
Корутины!
Корутины!
Корутины! • Возможность использовать обычные вещи языка без дополнительной запарки:
• Циклы • Try-catch • Высокоуровненые функции (forEach, map, etc.) • Писать свои higher-order functions:
Что под капотом?
Under the hood
Under the hood Decompile Callback
Under the hood
Under the hood
Under the hood State machine
Coroutine builders
Coroutine builders Error Can suspend
Coroutine builders Fire and forget Background
Coroutine builders
Coroutine builders Context
Coroutine builders Context Будет вызван в UI потоке
Coroutine builders
Async/await
Async/await C#
Async/await C# Future
The problem
The problem Concurrent
The problem Concurrent Sequential
Async/await
Async/await
Async/await Parallel requests Wait em and show Async when needed
So, what are coroutines?
Questions?
Thank you for attention!