Slide 1

Slide 1 text

'MVUUFS৽ଔݚम ,VOP"ZBOB

Slide 2

Slide 2 text

ߨࢣɾνϡʔλʔ ٱ໺จࡊ !BZBOBLVOP ৽ଔ NJBUUPNFSDVSZ ࣾ৯͸ΩʔϚΧϨʔਪ͠ পా޾େ !ZVLJIJSPOVNBUB ೥த్ೖࣾ 'BOTUB ࣾ৯͸େମ͍ͭ΋=d

Slide 3

Slide 3 text

ࣄલ४උ͸0,ʁ J04ಈ͔͍ͨ͠ਓɹ "OESPJEಈ͔͍ͨ͠ਓɹ w 9DPEFͷΠϯετʔϧ͓Αͼղౚ w Πϯετʔϧ͸"QQ4UPSFͰ͸ͳ͘EFWFMPQFSαΠτ͔Βམͱͯ͘͠Δ͜ͱΛ͓קΊ w IUUQTEFWFMPQFSBQQMFDPNEPXOMPBENPSF w ࣄલʹ"QQMF*%͕ඞཁ w ձࣾͷϝʔϧΞυϨεͰΞΧ΢ϯτΛ࡞੒ w "OESPJE4UVEJPͷΠϯετʔϧ͓Αͼղౚ w Ұ୴ىಈ͠ͳ͍ͱ fl VUUFSEPDUPSͨ͠ͱ͖ʹ6OBCMFUPMPDBUF"OESPJE4%,ͷΤϥʔʹͳΔ

Slide 4

Slide 4 text

ຊ೔ͷ͓඼ॻ͖ ʙ'MVUUFSͱ͸ ʙ fl VUUFSDSFBUFίϚϯυͰΞϓϦΛ࡞ͬͯΈΑ͏ʂ ʙٳܜ ʙDSFBUF͞ΕͨΞϓϦΛݟ͍ͯ͜͏ʂ *OUSPEVDUJPO 4UBUF 5FYU'JFME ը໘ભҠʢ/BWJHBUPSʣ ʙϥϯν ʙωοτϫʔΫ௨৴ʢIUUQ௨৴ʣ ʙνʔϜͰνϟϨϯδʂ 
 ɹɹɹɹ$IBU(15ͱͷνϟοτΞϓϦΛ࡞ͬͯΈΑ͏ʂ ʙΫϩʔδϯά

Slide 5

Slide 5 text

ݚमͷΰʔϧ

Slide 6

Slide 6 text

ݚमͷΰʔϧ ΞϓϦ։ൃॳΊͯͷਓ 'MVUUFSָ͍ͬͯ͠ʙʂͷؾ࣋ͪΛ࣋ͪؼͬͯʂ 'MVUUFSνϣοτσΩΔਓ ਓʹڭ͑Δ͜ͱͰཧղ౓Λ্͛Α͏ʂ Ԡ༻໰୊·ͰؤுΕʂ

Slide 7

Slide 7 text

'MVUUFSͱ͸

Slide 8

Slide 8 text

'MVUUFSͱ͸ w ϚϧνϓϥοτϑΥʔϜ։ൃ͕ՄೳͳϑϨʔϜϫʔΫ w ̓ͭͷϓϥοτϑΥʔϜ্Ͱಈ͘ΞϓϦΛ࡞ΕΔʂ w ੈքʹ͸ສਓҎ্ͷ։ൃऀͱສҎ্ͷΞϓϦ͕͋Δ w (JU)VCͷίϯτϦϏϡʔλʔ਺͸74$PEF IPNFBTTJTUBOUʹ͍࣍ͰҐʂ w %Ϟσϧͷදࣔ΋Ͱ͖ΔΑ͏ʹʂ 'MVUUFS'PSXBSEIUUQTXXXZPVUVCFDPNXBUDI W[,2:(,"F8 %ϞσϧදࣔΛࢼͯ͠ΈΔIUUQTJUPNFUFBNCMPH fl VUUUFSTDFOFNFNP

Slide 9

Slide 9 text

'MVUUFSͱ͸ w (PPHMF͕ຊؾΛग़ͯ͠࡞ͬͯΔ w (PPHMFͷΞϓϦʢ(PPHMF"ET΍(PPHMF"TTJTUBOUͳͲʣͰ΋ར༻͞ΕͯΔ w ϚςϦΞϧσβΠϯͷίϯϙʔωϯτΛ"OESPJEΑΓઌʹ࣮૷ͯͨ͠Γ͢Δ w ίϯϙʔωϯτΛඪ४Ͱ༻ҙͯ͘͠ΕͯΔ͔Βॳ৺ऀͰ΋ྑ͍ײ͡ʹ࡞ΕΔʂ ίϯϙʔωϯτҰཡIUUQTNBUFSJBMJPDPNQPOFOUT

Slide 10

Slide 10 text

w %BSUͱ͍͏ݴޠͰ࣮૷͢Δ w (PPHMF͕+BWB4DSJQUͷ໰୊఺Λվળͨ͠୅ସݴޠͱͯ͠೥ʹ։ൃ͞Εͨ΋ͷ w %BSUͰ/VMM4BGFUZʹͳͬͨʢผϖʔδͰઆ໌ʣ w ϨϯμϦϯάΤϯδϯ΋4LJBΛ࢖ͬͯࣗલͰ࡞ΒΕ͍ͯΔͷͰ଎͍ʂ w 'MVUUFS'PSXBSEͰ৽ϨϯμϦϯάΤϯδϯͷ*NQFMMFS͕ެ։͞Εͨ w એݴత6*Ͱॻ͘͜ͱ͕ՄೳʢผϖʔδͰઆ໌ʣ w 4UPSZCPBSEΛ࢖ͬͨ4XJGUͷίʔυΑΓ3FBDUͷํ͕ࣅͯΔ͔΋ 'MVUUFSͱ͸ 'MVUUFSͷΞʔΩςΫνϟIUUQTEPDT fl VUUFSEFWSFTPVSDFTBSDIJUFDUVSBMPWFSWJFX *NQFMMFSʹ͍ͭͯIUUQTEPDT fl VUUFSEFWQFSGJNQFMMFS EBTI܅ʹ͍ͭͯIUUQTEPDT fl VUUFSEFWEBTI

Slide 11

Slide 11 text

/VMM4BGFUZͬͯʁ ͲͷܕͰ΋OVMMΛ࢖ͬͯྑ͍ C͸OVMM΍ͳ͍͔ʙʂ ࣮ߦ࣌ʹOVMMͩͬͨ৔߹ ΤϥʔΛు͘ɾΞϓϦ͕མͪΔ int a = 100; int b = null; a = 100; print(a + b); OVMMTBGFUZʹ͍ͭͯIUUQTEBSUEFWOVMMTBGFUZ

Slide 12

Slide 12 text

࣮ߦ࣌ʹOVMMͷΤϥʔͰ མͪΔ͜ͱ͸ͳ͘ͳΔ /VMM4BGFUZͬͯʁ جຊతʹOVMM࢖ͬͪΌμϝ ࢖͍͍ͨ࣌͸ Λ͚ͭΔ int a = 100; int? b = null; a = 100; print(a + b); // Τϥʔ if (b != null) { print(a + b); } print(a + b!); C͕OVMMͷ࣌͸ආ͚ ͯ͘ΕΔͷͰ҆৺ OVMMTBGFUZʹ͍ͭͯIUUQTEBSUEFWOVMMTBGFUZ

Slide 13

Slide 13 text

label = UILabel() label.text = “Babu~” label.textColor = .black label.textAlignment = .center view.addSubview(label) Text( “Babu~", style: TextStyle(color: Colors.black), textAlign: TextAlign.center, ), ໋ྩతʢ4XJGUʣ એݴత6*ͬͯʁ એݴతʢ%BSUʣ ϥϕϧΛ࡞Εʂ ϥϕϧͷςΩετ͸όϒʙͰ͋Εʂ ৭͸ࠇͰ͋ΕʂਅΜதدͤͰ͋Εʂ ͦͷϥϕϧΛ7JFXʹ௥Ճͤ͑ʂ

Slide 14

Slide 14 text

label = UILabel() label.text = “Babu~” label.textColor = .black label.textAlignment = .center view.addSubview(label) Text( “Babu~", style: TextStyle(color: Colors.black), textAlign: TextAlign.center, ), ໋ྩతʢ4XJGUʣ એݴత6*ͬͯʁ એݴతʢ%BSUʣ զ͸όϒʙͱ͍͏ࠇ৭ͷ ਅΜதدͤςΩετͰ͋Δʂ

Slide 15

Slide 15 text

GMVUUFSDSFBUFίϚϯυͰ ΞϓϦΛ࡞ͬͯΈΑ͏ʂ

Slide 16

Slide 16 text

ΞϓϦΛ࡞ͬͯΈΑ͏ $ flutter create <<ϓϩδΣΫτͷ໊લ>> $ cd <<ϓϩδΣΫτͷ໊લ>> $ open iOS/Runner.xcworkspace // ios ͷਓͷΈ $ flutter run "OESPJEͷਓ͸࣮ػબ୒΋͘͠͸ "OESPJEελδΦ্ཱͪ͛ͯΤϛϡબ୒ ϓϩδΣΫτ໊͸ΞϯμόʔͰܨ͕ͳ͍ͱ ʰzϓϩδΣΫτ໊zJTOPUBWBMJE%BSUQBDLBHFOBNFʱ ͬͯΤϥʔుౖ͍ͯΒΕΔ

Slide 17

Slide 17 text

J04೿ͷਓ ࣄલ४උͰ࡞ͬͨ ΞΧ΢ϯτʹͳ͍ͬͯΔ͔ʁ

Slide 18

Slide 18 text

J04೿ͷਓ ࣮ػ઀ଓͯͨ͠ΒJ04%FWJDFͷͱ͜Ζʹ ͜Μͳ෩ʹग़ͯ͘Δ͸ͣ γϛϡϨʔλಈ͔͢ਓ͸ ޷͖ͳ΍ͭΛબΜͰͶʂ ࣍ճ͔Β͸ԼهίϚϯυͰ্ཱ͕ͪΔΑ $ open -a simulator

Slide 19

Slide 19 text

J04೿ͷਓʢ࣮ػʣ ઃఆҰൠ71/ͱσόΠε؅ཧ ͷڐՄ͕߱ΓͯΔ͔֬ೝʂ

Slide 20

Slide 20 text

"OESPJE೿ͷਓ "OESPJE4UVEJPΛ্ཱͪ͛ͯ "7%.BOBHFSΛબ୒ ΋͘͠͸࣮ػ઀ଓͯ͠ $ flutter run ޷͖ͳΤϛϡϨʔλΛ ▶︎ Λԡͯ͠ىಈ

Slide 21

Slide 21 text

8FCͰ΋ಈ͘ʂ $ISPNFͰ΋ಈ͚͘Ͳ ͔ͤͬ͘ͳΒεϚϗ͔γϛϡϨʔλͰ ಈ͔ͯ͠Έͯ΄͍͠ʂ

Slide 22

Slide 22 text

ಈ͍͔ͨͳʁʁʁ ϘλϯΛԡ͢ͱ ਅΜதͷ਺ࣈ͕Χ΢ϯτΞοϓ͞Ε͍ͯ͘ΞϓϦ

Slide 23

Slide 23 text

෼ؒٳܜ ΋ͬͱٳܜ͔ͨͬͨ͠Βݴͬͯω

Slide 24

Slide 24 text

DSFBUF͞ΕͨΞϓϦΛ ݟ͍ͯ͜͏ʂ

Slide 25

Slide 25 text

΢ΟδΣοτ ϖʔδશମ

Slide 26

Slide 26 text

΢ΟδΣοτ ϖʔδશମ "QQ#BS

Slide 27

Slide 27 text

΢ΟδΣοτ ϖʔδશମ "QQ#BS ςΩετ

Slide 28

Slide 28 text

΢ΟδΣοτ ϖʔδશମ "QQ#BS ςΩετ Ϙλϯ

Slide 29

Slide 29 text

΢ΟδΣοτ ϖʔδશମ "QQ#BS ςΩετ Ϙλϯ શ෦΢ΟδΣοτʂ ը໘͸΢ΟδΣοτͰ੒Γཱ͍ͬͯΔʂ

Slide 30

Slide 30 text

࣮ࡍͷίʔυΛݟ͍ͯ͜͏ʂ w ϥΠϒίʔσΟϯά͍ͯ͘͠ͷͰҰॹʹΞϓϦΛಈ͔͍ͯ͜͠͏ʂ w ͨ·ʹղઆͰεϥΠυʹ໭͖ͬͯ·͢ w 5SZ͸Ұॹʹɼ$IBMMFOHF͸ਓͰؤுͬͯΈΑ͏ʂ w ϦϙδτϦʹίʔυΛஔ͍ͯ͋ΔͷͰฉ͖ͦͼΕͨΒࢀߟʹͯ͠Ͷʂ w IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFS w ίϛοτϝοηʔδ΍ίʔυ಺ίϝϯτ͕આ໌ʹͳ͍ͬͯ·͢ʂ

Slide 31

Slide 31 text

74$PEFͷਓʙʂ ֦ுػೳೖΕ͓ͯ͘ͱΊͪΌͪ͘ΌศརͰ͢ ʰ fl VUUFSʱͰݕࡧͯ͠Ұ൪্ʹग़Δ΍ͭ

Slide 32

Slide 32 text

֦ுػೳ͸͜͏࢖͏ʂ Կ͔Ͱғ͍͍ͨ ΢ΟδΣοτΛӈΫϦοΫ ϦϑΝΫλΛબ୒ ғ͍͍ͨ΢ΟδΣοτΛબ୒ σσϯʂғΘΕͨʂ

Slide 33

Slide 33 text

*OUSPEVDUJPO w ϥΠϒίʔσΟϯά͠·͢ʂ w ϓϩδΣΫτʢσΟϨΫτϦʣߏ੒ʹ͍ͭͯ w NBJO ͷྲྀΕ΍DMBTTͷઆ໌ w .Z)PNF1BHFͷϑΝΠϧ෼͚ͯΈΔ w ଞͷϑΝΠϧΛࢀর͢Δͱ͖͸JNQPSU͢Δ w 5FYUͷத਎Λม͑ͯΈͨΓ͢Δ w )PU3FMPBE3FTUBSUͱ͸ʁʢผϖʔδͰઆ໌ʣ w .Z)PNF1BHFݟͯ͘ w 4DB ff PMEͱ͔DPMVNOͳͲඪ४΢ΟδΣοτ͕ͨ͘͞ΜʂʢผϖʔδͰઆ໌ʣ w ֦ுػೳ͸͜͏࢖͏ʂʢผϖʔδͰઆ໌ʣ

Slide 34

Slide 34 text

)PUSFMPBESFTUBSUͱ͸ʁ )PUSFMPBE )PUSFTUBSU ͍͍ͪͪDUSMD͔Βͷ fl VUUFSSVO͠ͳͯ͘େৎ෉ʂʂʂʂ λʔϛφϧͰ3Λԡ͢ ΄΅Ϧηοτ͞ΕΔ λʔϛφϧͰSΛԡ͢ 5FYU΍৭ͳͲ΢ΟδΣοτΛ มߋͨ͠Β൓ө͞ΕΔ 4UBUF͸ͦͷ·· ʢ4UBUFʹؔͯ͠͸ޙͰઆ໌ʣ fl VUUFSSVO ωΠςΟϒίʔυ͔Β ࣮ߦ͠௚͢ ˞)PUSFMPBE͕Ͱ͖Δͷ͸σόοάϏϧυ࣌ʢ+*5ίϯύΠϧ࣌ʣͷΈ

Slide 35

Slide 35 text

ඪ४΢ΟδΣοτ Α͘࢖͏΢ΟδΣοτ͕ ༻ҙ͞ΕͯΔʂ ඪ४΢ΟδΣοτ͕ݟΕΔIUUQTEPDT fl VUUFSEFWEFWFMPQNFOUVJXJEHFUT

Slide 36

Slide 36 text

5SZඪ४΢ΟδΣοτΛ࢖ͬͯΈΑ͏ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ϥΠϒίʔσΟϯά͠·͢ʂ w ࢖༻૝ఆ΢ΟδΣοτ w 5FYU w $FOUFS w $PMVNO w 3PX w 4J[FE#PY w $PMPSFE#PY

Slide 37

Slide 37 text

IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w 3PXͱ$PMVNOΛ࢖ͬͯӈͷਤܗΛඳըͯ͠ΈΑ͏ʂ w େ͖͞΍৭ɼ伱ؒ͸ςΩτʔͰେৎ෉Ͱ͢ w ࣭໰େ׻ܴʂʂʂʂʂ w 伱ؒͷ෇͚ํ΍ฒ΂ํͳͲ ෼ʂ $IBMMFOHFਤܗΛඳըͯ͠ΈΑ͏

Slide 38

Slide 38 text

$PMVNO΍3PX͸਌ͷαΠζ·Ͱ޿͕Δੑ࣭Λ࣋ͭ

Slide 39

Slide 39 text

$PMVNO΍3PX͸਌ͷαΠζ·Ͱ޿͕Δੑ࣭Λ࣋ͭ $PMVNOͷαΠζ͸ ΦϨϯδͷ࿮

Slide 40

Slide 40 text

$PMVNO΍3PX͸਌ͷαΠζ·Ͱ޿͕Δੑ࣭Λ࣋ͭ $PMVNOͷαΠζ͸ ΦϨϯδͷ࿮ 3PX΋Ί͍ͬͺ͍ ޿͕Ζ͏ͱ͢Δ

Slide 41

Slide 41 text

$PMVNO΍3PX͸਌ͷαΠζ·Ͱ޿͕Δੑ࣭Λ࣋ͭ mainAxisSize:MainAxisSize.min, Λࢦఆͯ͋͛͠Δͱ ࣗ਎ͷେ͖͞ʹཹ·Δʂ $PMVNOͷαΠζ͸ ΦϨϯδͷ࿮

Slide 42

Slide 42 text

5SZϦετΛදࣔͯ͠ΈΑ͏ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ϥΠϒίʔσΟϯά͠·͢ʂ w ࢖༻૝ఆ΢ΟδΣοτ w -JTU7JFX w $BSE w 1BEEJOH

Slide 43

Slide 43 text

IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ·ͣ͸ࢥ͍ͭ͘ํ๏Ͱ΍ͬͯΈͯʂ w ΤϥʔʹͳΔਓ͕͍ͨΒώϯτग़͠·͢ʂ $IBMMFOHFϦετʹλΠτϧΛ͚ͭΑ͏

Slide 44

Slide 44 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ 5IFGPMMPXJOH3FOEFS0CKFDUXBTCFJOHQSPDFTTFEXIFOUIFFYDFQUJPOXBT fi SFE 3FOEFS7JFXQPSUD/&&%4-":065/&&%41"*/5/&&%4$0.104*5*/(#*5461%"5& OFFETDPNQPTJUJOH DSFBUPS7JFXQPSUˡ*HOPSF1PJOUFS<(MPCBM,FZBEC>ˡ4FNBOUJDTˡ-JTUFOFSˡ @(FTUVSF4FNBOUJDTˡ 3BX(FTUVSF%FUFDUPS<-BCFMFE(MPCBM,FZ3BX(FTUVSF%FUFDUPS4UBUFD>ˡ-JTUFOFSˡ @4DSPMMBCMF4DPQF ˡ@4DSPMM4FNBOUJDT<(MPCBM,FZB>ˡ/PUJ fi DBUJPO-JTUFOFS4DSPMM.FUSJDT/PUJ fi DBUJPOˡ 4DSPMMBCMFˡ1SJNBSZ4DSPMM$POUSPMMFSˡl QBSFOU%BUBOPOF DBOVTFTJ[F DPOTUSBJOUT#PY$POTUSBJOUT X I*O fi OJUZ ɽɽɽ

Slide 45

Slide 45 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ 5IFGPMMPXJOH3FOEFS0CKFDUXBTCFJOHQSPDFTTFEXIFOUIFFYDFQUJPOXBT fi SFE 3FOEFS7JFXQPSUD/&&%4-":065/&&%41"*/5/&&%4$0.104*5*/(#*5461%"5& OFFETDPNQPTJUJOH DSFBUPS7JFXQPSUˡ*HOPSF1PJOUFS<(MPCBM,FZBEC>ˡ4FNBOUJDTˡ-JTUFOFSˡ @(FTUVSF4FNBOUJDTˡ 3BX(FTUVSF%FUFDUPS<-BCFMFE(MPCBM,FZ3BX(FTUVSF%FUFDUPS4UBUFD>ˡ-JTUFOFSˡ @4DSPMMBCMF4DPQF ˡ@4DSPMM4FNBOUJDT<(MPCBM,FZB>ˡ/PUJ fi DBUJPO-JTUFOFS4DSPMM.FUSJDT/PUJ fi DBUJPOˡ 4DSPMMBCMFˡ1SJNBSZ4DSPMM$POUSPMMFSˡl QBSFOU%BUBOPOF DBOVTFTJ[F DPOTUSBJOUT#PY$POTUSBJOUT X I*O fi OJUZ ɽɽɽ *O fi OJUZʂʂ

Slide 46

Slide 46 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ $PMVNO

Slide 47

Slide 47 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ $PMVNO

Slide 48

Slide 48 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ $PMVNO -JTU7JFX

Slide 49

Slide 49 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ $PMVNO -JTU7JFX

Slide 50

Slide 50 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w -JTU7JFX΋޿͕Ζ͏ͱͯ͘͠Δੑ࣭Λ࣋ͭͷͰΤϥʔʹͳΓ·͢ $PMVNO Ͳ͜·Ͱ޿͕ΔΜʁʁʁ -JTU7JFX

Slide 51

Slide 51 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w ղܾࡦ ᶃ -JTU7JFXͷߴ͞Λݻఆ͢Δ ᶄ &YQBOEFEͱ͍͏8JEHFUΛ࢖͏ $PMVNO ߴ͞QYͰʂ -JTU7JFX

Slide 52

Slide 52 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w ղܾࡦ ᶃ -JTU7JFXͷߴ͞Λݻఆ͢Δ ᶄ &YQBOEFEͱ͍͏8JEHFUΛ࢖͏ $PMVNO $PMVNOͷ༨Γͷ伱ؒ શ෦ຒΊͨΔʂ -JTU7JFX

Slide 53

Slide 53 text

$PMVNOͷதʹ-JTU7JFXΛೖΕΔͱ͖͸஫ҙʂ w ղܾࡦ ᶃ -JTU7JFXͷߴ͞Λݻఆ͢Δ ᶄ &YQBOEFEͱ͍͏8JEHFUΛ࢖͏ ᶅ Ϧετͷ࠷ॳͷཁૉʹλΠτϧΛ࣋ͨͤͯ͋͛Δʂ -JTU7JFXͷΈʹ͢Δ λΠτϧ ཁૉ ཁૉ ཁૉ ཁૉ ɾ ɾ ɾ

Slide 54

Slide 54 text

4UBUFͱ4UBUFMFTT8JEHFU4UBUFGVM8JEHFU w Χ΢ϯτΞοϓͯ͠දࣔ͸Ͳ͏΍͍ͬͯΔͷͩΖ͏͔ʁ w ͦ΋ͦ΋4UBUFͬͯͳ͋ʹʁʢผϖʔδͰઆ໌ʣ w 4UBUFGVM8JEHFUͷ঺հ w 4UBUFΛ௥Ճͯ͠ΈΑ͏ w ഒ͍ͯ͘͠Ϙλϯ w 4UBUF͸খ࣋ͭ͘͞Α͏ʹ͠Α͏ʂ w 4UBUFMFTT8JEHFUͷ঺հ

Slide 55

Slide 55 text

4UBUFͬͯͳ͋ʹʁ w 4UBUFঢ়ଶ w 4UBUF͕มΘΔͱը໘ߋ৽͞ΕΔʢCVJME಺͕࠶࣮ߦ͞ΕΔʣ ͳΜΒ͔ͷΞΫγϣϯ ݁ՌΛඳը ݁ՌΛඳը

Slide 56

Slide 56 text

4UBUFͬͯͳ͋ʹʁ w 4UBUFঢ়ଶ w 4UBUF͕มΘΔͱը໘ߋ৽͞ΕΔʢCVJME಺͕࠶࣮ߦ͞ΕΔʣ ͳΜΒ͔ͷΞΫγϣϯ ݁ՌΛඳը ݁ՌΛඳը 6*G 4UBUF એݴత6*Λந৅Խ͢Δͱ ঢ়ଶΛҾ਺ͱͯ͠6*Λฦ͢ ෭࡞༻Λ࣋ͨͳ͍ؔ਺Ͱ͋Δ

Slide 57

Slide 57 text

w 4UBUFΛ࢖͏΢ΟδΣοτΛ4UBUFGVM8JEHFUͱ͍͏ w ٯʹ࢖Θͳ͍΢ΟδΣοτ͸4UBUFMFTT8JEHFUͱ͍͏ 4UBUFͬͯͳ͋ʹʁ 4UBUFGVM8JEHFU ݁ՌΛඳը ݁ՌΛඳը

Slide 58

Slide 58 text

5SZഒʹͳΔTUBUFΛ௥Ճ͠Α͏ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ϥΠϒίʔσΟϯά͠·͢ʂ w 4UBUFΛ৽ͨʹ༻ҙ͠Α͏ w ͦͷ4UBUFΛഒ͍ͯ͘͠ϘλϯΛ௥Ճ͠Α͏

Slide 59

Slide 59 text

5SZഒʹͳΔTUBUFΛ௥Ճ͠Α͏ w ৽͍͠4UBUFΛఆٛ w ഒ͢ΔϝιουΛఆٛ w ഒ͢ΔϝιουΛݺͿϘλϯΛ௥Ճ void _twice() { setState(() { _counter2 = _counter2 * 2; }); } FloatingActionButton( onPressed: () { _twice(); },

Slide 60

Slide 60 text

5SZ5FYU'JMFEΛ࢖ͬͯΈΑ͏ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ϥΠϒίʔσΟϯά͠·͢ʂ w 5FYU'JMFEΛ࢖ͬͯΈΑ͏ w จࣈଧͭͨͼʹԼʹςΩετදࣔͤ͞Δʹ͸ʁ w 4UBUFʹ͠ͳ͖Ό͍͚ͳ͍Ͷʂ

Slide 61

Slide 61 text

$IBMMFOHFจࣈදࣔϘλϯΛ࡞Ζ͏ w ͖ͬ͞͸จࣈΛଧͭͨͼදࣔͩͬͨ w ϘλϯΛԡͨ͠Βจࣈ͕දࣔ͞ΕΔΑ͏ʹͯ͠ΈΑ͏ʂ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM ෼ʂ

Slide 62

Slide 62 text

$IBMMFOHFจࣈදࣔϘλϯΛ࡞Ζ͏ w TFU4UBUFͷλΠϛϯά͕ॏཁ w 5FYU'JMFEͷPO$IBOHFEͰ͸TFU4UBUF͠ͳ͍Α͏ʹ w ࠶ඳը͞Εͯ͠·͏ͨΊ w Ϙλϯԡͨ࣌͠ʹTFU4UBUF͢ΔΑ͏ʹʂ TextField( onChanged: ((value) { tmpText = value; }), IconButton( onPressed: () { setState(() { showText = tmpText; }); },

Slide 63

Slide 63 text

ϥϯν

Slide 64

Slide 64 text

5SZը໘ભҠͯ͠ΈΑ͏ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w /BWJHBUPSͷ΍ΓํͰ͢ w ϥΠϒίʔσΟϯά͠·͢ʂ w 'JSTU1BHFͱ4FDPOE1BHFΛ࡞੒ w 4DB ff PMEͳ͍ͱ౔୆͕ͳ͍͔ΒมͳදࣔʹͳͬͪΌ͏Αʙ w QVTIͷઆ໌ʢผϖʔδͰઆ໌ʣ w ͋Β͔͡Ί3PVUFొ࿥͓ͯ͘͠ͱศརͩΑʙ w QPQͷઆ໌ʢผϖʔδͰઆ໌ʣ

Slide 65

Slide 65 text

ը໘ભҠ " .BUFSJBM"QQ͕͍࣋ͬͯΔ/BWJHBUPSΛ࢖ͬͯը໘ભҠ͢Δ " # .BUFSJBM1BHF3PVUF Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => B(), ), ); Navigator.pop(conte

Slide 66

Slide 66 text

ը໘ભҠ " .BUFSJBM"QQ͕͍࣋ͬͯΔ/BWJHBUPSΛ࢖ͬͯը໘ભҠ͢Δ " # .BUFSJBM1BHF3PVUF Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => B(), ), ); Navigator.pop(conte 8JEHFU ࠓճ͸4FDPOE1BHF Λ .BUFSJBM1BHF3PVUFʹ౉ͯ͠ 3PVUFΛ࡞ΓɼͦΕΛදࣔ

Slide 67

Slide 67 text

ը໘ભҠ .BUFSJBM"QQ͕͍࣋ͬͯΔ/BWJHBUPSΛ࢖ͬͯը໘ભҠ͢Δ " # FSJBM1BHF3PVUF ute( ildContext context) => B(), Navigator.pop(context); "

Slide 68

Slide 68 text

ը໘ભҠ " .BUFSJBM"QQ͕͍࣋ͬͯΔ/BWJHBUPSΛ࢖ͬͯը໘ભҠ͢Δ " # .BUFSJBM1BHF3PVUF Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => B(), ), ); Navigator.pop(conte

Slide 69

Slide 69 text

ը໘ભҠ " .BUFSJBM"QQ͕͍࣋ͬͯΔ/BWJHBUPSΛ࢖ͬͯը໘ભҠ͢Δ " # .BUFSJBM1BHF3PVUF Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => B(), ), ); Navigator.pop(conte ͍͍ͪͪ͜Εॻ͘ͷ ΊΜͲ͍͘͞ʂʂʂ

Slide 70

Slide 70 text

.BUFSJBM"QQʹ͋Β͔͡Ί3PVUFΛొ࿥͓ͯ͜͠͏ʂ return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.pink, ), initialRoute: '/', routes: { '/': (BuildContext context) => const FirstPage(), '/second': (BuildContext context) => const SecondPage(), }, ); ͜ΕͰݺ΂ΔΑ͏ʹͳΔʂ Navigator.pushNamed(context, "/second");

Slide 71

Slide 71 text

IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w (JU)VCͷϦϙδτϦҰཡΛऔಘ͢Δ"1*Λୟ͍ͯΈΑ͏ʂ w IUUQTEPDTHJUIVCDPNKBSFTUSFQPTSFQPT BQJ7FSTJPOMJTU SFQPTJUPSJFTGPSBVTFS w ·ͣ͸DVSMίϚϯυͰୟ͍ͯΈΑ͏ w 'MVUUFSͰIUUQ௨৴͢ΔͨΊʹIUUQύοέʔδΛ͍ΕΑ͏ʂ w IUUQTQVCEFWQBDLBHFTIUUQ 5SZωοτϫʔΫ௨৴ͯ͠ΈΑ͏ $ curl -L https://api.github.com/users/kno3a87/repos ϦϙδτϦҰཡ ͍ͩ͘͞ʙ <\ JE OPEF@JEIPHF OBNF)FMMP8PSME ʜ ωοτϫʔΫ௨৴ ΫϥΠΞϯτ "1*

Slide 72

Slide 72 text

ඇಉظॲཧʢBTZODBXBJUʣ ઀ଓதʂ ୳͠தʂ ௐ΂தʂ ฦ͠தʂ ଴ͬͯ͋͛Δ ʢBXBJUʣ

Slide 73

Slide 73 text

IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM w ·ͣ͸KTPO͔ΒEBSUͰѻ͑ΔΦϒδΣΫτʹม׵͠Α͏ w IPHFΈ͍ͨͳऔಘํ๏ͩͱจࣈྻUZQPͪ͠Ό͏͔΋ʜ w Ϟσϧʹม׵ͪ͠Ό͓͏ʂ w ࢖༻ύοέʔδ w IUUQTQVCEFWQBDLBHFTKTPO@TFSJBMJ[BCMF w IUUQTQVCEFWQBDLBHFTCVJME@SVOOFS 5SZKTPOΛύʔε͠Α͏ $ flutter pub run build_runner build \ lOBNFzlLVOPz lBHFzlz ^ VTFSOBNF͸LVOP VTFSBHF͸ʂ

Slide 74

Slide 74 text

෼ؒٳܜ ͔࣍ΒνʔϜνϟϨϯδʹͳΓ·͢ʂ

Slide 75

Slide 75 text

νʔϜͰνϟϨϯδʂ $IBU(15ͱͷνϟοτΞϓϦΛ ࡞ͬͯΈΑ͏ʂ

Slide 76

Slide 76 text

$IBU(15ͱ͸ʁ w 0QFO"*͕೥݄ʹެ։ͨ͠ਓ޻஌ೳνϟοτϘοτ w ΢ΣϒΞϓϦ͚ͩͰͳ͘"1*΋༻ҙ͞ΕͯΔ w IUUQTQMBUGPSNPQFOBJDPNEPDTBQJSFGFSFODFNBLJOHSFRVFTUT w "1*Λ࢖͏্Ͱͷ஫ҙࣄ߲ w ػີ৘ใ΍ୈࡾऀͷ஌తࡒ࢈ݖΛ৵֐͢ΔΑ͏ͳΠϯϓοτ͸͠ͳ͍Ͱʂʂʂʂ w ΋ͪΖΜ㒷ᨱதই΋/( w Ξ΢τϓοτ͸ݸਓͰར༻͢ΔൣғʹͱͲΊ͍ͯͩ͘͞

Slide 77

Slide 77 text

νʔϜͰνϟϨϯδʂ w جຊ࣮૷͸֤ʑ΍͍ͬͯͩ͘͞ʂʂ w νʔϜʹͨ͠ҙਤ͸ฉ͖΍͘͢ɾڭ͑΍͘͢͢ΔͨΊͳͷͰϫΠϫΠ΍͍ͬͯͩ͘͞ʂ w ࠷ॳͷ໰୊͔Βղ͍ͯ͘ͱॱ൪ʹνϟοτΞϓϦ͕ग़དྷ্͕ͬͯ͘૝ఆͰ͢ʂ w ࠷ޙ·ͰḷΓண͚ͳ͍ͷΛ૝ఆͨ͠໰୊ྔͳͷͰযΒͣʂ w ٳܜ΋ࣗ༝ʹͱͬͯͶʂόΠϩϯͰด·ΔͷͰؾΛ͚ͭͯʂʂ w ఆظతʹνϡʔλʔ͕ݟͯճΓ·͢ʂ w Կ͔࣭໰ɾ૬ஊ͋ͬͨΒଈ࠲ʹνϡʔλʔݺΜͰ΋Βͬͯେৎ෉Ͱ͢ʂ

Slide 78

Slide 78 text

5FBN$IBMMFOHF౤ߘϖʔδͷ࡞੒ w ౤ߘ͢ΔϖʔδΛ࡞Ζ͏ʂ w ดͨ͡Βॻ͍ͨจࣈ͕දࣔ͞ΕΔΑ͏ʹͯ͠ΈΑ͏ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 79

Slide 79 text

5FBN$IBMMFOHF$IBU(15ͱ઀ଓ w $IBU(15"1*ͷτʔΫϯ͸%SPQCPYʹ͋Γ·͢ʂ w (JUʹQVTI͠ͳ͍ͰͶʂʂʂ w FOWϑΝΠϧΛ࡞੒ͯ͠HJUJHOPSFʹॻ͍͓ͯ͘ͱ҆৺͔΋ w LP w ͖ͬ͞ͷ౤ߘϖʔδͰॻ͍ͨ಺༰Λ"1*ʹ౤͛ͯΈΑ͏ w ݁Ռ΋දࣔͯ͠ΈΑ͏ʂ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM $ flutter run —-dart-define=MY_TOKEN=<͜͜ʹτʔΫϯ>

Slide 80

Slide 80 text

5FBN$IBMMFOHFKTPOΛϞσϧʹม׵ w ͖ͬ͞ͷUSZΛࢀߟʹ΍ͬͯΈΑ͏ʂ w ڍಈࣗମ͸͖ͬ͞ͱมΘΒͳͯ͘0, w SFTQPOTF͕ೖΕࢠʹͳͬͯΔͷ͸Ͳ͏ͨ͠Βྑ͍͔ͳʁ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 81

Slide 81 text

5FBN$IBMMFOHFϩʔσΟϯάදࣔ͠Α͏ w "1*Λୟ͍͔ͯΒ݁Ռ͕ฦͬͯ͘Δ·ͰͷؒϩʔσΟϯάΛදࣔ w ϩʔσΟϯά΢ΟδΣοτ͸ඪ४Ͱ༻ҙ͞ΕͯΔͷͰ୳ͯ͠ΈͯͶ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 82

Slide 82 text

5FBN$IBMMFOHFϩʔΧϧʹอଘ͠Α͏ w ࠓճ͸)JWFͱ͍͏ύοέʔδΛ࢖༻ w IUUQTQVCEFWQBDLBHFTIJWF w ୺຤ͷϑΝΠϧγεςϜʹอଘͯ͘͠LFZWBMVFετΞ w SFBE΋XSJUF΋ΊͬͪΌૣ͍ʂʂʂ w Ұ୴QSJOUσόοάͳͲͰอଘ֬ೝͰ͖Ε͹0,Ͱ͢ʂ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 83

Slide 83 text

5FBN$IBMMFOHFจ຺Λཧղͤ͞Α͏ w $IBU(15͸จ຺΋ཧղͯ͠ฦ౴ͯ͘͠Ε·͢ʂ w ࢦࣔޠΛ࢖͏ͱจ຺ཧղͯ͠Δ͔֬ೝͰ͖·͢ w ͠ΓͱΓͱ͔Ͱ΋Αͦ͞͏ʂ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 84

Slide 84 text

5FBN$IBMMFOHFϦετදࣔ͠Α͏ w อଘͨ͠ϝοηʔδ಺༰ΛϦετදࣔʹͯ͠νϟοτͬΆ͘͠Α͏ʂ w σβΠϯ΋ࣗ෼޷Έʹ༡ΜͰΈͯʂ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 85

Slide 85 text

5FBN$IBMMFOHFΤϥʔΛදࣔ w λΠϜΞ΢τΛઃ͚ͯΈΑ͏ w ඵܦͬͯ΋Ϩεϙϯε͕ͳ͚Ε͹ΤϥʔΛฦ͢Α͏ʹͳͲ w Կ͔͠ΒͷΤϥʔΛड͚औͬͨΒμΠΞϩάͷදࣔΛ͠Α͏ʂ w μΠΞϩά͡Όͳͯ͘εφοΫόʔͰ΋0, ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 86

Slide 86 text

5FBN$IBMMFOHFϝοηʔδΛશ࡟আ w ࠓ·Ͱอଘͨ͠ϝοηʔδΛશ࡟আ͢ΔϘλϯΛ͚ͭΑ͏ʂ w σόοά͠΍͘͢ͳΓ·͢ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 87

Slide 87 text

5FBN$IBMMFOHF)JWFͰ΋ϞσϧΛ࢖͏ w KTPOͷ࣌Έ͍ͨʹจࣈྻࢦఆ͢ΔՕॴ͕ग़͖ͯͯେมʂ w ϞσϧΛ࢖͑ΔΑ͏ʹ͠Α͏ʂ w ࢖༻ύοέʔδ w IUUQTQVCEFWQBDLBHFTIJWF@HFOFSBUPS w IUUQTEPDTIJWFECEFWDVTUPNPCKFDUTUZQF@BEBQUFST ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 88

Slide 88 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ w #MPDύλʔϯͱ͸ঢ়ଶ؅ཧʹؔ͢ΔΞʔΩςΫνϟύλʔϯͷҰͭ w ೥ͷ(PPHMF*0Ͱ঺հ͞Εͨ w ϏδωεϩδοΫͱ6*Λ෼཭ͯ͠։ൃ͠΍͘͢͠Α͏ʂ w IUUQTCMPDMJCSBSZEFW w 'MVUUFSެࣜαϯϓϧ࣮૷΋͋Δʂ w IUUQTHJUIVCDPN fl VUUFSOFXT@UPPMLJUUSFF DEDFEDGFCCFBBB w 'MVUUFSͷϕετϓϥΫςΟεΛ౿ऻ w ࢖༻ύοέʔδ w IUUQTQVCEFWQBDLBHFT fl VUUFS@CMPD

Slide 89

Slide 89 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ TUBUF #MPDΫϥε͸ ৗʹTUBUFΛ࣋ͬͯΔ

Slide 90

Slide 90 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ TUBUF #MPDΫϥε͸ ৗʹTUBUFΛ࣋ͬͯΔ ࣋ͬͯΔ࠷৽ͷTUBUFΛݟͯ 6*Λߏங͢Δ

Slide 91

Slide 91 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ ઒ ʢTUSFBNʣ TUBUF

Slide 92

Slide 92 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ ઒ ʢTUSFBNʣ TUBUF TUBUFΛྲྀ͢ ʢFWFOUʣ

Slide 93

Slide 93 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ ઒ ʢTUSFBNʣ TUBUF TUBUFΛྲྀ͢ ʢFWFOUʣ

Slide 94

Slide 94 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ ઒ ʢTUSFBNʣ TUBUF TUBUFΛྲྀ͢ ʢFWFOUʣ ྲྀΕͯ͘ΔͷΛ ଴ͪߏ͑ͯΔ ʢMJTUFOʣ

Slide 95

Slide 95 text

5FBN$IBMMFOHF#MPDύλʔϯʹॻ͖௚ͯ͠ΈΑ͏ ౴͑ IUUQTHJUIVCDPNNJYJHSPVQ#FHJOOFS5SBJOJOH'MVUUFSQVMM

Slide 96

Slide 96 text

Ϋϩʔδϯά

Slide 97

Slide 97 text

Ϋϩʔδϯά 'MVUUFSָ͠Ί͔ͨͳʁ

Slide 98

Slide 98 text

ҎԼิ଍ࢿྉ

Slide 99

Slide 99 text

ม਺ ʲ࠶୅ೖͰ͖Δʳ WBS ʲ࠶୅ೖͰ͖ͳ͍ʳ fi OBMʢ࣮ߦ࣌ఆ਺ʣ DPOTUʢίϯύΠϧ࣌ఆ਺ʣ ίϯύΠϧ࣌ʹఆ਺ʹ͢Δํ͕ύϑΥʔϚϯε͕ྑ͍ͷͰDPOTUΛ࢖͓͏ʂ

Slide 100

Slide 100 text

΢ΟδΣοτͷ੾Γग़͠ํ class SampleState extends State { final text1 = '΄͛ΓΜ'; final text2 = '͏ͳΓΜ'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( children: [ Text(text1), Text(text2), ], ), ), ); } } ଞͷ΢ΟδΣοτͰ΋ ࢖͍·Θ͍ͨ͠ͷͰ ੾Γग़͍ͨ͠ʂ

Slide 101

Slide 101 text

΢ΟδΣοτͷ੾Γग़͠ํIFMQFSNFUIPE class SampleState extends State { final text1 = '΄͛ΓΜ'; final text2 = '͏ͳΓΜ'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( children: [ Text(text1), Text(text2), ], ), ), ); } } class SampleState extends State { final text1 = '΄͛ΓΜ'; final text2 = '͏ͳΓΜ'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: showText(), ); } Widget showText() { return Center( child: Column( children: [ Text(text1), Text(text2), ], ), ); } } ؆୯ʹ੾Γग़ͤΔ

Slide 102

Slide 102 text

΢ΟδΣοτͷ੾Γग़͠ํΫϥε8JEHFU class SampleState extends State { final text1 = '΄͛ΓΜ'; final text2 = '͏ͳΓΜ'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( children: [ Text(text1), Text(text2), ], ), ), ); } } class SampleState extends State { final text1 = '΄͛ΓΜ'; final text2 = '͏ͳΓΜ'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: SampleText( text1: text1, text2: text2, ), ); } } class SampleText extends StatelessWidget { final String text1; final String text2; const SampleText({ super.key, required this.text1, required this.text2, }); @override Widget build(BuildContext context) { return Center( child: Column( children: [ Text(text1), Text(text2), ], ), ); } } Ϋϥεͱͯ͠੾Γग़͢ͱ ͪΐͬͱΊΜͲ͍͚͘͞Ͳ ςετ͠΍͍͢ˍ ແବͳ࠶ඳըΛ཈͑ΒΕΔʂ

Slide 103

Slide 103 text

#VJME$POUFYUͬͯͳΜͩʁ 8JEHFU͸ӈਤͷΑ͏ʹπϦʔঢ়ʹͳ͍ͬͯΔ #VJME$POUFYU͸݂ےͷ͜ͱͰ૆ઌͷ৘ใʹΞΫηε͢Δ͜ͱ͕Ͱ͖Δ ˞௚ܘͷ૆ઌ͔͠ḷΕͳ͍ʂ ˞ͭͷ8JEHFUΠϯελϯεʹରͯ͠ 
 ͭͷ#VJME$POUFYU͕ϖΞͷؔ܎ʹͳ͍ͬͯΔʂ .BUFSJBM"QQ 5IFNF CMVF 4DB ff PME 5IFNF QJOL 8JEHFU$ 5IFNF PSBOHF 8JEHFU" $PMVNO 3PX 8JEHFU#

Slide 104

Slide 104 text

#VJME$POUFYUͬͯͳΜͩʁ 8JEHFU͸ӈਤͷΑ͏ʹπϦʔঢ়ʹͳ͍ͬͯΔ #VJME$POUFYU͸݂ےͷ͜ͱͰ૆ઌͷ৘ใʹΞΫηε͢Δ͜ͱ͕Ͱ͖Δ ˞௚ܘͷ૆ઌ͔͠ḷΕͳ͍ʂ ˞ͭͷ8JEHFUΠϯελϯεʹରͯ͠ 
 ͭͷ#VJME$POUFYU͕ϖΞͷؔ܎ʹͳ͍ͬͯΔʂ .BUFSJBM"QQ 5IFNF CMVF 4DB ff PME 5IFNF QJOL 8JEHFU$ 5IFNF PSBOHF 8JEHFU" $PMVNO 3PX 8JEHFU# 8JEHFU#ͷ݂ےΛḷͬͨΒ ͜͜ͷ5IFNF͕ݟ͔ͭͬͨʂ ͸ࣗ෼ͷ݂ےΛḷͬͯ ૆ઌʹ͋Δ5IFNFΛݟ͚͖͍ͭͯͯΔ Theme.of(context)