Slide 1

Slide 1 text

Xcodeͷ Development Assets ୳๚ @ikesyo / Sho Ikeda potatotips #79 2022-10-31 Mon #potatotips

Slide 2

Slide 2 text

@ikesyo / Sho Ikeda • ͍͚͠ΐʔʗ஑ా ᠳ • גࣜձࣾ͸ͯͳ γχΞΤϯδχΞʢژ౎ʣ • ϚϯΨΞϓϦνʔϜ • iOS / Android / React Native • Swiftίϛολʔ • swift-corelibs-foundation • Quick/Nimbleͷϝϯςφʔ • ࠷ۙ͸ٳࢭؾຯ…… • https://twitter.com/ikesyo • https://github.com/ikesyo

Slide 3

Slide 3 text

ීஈ͸ϚϯΨΞϓϦΛ࡞͍ͬͯ·͢ • ʮGigaViewer for AppsʯͰϚϯΨͷະདྷΛ޿͍͛ͨ - ࠾༻৘ใ - גࣜձࣾ͸ͯͳ

Slide 4

Slide 4 text

ීஈ͸ϚϯΨΞϓϦΛ࡞͍ͬͯ·͢ • νʔϜϝϯόʔͷΞ΢τϓοτ • ϚϯΨϏϡʔϫGigaViewer for AppsͰJetpack ComposeΛશ໘࠾༻ͯ͠Έͨ - Hatena Developer Blog • GigaViewer for AppsͰ࢖͍ͬͯΔศརSwiftUIίϯϙʔωϯτ̑࿈ൃʂ - Hatena Developer Blog

Slide 5

Slide 5 text

Xcodeͷ Development Assets ୳๚

Slide 6

Slide 6 text

Development Assets • Xcode 11ͰSwiftUIͱڞʹొ৔ͨ͠ػೳ • SwiftUIͷϓϨϏϡʔʹ࢖͏ը૾ϦιʔεͳͲͷΞηοτͷύεΛࢦఆ͢Δ • ΞηοτΧλϩά΍JSONσʔλͳͲͷϦιʔε͚ͩͰͳ͘ɺιʔείʔ υʹ΋࢖͑Δ • ͜͜Ͱࢦఆͨ͠ίϯςϯπ͸։ൃ൛ͷΞϓϦʹؚ͔͠·Εͳ͍ • ϓϨϏϡʔ༻ͷը૾Ϧιʔε΍μϛʔσʔλΛ࡞ΔίʔυͳͲΛ੡඼ ൛ͷΞϓϦʢϏϧυʣʹؚΊͣʹࡁΉ

Slide 7

Slide 7 text

Development Assets • λʔήοτͷઃఆͷGeneralͷ࠷Լ෦ͷ Development Assets • SwiftUIͷϓϩδΣΫτΛ৽ن࡞੒͢Δ ͱ $λʔήοτ໊/Preview Content ͱ͍͏ύεͱɺͦͷதʹ Preview Assets ͱ͍͏ΞηοτΧλϩά͕σ ϑΥϧτͰ༻ҙ͞Ε͍ͯΔ • σΟϨΫτϦ୯ҐͰ΋ɺϑΝΠϧ୯Ґ Ͱ΋ࢦఆͰ͖Δ

Slide 8

Slide 8 text

։ൃ൛ͷΞϓϦͱ͸ https://developer.apple.com/documentation/xcode/build- settings-reference#Development-Assets Development Assets Setting name: DEVELOPMENT_ASSET_PATHS ɹ Files and directories used only for development. Archive and install builds will exclude this content.

Slide 9

Slide 9 text

։ൃ൛ͷΞϓϦͱ͸ • archiveϏϧυʢͱinstallϏϧυʣͷ࣌ ʹ͸Ϗϧυର৅͔Βআ֎͞ΕΔ • xcodebuild ͷ archive ΞΫγϣϯ ͱ install ΞΫγϣϯ • XcodeͷGUI্Ͱ͸ArciveͷΈ • DebugϏϧυͰͷΈ༗ޮͳ༁Ͱ͸ͳ͍ • DebugϏϧυ͚ͩʹߜΓ͍ͨιʔ είʔυʹ͸ #if DEBUG ... #endif ͕ඞཁ

Slide 10

Slide 10 text

XcodeGen • Development Assetsͷ࣮ଶ͸ DEVELOPMENT_ASSET_PATHS ͱ͍͏Ϗϧυઃఆ • XcodeGenͰ࢖͏ʹ͸ࢦఆ͍ͨ͠λʔήοτͰͦͷϏϧυઃఆΛࢦఆ͢Ε͹ Α͍ targets: Foo: ... settings: base: DEVELOPMENT_ASSET_PATHS: - Foo/Preview Content

Slide 11

Slide 11 text

༻్ • ϓϨϏϡʔ༻ͷը૾ϦιʔεʢΞηοτΧλϩάʣ • ϓϨϏϡʔ༻ͷμϛʔσʔλ • APIϨεϙϯεͷJSON • μϛʔσʔλΛ࡞Δίʔυ • ϞοΫ • ...

Slide 12

Slide 12 text

ϞοΫ • uber/MockoloͳͲʹΑΔϞοΫੜ੒͸ɺςετλʔήοτͰߦ ͍ɺςετίʔυͰར༻͢Δͷ͕ҰൠతͩͱࢥΘΕΔ͕ • ViewͷϓϨϏϡʔͷͨΊʹViewModel͕ඞཁͰɺViewModelͷ ੜ੒ʹ͸ґଘੑͷprotocolͷ࣮ମ͕ඞཁͰɺϓϨϏϡʔ༻ʹ͸ ϞοΫΛ࢖͍͍ͨͱ͍͏έʔε • Կ΋͠ͳ͍ • μϛʔσʔλΛฦ͢

Slide 13

Slide 13 text

ϞοΫ • ϞοΫΛςετλʔήοτͰ͸ͳ͘ɺϝΠϯλʔήοτʹؚΊΔ͜ͱͰɺϞοΫΛ ϓϨϏϡʔͰ΋ར༻Ͱ͖Δ • ϞοΫੜ੒ʢͷεΫϦϓτϏϧυϑΣʔζͳͲʣΛϝΠϯλʔήοτଆͰ࣮ߦ͢ Δ • ੜ੒͞ΕͨϞοΫͷιʔείʔυʢΛؚΉσΟϨΫτϦʣΛDevelopment Assetsʹࢦఆ͢Δ • ϞοΫ͕੡඼൛ʹؚ·Εͳ͍͜ͱΛอূͰ͖Δ • ϞοΫͷੜ੒ίʔυΛϓϨϏϡʔ΍ςετίʔυҎ֎Ͱར༻͍ͯ͠Ε͹archive ࣌ʹϏϧυΤϥʔʹͳΔ

Slide 14

Slide 14 text

·ͱΊ • Development Assetsͱ͸ • Development Assetsͷ࢖͍ํ • ը૾ϦιʔεʢΞηοτΧλϩάʣҎ֎ͷ༻్ • ϞοΫΛςετ͚ͩͰͳ͘ϓϨϏϡʔʹ΋࢖͏

Slide 15

Slide 15 text

ࢀߟࢿྉ • Mastering Xcode Previews - WWDC19 - Videos - Apple Developer • طଘϓϩδΣΫτͰ SwiftUI ͷϓϨϏϡʔػೳΛ࢖͏ Using SwiftUI preview in existing project - ObjecTips • Structure your app for SwiftUI previews - WWDC20 - Videos - Apple Developer • ๩͍͠ਓ޲͚ͷ Structure your app for SwiftUI previews - #WWDC20ʛށըඒ֯ʛnote

Slide 16

Slide 16 text

! Happy Development

Slide 17

Slide 17 text

Thank you @ikesyo / Sho Ikeda