Slide 1

Slide 1 text

5BUTVZB5BOBLBͨͳͨͭ 
 J04ΞϓϦͷٕज़બ୒

Slide 2

Slide 2 text

ͨͳͨͭ / Tatsuya Tanaka • Ϡϑʔגࣜձࣾ / iOSΞϓϦࠇଳ • TechFeed Expert @tattn @tanakasan2525 @tattn

Slide 3

Slide 3 text

VTuberελΠϧͰWebձٞʹࢀՃͰ͖ΔΞϓϦެ։த

Slide 4

Slide 4 text

ࠓɺiOSΞϓϦΛ࡞ΔͳΒ 
 Ͳ͏͢Δʁ ※ ωΠςΟϒͰ࡞੒͢Δ৔߹

Slide 5

Slide 5 text

τϐοΫε ɾUIϑϨʔϜϫʔΫͷબఆ 
 ɾϥΠϒϥϦ؅ཧ ɾΞϓϦͷߏ੒ ɾCI ɾςετ഑෍

Slide 6

Slide 6 text

UIϑϨʔϜϫʔΫͷબఆ

Slide 7

Slide 7 text

UIKit ͱ SwiftUI ͦΕͧΕͷϝϦοτ SwiftUI UIKit ɾUIͷ։ൃίετΛԼ͛ΒΕΔ 
 ɾӡ༻ίετΛԼ͛ΒΕΔ 
 ɹɾίϯϙʔωϯτԽ͠΍͍͢ ɹɾUIͷมߋ͕༰қ 
 ɹɾίʔυࠩ෼͕෼͔Γ΍͍͢ ɾ͞·͟·ͳUIΛ࣮ݱͰ͖Δ 
 ɾಈ࡞͕҆ఆ͍ͯ͠Δ

Slide 8

Slide 8 text

UIKit ͱ SwiftUI ͦΕͧΕͷϝϦοτ SwiftUI UIKit ɾUIͷ։ൃίετΛԼ͛ΒΕΔ 
 ɾӡ༻ίετΛԼ͛ΒΕΔ 
 ɹɾίϯϙʔωϯτԽ͠΍͍͢ ɹɾUIͷมߋ͕༰қ 
 ɹɾίʔυࠩ෼͕෼͔Γ΍͍͢ ɾ͞·͟·ͳUIΛ࣮ݱͰ͖Δ 
 ɾಈ࡞͕҆ఆ͍ͯ͠Δ

Slide 9

Slide 9 text

UIKit or SwiftUI iOS 13Ҏ߱ͷαϙʔτʁ UIσβΠϯΛॊೈʹௐ੔Մೳʁ YES YES SwiftUI UIKit NO NO ɾiOS 13Ҏ߱ (Ͱ͖Ε͹࠷৽APIΛ࢖͍͍ͨ) 
 ɾiOSඪ४ͷσβΠϯ͔Βҳ୤͢Δͱ 
 ɹ։ൃ޻਺͕େ͖͘૿Ճ͢Δ ɾݹ͍APIͰ΋࣮૷͸Մೳ ɾUIϨΠΞ΢τͷॊೈੑ͕ߴ͍

Slide 10

Slide 10 text

ϥΠϒϥϦ؅ཧ

Slide 11

Slide 11 text

iOSͷϥΠϒϥϦ؅ཧπʔϧ SwiftPM Carthage CocoaPods ͦͷଞ

Slide 12

Slide 12 text

Swift Package Manager (SwiftPM) Λ࢖͓͏ ඪ४ͷSwiftPM͕͓͢͢Ί ͦΕҎ֎ͷख๏͸কདྷతʹϝϯςφϯε͞Εͳ͘ͳΔՄೳੑ͕ߴ͍ 
 
 SwiftPMʹରԠ͍ͯ͠ͳ͍৔߹ʹہॴతʹଞΛ࢖͏ SwiftPM Carthage CocoaPods ͦͷଞ

Slide 13

Slide 13 text

ΞϓϦͷߏ੒

Slide 14

Slide 14 text

SwiftPMͰΞϓϦΛϞδϡʔϧԽ͢Δߏ੒͕͓͢͢Ί ɾΞϓϦͷϏϧυ୯ҐΛมߋͯ͠Ϗϧυ࣌ؒΛݮΒ͢ 
 ɾΞϓϦͷઃܭΛϞδϡʔϧʹམͱ͠ࠐΉ

Slide 15

Slide 15 text

ΞϓϦͷઃܭ SwiftUIͰ͸ The Composable Architecture (TCA) 
 UIKitͰ͸ VIPER૬౰ͷઃܭ ͕Α͘࿩୊ʹ

Slide 16

Slide 16 text

ΞϓϦͷઃܭ SwiftUIͰ͸ The Composable Architecture (TCA) 
 UIKitͰ͸ VIPER૬౰ͷઃܭ ͕Α͘࿩୊ʹ ͜ΕΒΛਪਐͰ͖Δϝϯόʔ͕͍Δ৔߹͸͓͢͢Ί 
 ͍ͳ͍৔߹͸·ͣ͸γϯϓϧʹ࣮૷͠ɺ 
 ςελϏϦςΟͷ୲อ΍νʔϜ಺ͷҙࢥૄ௨ͳͲͷ 
 ՝୊͕໌ΔΈʹͳ͔ͬͯΒݕ౼ͯ͠΋஗͘ͳ͍

Slide 17

Slide 17 text

CI (ܧଓతΠϯςάϨʔγϣϯ)

Slide 18

Slide 18 text

CI Apple͕ఏڙ͢Δ Xcode Cloud ͸·ͩβ൛ ଞʹBitriseɺGitHub ActionsɺCodemagicͳͲ༷ʑͳબ୒ࢶ͕͋Δ

Slide 19

Slide 19 text

CI Apple͕ఏڙ͢Δ Xcode Cloud ͸·ͩβ൛ ଞʹBitriseɺGitHub ActionsɺCodemagicͳͲ༷ʑͳબ୒ࢶ͕͋Δ ͜ΕҰ୒ͱ͍͏બ୒ࢶ͕ͳ͍ͨΊɺ ඞཁͳػೳ΍ࢧ෷͑ΔίετʹԠͯ͡౎౓બ୒͕ඞཁ… Ϗϧυؔ܎ΛࣗಈԽ͢ΔͳΒfastlane͕ศར 
 ϓϩδΣΫτઃఆ౳͸࢓༷มߋ͕ଟ͍ͨΊɺඪ४ͷ࢓૊ΈͰͷઃఆ͕͓͢͢Ί

Slide 20

Slide 20 text

ςετ഑෍

Slide 21

Slide 21 text

ςετ഑෍ AppleͷTestFlight͕ͱͯ΋ศརʂ େاۀͰ͸ Apple Developer Enterprise Program Ͱͷ 
 ഑෍΋૊Έ߹Θͤͯ࢖ΘΕ͍ͯΔ ։ൃνʔϜ޲͚ͷ഑෍͸100ਓ 
 Ұൠ޲͚ͷςετ഑෍͸1ສਓ ෳ਺όʔδϣϯͷ഑෍΋OK TestFlight

Slide 22

Slide 22 text

·ͱΊ

Slide 23

Slide 23 text

·ͱΊ ɾUIϑϨʔϜϫʔΫ͸SwiftUIΛબ୒Ͱ͖Δঢ়گΛ࡞Ζ͏ 
 ɾϥΠϒϥϦ؅ཧ͸SwiftPM ɾΞϓϦͷߏ੒͸SwiftPMͰͷϞδϡʔϧԽ & νʔϜʹ͋ͬͨઃܭ ɾCI͸ඞཁͳػೳʹԠͯ͡બ୒͕ඞཁɺBitrise͸؆୯ ɾςετ഑෍͸TestFlight

Slide 24

Slide 24 text

ࢀߟࢿྉ ɾThe Composable Architecture 
 ɹɾhttps://github.com/pointfreeco/swift-composable-architecture 
 ɾA Tour of isowords: Part 1 ɹɾhttps://www.pointfree.co/episodes/ep142-a-tour-of-isowords-part-1 
 ɾSwift Packageத৺ͷϓϩδΣΫτߏ੒ͱͦͷ࣮ફ 
 ɹɾhttps://fortee.jp/iosdc-japan-2021/proposal/1338c9cc-363a-44a6-bbac-452b67b472fb 
 ɾTestFlight ɹɾhttps://developer.apple.com/jp/test fl ight/ 
 ɾXcode Cloud ɹɾhttps://developer.apple.com/jp/xcode-cloud/