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
Androidエンジニア目線のKMM / iOSエンジニア目線のKMM
Search
watanave
May 19, 2021
Programming
380
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidエンジニア目線のKMM / iOSエンジニア目線のKMM
watanave
May 19, 2021
More Decks by watanave
See All by watanave
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
5.4k
Flutter実践開発に書かなかったこと
watanave
0
90
Flutterビギナーのための Widget完全攻略
watanave
0
65
決めず、語らずのリーダーシップ
watanave
0
590
複数プロジェクトを横断するゆめみテックリードの戦略
watanave
0
140
Why does Activity die soon?
watanave
0
390
Anko試食会
watanave
0
2.4k
Other Decks in Programming
See All in Programming
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
150
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
0
170
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
730
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
310
LLM 101
dalinaum
0
470
AI-Powered Domain-Driven Design
ziobrando
0
410
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.3k
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
380
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Building AI with AI
inesmontani
PRO
1
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Writing Fast Ruby
sferik
630
63k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
A Tale of Four Properties
chriscoyier
163
24k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Transcript
"OESPJEΤϯδχΞઢͷ,.. J04ΤϯδχΞઢͷ,.. גࣜձࣾελσΟετºגࣜձࣾΏΊΈ߹ಉษڧձ :PIUB8BUBOBWF
"CPVUNF :PIUB8BUBOBWF גࣜձࣾΏΊΈJ04"OESPJE5FDI-FBE ւಓࡏॅͰࣇͷ 🕊XBUBOBWF !4VTBO@KBDLP 🐙XBUBOBWF XBUBOBWFY
,..ͱ
,..ͱ w ,PUMJO.VMUJQMBUGPSNGPS.PCJMF w ,PUMJOͰॻ͍ͨιʔε͕ "OESPJEͱJ04Ͱಈ͘ʂ IUUQTLPUMJOMBOHPSHEPDTNVMUJQMBUGPSNIUNM
'MVUUFSͱͲ͏ҧ͏ʁ IUUQTLPUMJOMBOHPSHEPDTNPCJMFBSDIJUFDULNNBQQIUNMUIBOLTUPDPOUSJCVUPST
"OESPJEΤϯδχΞઢͷ,.. J04ΤϯδχΞઢͷ,..
"OESPJEΤϯδχΞࢹͷ,.. w ීஈͷ"OESPJEΞϓϦ։ൃͱͲ͏ҧ͏ʁ w J04ͷྀඞཁʁ
։ൃڥʁ w "OESPJE4UVEJP ,..ϓϥάΠϯ w WFSTJPOPSIJHIFS w όʔδϣϯޓੑʹҙ w "OESPJE4UVEJP
w ,PUMJOϓϥάΠϯ w ,..ϓϥάΠϯ
"OESPJE(SBEMFQMVHJO w Ҏ্ඇରԠ w ͔͠͠ɺϫʔΫΞϥϯυͰར༻Մೳ w IUUQTZPVUSBDLKFUCSBJOTDPNJTTVF,5 w %SPJE,BJHJΞϓϦ͜ͷϫʔΫΞϥϯυΛ͍ͬͯΔ
ύοͱݟϚϧνϞδϡʔϧϓϩδΣΫτ w ςϯϓϨʔτͰ৽نϓϩδΣΫτ࡞Δͱʜ w "OESPJEΞϓϦϞδϡʔϧ w ,..ڞ௨Ϟδϡʔϧ w JPT"QQԼ9DPEFͷϓϩδΣΫτ w
ϚϧνϦϙδτϦՄ "OESPJEΞϓϦϞδϡʔϧ 9DPEFϓϩδΣΫτ ڞ௨Ϟδϡʔϧ
ڞ௨Ϟδϡʔϧͷத w DPNNPO.BJOʹڞ௨ίʔυ w ϓϥοτϑΥʔϜݻ༗ίʔυͦΕͧΕͷ σΟϨΫτϦԼʹ w DPNNPO.BJOʹએݴͨ͠JOUFSGBDFΛ֤ϓ ϥοτϑΥʔϜͰ࣮ w
FYQFDUBDUVBMͱ͍͏Έ "OESPJEݻ༗ίʔυ J04ݻ༗ίʔυ ڞ௨ίʔυ
ϥΠϒϥϦબఆ৻ॏʹ w 🙅+BWBϥΠϒϥϦ͑ͳ͍ w %BHHFSˠ,PJO ,PEFJO w 3FUSP fi Uˠ,UPS
w 3PPNˠ4RMEFMJHIU w IUUQTHJUIVCDPN""LJSB,PUMJO.VMUJQMBUGPSN-JCSBSJFT
$PSPVUJOFTͷѻ͍ʹҙ͕ඞཁ w J04 ,PUMJO/BUJWF ͷ$PSPVUJOFTγϯάϧεϨου w ϚϧνεϨουόʔδϣϯผϒϥϯν dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3-native-mt")
{ version { strictly("1.4.3-native-mt" ) } } }
$PSPVUJOFTͷѻ͍ʹҙ͕ඞཁ w J04 ,PUMJO/BUJWF ҆શͳฒྻॲཧͷͨΊʹGSP[FOͱ͍͏Έ͕ w "OESPJEΤϯδχΞ͕ීஈ௨Γʹڞ௨ίʔυΛ࣮͢Δͱ J04͚ͩΫϥογϡ💥ͷΑ͏ͳ͜ͱ͕ى͜ΓಘΔ MainScope().launch
{ var str = “string " withContext(Dispatchers.Main) { str = “main " } withContext(Dispatchers.Default) { str = "default " } )
J04ΤϯδχΞࢹͷ,.. w ීஈͷJ04ΞϓϦ։ൃͱͲ͏ҧ͏ʁ w ԿΛ֮͑ͳ͚ΕͳΒͳ͍ʁ w ,..ͷίʔυͲ͏ͬͯݺͼग़͢ͷʁ w ݴ͍͍ͨ͜ͱ͕ଟ͗͢ΔͷͰۦ͚Ͱ
։ൃڥʁ w ͍ͭ௨Γͷ9DPEF w WFSTJPOPSIJHIFS w ,PUMJOίʔυॻ͘ͳΒ"OESPJE4UVEJP ,..ϓϥάΠϯ
,PUMJOͱ4XJGUࣅͯΔʁ WBM⁶MFU GVOD⁶GVO 7PJE⁶6OJU QSPUPDPM⁶JOUFSGBDF TXJUDI⁶XIFO FOVN⁶TFBMEDMBTTʁ ͋Δఔͷֶशίετඞཁ͔ fun
test(str: String?) { str?.count() // ·͘͞͠OptionalνΣΠϯʂ str!!.count() // ڧ੍Unwra p if (str == null) retur n // ͜͜OptionalνΣΠϯ͍Βͳ͍ͷ⁉ str.count( ) } Ұݟɺҙຯෆ໌ͳεϚʔτΩϟετ
(SBEMFͱ͍͏ϏϧυγεςϜ val iosTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true ) ::iosArm6 4 els e ::iosX6 4 iosTarget("ios") { binaries { framework { baseName = "shared " } } } ,..ͷϞδϡʔϧ⁶9DPEFͷλʔήοτʁʁʁ
J04ΤϯδχΞ͕֮͑Δඞཁ͋Δ͔ʁ IUUQTLPUMJOMBOHPSHEPDTNPCJMFPSHBOJ[FQSPDFTTBSPVOELNNIUNMBQQSPBDIFTUPPSHBOJ[JOHUFBNXPSLGPSNVMUJQMBUGPSNQSPKFDUT
,PUMJOίʔυΛͲ͏࣮ͬͯߦ͢Δʁ w J04ͷ,PUMJO ,PUMJO/BUJWF 0CK$ޓ w ,PUMJOίϯύΠϥGSBNFXPSLΛੜͯ͘͠ΕΔ w ,PUMJOͰ"'/FUXPSLJOH͕͑Δ w
"3$ͱ౷߹͞ΕͯΔ
,PUMJOίʔυΛͲ͏࣮ͬͯߦ͢Δʁ IUUQTLPUMJOMBOHPSHEPDTOBUJWFPCKDJOUFSPQIUNMVTBHF *OUFSPQFSBCJMJUZXJUI4XJGU0CKFDUJWF$
,PUMJOίʔυΛͲ͏࣮ͬͯߦ͢Δʁ w GSBNFXPSLΛJNQPSU͢Δ IUUQTLPUMJOMBOHPSHEPDTNPCJMFJOUFHSBUFJOFYJTUJOHBQQIUNMDPOOFDUUIFGSBNFXPSLUPZPVSJPTQSPKFDU val packForXcode by tasks.creating(Sync::class) { group
= "build " val mode = System.getenv("CONFIGURATION") ?: "DEBUG " val targetName = "ios " val framework = kotlin.targets.getByName<KotlinNative > inputs.property("mode", mode ) dependsOn(framework.linkTask ) val targetDir = File(buildDir, "xcode-frameworks" ) from({ framework.outputDirectory } ) into(targetDir ) }
,PUMJOίʔυΛͲ͏࣮ͬͯߦ͢Δʁ w GSBNFXPSLΛJNQPSU͢Δ IUUQTLPUMJOMBOHPSHEPDTNPCJMFJOUFHSBUFJOFYJTUJOHBQQIUNMDPOOFDUUIFGSBNFXPSLUPZPVSJPTQSPKFDU
ݟΒ͵Τϥʔ 'VODUJPOEPFTOUIBWFPSJOIFSJU!5ISPXTBOOPUBUJPOBOEUIVTFYDFQUJPOJTOU QSPQBHBUFEGSPN,PUMJOUP0CKFDUJWF$4XJGUBT/4&SSPS *UJTDPOTJEFSFEVOFYQFDUFEBOEVOIBOEMFEJOTUFBE1SPHSBNXJMMCFUFSNJOBUFE 6ODBVHIU,PUMJOFYDFQUJPO99999999 ,PUMJOίʔυͰ!5ISPXTΞϊςʔγϣϯΛ͚ͭΕͯΔ
J04 ,PUMJO/BUJWF ͚ͩϏϧυෆՄɾίʔυิෆೳʁ w IJFSBSDIJDBMQSPKFDUTUSVDUVSF IUUQTLPUMJOMBOHPSHEPDTNJHSBUJOHNVMUJQMBUGPSNQSPKFDUUPIUNMNJHSBUFUPUIFIJFSBSDIJDBMQSPKFDUTUSVDUVSF ͜Ε͕ ͜͏ͳΔ
J04 ,PUMJO/BUJWF ͚ͩϏϧυෆՄɾίʔυิෆೳʁ w IJFSBSDIJDBMQSPKFDUTUSVDUVSF IUUQTLPUMJOMBOHPSHEPDTNJHSBUJOHNVMUJQMBUGPSNQSPKFDUUPIUNMNJHSBUFUPUIFIJFSBSDIJDBMQSPKFDUTUSVDUVSF
·ͱΊ w "OESPJEΤϯδχΞࢹͰ w ,..ϚϧνϞδϡʔϧϓϩδΣΫτ w ϥΠϒϥϦબఆͱίϧʔνϯؾΛΔ͠ w J04ΤϯδχΞ w
,PUMJO(SBEMFͷֶशίετ͋Δ w ͦ͜"OESPJEΤϯδχΞʹͤΔͱ͍͏બࢶ͋Δ w ,PUMJOͷίʔυ0CK$ޓ w J04 ,PUMJO/BUJWF ͚ͩϏϧυෆՄɾίʔυิෆೳͨ·ʹ͋Δʁ