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
機材管理ツールをFirebaseで構築しようとした話 / Building equipment...
Search
Yusei Yamanaka
September 13, 2018
Technology
4.7k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
機材管理ツールをFirebaseで構築しようとした話 / Building equipment management software with Firebase
Yusei Yamanaka
September 13, 2018
More Decks by Yusei Yamanaka
See All by Yusei Yamanaka
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
1
740
生配信管理システムのバックエンド〜AWS AppSyncで迅速に構築するGraphQLサービス〜 / Backend of live streaming management system - GraphQL service to build quickly with AWS AppSync
miyukki
0
1.5k
"新しい未来のテレビ"を目指すABEMA配信システムの再設計 / Re-architecture of ABEMA live ingest system
miyukki
0
2.7k
3周年に突入するAbemaTVの挑戦と苦悩 / The challenge and anguish of AbemaTV celebrating the third anniversary
miyukki
8
5.4k
AbemaTVのアーキテクチャの変遷 / The history of AbemaTV's architecture
miyukki
3
1.6k
AbemaTVで働くエンジニアの裏側 / The engineer working at AbemaTV
miyukki
0
930
動画配信サービスとしてこの先生きのこるには / The way to continue as a video streaming service
miyukki
8
4k
MPEG-DASHによるリニア型配信 / Linear broadcasting by MPEG-DASH on AbemaTV
miyukki
6
14k
1周年を迎えたAbemaTVの動画配信の裏側 / The background of video distribution in AbemaTV during one year
miyukki
15
13k
Other Decks in Technology
See All in Technology
KanaAI
shreyas1009
0
130
企業の現実世界をグラフで写し取る
sansantech
PRO
0
210
Making AI Agents Safe and Fast- Jev, Obsidian, and the Meta-Harness
x5gtrn
PRO
0
170
手を動かして実感する、Kiro が変える開発体験
inariku
0
420
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
250
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
200
【Findyテック文化祭ワークショップ】新卒エンジニア&採用担当と作る、 なりたい姿と今やるべき一歩
dip_tech
PRO
0
150
20260915deck.gl-raster を使ってみた
rena1208
0
170
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
290
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
500
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
1.8k
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
850
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Odyssey Design
rkendrick25
PRO
2
840
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
KATA
mclloyd
PRO
35
16k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Facilitating Awesome Meetings
lara
57
7.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Transcript
ػࡐཧπʔϧΛ'JSFCBTFͰ ߏங͠Α͏ͱͨ͠ גࣜձࣾ"CFNB57 :VTFJ:"."/"," !UPSJJNJZVLLJ
ࣗݾհ
ࣗݾհ 山中勇成 @toriimiyukki 株式会社サイバーエージェント 2017年新卒 株式会社AbemaTV 開発本部 コンテンツ配信チーム 慶應義塾大学湘南藤沢キャンパス(SFC)
卒業
ػࡐཧπʔϧ
ػࡐཧͷ՝ ػࡐ͕୭ͷͷͳͷ͔͕͔Βͳ͍ ػࡐΛ͍͔͕͔ͭͬͨΒͳ͍ ୭͔ʹିͯ͠͠Βͨ͘͠ޙʹͦͷػࡐ͕Ͳ͜ʹ͋Δͷ͔͔Βͳ͍ ػࡐʹԿ͕ηοτͰೖ͍ͬͯΔͷ͔͔Βͳ͍
ͯ͢'JSFCBTFͰղܾʂ
ͳͥ'JSFCBTFʜʁ खܰʹΞϓϦέʔγϣϯΛ࡞Γ͔ͨͬͨ αʔόͷڥσʔλϕʔεͷߏஙʹ࣌ؒΛ͍ͨ͘ͳ͔ͬͨ Ͱ͖Δ͚͓ͩۚΛ͔͚ͣʹ࡞Γ͔ͨͬͨ લʹ3FBMUJNF%BUBCBTFΛͬͨ͜ͱ͕͋ͬͨɺ
$MPVE'JSFTUPSFΛͬͨ͜ͱ͕ͳ͔ͬͨͷͰͬͯΈ͔ͨͬͨ
ػࡐཧͷ՝ղܾํ๏ ػࡐ͕୭ͷͷͳͷ͔͕͔Βͳ͍ ػࡐΛ͍͔͕͔ͭͬͨΒͳ͍ ୭͔ʹିͯ͠͠Βͨ͘͠ޙʹͦͷػࡐ͕Ͳ͜ʹ͋Δͷ͔͔Βͳ͍ ػࡐʹԿ͕ηοτͰೖ͍ͬͯΔͷ͔͔Βͳ͍
ػࡐʹ23ίʔυΛ͚ͯɺಡΈऔΔͱ8FCϖʔδ͕දࣔ͞ΕΔ ͭͷػࡐʹԿͷػࡐ͕ಉࠝ͞Ε͍ͯΔ͔ΛσʔλԽ͢Δ ػࡐΛ͏࣌ʹɺ23ίʔυΛಡΈࠐΉ͜ͱͰ༻ཤྺΛཧ͢Δ 23ίʔυΛಡΈऔͬͨࡍʹݱࡏͷॴΛه͢Δ
ػࡐλά ػࡐ͝ͱʹλάΛൃߦ͢Δ 23ίʔυػࡐ͝ͱʹݻ༗ͷ63-͕ೖ͍ͬͯΔ
"OESPJEΞϓϦͱ8FCαΠτ ػࡐΛཧ͢Δਓ͕͏ͨΊͷ"OESPJEΞϓϦ 23ίʔυͷεΩϟϯ ػࡐͷՃฤू ػࡐλάͷ23ίʔυΛεΩϟϯͨ࣌͠ʹ։͘8FCαΠτ
खೖྗͰ͖ΔΑ͏ʹ͍63-Λൃߦ͢ΔʢγϣʔτΧοτʣ ػࡐͷৄࡉͷ֬ೝ ΞϓϦΛ͍࣋ͬͯͳ͍ਓͰ͑Δ ฆࣦ࣌ʹ23ίʔυ͔Β࿈བྷઌΛΔ͜ͱ͕Ͱ͖Δ
༻ྫ ػࡐΛ͏࣌ ػࡐͷ༻ཤྺΛՃ ಡΈऔͬͨॴͷه ઐ༻ΞϓϦ
༻ྫ ػࡐΛ୳͍ͨ࣌͠ ػࡐͷҰཡ ػࡐͷಡΈऔΓཤྺ
༻ྫ த͕Γ͍ͨฆࣦͨ࣌͠ ػࡐͷৄࡉͷ8FCϖʔδ
σʔλߏ
σʔλߏ ෳͷάϧʔϓͰར༻Ͱ͖ΔΑ͏ͳߏʹ͢Δ γϣʔτΧοτશάϧʔϓͰڞ௨ͱ͢Δ /groups/{group} /addresses /equipments /scans
/tags /shortcuts/{code} /users/{id} ‐Ϣʔβʔ ‐ػࡐͷอॴ ‐ػࡐ ‐ػࡐͷεΩϟϯཤྺ ‐λάϦετ ‐γϣʔτΧοτίʔυ ‐σόΠε /devices/{id} ‐άϧʔϓ
Ϣʔβʔ Ϣʔβʔͷσʔλ 'JSFCBTF"VUIFOUJDBUJPOͰαΠϯΠϯαΠϯΦϯͨ͠ޙʹ࡞ /users/{id} -uid String -belongingGroups
Array(Reference(Group)) -name String /users/{id}/devices/{id} -name String
ػࡐ Ұ൪ॏཁͳσʔλ ໊લɺը૾ͷύεɺಉࠝ͢ΔػࡐɺλάͳͲΛೖΕΔ /groups/{group}/equipments/{id} -image String -includingEquipments
Array(Reference(Equipments)) -name String -tags Array(String)
γϣʔτΧοτ 23ίʔυΛੜ͢ΔͨΊͷγϣʔτΧοτίʔυͱػࡐΛඥ͚ͮͨ σʔλ /shortcuts/{code} -group Reference(Group) -equipment Reference(Equipments)
IUUQTYYYYYT\DPEF^
"OESPJEΞϓϦ
"OESPJEΞϓϦ "OESPJE4UVEJPΛͬͯ։ൃ ػࡐҰཡ ػࡐৄࡉ εΩϟϯ
"OESPJEΞϓϦ // Lombok compileOnly 'org.projectlombok:lombok:1.16.22' annotationProcessor "org.projectlombok:lombok:1.16.22" // ZXing
implementation 'com.journeyapps:zxing-android-embedded:3.6.0' // Firestore implementation 'com.google.firebase:firebase-firestore:17.0.1' implementation 'com.google.firebase:firebase-storage:16.0.1' // FirebaseUI (for authentication) implementation 'com.firebaseui:firebase-ui-auth:4.0.0' // Other Firebase/Play services deps implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.google.firebase:firebase-auth:16.0.1' implementation 'com.google.android.gms:play-services-auth:15.0.1' // Butterknife implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' // Glide implementation 'com.github.bumptech.glide:glide:4.7.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1' // Tag implementation 'me.gujun.android.taggroup:library:1.4@aar' ༻ͨ͠ओͳϥΠϒϥϦ
8FCαΠτ
8FCαΠτ 3FBDUΛͬͯ։ൃ ϗεςΟϯά'JSFCBTF)PTUJOHΛ༻ ඞཁͳ"1*$MPVE'VODUJPOTͰ"1*Λߏங
Ϛελʔσʔλͷೖ
Ϛελʔσʔλͷೖ શͯͷػࡐΛεϚϗϒϥβͷϑΥʔϜͰೖྗ͢Δͷۤ௧ grahamearley / FirestoreGoogleAppsScript IUUQTHJUIVCDPNHSBIBNFBSMFZ'JSFTUPSF(PPHMF"QQT4DSJQU ϘλϯͭͰ'JSFTUPSFʹσʔλΛೖͯ͠ཉ͍͠
εϓϨουγʔτͰ࠷ॳͷσʔλΛೖྗͰ͖ΔΑ͏ʹ͢Δ ʴ
Ϛελʔσʔλͷೖ ("4ΛͬͯπʔϧόʔͷϘλϯΛԡ͢ͱσʔλͷߋ৽Λߦ͏Α͏ʹ
ͭ·͍ͣͨͱ͜Ζ
ͭ·͍ͣͨͱ͜Ζ 'JSFTUPSFͷ3VMF4JNVMBUPS͕3FGFSFODFΛ͏·͘ѻ͑ͳ͍ʜʁ Ϣʔβʔ͕ॴଐ͍ͯ͠ΔάϧʔϓͷΈɺಡΈॻ͖ͷݖݶΛ༩͍͑ͨ TFSWJDFDMPVEpSFTUPSF\ NBUDIEBUBCBTFT\EBUBCBTF^EPDVNFOUT\ ʜ NBUDIHSPVQT\HSPVQ^\
BMMPXSFBE VQEBUF EFMFUF JGSFRVFTUBVUIVJEOVMMEBUBCBTFT EBUBCBTF EPDVNFOUTHSPVQT HSPVQ JO HFU EBUBCBTFT EBUBCBTF EPDVNFOUTVTFST SFRVFTUBVUIVJE EBUBCFMPOHJOH(SPVQT ʜ ࣮ࡍͷϦΫΤετ͏·͘ಈ͚͘ͲγϛϡϨʔλʔ͚ͩಈ͔ͳ͍ʜʁ
ͭ·͍ͣͨͱ͜Ζ 'JSFTUPSF(PPHMF"QQT4DSJQUͰಛఆͷΩʔͷΈߋ৽͢Δग़དྷͳ͍ ΦϒδΣΫτΛճऔಘ͔ͯ͠Βɺߋ৽͢Δඞཁ͕͋Δ \ lOBNFzl໊લz ^
\ lBOPUIFS,FZzl໊લz ^ \ lBOPUIFS,FZzl໊લz ^ ݩͷσʔλ ߋ৽͢Δσʔλ อଘ͞ΕΔσʔλ
ͭ·͍ͣͨͱ͜Ζ λάʹΑΔݕࡧΛ͍ͨ͠ $MPVE'JSFTUPSFͰɺྻͷதʹରͯ͠ΫΤϦΛ࣮ߦ͢Δ͜ͱ ग़དྷͳ͍
λάʹΑΔݕࡧ $MPVE'VODUJPOTΛ༻͠ɺ'JSFTUPSFͷPO8SJUFΠϕϯτΛϑοΫ ػࡐͷσʔλ͕ߋ৽͞ΕͨλΠϛϯάʹ߹ΘͤͯλάΛߋ৽͢Δ /groups/{group}/tags/{name} -equipments Array(Reference(Equipment))
·ͱΊ
·ͱΊ 'JSFCBTFΛͬͯαʔϏεΛ࡞Δͱ͘͢࡞ΕΔ 'JSFTUPSF)PTUJOH'VODUJPOT͕Ϛδศར "OESPJEΞϓϦΛ࡞ΔͷϥΠϒϥϦ͕͋ΔͷͰศར εϓϨουγʔτܦ༝ͰσʔλΛೖΕΔͷϚδศར
'JSFTUPSF(PPHMF"QQT4DSJQUಡΊΔίʔυͷྔͳͷͰಡΉͱྑ 3FGFSFODFϊϦͰ͏ͱ௧͍ΛݟΔ