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
Swift Concurrencyを導入するにあたって決めたこと
Search
hicka04
March 15, 2022
Programming
3.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Concurrencyを導入するにあたって決めたこと
hicka04
March 15, 2022
More Decks by hicka04
See All by hicka04
SwiftUI, Jetpack Composeの導入で変化した「家族アルバム みてね」のアプリ開発体験
hicka04
6
1.6k
UICollectionViewのAPIを活用してシンプルなコードにリファクタリングする
hicka04
1
1.7k
「家族アルバム みてね」を支えるビルド環境の改善
hicka04
2
2.9k
業務と両立できる!開発環境の改善!
hicka04
2
3.1k
Other Decks in Programming
See All in Programming
ソフトウェアラスタライザ
fadis
0
160
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
240
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Building a Meta Ray-Ban display app
akkeylab
0
170
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
220
バグを直したら useEffect が消えた
colorful12
3
660
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
670
30年振りにコンパイラの定数整数除算を改善した
herumi
2
490
Hono + Inertia + React で LP を構築した話
oukayuka
2
110
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
440
React本体のコードリーディング
high_g_engineer
1
150
VibeCodingからAgenticWorkflowへ
starfish719
0
700
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.7k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
New Earth Scene 8
popppiees
3
2.5k
Optimizing for Happiness
mojombo
378
71k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Ethics towards AI in product and experience design
skipperchong
2
350
Leo the Paperboy
mayatellez
8
2.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
Paper Plane
katiecoart
PRO
2
53k
Making Projects Easy
brettharned
120
6.7k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Transcript
4XJGU$PODVSSFODZΛ ಋೖ͢Δʹܾ͋ͨͬͯΊͨ͜ͱ 2022/03/15 佐藤 光
mixi, Inc. ࣗݾհ ˔ ࠤ౻ ޫ !IJDLB ˔ גࣜձࣾϛΫγΟ ΈͯͶࣄۀ෦
ϓϩμΫτ։ൃάϧʔϓ ˓ த్ೖࣾ ˔ ͖ͳͷ ˓ ϥʔϝϯ ˓ ϙέϞϯ
mixi, Inc. ΞδΣϯμ ˔ ʮՈΞϧόϜ ΈͯͶʯʹ͍ͭͯ ˔ 4XJGU$PODVSSFODZʹ͍ͭͯ ˔ ࠾༻͍ͯ͠ΔΞʔΩςΫνϟʹ͍ͭͯ
˔ 4XJGU$PODVSSFODZΛಋೖ͢Δʹܾ͋ͨͬͯΊͨ͜ͱ ˔ ·ͱΊ
ʮՈΞϧόϜ ΈͯͶʯʹ͍ͭͯ
mixi, Inc. ʮՈΞϧόϜ ΈͯͶʯʹ͍ͭͯ ˔ ՈͰࢠڙͷࣸਅΛ؆୯ʹڞ༗Ͱ͖ΔαʔϏε ˔ ʮੈքதͷՈͷz͜͜ΖͷΠϯϑϥzΛ࡞Δʯ Λϛογϣϯʹܝ͛ɺݱࡏݴޠରԠ ˔
ҎԼʮΈͯͶʯͱॻ͘
4XJGU$PODVSSFODZʹ͍ͭͯ
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ ˔ 4XJGU͔Βݴޠػೳʹࡌ͞ΕͨฒߦॲཧͷͨΊͷϑϨʔϜϫʔΫ ˔ ൃදॳJ04Ҏ্͔͑͠ͳ͔ͬͨ ˔ 9DPEF͔ΒJ04Ͱ͑ΔΑ͏ʹόοΫϙʔτ࣮͕͞Εͨ ˓
ˢΛ͖͔͚ͬʹಋೖݕ౼Λ։࢝
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ BTZODBXBJU ˔ BTZOD ΩʔϫʔυΛ͚ͭΔ͜ͱͰඇಉظॲཧͰ͋Δ͜ͱΛϚʔΫͰ͖Δ BXBJUΩʔϫʔυΛ͚ͭͯݺͼग़͢ ˔ BTZOD
Ωʔϫʔυ͕͍͍ͭͯΔϝιουϓϩύςΟΛݺͼग़ͨ͢Ίͷ݅ ˓ BTZODΩʔϫʔυ͕͍͍ͭͯΔϝιουϓϩύςΟ͔Βݺͼग़͢ ˓ 5BTL ʹ͢Ϋϩʔδϟ͔Βݺͼग़͢
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ BTZODBXBJU Ϋϩʔδϟ IUUQTEPDTTXJGUPSHTXJGUCPPL-BOHVBHF(VJEF$PODVSSFODZIUNM
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ BTZODBXBJU BTZODBXBJU IUUQTEPDTTXJGUPSHTXJGUCPPL-BOHVBHF(VJEF$PODVSSFODZIUNM
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ BDUPS ˔ ෳεϨου͔ΒಡΈॻ͖ͨ͠ͱ͖ͷσʔλڝ߹Λ͙ ˓ ಡΈॻ͖ཁٻ͕Ωϡʔʹੵ·Εɺॱ൪ʹॲཧ͞ΕΔ ˓ BDUPSΠϯελϯε͝ͱʹΩϡʔ͕࡞ΒΕΔ
˔ HMPCBM"DUPS ˓ ಡΈॻ͖ཁٻͷΩϡʔΛෳͷΠϯελϯεͰڞ༗͢Δ ˔ .BJO"DUPS ˓ ಡΈॻ͖ཁٻΛϝΠϯΩϡʔʹੵΜͰ͘ΕΔHMPCBM"DUPS ˓ දࣔσʔλΛཧ͢ΔΫϥεʹΛ͚ͭΔͱɺϝΠϯεϨουͷΓସ͑ΕʹΑΔΫϥογϡΛ͛Δ
mixi, Inc. 4XJGU$PODVSSFODZʹ͍ͭͯ BDUPS
࠾༻͍ͯ͠Δ ΞʔΩςΫνϟʹ͍ͭͯ
mixi, Inc. ࠾༻͍ͯ͠ΔΞʔΩςΫνϟʹ͍ͭͯ ˔ ΞʔΩςΫνϟύλʔϯ ˓ $MFBO"SDIJUFDUVSF ˓ .71 1BTTJWF7JFX
˔ ඇಉظॲཧ ˓ 3Y4XJGU ˓ Ϋϩʔδϟ IUUQTNJYJEFWFMPQFSTNJYJDPKQNJUFOFJPTDMFBOBSDIJUFDUVSFEE
4XJGU$PODVSSFODZΛ ಋೖ͢Δʹܾ͋ͨͬͯΊͨ͜ͱ
mixi, Inc. ܾΊͨ͜ͱ σʔλ 3FNPUF ˔ "MBNPGJSF Λར༻த
˓ "MBNPGJSFΛ4XJGU$PODVSSFODZରԠόʔδϣϯ ·Ͱ্͛Δ ˓ ࣗͰFYUFOTJPOϝιουΛੜ͢ ˔ ݱঢ়ޙऀΛ࠾༻ ˓ "MBNPGJSFͷϝδϟʔόʔδϣϯΞοϓͪͰ4XJGU$PODVSSFODZͷಋೖ͕Ͱ͖ͳ͍ࣄଶΛආ͚Δ ˓ όʔδϣϯΞοϓྃ࣍ୈɺॱ࣍FYUFOTJPOϝιουͷར༻ΛΊ͍ͯ͘ IUUQTHJUIVCDPN"MBNPGJSF"MBNPGJSFSFMFBTFT
mixi, Inc. ܾΊͨ͜ͱ σʔλ 3FNPUF IUUQTDPDLTDPNCIBUFOBCMPHDPNFOUSZ
mixi, Inc. ܾΊͨ͜ͱ σʔλ 3FNPUF
mixi, Inc. ܾΊͨ͜ͱ σʔλ -PDBM ˔ ϩʔΧϧͷσʔλಡΈॻ͖ɺओʹ 3FBMN PS6TFS%FGBVMUT
˔ 3FBMNͷެࣜυΩϡϝϯτͷ 5ISFBEJOHͷϖʔδ͔Βൈਮ ˓ %PObUMPDLUPSFBE ಡΈࠐΈΛϩοΫ͠ͳ͍Ͱ ˓ "WPJEXSJUFTPOUIF6*UISFBEJGZPVXSJUFPOBCBDLHSPVOEUISFBE 6*εϨουͰॻ͖ࠐΈ͠ͳ͍Ͱ ˔ ಛఆͷεϨου ಛʹ6*εϨου Λ༗͢ΔͱΞϓϦύϑΥʔϚϯεʹେ͖ͳӨڹ͕ͰΔ ˓ Ξοϓϩʔυͨ͠ϝσΟΞͷΩϟογϡͰར༻͍ͯ͠Δ ˓ ສ୯ҐͰΞοϓϩʔυ͍ͯ͠ΔϢʔβʔ͍Δ ˔ બࢶ ˓ HMPCBM"DUPSΛ͏ ಛఆͷεϨουΛ༗ͯ͠͠·͍͘͢ͳΔ ˓ XJUI$IFDLFE 5ISPXJOH $POUJOVBUJPOº %JTQBUDI2VFVFΛ͏ ($%٫͍ͨ͠ ˓ 5BTLEFUBDIFEΛ͏ IUUQTEPDTNPOHPECDPNSFBMNTELTXJGUBEWBODFEHVJEFTUISFBEJOH
mixi, Inc. ܾΊͨ͜ͱ σʔλ -PDBM ˔ 5BTLEFUBDIFEΛ͏ ˓ ಛఆͷεϨουΛ༗ͮ͠Β͍
˓ 4XJGU$PODVSSFODZͷػೳ͚ͩͰ࣮ݱͰ͖Δ ˔ ࣗͰΩϟϯηϧॲཧΛॻ͘ඞཁ͕͋Δ ˓ 3FBMNʹಡΈॻ͖ΛΩϟϯηϧ͢ΔΠϯλʔϑΣΠε͕ͳ͍ͨΊߟྀ֎ ˔ ͏ଆͰγϯϓϧʹॻ͚ΔΑ͏ʹQSPUPDPMΛ༻ҙ ˓ 3FBMNΞΫηε͢Δ֤-PDBM%BUB4PVSDF͕४ڌͯ͠͏ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOTXJGUUBTLEFUBDIFE
mixi, Inc. ܾΊͨ͜ͱ σʔλ -PDBM
mixi, Inc. ܾΊͨ͜ͱ σʔλ -PDBM
mixi, Inc. ܾΊͨ͜ͱ r υϝΠϯ ˔ 6TF$BTFʹੜ͢ϝιουʹ BTZODΩʔϫʔυΛ༩͢Δ ˔ ΈͯͶʹ͓͍ͯ6TF$BTFɺσʔλͷϝιουΛͲͷΑ͏ʹݺͿ͔͕ʹͳΔ͜ͱ͕ଟ͍
˓ σʔλʹ BTZODϝιουΛੜ͢ ˓ σʔλͷ BTZODϝιουΛͦͷ··ݺͿ
mixi, Inc. ܾΊͨ͜ͱ r ϓϨθϯςʔγϣϯ Ͳ͜ʹ !.BJO"DUPSΛ͚ͭΔ͔ ˔ 7JFX7JFX$POUSPMMFSͷΈ ˔
1SFTFOUFSͰঢ়ଶཧΛ͍ͯ͠ͳ͍ͨΊݱঢ়ෆཁͱஅ Ͳ͜Ͱ 5BTLΛੜ͢Δ͔ ˔ 7JFX7JFX$POUSPMMFSͰੜ ˔ 1SFTFOUFS͕7JFXʹରͯ͠ެ։͢Δϝιουʹ BTZODΩʔϫʔυΛ͚ͭΔ Ͳ͜·ͰΩϟϯηϧॲཧΛؤுΔ͔ ˔ Ͳ͏ͯ͠Ωϟϯηϧ͍ͨ͠ͱ͖ ΩϟϯηϧϘλϯΛஔ͍ͯΔͳͲ Ҏ֎ؤுΒͳ͍ ˔ 5BTLʹTFMGΛΩϟϓνϟͤ͞Δͱɺඇಉظॲཧ͕ऴΘΔ·ͰࢀরΧϯτ͕ݮΒͣϝϞϦϦʔΫʹͳΔ ˓ ແݶϧʔϓͯ͠ͳ͚Ε͍͔ͭऴΘͬͯ։์͞ΕΔ ˓ ίϯύΠϥͰ͙͜ͱ͕͍ͨ͠ΊϨϏϡʔίετ্͕͕Δ
mixi, Inc. ܾΊͨ͜ͱ r ςετίʔυ ςεςΟϯάϑϨʔϜϫʔΫ ˔ ݱঢ়9$5FTUPS2VDJL ˔ 2VJDLݱࡏɺ4XJGU$PODVSSFODZະରԠ
˔ ࠓޙ9$5FTUΛ͏ ϞοΫ ˔ ݱঢ়4PVSDFSZ ˔ બࢶ ˓ .PDLPMPʹมߋ πʔϧΛ૿͞ͳ͍ͨΊ ˓ 4PVSDFSZΛ4XJGU$PODVSSFODZରԠόʔδϣϯʹΞοϓσʔτ IUUQTHJUIVCDPN2VJDL2VJDLSFMFBTFT IUUQTHJUIVCDPNLS[ZT[UPG[BCMPDLJ4PVSDFSZSFMFBTFT
mixi, Inc. ܾΊͨ͜ͱ r Ҡߦܭը ˔ 4XJGUʹඋ͑ͯɺݱঢ়ग़͍ͯΔΤϥʔϫʔχϯάʹରԠ͢Δ ˓ 9GSPOUFOEXBSODPODVSSFODZ ˓
9GSPOUFOEFOBCMFBDUPSEBUBSBDFDIFDLT ˔ ৽نͰ࡞ΔػೳͰੵۃతʹ࠾༻͍ͯ͘͠ ˔ طଘͷػೳʹґଘ͢Δඞཁ͕͋Δ߹ҎԼ͔Βબ ˓ طଘͷඇಉظॲཧΛ BTZODϝιουʹஔ͖͍͑ͯ͘ ˓ ৽نͰ BTZODϝιουΛ࡞ͯ͠ঃʑʹஔ͖͍͑ͯ͘ Өڹൣғ͕ͯ͘ஔ͕େมͳͱ͖ ˙ 3Y4XJGU4XJGU$PODVSSFODZରԠόʔδϣϯ·ͰΞοϓσʔτͯ͠ 0CTFSWBCMFˠBTZODม ˙ ΫϩʔδϟXJUI$IFDLFE 5ISPXJOH $POUJOVBUJPOΛͬͯ BTZODʹม ˔ ϦϦʔεલʹ֤04όʔδϣϯͰͷ2"Λߦ͏ IUUQTGPSVNTTXJGUPSHUDPODVSSFODZJOTXJGUBOEDPODVSSFODZJOTXJGUBOE
·ͱΊ
mixi, Inc. ·ͱΊ ˔ ΈͯͶʹ4XJGU$PODVSSFODZΛಋೖ͢Δʹܾ͋ͨͬͯΊͨ͜ͱΛɺݕ౼աఔͰग़͖ͯͨબࢶͱͱ ʹઆ໌ ˓ ň͏ͪͰ͜͏ܾΊͨΑʼnňͬͪ͜ͷ΄͏͕͍͍Μ͡Όͳ͍ ʼnͱ͍͏πΠʔτͰΓ্͕͍ͬͯͨΒخ͍͠ ˔
࣮ࡍʹಋೖͯ͠ΈͯಘΒΕͨݟʹ͍ͭͯॱ࣍ൃ৴͍͖͍ͯͨ͠
mixi, Inc.