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
プロトタイプ開発とFlutter
Search
Ryosuke Horie
July 19, 2018
Programming
15k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロトタイプ開発とFlutter
Ryosuke Horie
July 19, 2018
More Decks by Ryosuke Horie
See All by Ryosuke Horie
Androidifyから学ぶFirebase AI Logic SDKの使い方
horie1024
0
100
GitHub Copilot Use Cases at ZOZO
horie1024
1
3.7k
Miro × ZOZO ZOZOのMiro活用事例紹介
horie1024
0
3.2k
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
36
31k
ZOZOTOWNにおける開発生産性向上に関する取り組み / Initiatives to Improve Development Productivity at ZOZOTOWN
horie1024
8
6.8k
How does the Relay connect Android app development and Design?
horie1024
2
2.3k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
2.1k
スキルマップを作った話 / Create a skills map
horie1024
3
4.9k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.8k
Other Decks in Programming
See All in Programming
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.2k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
560
contenteditable と日本語入力に向き合う
colorful12
0
200
JIS keyboard support in Omarchy
lef237
0
110
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.6k
SREの越境 / SRE Collaboration
y0hgi
2
310
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
Jetpack Compose Mechanisms
skydoves
3
820
残高管理から台帳サービスへの進化
artoy
1
200
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
210
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
KATA
mclloyd
PRO
35
16k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Tell your own story through comics
letsgokoyo
1
1.1k
A Tale of Four Properties
chriscoyier
163
24k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
© Start Today Technologies Inc. ϓϩτλΠϓ։ൃͱ'MVUUFS 'MVUUFS.FFUVQ5PLZP ελʔτΡσΟςΫϊϩδʔζ৽ࣄۀ෦ງߐ྄հ
© Start Today Technologies Inc. ࣗݾհ w ງߐ྄հ w ελʔττΡσΠςΫϊϩδʔζ
w ৽ࣄۀ෦ϑϩϯτΤϯυνʔϜ w "OESPJEΤϯδχΞ w !)PSJF
© Start Today Technologies Inc. ࣗݾհ એ w 1&",4͞Μ͔ΒຊΛग़͠·͢ʂ w
"OESPJEςετશॻ w $*$%ͷষΛࣥච͍ͯ͠·͢
© Start Today Technologies Inc. w Ҏ্ͷγϣοϓɺ Ҏ্ͷϒϥϯυͷऔ Γѻ͍ʢ݄࣌ʣ wৗ࣌ສҎ্ͷΞΠςϜͱຖฏۉ
Ҏ্ͷ৽ணΛܝࡌ wଈૹαʔϏεΪϑτϥοϐϯάαʔϏεπ έ͍͓·͔ͤఆظศ ຊ࠷େڃͷϑΝογϣϯγϣοϐϯάαΠτ
© Start Today Technologies Inc. w࠾ੇ༻ϘσΟʔεʔπʮ;0;046*5ʯʹΑͬͯܭଌ ͨ͠ମܕσʔλ͔ΒɺΦʔμʔϝΠυํࣜͰ͠ ൢച͢ΔϓϥΠϕʔτϒϥϯυ wʮ;0;046*5ʯͷΦʔμʔສ݅ಥഁʢ ݄࣌ʣ
w݄ॳ०͔ΒੈքΧࠃʹͯൢചΛ։࢝༧ఆ ϓϥΠϕʔτϒϥϯυʮ;0;0ʯ
© Start Today Technologies Inc. w ສμϯϩʔυಥഁɺίʔσΟωʔτߘ૯ ສ݅Ҏ্ʢ݄࣌ʣ wશੈքʢ"QQ4UPSF(PPHMFQMBZ͕ར༻Մೳͳશ ͯͷࠃʣͰμϯϩʔυ͕Մೳ
wେͷண͜ͳ͕͠ࢧ࣋ΛूΊɺສਓҎ্ͷϑΥ ϩϫʔΛ࣋ͭ8&"3*45"Ϣʔβʔੜ ϑΝογϣϯίʔσΟωʔτΞϓϦ
© Start Today Technologies Inc. wສμϯϩʔυಥഁɺίʔσΟωʔτߘ૯ ສ݅Ҏ্ wػցֶशΛ༻͍ͨϨίϝϯυ৽ػೳʮGPS:PVʯ w"QQMF͕ࣾબͿϕετΞϓϦʹબग़ɺ(PPHMF͕ࣾબ ͿϕετΞϓϦʹ࿈ଓͰબग़
ϑΝογϣϯΞϓϦ
© Start Today Technologies Inc. ͋Δ lͪΐͬͱ76*ͰԿ͕Ͱ͖Δ͔ݕূͯ͠Έͯz
© Start Today Technologies Inc. ϓϩτλΠϓ w εϚʔτεϐʔΧʔΛ༻ͨ͠αʔϏεͷϓϩτλΠϐϯά w ՝બͼͷΈΛղܾͰ͖ͳ͍͔ʁ
໌ͳʹண͍͔ͯͬ͜ͳʜʁ ͱͬͯΉ վળ͍ͨ͠
© Start Today Technologies Inc. ʲௐࠪʳબͼʹΜͩΒͲΜͳ͜ͱΛ͢Δͷ͔ wͱΓ͋͑ͣΛணͯΈͯɺೲಘ͢Δ·Ͱ͗ண͢Δ w࢞ͳͲʹࣅ߹͍ͬͯΔ͔Ͳ͏͔Λฉ͘ wʮΧʔΩτοϓεʯͳͲ(PPHMFɾ8&"3ͳͲͰݕࡧ ˠεϚʔτεϐʔΧʔʹஔ͖͑ΒΕͳ͍͔ʁ
© Start Today Technologies Inc. ϓϩτλΠϓͷ༷ w εϚʔτεϐʔΧʔͰʮ৭ʯʮࡐ࣭ʯʮʯΛೖྗ w ண͜ͳ͠߹ΘͤΔΞΠςϜΛฦ
w ೖྗΛΫΤϦͱͯ͠8&"3ͷݕࡧ݁ՌΛΞϓϦͰදࣔ͢Δ w J04"OESPJEͰ࣮͠ɺϓογϡ௨Λड͚औΔ w ࢦఆ͞ΕͨΫΤϦͰ8&"3ͷݕࡧ݁ՌϖʔδΛ8FC7JFXͰදࣔ
© Start Today Technologies Inc. ϓϩτλΠϓͷ༷ w εϚʔτεϐʔΧʔͰʮ৭ʯʮࡐ࣭ʯʮʯΛೖྗ w ண͜ͳ͠߹ΘͤΔΞΠςϜΛฦ
w ೖྗΛΫΤϦͱͯ͠8&"3ͷݕࡧ݁ՌΛΞϓϦͰදࣔ͢Δ w J04"OESPJEͰ࣮͠ɺϓογϡ௨Λड͚औΔ w ࢦఆ͞ΕͨΫΤϦͰ8&"3ͷݕࡧ݁ՌϖʔδΛ8FC7JFXͰදࣔ
© Start Today Technologies Inc. 'MVUUFS w ϓϩτλΠϓͷΞϓϦଆΛ'MVUUFSͰ࣮
© Start Today Technologies Inc. 'MVUUFSͰ࣮ͨ͠ཧ༝ w ΫϩεϓϥοτϑΥʔϜ w ਓͰJ04"OESPJE྆ํΛ࣮͢Δඞཁ͕͋ͬͨ
w ϓογϡ௨Λड͚औΓ8FC7JFXΛදࣔ͢Δ୯७ͳΞϓϦ w ࢼ͠ʹ࣮ͯ͠ΈΔͷʹௐΑ͍ w "OESPJE4UVEJPͰ։ൃͰ͖Δ w "OESPJEΤϯδχΞͱͯ͠ັྗత
σϞ
© Start Today Technologies Inc. γεςϜߏ w όοΫΤϯυ'JSFCBTFͰ࣮ (PPHMF)PNF ϓογϡ௨
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w ϩάΠϯॲཧະ࣮ w 66*%ͰΛࣝผɺϩʔΧϧʹอଘ
w ຊདྷͳΒ'JSFCBTF"VUIFOUJDBUJPOΛ͏ͱྑͦ͞͏ w σόΠετʔΫϯΛ'JSFCBTF$MPVE'JSFTUPSFʹอଘ w '$.Ͱϓογϡ௨Λड͚औΓ w 8FC7JFXͰදࣔ
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w 66*%ͷੜ w IUUQTQVCEBSUMBOHPSHQBDLBHFTVVJEΛ༻
w 3'$ͷ7FSTJPO ʹ४ڌͨ͠66*%Λੜ import 'package:uuid/uuid.dart'; var uuid = Uuid().v4();
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w 66*%ͷϩʔΧϧͷอଘ w IUUQTQVCEBSUMBOHPSHQBDLBHFTTIBSFE@QSFGFSFODFTΛ༻
_saveUUID(String uuid) async { var prefs = await SharedPreferences.getInstance(); await prefs.setString('uuid', uuid); } Future<String> _loadUUID() async { var prefs = await SharedPreferences.getInstance(); return await prefs.getString('uuid'); }
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w $MPVE'JSFTUPSFͷอଘ w IUUQTQVCEBSUMBOHPSHQBDLBHFTDMPVE@pSFTUPSFΛ༻
import 'package:uuid/uuid.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; var uuid = Uuid().v4(); Firestore.instance .collection('tokens') .document(uuid) .setData({'token': DEVICE_TOKEN});
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w '$.Ͱϓογϡ௨Λड͚औΓ w IUUQTQVCEBSUMBOHPSHQBDLBHFTpSFCBTF@NFTTBHJOHΛ༻
import 'package:firebase_messaging/firebase_messaging.dart'; final _firebaseMessaging = new FirebaseMessaging(); _firebaseMessaging.configure(onMessage: (Map<String, dynamic> message) { print("onMessage: $message"); }, onLaunch: (Map<String, dynamic> message) { print("onLaunch: $message"); }, onResume: (Map<String, dynamic> message) { print("onResume: $message"); });
© Start Today Technologies Inc. 'MVUUFSଆͷ࣮ w 8FC7JFXͰͷදࣔ w IUUQTQVCEBSUMBOHPSHQBDLBHFTqVUUFS@XFCWJFX@QMVHJOΛ༻
new MaterialApp(routes: { "/": (_) => new WebviewScaffold( url: "https://www.google.com", appBar: new AppBar( title: new Text("Widget webview"), ), ) }, );
© Start Today Technologies Inc. ·ͱΊ w 'MVUUFSΛϓϩτλΠϓ։ൃͰͬͯΈͨ w ϓϩτλΠϓΛ͘࡞Δͷʹྑ͔ͬͨ
w ΫϩεϓϥοτϑΥʔϜɺ)PU3FMPBEɺ"OESPJE4UVEJPͰͷ։ൃ w 'MVUUFS͔Β'JSFCBTFΛར༻͢Δͷඇৗʹ؆୯ w 'JSFCBTFศར
͋Γ͕ͱ͏͍͟͝·ͨ͠