Slide 1

Slide 1 text

!4UBUF0CKFDU !6*"QQMJDBUJPO%FMFHBUF"EBQUFS 4XJGU6*OENBKPSSFMFBTF

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

࿩͢͜ͱ w 4XJGU6*ͷ௥Ճ͞Εͨॏཁఆٛʹ͍ͭͯ w 4XJGU6*ͰΞϓϦߏங͕Ͱ͖Δ͜ͱʹͳͬͨӨڹʹ͍ͭͯ w !4UBUF0CKFDU w !"QQMJDBUJPO%FMFHBUF

Slide 7

Slide 7 text

࿩͞ͳ͍͜ͱ w 4XJGU6*ͷ௥Ճ͞Εͨ6* w 4XJGU6*ͷσόοά w 4XJGU6*ͷυΩϡϝϯταϙʔτ

Slide 8

Slide 8 text

୊໨ w 4XJGU6*͔ΒΈͨ4XJGU6* w 4XJGU6*ͰΞϓϦߏங w !4UBUF0CKFDU w !6*"QQMJDBUJPO%FMFHBUF"EBQUFS w ·ͱΊ

Slide 9

Slide 9 text

4XJGU6*͔ΒΈͨ4XJGU6*

Slide 10

Slide 10 text

4XJGU6*͔ΒΈͨ4XJGU6* w 4XJGU6*͔ΒͰ͖Δ͜ͱ͕രൃతʹ૿͑ͨ w υΩϡϝϯτϕʔεΞϓϦ΁ͷ஫ྗ͸4XJGU6*͔Βܧଓͯ͠ڧԽ w ίΞػೳ͸ϢʔςΟϦςΟతͳमਖ਼ʹͱͲ·Δ !4UBUF0CKFDUΛআ͍ͯ

Slide 11

Slide 11 text

4XJGU6*ͷ؆ܿͳهड़͸ !͔Β࢝·ΔఆٛʹΑΔ΋ͷ

Slide 12

Slide 12 text

!ఆٛΛྻڍͯ͠ΈΔ

Slide 13

Slide 13 text

4XJGU6*ͷ!ఆٛ w !6*"QQMJDBUJPO%FMFHRBUF"EBQUFS w !4DBMFE.FUSJD w !&OWJSPONFOU w !4DFOF4UPSBHF w !4DFOF#VJMEFS w !4UBUF w !#JOEJOH w !0CTFSWFE0CKFDU w !1VCMJTI w !&OWJSPONFOU w !4UBUF0CKFDU

Slide 14

Slide 14 text

w !4UBUF w !#JOEJOH w !0CTFSWFE0CKFDU w !1VCMJTI w !&OWJSPONFOU w !4UBUF0CKFDU 4XJGU6*ͷ!ఆٛ w !6*"QQMJDBUJPO%FMFHRBUF"EBQUFS w !4DBMFE.FUSJD w !&OWJSPONFOU w !4DFOF4UPSBHF w !4DFOF#VJMEFS 7JFX 7JFX಺Ͱঢ়ଶΛอ࣋ 7JFX಺Ͱঢ়ଶΛଋറ NVUBCMF 7JFX಺Ͱ0CTFSWBCMF0CKFDUอ࣋ 0CTFSWBCMF0CKFDU಺ͰࢦఆՄೳͳঢ়ଶڙڅݩ 1VCMJTIFS ؀ڥม਺

Slide 15

Slide 15 text

4XJGU6*ͷ!ఆٛ w !4UBUF w !#JOEJOH w !0CTFSWFE0CKFDU w !1VCMJTI w !&OWJSPONFOU w !4UBUF0CKFDU w !6*"QQMJDBUJPO%FMFHBUF"EBQUFS w !NBJO w !/BNFTQBDF w !4DBMFE.FUSJD w !4DFOF4UPSBHF w !4DFOF#VJMEFS

Slide 16

Slide 16 text

w !4UBUF w !#JOEJOH w !0CTFSWFE0CKFDU w !1VCMJTI w !&OWJSPONFOU w !4UBUF0CKFDU w !6*"QQMJDBUJPO%FMFHBUF"EBQUFS w !NBJO w !/BNFTQBDF w !4DBMFE.FUSJD w !4DFOF4UPSBHF w !4DFOF#VJMEFS 4XJGU6*ͷ!ఆٛ ࠓճͷओ໾ "QQMJDBUJPO%FMFHBUFͷ୅໾ NBJO ؔ਺ͷ୅໾ ؀ڥఆٛΛม਺Ͱอ࣋Մೳ Ξχϝʔγϣϯ༻໊લۭؒ γʔϯ؀ڥม਺ ෳ਺ը໘࣋ͪγʔϯ༻

Slide 17

Slide 17 text

w !4UBUF w !#JOEJOH w !0CTFSWFE0CKFDU w !1VCMJTI w !&OWJSPONFOU w !4UBUF0CKFDU w !6*"QQMJDBUJPO%FMFHBUF"EBQUFS w !NBJO w !/BNFTQBDF w !4DBMFE.FUSJD w !4DFOF4UPSBHF w !4DFOF#VJMEFS 4XJGU6*ͷ!ఆٛ ࠓճͷओ໾ "QQMJDBUJPO%FMFHBUFͷ୅໾ NBJO ؔ਺ͷ୅໾ ؀ڥఆٛΛม਺Ͱอ࣋Մೳ Ξχϝʔγϣϯ༻໊લۭؒ γʔϯ؀ڥม਺ ෳ਺ը໘࣋ͪγʔϯ༻

Slide 18

Slide 18 text

4XJGU6*Ͱ!͕͍ͭͨΒ$PNCJOF 'SBNFXPSL͕հࡏ͠෇ՃతͳػೳΛ ༩͍͑ͯΔͱࢥ͏΂͠

Slide 19

Slide 19 text

!͕͍ͭͯ΋໊শ͕௚ײత͡Όͳ͍ ͱ͍͏͋ͳͨ

Slide 20

Slide 20 text

4XJGU6*͸શһελʔτϥΠϯ Έ͍ͨͳ΋ͷͳͷͰ ࠓ͕֮͑Ͳ͖Ͱ͢Αɻ

Slide 21

Slide 21 text

JSJNBTVDPNTXJGUVJDPNCJOF GSBNFXPSLLFZQBUITXJGUVJ 4XJGU6*ΛֶͿ্Ͱ಄ʹೖΕ͓͖͍ͯͨ,FZ1BUIɺ$PNCJOFGSBNFXPSL ʹ͍ͭͯ͸೥݄ษڧձͰ࿩ͨ͠಺༰Λ֬ೝ

Slide 22

Slide 22 text

4XJGU6*ͰΞϓϦߏங

Slide 23

Slide 23 text

4XJGU6*ϕʔεͰΞϓϦߏங ͕ՄೳͱͳΓ·ͨ͠

Slide 24

Slide 24 text

4XJGU6*͕ΞϓϦߏங·Ͱԡ͠ਐΊͨཧ༝ w ϚϧνϓϥοτϑΥʔϜԽ J04 J1BE04 NBD04 UW04 XBUDI04  w ৽ͨͳ։ൃऀͷݺͼࠐΈ w ೥ϓϨΠϠʔ͕ΞϓϦ։ൃʹࢭ·ΔΘ͚΋ͳ͠ɺ૯ྔ΋૿͑ͳ͍ w 8FCϓϩάϥϚʹ਌࿨ੑΛΑΓߴͯ͘͠৽نࢀೖऀݺͼࠐΈ

Slide 25

Slide 25 text

4XJGU6*ͰΞϓϦߏங͸ ͲͷΑ͏ʹୡ੒͞Εͨ

Slide 26

Slide 26 text

4XJGU6*ͷߟ͑ํΛ ΞϓϦશମʹద༻

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

$PDPBGSBNFXPSL JNQPSU6*,JU !6*"QQMJDBUJPO.BJO DMBTT"QQ%FMFHBUF6*3FTQPOEFS 6*"QQMJDBUJPO%FMFHBUF\ WBSNPEFM.PEFM  GVODBQQMJDBUJPO @BQQMJDBUJPO EJE'JOJTI-BVODIJOH8JUI0QUJPOTMBVODI0QUJPOT #PPM\  SFUVSOUSVF ^ GVODBQQMJDBUJPO www \  ^   GVODBQQMJDBUJPO www \ ^ ^ DMBTT4DFOF%FMFHBUF6*3FTQPOEFS 6*8JOEPX4DFOF%FMFHBUF\

Slide 29

Slide 29 text

4XJGU6* JNQPSU4XJGU6* !NBJO TUSVDU46*5FTU"QQ"QQ\ WBSCPEZTPNF4DFOF\ 8JOEPX(SPVQ\ $POUFOU7JFX  ^ ^ ^

Slide 30

Slide 30 text

ྑ͍͜ͱʹΑ͏ʹࢥ͑Δ͕ʜ

Slide 31

Slide 31 text

$PDPBGSBNFXPSL JNQPSU6*,JU !6*"QQMJDBUJPO.BJO DMBTT"QQ%FMFHBUF6*3FTQPOEFS 6*"QQMJDBUJPO%FMFHBUF\ WBSNPEFM.PEFM  GVODBQQMJDBUJPO @BQQMJDBUJPO EJE'JOJTI-BVODIJOH8JUI0QUJPOTMBVODI0QUJPOT #PPM\  SFUVSOUSVF ^ GVODBQQMJDBUJPO www \  ^   GVODBQQMJDBUJPO www \ ^ ^ DMBTT4DFOF%FMFHBUF6*3FTQPOEFS 6*8JOEPX4DFOF%FMFHBUF\ ΤϯτϦʔ ΦϒδΣΫτ ΦϒδΣΫτ Πϕϯτ Πϕϯτ Πϕϯτ

Slide 32

Slide 32 text

4XJGU6* JNQPSU4XJGU6* !NBJO TUSVDU46*5FTU"QQ"QQ\ WBSCPEZTPNF4DFOF\ 8JOEPX(SPVQ\ $POUFOU7JFX  ^ ^ ^ ߏ଄ମ ΤϯτϦʔ ߏ଄ମ ߏ଄ମ

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

ΞϓϦߏஙͷ໰୊఺ w $PDPBGSBNFXPSLͷ৔߹͸ɺΦϒδΣΫτͷߟ͑ํͷൣᙝͰΞϓϦߏங ͕Մೳ w 4JXGU6*Ͱ͸ɺΞϓϦߏங·Ͱ4XJGU6*ͷߟ͑ʹଇΔͷͰΦϒδΣΫτ Λ҆௚ʹ௥ՃͰ͖ͳ͍ w ΞϓϦͷΠϕϯτ͸ɺϓϥοτϑΥʔϜ͝ͱґଘ͍ͯ͠ΔͷͰɺϚϧνϓ ϥοτϑΥʔϜΛࢤ͢4XJGU6*ͱ૬༰Εͳ͍

Slide 36

Slide 36 text

!4UBUF0CKFDU !6*"QQMJDBUJPO%FMFHBUF"EBQUFS

Slide 37

Slide 37 text

!4UBUF0CKFDU w 4XJGU6*͕࠷ऴతʹϨϯμϦϯά͢ΔΦϒδΣΫτͱಉ͡ϥΠϑαΠΫϧ w 0CTFSWBCMF0CKFDUͷ೿ੜΫϥεͷΈΛࢦఆՄ w 4XJGU6*ͷߟ͑ํ͔Β͸গ͠֎ΕΔ͕ࣗવʹίʔυ͕ॻ͚Δ

Slide 38

Slide 38 text

import SwiftUI @main struct FooApp: App { @StateObject var model = FooModel() var body: some Scene { WindowGroup { ContentView() .environmentObject(model) } } }

Slide 39

Slide 39 text

!6*"QQMJDBUJPO%FMFHBUF"EBQUFS w ೥ͷஈ֊Ͱ΋ϓϥοτϑΥʔϜ͝ͱͷΞϓϦέʔγϣϯϑϨʔϜϫʔΫʹ ґଘ͢ΔՕॴ͸ଘࡏ w J044%,Ͱ͸6*"QQMJDBUJPO%FMFHBUFʹॏཁͳॲཧ͕಺ࡏ w ϓογϡ௨஌ͷొ࿥੒ޭࣦഊ w όοΫάϥ΢ϯυ௨஌ͷड͚औΓ w )BOEP⒎ͷৼΓ෼͚ w 4XJGU6*͕ΞϓϦߏஙΛ୲͍ͬͯΔ౎߹্6*"QQMJDBUJPO%FMFHBUFͷखஈΛఏڙ

Slide 40

Slide 40 text

import UIKit class AppDelegate: UIResponder, UIApplicationDelegate { } import SwiftUI @main struct FooApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate var body: some Scene { WindowGroup { ContentView() } } }

Slide 41

Slide 41 text

αϯϓϧίʔυ !4UBUF0CKFDUͷڍಈΛ֬ೝͯ͠ΈΑ͏

Slide 42

Slide 42 text

HJUIVCDPNOPUPSPJE 4UBUF0CKFDU$BUBMPH

Slide 43

Slide 43 text

౴͑߹Θͤ

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

!4UBUF0CKFDUࡶײ w ϨϯμϦϯά͞ΕͨΦϒδΣΫτͱಉ͡ϥΠϑαΠΫϧ w ࠩ͠ସ͕͑ൃੜ͠ͳ্͍ҐΦϒδΣΫτ "QQ 4DFOF Ͱѻ͍΍͍͢ w υΩϡϝϯτϕʔεΞϓϦͷͨΊʹ࡞ΒΕͨΑ͏ʹ΋Έ͑Δ

Slide 46

Slide 46 text

·ͱΊ w 4XJGU6*͸6*͕औΓ্͕͛ͪͰ͕͢ίΞఆٛ΋૿͍͑ͯ·͢ w 4XJGU6*ͰΞϓϦߏங͢ΔͱݹࢀͷΞϓϦ։ൃऀ΄ͲมԽΛڧ͍ΒΕ ·͢ w !4UBUF0CKFDU͸4JXGU6*ΞϓϦ։ൃͷ৭ʑͳ໰୊Λղܾ͠·͢