Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20210219 Flutterに入門してみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kei Ito
February 19, 2021
Programming
4.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20210219 Flutterに入門してみた
Kei Ito
February 19, 2021
More Decks by Kei Ito
See All by Kei Ito
20211015 Mac CatalystでmacOS用アプリを作る
itok
2
4.6k
20201009 iOS 14 ウィジェットをつくってみた
itok
1
2.6k
20191206 Property Wrappers 入門
itok
0
1.8k
20190920 iOS 13 対応ではまった話
itok
1
2.6k
20190726 Background App Refresh Taskがやってきた
itok
0
2.4k
20190722 Firebase Remote Configでアドネットワークを管理する
itok
0
1.8k
20190419 iOSアプリで証明書の情報を参照する
itok
0
1.6k
20190412 Android TV向けアプリを作ってみる
itok
0
1.2k
20190215 iOS/Androidでドキュメントスキャナーを作ってみた
itok
0
1.9k
Other Decks in Programming
See All in Programming
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
160
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
5.1k
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.7k
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
220
AI Augmentation Techniques with Liberty
ivargrimstad
1
390
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
290
オーケストレーション記述言語 Katari
yukikurage
0
230
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
740
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
290
Navigating Team Friction
lara
192
16k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
760
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Music & Morning Musume
bryan
48
7.5k
Transcript
'MVUUFSʹ ೖͯ͠Έͨ .PCJMF"DU0/-*/& JUPL!ͦΒ͔ͥ
JUPL!ͦΒ͔ͥ w ͍ͱ͏͚͍ʢJUPLʣ w ɹɹɹɹɹɹͷதͷਓ w ϞόΠϧΞϓϦΤϯδχΞ݉$&0 w ෭ۀͰϑϦʔϥϯεత w
IUUQTJUPLKQ IUUQTTPSBLB[FDPKQ !JUPLKQ
ॴࡏɿژࢢதژ۠ ࣾһਓࣗ
࣮ डୗ ࣗࣾ
J04"OESPJENBD048JOEPXTαʔό ҰਓͰͬͯ·͢ʢσβΠϯҎ֎ʣ
ݴޠɾϓϥοτϑΥʔϜྺ w ʙɹ0CKFDUJWF$ w ʙɹJ04 w ʙɹ"OESPJE+BWB w ʙɹ4XJGU w
ʙɹ,PUMJO w ʙɹ'MVUUFSˡΠϚίίʢೖͯ͠िؒ΄Ͳ
'MVUUFSʹ ೖͯ͠Έͨ
'MVUUFSͱ w (PPHMFϞόΠϧΞϓϦϑϨʔϜϫʔΫʢʙ w J04"OESPJE8FCͷϚϧνϓϥοτϑΥʔϜ w ݴޠ%BSU w IUUQTqVUUFSEFW
ൺֱ 'MVUUFS 3FBDU/BUJWF 9BNBSJO ݴޠ %BSU +BWF4DSJQU $ "1* ಠࣗ
ಠࣗ ಠࣗ XSBQQFS 6* ಠࣗ ωΠςΟϒ ωΠςΟϒ ։ൃڥ "OESPJE4UVEJP 74$PEF ͳΜͰ 7JTVBM4UVEJP
ߏ
ϚϧνϓϥοτϑΥʔϜ 🤔
🤔 w ϚϧνϓϥοτϑΥʔϜͬͯେৎͳͷʁ w ֶशɾಋೖίετʁ w ϝϯςφϯεʁ w τʔλϧͰ݁ہίετ͕༨ܭʹ͔͔Δͱ͔ʁ
ͦΖͦΖࢼͯ͠ΈΔʁ 🤔
ͳͥ'MVUUFSʁ w ެ։͞Εͯܦͬͨ͠ɺ҆ఆͯ͠Δ͔ w ͳΜ͔·ΘΓͰྲྀߦ͍ͬͯΔؾ͕͢Δ w ษڧձωλͱͯ͠ࢼͯ͠ΈΔͷΑͦ͞͏ w ॳ৺ऀωλͱͯ͠ษڧձͰൃදͯ͠ɺ͍Ζ͍Ζͱ ڭ͑ͯΒ͑ͨΒ͍͍ͳͱ͍͏ελΠϧͰ
ͱΓ͋͑ͣ ΞϓϦ࡞ͬͯΈ·ͨ͠
ڥ w NBD04 w 'MVUUFS w %BSU w "OESPJE4UVEJP w
9DPEF
%JBOB
%JBOB w Ґஔใʹج݄ͮ͘ྸදࣔΞϓϦ w ӳ྆ରԠ w ͱͱJ044XJGU"OESPJE,PUMJOͰ࣮ w 'MVUUFSͰϑϧεΫϥον w
WϦϦʔεࡁΈ w IUUQTNPPOC[
ೖલޙͰ ؾʹͳͬͨͳͲΛ ྻڍ͍͖ͯ͠·͢
'MVUUFSͷجຊ
'MVUUFSͷجຊ w એݴܕͷ6* w 8JEHFUͷ֊ߏ w ϨΠΞτ8JEHFUͱͯ͠Έ্͍͛ͯ͘ Widget _buildMoon(...) {
return Container( child: AspectRatio( aspectRatio: 1, child: CustomPaint( painter: MoonPainter(...), ), ), ); }
8JEHFUT
։ൃɾσόοάڥ
։ൃɾσόοάڥ w ಋೖ؆୯ w 4%,ͷల։ઃஔ w "OESPJE4UVEJPͷϓϥάΠϯಋೖˠྃ👍 w )PUSFMPBE͋Γ w
"OESPJE4UVEJP͔ΒσόοάͰ͖Δ w J04"OESPJEͲͪΒ
$POUJOVPVT *OUFHSBUJPO
$POUJOVPVT*OUFHSBUJPO w ஶ໊Ͳ͜Ζ͍͍ͩͨରԠ w 'BTUMBOF w #JUSJTF w (JU)VCBDUJPOT
ϓϥοτϑΥʔϜ ґଘ෦
ϓϥοτϑΥʔϜґଘ෦ w ֤QBDLBHFͰରԠʢIUUQTQVCEFWʣ w ެࣜɾඇެࣜ͞·͟· w ओཁͳͷ͍͍ͩͨ͋Δ w ҐஔใɺΧϝϥɺࣸਅϥΠϒϥϦͳͲ
ྫʣҐஔใऔಘ import 'package:location/location.dart'; Future<LocationData> _getLocationData() async { Location location =
Location(); bool serviceEnabled = await location.serviceEnabled(); if (!serviceEnabled) { serviceEnabled = await location.requestService(); if (!serviceEnabled) { return null; } } PermissionStatus permissionGranted = await location.hasPermission(); if (permissionGranted == PermissionStatus.denied) { permissionGranted = await location.requestPermission(); if (permissionGranted != PermissionStatus.granted) { return null; } } return await location.getLocation(); }
σβΠϯ
σβΠϯ w جຊతʹ.BUFSJBMσβΠϯ w ϓϥοτϑΥʔϜؒͰڞ௨ w J04෩ͷ$VQFSUJOPXJEHFU܈͋Δ w ྆σβΠϯΛ࣮ߦ࣌ʹΓସ͑Δ QBDLBHF͋Δ
J04෩ 4XJUDI $VQFSUJOP4XJUDI 1MBUGPSN4XJUDI qVUUFS@QMBUGPSN@XJEHFUT
λϒϨοτ ʢBEBQUJWFʣ
λϒϨοτʢBEBQUJWFʣ w ը໘αΠζΛΈͯࣗલͰௐ͢Δඞཁ͋Γ LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) {
if (constraints.maxWidth < constraints.maxHeight) { return _portraitLayout(moonBox, dataTableBox); } else { return _landscapeLayout(moonBox, dataTableBox); } } )
μʔΫϞʔυ
μʔΫϞʔυ w 5IFNF5IFNF%BUBͰରԠ Widget build(BuildContext context) { return MaterialApp( theme:
ThemeData.light(), darkTheme: ThemeData.dark(), ...); }
ϩʔΧϥΠζ
ϩʔΧϥΠζ w J04"OESPJE྆ରԠՄೳ { "moon": "݄", "newMoon": "৽݄", ... Text(AppLocalizations.of(context).moon)
{ "moon": "Moon", "@moon": {}, "newMoon": "New", "@newMoon": {}, ...
ࠂ
ࠂ w "E.PCͳͲҰ෦ͷ4%,ʹ͍ͭͯQBDLBHF͋Γ
·ͱΊ
·ͱΊ w ؾʹͳΓϙΠϯτ w ωΠςΟϒ6*ײബ͍ʢಛʹJ04ʣˡٯʹ04ͷ มߋͰಈ͔ͳ͘ͳΔ͜ͱগͳͦ͏ʁ w 04ಠࣗʢ͋Δ͍֎෦4%,ʣͷ৽͍͠"1*Λ͢ ͙ʹ͑ΔΘ͚Ͱͳ͍
·ͱΊ w ͱ͍͑ w దࡐదॴͰ͋Δ͕։ൃͷબࢶͱͯ͠ेʹՄೳ ੑ͋Γ w J04"OESPJEͷ։ൃܦݧ͕͋Δͱͳ͓Αͦ͞͏ w ެࣜυΩϡϝϯτʢIUUQTqVUUFSEFWEPDTʣ͕ॆ
࣮͍ͯ͠Δ͔Β࠷ऴతʹͦ͜ΛݟΔ͠ w qVUUFSͷHPPHMFBCJMJUZ͕ߴ͍ͷॿ͔Δ ʢ͏গ͠୳ٻͯ͠ΈΔ͔ʣ