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
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.5k
20201009 iOS 14 ウィジェットをつくってみた
itok
1
2.5k
20191206 Property Wrappers 入門
itok
0
1.8k
20190920 iOS 13 対応ではまった話
itok
1
2.5k
20190726 Background App Refresh Taskがやってきた
itok
0
2.4k
20190722 Firebase Remote Configでアドネットワークを管理する
itok
0
1.7k
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
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
310
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
390
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.2k
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
590
JRuby: Past, Present, and Future
headius
0
210
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
7
5.1k
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
400
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
18
19k
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
240
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.2k
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
The agentic SEO stack - context over prompts
schlessera
0
940
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Ruling the World: When Life Gets Gamed
codingconduct
0
370
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Designing for humans not robots
tammielis
254
26k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Unsuck your backbone
ammeep
672
58k
WCS-LA-2024
lcolladotor
0
840
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
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͕ߴ͍ͷॿ͔Δ ʢ͏গ͠୳ٻͯ͠ΈΔ͔ʣ