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_meetup_6.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shogo.yamada
December 06, 2018
760
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutter_meetup_6.pdf
shogo.yamada
December 06, 2018
More Decks by shogo.yamada
See All by shogo.yamada
Jetpack ComposeへのリファクタリングのTIPS: CustomViewの便利な使い方 / Refactoring TIPS to Jetpack Compose: Useful usage of CustomView
yshogo
0
1.2k
Android StudioのLiveTemplateの便利な使い方 / Android LiveTemplate Method
yshogo
0
1.7k
ZOZOの新規サービス 「FAANS」の開発 Android編/FAAN App Create on Android
yshogo
0
1.7k
PORT_Firebase___Algolia.pdf
yshogo
0
260
Flutter_meetup_tokyo__10.pdf
yshogo
0
6.1k
PORT Firebase x Flutter
yshogo
0
480
ZOZOTech meetup Frontend #10
yshogo
2
1.8k
flutter-meetup.pdf
yshogo
0
100
Potetochips #61
yshogo
1
580
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Crafting Experiences
bethany
1
380
The SEO identity crisis: Don't let AI make you average
varn
0
590
Making the Leap to Tech Lead
cromwellryan
135
10k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Discover your Explorer Soul
emna__ayadi
2
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Exploring anti-patterns in Rails
aemeredith
4
540
A designer walks into a library…
pauljervisheath
211
25k
Building the Perfect Custom Keyboard
takai
2
910
Utilizing Notion as your number one productivity tool
mfonobong
4
620
For a Future-Friendly Web
brad_frost
184
10k
Transcript
Copyright © ZOZO Technologies, Inc. All Rights Reserved. גࣜձࣾ;0;0ςΫϊϩδʔζ ։ൃ෦
ࢁాঘޗ 'MVUUFSͰνϟοτػೳΛ࡞Δ ্Ͱߟ͑ͨ͜ͱ
ϓϩϑΟʔϧ 5XJUUFS ;0;0ςΫϊϩδʔζ ։ൃ෦ ࢁాঘޗ Copyright © ZOZO Technologies, Inc.
All Rights Reserved. !ZTIPHP (JUIVC !ZTIPHP 'MVUUFSใൃ৴ϒϩάʮދࢹᚳʑͱʯ IUUQTXXXTIPHPHFFLDPN
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ˓ຊ࠷େڃͷϑΝογϣϯγϣοϐϯάαΠτΞϓϦ ˓
Ҏ্ͷγϣοϓɺ Ҏ্ͷϒϥϯυͷऔΓѻ͍ʢ ݄࣌ʣ ˓ৗ࣌ສҎ্ͷΞΠςϜͱຖฏۉ Ҏ্ͷ৽ண Λܝࡌ ˓ଈૹαʔϏεΪϑτϥοϐϯάαʔϏεπέ͍ͳͲ IUUQ[P[PKQ
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ˓ຊ࠷େڃͷϑΝογϣϯίʔσΟωʔτΞϓϦ ˓
ສμϯϩʔυಥഁɺίʔσΟωʔτߘ૯ສ݅Ҏ ্ʢͱʹ݄࣌ʣ ˓શੈքʢ"QQ4UPSF(PPHMFQMBZ͕ར༻ՄೳͳશͯͷࠃʣͰμ ϯϩʔυ͕Մೳ ˓ສਓҎ্ͷϑΥϩϫʔΛ࣋ͭϢʔβʔʢ8&"3*45"ʣੜ IUUQTXFBSKQ
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ˓͕ࣾಠࣗʹ։ൃͨ͠࠾ੇ༻ϘσΟʔεʔπ ˓શମʹࢪ͞ΕͨυοτϚʔΧʔΛεϚʔτϑΥϯΧϝϥͰࡱ
Ө͢Δ͜ͱͰɺମܕσʔλΛܭଌ ˓ܭଌͨ͠ମܕσʔλɺॠ࣌ʹ%ϞσϧԽ͞Εɺ;0;0508/Ξ ϓϦʹอଘɻ%Ϟσϧ͋ΒΏΔ֯ʹಈ͔͢͜ͱ͕Ͱ͖ɺମܕΛ νΣοΫ͢Δ͜ͱ͕Մೳ IUUQ[P[PKQ[P[PTVJU
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ˓ʮ;0;046*5ʯͰܭଌͨ͠ମܕσʔλΛͱʹɺҰਓͻͱΓͷମ ܕʹ߹ͬͨʮ͋ͳͨαΠζʯͷΞΠςϜ
˓ʮڀۃͷϑΟοτײʯΛ࣮ݱͨ͠ϕʔγοΫΞΠςϜΛఏڙ άϩʔόϧαΠτʮ;0;0DPNʯͰւ֎ల։ ˓ΞΠςϜ̩γϟπɺσχϜύϯπɺγϟπɺϏδωεεʔπɺ ωΫλΠɺϘʔμʔ̩γϟπɺକΫϧʔωοΫ̩γϟπͳͲ IUUQ[P[PKQQC
Copyright © ZOZO Technologies, Inc. All Rights Reserved. 'MVUUFSࣸਅڞ༗ΞϓϦ ʮ(SPVQ"MCVNʯ
ݱࡏ$IBUػೳΛ࣮͍ͯ͠·͢ʂ
͢͜ͱ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾ࡞ͬͨͷ
ɾͳͥνϟοτػೳʁ ɾνϟοτػೳཁ݅ ɾ'MVUUFSͰͷ࣮ํ๏ ɾࠓͬͯΔ͜ͱ
࡞ͬͨͷ Copyright © ZOZO Technologies, Inc. All Rights Reserved.
ͳͥνϟοτػೳʁ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾ'MVUUFSʹ͍ͭͯٞͰ͖ΔϓϥοτϑΥʔϜΛࣗͰ࡞Γ
͍ͨ ɾ'MVUUFSͱ'JSFCBTFͰͲ͜·Ͱӡ༻Ͱ͖Δͷ͔ࢼͯ͠Έ͍ͨ ɾ'MVUUFSͷੌ͞Λମײ͍ͨ͠
νϟοτػೳཁ݅ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾϝοηʔδϦΞϧλΠϜͰը໘ʹө͢Δ
ɾϝοηʔδ͕དྷͨΒ1VTI௨Λଧͭ ɾϢʔβʔཧΛ͢Δ ɾະಡͪΌΜͱදࣔ͢Δ ɾJ04ͱ"OESPJEʹରԠ͍ͯ͠Δ ɾFUD
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ʮνϟοτػೳʯ Δ͜ͱͨ͘͞Μ͋Δ
Copyright © ZOZO Technologies, Inc. All Rights Reserved. ͦ͜Ͱ'JSFCBTF
νϟοτػೳཁ݅ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾϝοηʔδϦΞϧλΠϜͰը໘ʹө͢Δ
ɾϝοηʔδ͕དྷͨΒ1VTI௨Λଧͭ ɾϢʔβʔཧΛ͢Δ ɾະಡͪΌΜͱදࣔ͢Δ ɾJ04ͱ"OESPJEʹରԠ͍ͯ͠Δ
νϟοτػೳཁ݅ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾϝοηʔδϦΞϧλΠϜͰը໘ʹө͢Δˠ$MPVE'JSFTUPSF
ɾϝοηʔδ͕དྷͨΒ1VTI௨Λଧͭˠ$MPVE'VODUJPOT 'JSFCBTF .FTTBHJOH ɾϢʔβʔཧΛ͢Δˠ'JSFCBTF"VUIFOUJDBUF ɾະಡͪΌΜͱදࣔ͢Δˠ࣮த͚ͩͲɺͨͿΜ$MPVE'JSFTUPSFͰ͍͚Δ ɾJ04ͱ"OESPJEʹରԠ͍ͯ͠Δˠ'MVUUFS͔ͩΒ༨༟
νϟοτػೳཁ݅ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾϝοηʔδϦΞϧλΠϜͰը໘ʹө͢Δˠ$MPVE'JSFTUPSF
ɾϝοηʔδ͕དྷͨΒ1VTI௨Λଧͭˠ$MPVE'VODUJPOT 'JSFCBTF .FTTBHJOH ɾϢʔβʔཧΛ͢Δˠ'JSFCBTF"VUIFOUJDBUF ɾະಡͪΌΜͱදࣔ͢Δˠ࣮த͚ͩͲɺͨͿΜ$MPVE'JSFTUPSFͰ͍͚Δ ɾJ04ͱ"OESPJEʹରԠ͍ͯ͠Δˠ'MVUUFS͔ͩΒ༨༟ ࠓճ͜ͷೋͭʹ͍ͭͯઆ໌
$MPVE'JSFTUPSF Copyright © ZOZO Technologies, Inc. All Rights Reserved. child:
StreamBuilder( stream: chatHelper .getMessages(widget.groupId) .asBroadcastStream(), builder: (context, snapshot) { if (snapshot == null || snapshot.data == null) return Container(); return new ListView.builder( padding: new EdgeInsets.all(8.0), reverse: true, itemBuilder: (_, int index) { // ͜͜ͰϝοηʔδΛදࣔ͢Δ }, itemCount: snapshot.data.documents.length, ); })
$MPVE'JSFTUPSF Copyright © ZOZO Technologies, Inc. All Rights Reserved. child:
StreamBuilder( stream: chatHelper .getMessages(widget.groupId) .asBroadcastStream(), builder: (context, snapshot) { if (snapshot == null || snapshot.data == null) return Container(); return new ListView.builder( padding: new EdgeInsets.all(8.0), reverse: true, itemBuilder: (_, int index) { // ͜͜ͰϝοηʔδΛදࣔ͢Δ }, itemCount: snapshot.data.documents.length, ); })
$MPVE'JSFTUPSF Copyright © ZOZO Technologies, Inc. All Rights Reserved. Stream<QuerySnapshot>
getMessages(String groupId) { return Firestore.instance .collection("group") .document(groupId) .collection("message") .orderBy("created_at", descending: true) .snapshots(); }
ϦΞϧλΠϜʹมߋΛࢹͰ͖Δ Copyright © ZOZO Technologies, Inc. All Rights Reserved.
1VTI௨ Copyright © ZOZO Technologies, Inc. All Rights Reserved. https://pub.dartlang.org/packages/firebase_messaging
1VTI௨ Copyright © ZOZO Technologies, Inc. All Rights Reserved. requestPermission()
{ _firebaseMessaging.requestNotificationPermissions( const IosNotificationSettings(sound: true, badge: true, alert: true)); } ɾJ04ͱ"OESPJEͷΖΖͷઃఆΛ͢Δ J04ূ໌ॻͱ͔ ɾJ04ͷ߹ύʔϛογϣϯΛͱΔ
1VTI௨ Copyright © ZOZO Technologies, Inc. All Rights Reserved. 1VTI௨Λड͚औͬͯ։͍ͨͱ͖ͷڍಈΛࢹ͢Δ
_initSettingNotification (BuildContext context) { _firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { print("onMessage: $message"); }, onLaunch: (Map<String, dynamic> message) async { print("onLaunch: $message"); }, onResume: (Map<String, dynamic> message) async { print("onResume: $message"); }, ); }
1VTI௨Λड͚औͬͨΒόοδΛ͚ͭΔ Copyright © ZOZO Technologies, Inc. All Rights Reserved. https://pub.dartlang.org/packages/flutter_app_badger
όοδΛ͚ͭΔ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ΞΠίϯόοδΛ͚͍ͭͨλΠϛϯάͰ࣮ߦ͢Δ
void _addBadge() { FlutterAppBadger.updateBadgeCount(1); } void _removeBadge() { FlutterAppBadger.removeBadge(); }
ࠓͬͯΔ͜ͱ Copyright © ZOZO Technologies, Inc. All Rights Reserved. ɾະಡΛϦετʹදࣔ͢Δ
ɾϦετΛϝοηʔδ৽ணॱʹ͢Δ ɾͦͷଞࡉ͔͍ෆ۩߹मਖ਼
࠙ձͰͥͻ͓͠͠·͠ΐ͏ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ Copyright © ZOZO Technologies, Inc. All Rights Reserved.