Slide 1

Slide 1 text

J044%,ʹΑΔ શػೳஔ͖׵͑ 1BSU4XJGU6*ฤ

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ೳొཁ !OPUPSPJE w J04ΞϓϦ։ൃऀ w ԰߸͍Γ·͢ిࢉاը w !OPUPSPJE w !JSJNBTV w Fεϙʔπ

Slide 4

Slide 4 text

୊໨ w ϨΨγʔΞϓϦͷ࡮৽ w 4XJGU6*Λಈ͔ͯ͠ΈΔ w ·ͱΊ

Slide 5

Slide 5 text

࿩͢ൣғ w 4XJGU6*5VUPSJBMT w IUUQTEFWFMPQFSBQQMFDPNUVUPSJBMTTXJGUVJUVUPSJBMT w $SFBUJOHBOE$PNCJOJOH7JFXT w #VJMEJOH-JTUTBOE/BWJHBUJPO w )BOEMJOH6TFS*OQVU w $PNQPTJOH$PNQMFY*OUFSGBDFT w 8PSLJOHXJUI6*$POUSPMT

Slide 6

Slide 6 text

࿩͞ͳ͍ൣғ w طଘ6*ͱͷ૊Έ߹Θͤ w Ξχϝʔγϣϯ w 04͝ͱ΁ͷ4XJGU6*ͷద༻

Slide 7

Slide 7 text

࣍ճҎ߱Ͱ࿩͢಺༰ w $PNCJOFGSBNFXPSL w ,FZ1BUI 4XJGU  w !EZOBNJD.FNCFS-PPLVQ

Slide 8

Slide 8 text

IUUQTHJUIVCDPNOPUPSPJE 4XJGU6*#BUUFSZ.POJUPS ࢿྉ

Slide 9

Slide 9 text

ϨΨγʔΞϓϦͷ࡮৽

Slide 10

Slide 10 text

J04ϦϦʔε

Slide 11

Slide 11 text

J04ʹ߹Θͤͯ طଘΞϓϦΛ࡮৽த

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

(MPSJPVT#BUUFSZ άϩϦΞεόοςϦʔ w όοςϦʔϞχλʔ ϢʔςΟϦςΟʔ  w ࠷େ୆ ࣮ػ ϦϞʔτ୆  w ख࣋ͪͷJ1IPOF͔ΒJ1BEͳͲͷػثͷόο ςϦʔঢ়ଶ֬ೝՄೳ w ࣗ୐ʹ͋ΔJ1IPOFͷόοςϦʔঢ়ଶ֬ೝՄ ೳ

Slide 14

Slide 14 text

όʔδϣϯ͸ٕज़σϞ w  όοςϦʔ৘ใ ࣮ػɺϦϞʔτ ͷදࣔ w  όοςϦʔঢ়ଶͷૹ৴ w  ϦϞʔτઌόοςϦʔঢ়ଶͷड৴ w  ট଴23ίʔυͷੜ੒ͱදࣔ w  ট଴23ίʔυͷಡΈऔΓ ϦϞʔτઌͱ઀ଓ  w  ৭ςʔϚͷબ୒ w  όοΫάϥ΢ϯυಈ࡞ όοςϦʔ৘ใͷૹड৴  w  όοςϦʔϩάͷه࿥ w  όοςϦʔϩάʹج͍ͮͨཤྺͷදࣔ w  όοςϦʔ௿Լ࣌ͷ௨஌ػೳ w  ඇফඅܕΞϓϦ಺՝ۚͷ࣮૷ w  ϩʔΧϥΠζػೳ w 'JSFCBTF ݱࡏͷ'JSFCBTF 3FBMUJNF%BUBCBTF ͷٕज़σϞ w $PSF*NBHF 23$PEF  w *O"QQ1VSDIBTF ඇফඅܕΞϓϦ಺՝ۚ  w όοΫάϥ΢ϯυߋ৽ w ϩʔΧϥΠζ

Slide 15

Slide 15 text

όʔδϣϯ͸ϨΨγʔԽ ෦෼ͷࠩ͠ସ͑ʹ௅ઓ

Slide 16

Slide 16 text

Կ͕ϨΨγʔԽͨ͠ͷ w ࢖༻ݴޠ0CKFDUJWF$ w ࠷৽ͷ։ൃख๏ͱ͸ԑԕ͘ͳΓ͕ͪ 4XJGU޲͚͕ଟ͍  w J044%,ΑΓ͸Δ͔Ҏલͷ։ൃख๏͕࢒͍ͬͯͨ w όοΫάϥ΢ϯυॲཧ ϦϞʔτ௨஌Ҏ֎ͷ#BDL(SPVOE'FUDI  w όοΫΤϯυαʔόʔ 1BSTF4FSWFS

Slide 17

Slide 17 text

J044%,ͰඞཁͳରԠ w όοΫάϥ΢ϯυಈ࡞ όοςϦʔ৘ใͷૹड৴  w 3FNPUF/PUJpDBUJPO #BDLHSPVOE'FUDI w J04͔Βͷ#BDLHSPVOE'FUDI͸ϦϞʔτ௨஌Ҏ֎EFQSFDBUFE w ΞϓϦ಺Πϝʔδͷஔ͖׵͑ w ΞϓϦ಺Ͱࣗ࡞ͨ͠ΠϝʔδϦιʔεΛ4'4ZNCPMTʹஔ͖׵͑

Slide 18

Slide 18 text

4'4ZNCPMT

Slide 19

Slide 19 text

0CKFDUJWF$͔Β4XJGUมߋʹ ߹Θͤͯ4XJGU6*Λશ໘ద༻

Slide 20

Slide 20 text

4XJGU6*શ໘ద༻͢Δͱ ։ൃख๏ͷେస׵ʹͳΔͷͰ ٕज़తͳ୨Է͠ʹͪΐ͏Ͳྑ͍

Slide 21

Slide 21 text

΋ͪΖΜউࢉ΋͋Γ㽂

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

ηϧ 4BGF"SFB·Ͱ ృΓͭͿ͠

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

όοςϦʔྔ ୯Ґ ࣌ؒຖάϥϑ ॆిঢ়ଶ ୺຤໊ ԁάϥσʔγϣϯ

Slide 26

Slide 26 text

ϢʔςΟϦςΟʔΞϓϦ͔ͩΒ4XJGU6*Λద༻Ͱ͖Δ w ϝΠϯը໘ͱઃఆը໘ w ը໘ߏ੒͕গͳ͍ w ϏδϡΞϧΛલ໘ʹԡ͠ग़ͨ͠ϝΠϯը໘ w ஔ͖׵͕͑༻ҙͦ͏ͳ؆ૉͳઃఆը໘ w δΣενϟʔʹରԠ͍ͯ͠Δ w 4XJGU6*ͰδΣενϟʔ͸αϙʔτ

Slide 27

Slide 27 text

௅ઓͨ݁͠Ռ

Slide 28

Slide 28 text

όʔδϣϯͷ࣮ݱ

Slide 29

Slide 29 text

όʔδϣϯػೳͷ࣮ݱࡁ ࢒Γ͸ΞϓϦ಺՝ۚͱɺϩʔΧϥΠζ

Slide 30

Slide 30 text

4XJGU6* w 4XJGUϕʔεͷ6*࡞੒ϑϨʔϜϫʔΫ w %4- ༻్ൣᙝݻ༗ݴޠ ͕4XJGUͰهड़Ͱ͖Δ w 4XJGUʹ࢓༷Λ௥Ճͯ͠%4-ʹدͤͯ͠·͏ w 6*Λߏ੒͢Δجຊఆٛ͸7JFX w 7JFXΛએݴత %FDMBSBUJWF ʹهड़Ͱ͖؆ܿͳهड़͕Մೳ

Slide 31

Slide 31 text

4XJGU6* w 4XJGUϕʔεͷ6*࡞੒ϑϨʔϜϫʔΫ w %4- ༻్ൣᙝݻ༗ݴޠ ͕4XJGUͰهड़Ͱ͖Δ w 4XJGUʹ࢓༷Λ௥Ճͯ͠%4-ʹدͤͯ͠·͏ w 6*Λߏ੒͢Δجຊఆٛ͸7JFX w 7JFXΛએݴత %FDMBSBUJWF ʹهड़Ͱ͖؆ܿͳهड़͕Մೳ Կ

Slide 32

Slide 32 text

એݴత %FDMBSBUJWF w ͋Δग़ྗΛಘΔʹ͋ͨͬͯͦΕΛ࡞੒͢Δํ๏Ͱ͸ͳ͘ɺग़ྗͷੑ࣭Λه ड़͢Δ͜ͱΛʮએݴܕʯͱশ͢Δ w એݴతϓϩάϥϛϯάͷʮએݴతʯͬͯʁ   w IUUQTTIIBUFOBEJBSZPSHFOUSZ w )5.-͸એݴత

Slide 33

Slide 33 text

import SwiftUI struct ContentView: View { var body: some View { Text("Hello World") } } #if DEBUG struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } #endif 4XJGU6*ͷςϯϓϨʔτίʔυ 7JFX͸CPEZͰͭͷ7JFXΛ೿ੜ ͨ͠એݴΛ౉͢ඞཁ͕͋Δɻ

Slide 34

Slide 34 text

૊ΈࠐΈ7JFX೿ੜ 5FYU *NBHF -JOFBS(SBEJFOU 3BEJBM(SBEJFOU 3FDU"OHMF $JSDMF &MMJQTF (FPNFUSZ3FBEFS "OHVMBS(SBEJFOU $BQTVMF

Slide 35

Slide 35 text

ෳ਺ͷ7JFXΛ഑ஔ͢Δ৔߹͸ɺ 4UBDL )4UBDL 74UBDL ;4UBDL

Slide 36

Slide 36 text

)4UBDL HStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) } ᶃ ᶄ ᶅ هड़ॱʹࠨ͔Βӈʹ഑ஔ ᶃ ᶄ ᶅ

Slide 37

Slide 37 text

74UBDL VStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) } ᶃ ᶄ ᶅ هड़ॱʹ্͔ΒԼʹ഑ஔ ᶃ ᶄ ᶅ

Slide 38

Slide 38 text

;4UBDL ZStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) } ᶃ ᶄ ᶅ هड़ॱʹԞʹ഑ஔ ᶃ ᶄ ᶅ

Slide 39

Slide 39 text

4UBDLͷ഑ஔ͸7JFXଆʹαΠζ ࢦఆ͕ͳ͍ݶΓ͸౳ഒ഑ஔ

Slide 40

Slide 40 text

٧ΊࠐΉ৔߹͸ 4QBDFS Λࢦఆ

Slide 41

Slide 41 text

7JFXFEHFT*HOPSJOH4BGF"SFB Λ࢖ ͏ͱ4BGF"SFBΛແࢹ͢ΔΑ͏ʹͳΔ

Slide 42

Slide 42 text

4UBDL )4UBDL 74UBDL )4UBDL Λ ࢖Θͳͯ͘΋഑ஔͰ͖Δ

Slide 43

Slide 43 text

7JFXʹ഑ஔ

Slide 44

Slide 44 text

7JFXʹ഑ஔ

Slide 45

Slide 45 text

CBDLHSPVOE͸CPEZͷDMJQϑΟϧλʔʹ Өڹ͢Δɻ

Slide 46

Slide 46 text

CBDLHSPVOE͸7JFXDMJQ ͷ ݁Ռ͕൓ө͞ΕΔ

Slide 47

Slide 47 text

Rectangle() .fill( Color.clear ).background( എܠඳը͢ΔView ) .clipped()

Slide 48

Slide 48 text

Ϧιʔε w ϑΥϯταΠζ w ౓਺ϑΥϯταΠζP⒎TFU  w ϑΥϯτશମΦϑηοτ w άϥσʔγϣϯΧϥʔ w άϥσʔγϣϯΧϥʔ

Slide 49

Slide 49 text

RadialGradient(gradient: .init(colors: [Self.gradientStart, Self.gradientEnd]), center: .init(x: 0.5, y: 0.5), startRadius: 50, endRadius: 150) .aspectRatio(contentMode: .fill) static let gradientStart = Color(red: 102.0 / 255, green: 196.0 / 255, blue: 66.0 / 255) static let gradientEnd = Color(red: 87.0 / 255, green: 161.0 / 255, blue: 58.0 / 255) // .previewDevice(PreviewDevice(rawValue: "iPhone 8") ) .previewDevice(PreviewDevice(rawValue: "iPhone X") )

Slide 50

Slide 50 text

import SwiftUI struct GraphView: View { var body: some View { HStack(spacing:0) { ForEach(0 ..< 12) { item in GraphLineView() } Spacer() } } } #if DEBUG struct GraphVioew_Previews: PreviewProvider { static var previews: some View { GraphView() // .previewDevice(PreviewDevice(rawValue: "iPhone 8") ) .previewDevice(PreviewDevice(rawValue: "iPhone X") ) } } #endif struct GraphLineView: View { var body: some View { ZStack { // Rectangle() // .foregroundColor(Color.green) ForEach(0 ..< 12 ) { item in GeometryReader { geometry in Path { path in let verticalOffset = 0.5 + (item == 0 ? 0 : (geometry.size.height * 0.2)) path.move( to: CGPoint( x: 0.5 + CGFloat(item) * 2.5, y: verticalOffset ) ) path.addLine( to: CGPoint( x: 0.5 + CGFloat(item) * 2.5, y: 0.5 + geometry.size.height ) ) } .stroke(Self.strokeColor, lineWidth: 1) } } }.frame(width:29.5, height:20) } static let strokeColor = Color(white: 1, opacity: 0.8) }

Slide 51

Slide 51 text

4XJGU6*Λಈ͔ͯ͠ΈΔ

Slide 52

Slide 52 text

IUUQTHJUIVCDPNOPUPSPJE 4XJGU6*#BUUFSZ.POJUPS ࢿྉ

Slide 53

Slide 53 text

αϯϓϧ w 4XJGU6*#BUUFSZ.POJUPS4UBSUJOH1PJOU͕։࢝࣌఺ w 4UFQɺ4UFQ͕தؒεςοϓ w 4XJGU6*#BUUFSZ.POJUPS$PNQMFUF͕׬੒

Slide 54

Slide 54 text

σʔλ࿈ಈͷͨΊͷΩʔϫʔυ w 0CTFSWBCMF0CKFDU!1VCMJTIFE w 4XJGU6*ଆ΁৘ใΛ1VCMJTI͢ΔͨΊͷఆٛηοτ w FOWJSPONFOU0CKFDU !&OWJSPONFOU0CKFDU w 4XJGU6*શମͰ༗ޮͳ؀ڥΦϒδΣΫτͷઃఆ w !4UBUF!#JOEJOH

Slide 55

Slide 55 text

ը໘ߏ੒ͷΩʔϫʔυ w 'PS&BDI w 74UBDL )4UBDL ;4UBDL w -JTU

Slide 56

Slide 56 text

·ͱΊ w J04ʹ߹ΘͤͯϨΨγʔͳΞϓϦΛ࡮৽தͰ͢ w J044%,Ͱࣔ͞Εͨ։ൃख๏ʹ߹Θͤ·͢ w 4XJGU6*͸લఏ஌ࣝ࣋ͪ։ൃऀ΋ॳ৺ऀ΋͍͍ͩͨυπϘʹϋϚΓ·͢ w 4XJGU6*Λ࢖͏ͱίϯύΠϥ͕൵໐Λ͋͛·͢