Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Flutterでアプリを作る?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
こばやしただあき
August 28, 2019
Programming
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutterでアプリを作る?
こばやしただあき
August 28, 2019
More Decks by こばやしただあき
See All by こばやしただあき
Firebaseを使って私が作った3つのアプリ
kobabiz
0
63
ビジオス。iOSとAndroidアプリを作って思ったことなど
kobabiz
0
240
ビジオス。ノンプログラマーが、iOSとAndroidアプリを作って思ったこと
kobabiz
0
220
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
450
AIエージェントの隔離技術の徹底比較
kawayu
0
460
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
190
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
450
Oxcを導入して開発体験が向上した話
yug1224
4
290
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
AIとRubyの静的型付け
ukin0k0
0
540
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
610
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.4k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
550
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Done Done
chrislema
186
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
My Coaching Mixtape
mlcsv
0
140
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
The SEO identity crisis: Don't let AI make you average
varn
0
480
Transcript
'MVUUFSͰΞϓϦΛ ࡞Δʁ ͖ͨͩ͋͜͠
ࣗݾհ ͖ͨͩ͋͜͠!LPCBCJ[ ΣϒίϯαϧɺίʔνɻʢϓϩάϥϚʔͰͳ͍ʣ 4XJGUྺɺࠓ͔Β "OESPJEɺ݄͙Β͍͔Β 5XJUUFSɿ!LPCBCJ[ 'BDFCPPLɿLPCB ʢ͖ͨͩ͋͜͠ʣ ϑΥϩʔͳͲɺ͓ؾܰʹɻ
ࠓͷ༰ ɾ࠷ۙ࡞ͬͨΞϓϦͷհ ɾ'MVUUFSΛࢼͯ͠Έͨ ɾ'MVUUFSͷײͳͲ
࠷ۙ࡞ͬͨΞϓϦ w (PBMMJTUʢԁ݄ʣʢ+BWBTDSJQUʴ'JSFCBTFʣ w -JOL5PVDIϒϥβʔʢԁʣʢ4XJGUʣ w ϏδΦεɾϏδωεॻͷΦεεϝ·ͱΊʢແྉʣ J04ʢ4XJGUʣɺ"OESPJEʢ+BWBɺҰ෦,PUMJOʣ
-JOL5PVDIϒϥβʔ J1IPOFɺJ1BE͚ͷϒϥβʔʢԁʣ ͍͍ͣ͢ͳͷͰɺͬͯΈ͍ͯͩ͘͞ɻ
None
σϞ
ϏδΦε ແྉ J1IPOFʢ4XJGUʣɺ"OESPJEΞϓϦʢ+BWB ,PUMJOʣ ϏδωεॻͳͲͷΦεεϝຊΛ·ͱΊ͍ͯΔ ϏδωεॻͳͲʹڵຯ͕͋Δํɺ Πϯετʔϧ͍ͯͩ͘͠͞ɻ
ϏδΦε'JSFCBTF 'JSFTUPSFɿຊͷσʔλ $MPVE.FTTBHJOHɿϓογϡ௨ $SBTIMZTUJDT "ENPC
ϏδΦεΛ࡞ͬͨཧ༝ ϏδωεॻͷϝϧϚΨʮࣝΛνΧϥʹʯ ߸ ˣ ΦεεϝΛ·ͱΊ͔ͨͬͨ ˣ ΞϓϦʹ͠Α͏ʢJ04ɺ"OESPJEʣ
None
σϞ ΞϓϦɺେͨ͜͠ͱ͍ͯ͠ͳ͍Ͱ͕͢ɺ ͷϏδωεॻ͔Β ΦεεϝΛݫબͯ͠·ͱΊͯ͋ΔͷͰɺ ͜ΕΒΛಡΊɺ͋ͱ͋ͱࣄͳͲͰʹཱͭͣͰ͢ɻ
ඪϦετཧ ʮ(PBMMJTUDPNʯ ίʔνΛ͍ͬͯΔͷͰɺඪཧॏཁɻ ͔͠͠ɺඪΛϦετͰཧͰ͖ΔΞϓϦ͕ͳ͍ɻ ͔ͩΒ࡞Γ·ͨ͠ɻ εϚϗͰ͑·͢ɻ̓ؒແྉͳͷͰɺࢼͯ͠Έ͍ͯͩ͘͞ɻ
σϞ
ࠓͷඪΛཱͯͨํʁ
ඪ͕͋Δ͔ͳ͍͔ Γ͍ͨ͜ͱˠඪˠୡˠධՁ ˣ ͞ΒʹΓ͍ͨ͜ͱ͕Ͱ͖Δ Γ͍ͨ͜ͱˠඪ͕ͳ͍ˠୡ͠ͳ͍ˠධՁ͞Εͳ͍ ˣ Γ͍ͨ͜ͱ͕Ͱ͖ͳ͍ ඪ͕͋Δͱ ඪ͕ͳ͍ͱ
Γ͍ͨ͜ͱΛඪʹ͢Δ ࣮ݱՄೳੑ͕ߴ·Δɻ Կ͔Λୡ͢Δͱɺ ଞͷΓ͍ͨ͜ͱΓ͘͢ͳΔɻ Γ͍ͨ͜ͱΛɺඪʹͯ͠Έ͍ͯͩ͘͞ɻ
J04ͱ"OESPJEΞϓϦΛ ࡞ͬͯ ɾແྉɺΠϯετʔϧͯ͠Β͍͍͢ ɾ༗ྉɺແྉͷͷ̍ఔ ɾJ04ɿ"OESPJEʹɹɿ̎
'MVUUFSΛࢼͯ͠Έͨ ̍ϲ݄΄Ͳɺ͍Ζ͍Ζςετ
'MVUUFS IUUQTqVUUFSEFW 'MVUUFSͷӳޠͷҙຯɺ ʮͨΊ͘ɺڳ༂ΒͤΔʯͱݴͬͨҙຯ (PPHMF͕࡞͍ͬͯΔ
'MVUUFSΛΖ͏ͱࢥͬͨཧ༝ J04ͱ"OESPJEɺਓͰͭ࡞Δͷେม ϋΠϒϦουɺΫϩεϓϥοτϑΥʔϜ Λݕ౼ 8FCɺ.BD࡞Γ͍ͨ ͳ͓͞Βɺਓ։ൃͩͱେมͳͷͰ
ΫϩεϓϥοτϑΥʔϜ։ൃɺ ͍͔ͭ͋͘Δ ɾ$PSEPWBɺJPOJDɿࠓɺ"QBDIFɻ ɹੲ"EPCF͕࡞͍ͬͯͨɻ ɾ3FBDUOBUJWFɿ'BDFCPPL͕࡞͍ͬͯΔɻ ɾ'MVUUFSɿ(PPHMF͕࡞͍ͬͯΔɻ ଞʹɺ9BNBSJOʢ.4ʣɺ/BUJWF4DSJQUͳͲ͋Δ
'MVUUFSΛ৮ͬͯΈͨཧ༝ J04ɺ"OESPJEΛ࡞ΕΔɻ 8FCʹɺ.BDΞϓϦ࡞ΕΔΒ͍͔͠Βɻ 'JSFCBTFɺ(PPHMFͳͷͰ ৽͍͔͠Β
'MVUUFSͷྑ͔ͬͨͱ͜Ζ ˕ͭͰɺJ04"OESPJE࡞ΕΔ ˕ϚςϦΞϧσβΠϯ؆୯ʹͰ͖Δ ˓ϗοτϦϩʔυʢϏϧυ͕͋·Γඞཁͳ͍ʣ ˓%BSUɺͦ͜·Ͱ͘͠ͳ͍ɹ+BWBTDSJQUͬΆ͍ ʢOVMM҆શͰͳ͍͚Ͳʣ ˓ΞϓϦͷతʹɺ͘ͳ͍
'MVUUFSΠϚΠνͳͱ͜Ζ ºใ͕গͳ͍ɻجຊతʹӳޠɻ ɹӳޠͰগͳ͍͚ΕͲɺຊޠͩͱͬͱগͳ͍ɻ ɹͨͩ͠ɺ࠷ۙɺϢʔβʔͷΓ্͕Γ͋Δɻ ˚ࡉ͔͍͜ͱΛΖ͏ͱ͢Δͱɺ ɹ4XJGU,PUMJO͕ඞཁʹͳΔɻɹ"1*Ͱͭͳ͛Δ ˚ωετ͕ਂ͘ͳΓ͍͢ɻɹϑΝΠϧΛ͚Δ ˚ίʔυͰॻ͍͍ͯ͘
ωετ͕ਂ͘ͳΔ // Flutter class CustomCard extends StatelessWidget { CustomCard({@required this.index,
@required this.onPress}); final index; final Function onPress; @override Widget build(BuildContext context) { return Card( child: Column( children: <Widget>[ Text('Card $index'), FlatButton( child: const Text('Press'), onPressed: this.onPress, ), ], ) ); } } ... // Usage CustomCard( index: index, onPress: () { print('Card $index'); }, ) ..
͜Μͳਓɺ༻్ʹྑͦ͞͏ w J04ɺ"OESPJEɺͲͪΒ͔͔ͬͨ͜͠ͱ͕ͳ͍ਓ w ϓϩτλΠϓ࡞ w ৽͍͠ͷ͕͖ͳਓ ϓϩάϥϚʔ͡Όͳ͍ਓʹɺݱ࣌Ͱਏ͍ɻ ใɺαϯϓϧ͕গͳ͍͔Β ޙʹɺใ૿͑ͯɺͬͱྑ͘ͳ͍ͬͯΔ͔ɻ
ݸਓతʹɺอཹ J04ɺ"OESPJEͳͲෳͷ04ͷ։ൃɺ ϋΠϒϦουɺΫϩεϓϥοτϑΥʔϜ։ൃ Έͳ͞ΜɺͲ͏͍ͯ͠·͔͢ʁ
ݸਓతʹ $PSEPWB͔3FBDUOBUJWF͔ɻ ͘͠ɺఘΊͯɺ4XJGUɺ,PUMJO͔ͳ
࣍ʹ࡞Γ͍ͨͷ w4/4ͬΆ͍ͷ wϒϩάʹؔ͢Δͷ Ұॹʹ࡞ͬͯ͘ΕΔͱ͍͏ਓ͕͍Εɺͳ͋ɻ ͱࢥ͏ͷͰɺڵຯ͕͋ΔํɺͳͲΛ͔͚ͯ ͍ͩ͘͞ɻ
͖ͨͩ͋͜͠!LPCBCJ[ IUUQTXXXCJ[QOFUDPNLPCBCJ[ 5XJUUFSɿ!LPCBCJ[ 'BDFCPPLɿLPCB ʢ͖ͨͩ͋͜͠ʣ ϑΥϩʔͳͲɺ͓ؾܰʹɻ
ϫʔΫγϣοϓΛ։࠵ ʢʣʙ ʮ͓ۚʯͱʮΞτϓοτʯͷϫʔΫγϣοϓ '1ͷํͱɺΘͨ͠ͱɻ Ոܭͱใൃ৴Λ ݟ͍ͨ͠ํɺͥͻʂ