Slide 1

Slide 1 text

4XJGU6*"QQ4DFOF 4XJGU6*"QQ4DFOFͷ࣮ࡍ

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ೳొཁ !OPUPSPJE w J04ΞϓϦ։ൃऀ w ԰߸͍Γ·͢ిࢉاը w !OPUPSPJE w !JSJNBTV w ࠷ۙͷಈ޲ w ϒϩά࡮৽͠·ͨ͠

Slide 4

Slide 4 text

ॆిใࠂ͞Μ #BUUFSFDFJWFS w όοςϦʔϞχλʔ ϢʔςΟϦςΟʔ  w ࠷େ୆ ࣮ػ ϦϞʔτ୆  w ख࣋ͪͷJ1IPOF͔Βଞʹ͍࣋ͬͯΔ J1IPOF J1BEͳͲͷػثͷόοςϦʔঢ়ଶ֬ ೝՄೳ w ࣗ୐ʹ͋ΔJ1IPOFͷόοςϦʔঢ়ଶ֬ೝՄ ೳ

Slide 5

Slide 5 text

ॆిใࠂ͞Μ #BUUFSFDFJWFS w "QQMF8BUDIରԠ w $PNQMJDBUJPOTରԠ w ॆి׬ྃ௨஌ w ॆి׬ྃΛ఻͑ͯ͘ΕΔ௨஌Λ௥Ճ w ҎԼʹࢦఆ͢Δ͜ͱͰόοςϦʔ ΛέΞ͢Δ͜ͱ͕Մೳ w Կ͔ͱߴ͍J1IPOFΛ௕࣋ͪͤ͞Δͷʹ༗ ༻

Slide 6

Slide 6 text

ॆిใࠂ͞Μ #BUUFSFDFJWFS /FX ΢ΟδοτʹରԠ͠·ͨ͠ J04ʙ 4NBMM .FEJVN

Slide 7

Slide 7 text

࿩͢͜ͱ w 4XJGU6*"QQ4DFOF w 6*4DFOF%FMFHBUF w 6*)PTUJOH$POUSPMMFS

Slide 8

Slide 8 text

࿩͞ͳ͍͜ͱ w NBD04ͷϥΠϑαΠΫϧৄࡉ

Slide 9

Slide 9 text

୊໨ w ΞϓϦΛJ04ରԠ͠·ͨ͠ w "QQ%FMFHBUF੔ཧͷྺ࢙ w 4XJGU6*"QQ4DFOFͷ࣮ࡍ w ·ͱΊ

Slide 10

Slide 10 text

ΞϓϦΛJ04ରԠ͠·ͨ͠

Slide 11

Slide 11 text

ΞϓϦΛJ04ରԠ͠·ͨ͠ w J04ͰͷϨΠΞ΢τ่ΕΛमਖ਼ w 8JEHFU,JUΛαϙʔτ 4NBMM .FEJVN  w Ͱ͖Δ͜ͱ͸5PEBZ&YUFOTJPOͱେࠩͳ͠ w J04Ҏ্ͷ04Ͱಈ࡞

Slide 12

Slide 12 text

J04ͷػೳ͕ັྗͳΒ J04Ҏ߱͸੾Γࣺ͔ͯͨ΋

Slide 13

Slide 13 text

݁Ռͱͯ͠ J04αϙʔτܧଓ

Slide 14

Slide 14 text

J04ҎલΛ੾ΓࣺͯΔͭ΋ΓͰ͍͕ͨ ͦͷඞཁ͕ͳ͔ͬͨͱ͍͏ͷ͕ ࠓճͷ͓୊

Slide 15

Slide 15 text

"QQ%FMFHBUF੔ཧͷྺ࢙

Slide 16

Slide 16 text

୺తʹ͍͏ͱ

Slide 17

Slide 17 text

"QQ%FMFHBUFʹ՝ͤΒΕͨ੹຿Λ੔ཧ ϚϧνϓϥοτϑΥʔϜʹ޲͚ͯௐ੔͕ J04͔ΒJ04ʹ͔͚࣮ͯࢪ

Slide 18

Slide 18 text

"QQ%FMFHBUFͷ੹຿ Ћ w ΞϓϦͷΤϯτϦʔϙΠϯτ &OUSZ1PJOU  w ΞϓϦΠϕϯτͷัଊ "QQMJDBUJPO&WFOU  w ը໘ͷߏங 4DSFFO#VJME  w ЋϚϧνϓϥοτϑΥʔϜԽ .VMUJQMBUGPSN

Slide 19

Slide 19 text

ϑΝΠϧ͔ΒݟΔ੔ཧͷ࣌ܥྻ 0CKFDUJWF$ J04 J04 J04 NBJON "QQ%FMFHBUFI "QQ%FMFHBUFN "QQ%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU 4DFOF%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU "QQTXJGU 1BTU 'VUVSF

Slide 20

Slide 20 text

&OUSZ1PJOU 0CKFDUJWF$ J04 J04 J04 NBJON "QQ%FMFHBUFI "QQ%FMFHBUFN "QQ%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU 4DFOF%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU "QQTXJGU 1BTU 'VUVSF &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU

Slide 21

Slide 21 text

"QQMJDBUJPO&WFOU 0CKFDUJWF$ J04 J04 J04 NBJON "QQ%FMFHBUFI "QQ%FMFHBUFN "QQ%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU 4DFOF%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU "QQTXJGU 1BTU 'VUVSF &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU

Slide 22

Slide 22 text

4DSFFO#VJME 0CKFDUJWF$ J04 J04 J04 NBJON "QQ%FMFHBUFI "QQ%FMFHBUFN "QQ%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU 4DFOF%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU "QQTXJGU 1BTU 'VUVSF &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU 4DSFFO#VJME 4DSFFO#VJME 4DSFFO#VJME 4DSFFO#VJME

Slide 23

Slide 23 text

.VMUJQMBUGPSN 0CKFDUJWF$ J04 J04 4XJGU6* NBJON "QQ%FMFHBUFI "QQ%FMFHBUFN "QQ%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU 4DFOF%FMFHBUFTXJGU "QQ%FMFHBUFTXJGU "QQTXJGU 1BTU 'VUVSF &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU &OUSZ1PJOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU "QQMJDBUJPO&WFOU 4DSFFO#VJME 4DSFFO#VJME 4DSFFO#VJME 4DSFFO#VJME .VMUJQMBUGPSN

Slide 24

Slide 24 text

4XJGU6*ʹΑͬͯ"QQ%FMFHBUF͸ ΞϓϦΠϕϯτΛ؅ཧ͢Δ͚ͩͷ໾ׂʹ

Slide 25

Slide 25 text

4XJGU6*"QQ4DFOFͷ࣮ࡍ

Slide 26

Slide 26 text

4XJGU6*"QQ-JGF$ZDMF w J04͔Βొ৔ w "QQ%FMFHBUF4DFOF%FMFHBUFͷ࢓૊ΈΛ؆ܿʹهड़Ͱ͖Δ w 6*,JUͷΞϓϦΠϕϯτରԠͷͨΊ@ఆ͕ٛ༻ҙ͞Εͨ w !6*"QQMJDBUJPO%FMFHBUF"EBQUPS

Slide 27

Slide 27 text

import SwiftUI @main struct FooApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { Text("͜ͷը໘͸Ұ࣌తͳ΋ͷͰ͢") .padding() } } }

Slide 28

Slide 28 text

J04·Ͱͷ൥ࡶ͔͞Β J04͔Βͷ؆ܿ͞͸ མࠩͷ෼ɺΠϯύΫτ͸େ͖͍

Slide 29

Slide 29 text

"QQ%FMFHBUFͱ4DFOF%FMFHBUFΛ ஔ׵Ͱ͖Δͱ·Ͱॻ͘#MPH౤ߘ·Ͱొ৔

Slide 30

Slide 30 text

SwiftUI’s New App Lifecycle and Replacements for AppDelegate and SceneDelegate in iOS 14 IUUQTMJOLNFEJVNDPNDB,&9Q3

Slide 31

Slide 31 text

͸ͨͯͦ͠͏͔

Slide 32

Slide 32 text

͜ͱͷൃ୺

Slide 33

Slide 33 text

4XJGU6*"QQ4DFOFͰ ࣗ࡞ΞϓϦ ॆిใࠂ͞Μ ͷ ػೳʹରԠ͍ͨ͠

Slide 34

Slide 34 text

4XJGU6*"QQ4DFOFͰ࣮ݱ͍ͨ͠6*,JUػೳ ᶃγϣʔτΧοτػೳ ᶄ4UBUVTCBS4UZMF

Slide 35

Slide 35 text

4XJGU6*"QQ4DFOFͰ࣮ݱ͍ͨ͠6*,JUػೳ ᶃγϣʔτΧοτػೳ ᶄ4UBUVTCBS4UZMF "QQ%FMFHBUFͰγϣʔτΧοτొ࿥ 4DFOF%FMFHBUFͷ೿ੜΫϥεͰΠϕϯτड͚औΓ 6*)PTUJOH$POUSPMMFSͷ೿ੜΫϥεͰ εςʔλεόʔελΠϧࢦఆ

Slide 36

Slide 36 text

4XJGU6*"QQ4DFOFͰ࣮ݱ͍ͨ͠6*,JUػೳ ᶃγϣʔτΧοτػೳ ᶄ4UBUVTCBS4UZMF "QQ%FMFHBUFͰγϣʔτΧοτొ࿥ 4DFOF%FMFHBUFͷ೿ੜΫϥεͰΠϕϯτड͚औΓ 6*)PTUJOH$POUSPMMFSͷ೿ੜΫϥεͰ εςʔλεόʔελΠϧࢦఆ

Slide 37

Slide 37 text

ͭͷػೳڞʹ 4XJGU6*ະରԠ

Slide 38

Slide 38 text

ͦ͜Ͱ൑໌ͨ͠఺

Slide 39

Slide 39 text

4XJGU6*"QQ4DFOFͰ΋ 4DFOF%FMFHBUFػೳ͸ซଘ͍ͯ͠Δ

Slide 40

Slide 40 text

4XJGU6*"QQ4DFOFͱซଘ͢Δ4DFOF%FMFHBUF w 4DFOF%FMFHBUFͷػೳ͸4XJGU6*্Ͱ΋༗ޮ w 4DFOF%FMFHBUFͷ೿ੜΫϥε͸"QQ%FMFHBUFͷ4DFOF੾Γ෼͚Πϕϯ τͰੜ੒Մೳ w 6*)PTUJOH$POUSPMMFSͷ೿ੜΫϥε͸4DFOF%FMFHBUFͰͷը໘ߏங࣌ʹ ੜ੒Մೳ w 4DFOF%FMFHBUFͰը໘ߏங͸4DFOF"QQͰͷը໘ߏஙΛ্ॻ͖Ͱ͖Δ

Slide 41

Slide 41 text

αϯϓϧίʔυ HJUIVCDPNOPUPSPJE 4XJGU6*-JGF$ZDMF0WFSSJEF

Slide 42

Slide 42 text

4XJG6*"QQ4DFOF࠾༻ϓϩδΣΫτ΁ ௥ՃͰ4DFOF%FMFHBUFରԠ͢Δʹ͸ w 9DPEFͷϓϩδΣΫτ΢ΟβʔυͰJ04 ΞϓϦςϯϓϨʔτͷιʔείʔυΛ Ҡ২͢Ε͹0, w *OUFSGBDF4XJGU6* w -BOHVBHF4XJGU w -JGF$ZDMF6*,JU

Slide 43

Slide 43 text

4DFOF%FMFHBUF 6*4DFOF%FMFHBUF w J04͔Βಋೖ͞Εͨը໘ؔ܎Πϕϯτัଊ w ΞϓϦ಺ʹผʑͷίϯςΩετΛ࣋ͭ4DFOF͕ଘࡏ͢Δͱ͍͏ߟ͑ w ίϯςΩετྫυΩϡϝϯτϑΝΠϧɺ63- w J1BE04ͷΑ͏ͳෳ਺υΩϡϝϯτѻ͏ΞϓϦͰ͸ͳ͍ͱϐϯͱ͜ͳ͍

Slide 44

Slide 44 text

4DFOF%FMFHBUFͷੜ੒ w 4DFOF%FMFHBUFϑΝΠϧΛ௥Ճ͢Δ w JOGPQMJTUʹ4DFOFఆٛͷهड़͢Δ w "QQ%FMFHBUF΁ͷ4DFOFੜ੒Πϕϯτͷ௥Ճ w "QQ%FMFHBUFͰͷը໘ੜ੒ॲཧΛ4DFOF%FMFHBUFଆ΁Ҡৡ͢Δ

Slide 45

Slide 45 text

4DFOF%FMFHBUFಠಛͳهड़ᶃ

Slide 46

Slide 46 text

4DFOF%FMFHBUFಠಛͳهड़ᶄ import UIKit class AppDelegate: UIResponder, UIApplicationDelegate { // MARK: UISceneSession Lifecycle func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { } } "QQ%FMFHBUFͰͷ4DFOFੜ੒Πϕϯτίʔυ

Slide 47

Slide 47 text

4DFOF%FMFHBUFಠಛͳهड़ᶅ import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { } func sceneDidDisconnect(_ scene: UIScene) { } func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) { } } γϣʔτΧοτΠϕϯτΛิ଍͢Δ4DFOF%FMFHBUFͷίʔυ

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

·ͱΊ w J04·Ͱͷॏ੹Λ୲͖ͬͯͨ"QQ%FMFHBUF͸੔ཧ͞Ε·ͨ͠ w .VMUJQMBUGPSN·Ͱݟਾ͑ͨͷ͕4XJGU6*"QQ4DFOFͷಋೖ w 4XJGU6*"QQ4DFOFΛ࠾༻ͯ͠΋1MBUGPSN͝ͱͷϥΠϑαΠΫϧ ͸݈ࡏ