Slide 1

Slide 1 text

ίϧʔνϯΛཧղ͍ͨ͠

Slide 2

Slide 2 text

͸͡Ίʹ — Goal: ίϧʔνϯΛཧղ͢ΔͨΊͷಓےΛࣔ͢ — Non-Goal: Kotlinͷίϧʔνϯͷৄ͍͠࿩

Slide 3

Slide 3 text

XΛཧղ͢Δͱ͸ʁ

Slide 4

Slide 4 text

ઃܭॻΛಡΜͰΈΔ — KEEP: Kotlin Evolution and Enhancement Process — Kotlinͷ৽͍͠ݴޠػೳͷϓϩϙʔβϧ͕ࡌ͍ͬͯΔ — ίϧʔνϯͷઃܭʹ͍ͭͯ΋ίϯύΫτʹ·ͱ·͍ͬͯΔ

Slide 5

Slide 5 text

KEEPͷ಺༰ — Ϣʔεέʔε: ඇಉظॲཧɺFutureɺδΣωϨʔλʔɺඇಉ ظUIͳͲ͕ίϧʔνϯʹΑͬͯͲ͏ॻ͚Δ͔ — ίϧʔνϯͷ֓ཁ: ༻ޠूɺͦͯ͠جຊతͳ֓೦ͷղઆ — ࣮૷ͷৄࡉ: CPSม׵ɺState machineͳͲ

Slide 6

Slide 6 text

XΛཧղ͢Δͱ͸ — XΛ࢖ͬͨϓϩάϥϜΛॻ͚Δ — XͷηϚϯςΟΫε͕෼͔Δ — Xͷ࣮૷Λ஌͍ͬͯΔ

Slide 7

Slide 7 text

ͳͥKotlinͷίϧʔνϯ͸೉͍͠ͷ͔ — ৽͍֓͠೦͔ͩΒ: Javaͷݴޠػೳʹίϧʔνϯ͸ͳ͍ ʢProject LoomʹΑͬͯࠓޙ࣮૷͞ΕΔ͔΋ʣ — ͍Ζ͍Ζͳॻ͖ํ͕༻ҙ͞Ε͍ͯΔ: suspend fun, launch{}, future{}, .await(), sequence{}, yield, ... — ϚϧνεϨουͱͷؔ܎

Slide 8

Slide 8 text

ίϧʔνϯΛཧղ͢ΔͨΊͷγϯϓϧͳ࿮૊Έ — Revisiting CoroutinesΑΓ — ϓϦϛςΟϒ͸3͚ͭͩ: create, resume, yield — ಈ࡞͢ΔαϯϓϧίʔυͷͨΊʹLuaΛ࢖͏ — ҎԼͷεϥΠυͰར༻͢Δαϯϓϧίʔυ: https:// gist.github.com/zhanpon/ 5db10a44649b60f234732453907ffb6f

Slide 9

Slide 9 text

ίϧʔνϯ͸ݺͼग़ͤΔ — createͰ࡞੒ — resumeͰݺͼग़͠

Slide 10

Slide 10 text

ίϧʔνϯ͸தஅͰ͖Δ — yieldͰதஅ

Slide 11

Slide 11 text

Ԡ༻: ϚϧνλεΫ — தஅͱ࠶։͕Ͱ͖Δίϧʔνϯͷੑ࣭ΛԠ༻͢Δ — ෳ਺ͷίϧʔνϯΛॱ൪ʹதஅɾ࠶։ͤ͞Ε͹ಉ࣌ʹಈ͍ ͍ͯΔΑ͏ʹݟ͑Δʂ

Slide 12

Slide 12 text

ࢀߟจݙ — KEEP: Kotlin Coroutines — Revisiting Coroutines — Programming in Lua, Chapter 9

Slide 13

Slide 13 text

ѻΘͳ͔ͬͨτϐοΫ — ܧଓͷ֓೦ — ίϧʔνϯΛ࢖ͬͯྫ֎Λ࣮૷͢Δ — CPSม׵