Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Coroutines in Kotlin
Search
Mukhamed Issa
June 20, 2019
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Coroutines in Kotlin
Mukhamed Issa
June 20, 2019
More Decks by Mukhamed Issa
See All by Mukhamed Issa
Backend Driven UI на Anko Layouts
mukhamedissa
0
50
Why Kotlin
mukhamedissa
0
59
Other Decks in Technology
See All in Technology
Optunaの最新リリースv5.0について
pfn
PRO
0
120
Rust で関数型ドメインモデリング
takonda
0
140
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
夫婦で子育てするための育児標準化
codmoninc
PRO
0
350
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
130
hackers_champloo_2026_tidb
makocchi
0
160
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
250
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
Classmethod Company Deck
satoshi7
1
690
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
WasmをRustにする
sansantech
PRO
0
250
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Code Review Best Practice
trishagee
74
20k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
For a Future-Friendly Web
brad_frost
184
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
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!