Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AbemaTV モバイルアプリの開発体制と 開発プロセスの話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuji Hato
October 21, 2017
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AbemaTV モバイルアプリの開発体制と 開発プロセスの話
Yuji Hato
October 21, 2017
More Decks by Yuji Hato
See All by Yuji Hato
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
1
1.3k
ABEMAモバイルアプリ開発のDevOps戦略
dekatotoro
1
760
Multiplatform Engineering Roadmap for the Future
dekatotoro
1
180
Introduction to RIBs
dekatotoro
5
1.4k
継続的な開発スタイル 「AbemaTV iOSアプリを週一で リリースしている話」
dekatotoro
6
4.3k
iOS Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
dekatotoro
0
550
動画アプリをなめらかに動かす技術 - iOS -
dekatotoro
0
510
5分で学ぶ差分更新とRxDataSources
dekatotoro
0
380
Apple TV - tvOS入門 -
dekatotoro
0
210
Other Decks in Technology
See All in Technology
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
350
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
0
980
振り返りこそエンジニアの本領
negima
0
280
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
930
DINO-EdgeQuery:Edge-First Polygon Decoding for Building Footprint Extraction from Satellite Imagery
lehupa
0
140
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.2k
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
150
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.3k
Azure Cost Management の FOCUS コストデータを迷わず読むための“3つの軸”
tetsuyaooooo
0
140
書籍『生成AIの安全性入門』の入門
wataoka
0
210
Azure App Service / Container Apps の組み込み認証
kuniteru
0
190
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Bash Introduction
62gerente
615
220k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Designing for humans not robots
tammielis
254
26k
A designer walks into a library…
pauljervisheath
211
25k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
410
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
220
Transcript
"CFNB57 ϞόΠϧΞϓϦͷ։ൃମ੍ͱ ։ൃϓϩηεͷ :VKJ)BUP "CFNB57%&7&-01&3$0/'&3&/$&
Yuji Hato CyberAgent, Inc. / AbemaTV, Inc. dekatotoro @dekatotoro Contributed
services "CPVUNF
"HFOEB ͬ͘͟Γ"CFNB57J04νʔϜͬͯ Ͳ͏ͬͯ։ൃ͍ͯ͠Δͷʁ ਓ͍ΔΒ͍͚͠ͲɺΈΜͳͪΌΜͱࣄͯ͠ͷʁ
։ൃମ੍
"CFNB57։ൃہਓʙ ։ൃମ੍
։ൃମ੍ 4FSWFS 8FC J04 "OESPJE %FTJHO %JSFDUPS 2" #PBSE
։ൃମ੍ 4FSWFS 8FC J04 "OESPJE %FTJHO %JSFDUPS 2" #PBSE
։ൃମ੍ J04 "OESPJE %JSFDUPS ϏσΦ άϩʔε ຊ࣭վળ ςϨϏσόΠε ͦͷଞҊ݅" #
$
J04νʔϜ
J04νʔϜ ໊
J04νʔϜ ໊
J04νʔϜ ϏσΦ άϩʔε ຊ࣭վળ ςϨϏσόΠε ͦͷଞҊ݅" # $
"CFNB57ରԠσόΠε 1$ J1IPOFJ1BE "OESPJEλϒϨοτ "QQMF57 "OESPJE57"NB[PO'JSF57 (PPHMF$BTU
"CFNB57ରԠσόΠε 1$ J1IPOFJ1BE "OESPJEλϒϨοτ "QQMF57 "OESPJE57"NB[PO'JSF57 (PPHMF$BTU J04νʔϜ
$PEFCBTF
$PEFCBTF JPTʜɹJ04ΞϓϦ UWPTʜɹUW04ΞϓϦ BQJʜ"1*पΓͷϞδϡʔϧ QSPUPCVGTXJGUʜɹQSPUPTXJGU DNETIFMGJPTʜɹTDSJQU܊ FUD NPDL UPPM TBNQMF
SFQPTJUPSJFT
JPT $PEFCBTF UWPT BQJ
JPT $PEFCBTF UWPT BQJ
JPT $PEFCBTF
JPT $PEFCBTF
UWPT $PEFCBTF
UWPT $PEFCBTF
BQJ $PEFCBTF
BQJ $PEFCBTF
ຖͷେྔͷίʔυͷม ߋ͕͞Ε͍ͯΔ
։ൃϑϩʔ
։ൃϑϩʔ εϓϦϯτ εϓϦϯτ εϓϦϯτ िؒ εΫϥϜ։ൃ
։ൃ 2" िؒ िؒ ։ൃ ։ൃ ։ൃ 2" 2" ਃ
ਃ ਃ ਃ 2" ։ൃϑϩʔ
։ൃ 2" िؒ िؒ ։ൃ ։ൃ ։ൃ 2" 2" ਃ
ਃ ਃ ਃ 2" ։ൃϑϩʔ
։ൃͱ2"ظؒͷॏෳ͕ͭΒ͍ ։ൃϑϩʔ
վળ ։ൃϑϩʔ
2" िؒ िؒ 2" 2" ਃ ਃ ਃ ਃ 2"
։ൃ ։ൃ ։ൃ ։ൃϑϩʔ
2" िؒ िؒ 2" 2" ਃ ਃ ਃ ਃ 2"
։ൃ ։ൃ ։ൃ ͍։ൃ ։ൃϑϩʔ
2" िؒ िؒ 2" 2" ਃ ਃ ਃ ਃ 2"
։ൃ ։ൃ ։ൃ ։ൃϑϩʔ ϑϥΠϯά։ൃ Ͱ͖Δਓ͚ͩ
λεΫ
λεΫ ϓϩσϡʔαʔϓϥϯφʔ͕Ҋ݅ΛཱҊ ϓϩσϡʔαʔϓϥϯφʔ͕αʔϏεͷཧঢ়ଶΛ ఆٛ͠ɺͦΕΛ࣮ݱͤ͞ΔͨΊͷػೳΛߟ͑Δ ϓϩσϡʔαʔϓϥϯφʔͱσΟϨΫλʔɺΤϯδχ ΞͰ༰͢Γ߹Θͤɻ࣮ݱՄೳੑΛݕ౼ͳͲɻ σΟϨΫλʔΤϯδχΞ͕ࡉ͔͍༷ʹམͱ͠ࠐΈҊ ݅Խ ύλʔϯ
λεΫ ΤϯδχΞ͕ίʔυ࣭ύϑΥʔϚϯεɺܧଓతͳ ։ൃͷͨΊͷࢪࡦΛચ͍ग़ͯ͠λεΫԽ ΤϯδχΞ͕ϞοΫΛ࡞ͬͯʮͲ͏͔͢ɺ͜Εʁʯ ΤϯδχΞ͕উखʹ࣮ͯ͠ʮ͜ΕೖΕ͍͍ͯͰ͢ ͔ʁʯ ύλʔϯ̎
λεΫͷݟੵΓ
λεΫͷݟੵΓ ετʔϦʔϙΠϯτ ɹʜܰඍͳͷ ɹʜεϓϦϯτ ɹʜ̍εϓϦϯτɺ·ͨͦΕҎ্
ετʔϦʔϙΠϯτ ɹʜܰඍͳͷ ɹʜεϓϦϯτ ͓͓ͬ͟ͺ λεΫͷݟੵΓ ɹʜ̍εϓϦϯτɺ·ͨͦΕҎ্
༏ઌఆٛ
༏ઌఆٛ ༏ઌஈ֊4 " #$ % εϓϦϯτظؒʹ։ൃྃςετϦϦʔεඞ ਢɻఆৗϦϦʔεʹؒʹ߹Θͳ͚ΕϦϦʔε ΛΒͤΔஅ͢Δ εϓϦϯτظؒʹ։ൃྃςετϦϦʔεඞ ਢͰͳ͍ɻ։ൃணख͢Δͷͷɺ։ൃకΊ
ʹؒʹ߹Θͳ͚Ε࣍ճϦϦʔεʹճ͢
ձٞମ
ձٞମ εϓϦϯτܭը εϓϦϯτϨϏϡʔ J04νʔϜఆྫʢिҰʣ ֤ࣗͷҊ݅͝ͱͷϛʔςΟϯά
πʔϧ
πʔϧ 4MBDL +*3" $POqVFODF FTB (JU)VC +FOLJOT FUD DNETIFMG #JUSJTF
πʔϧ 4MBDL +*3" $POqVFODF FTB (JU)VC +FOLJOT FUD DNETIFMG #JUSJTF
πʔϧ ϦϞʔτϦϙδτϦͷ࣮ߦՄೳ ϑΝΠϧΛϩʔΧϧϑΝΠϧͷ Α͏ʹ౷߹ͯ͠ѻ͑Δ IUUQTHJUIVCDPNUPTIJDNETIFMG 4XJGU
πʔϧ DNETIFMGJPTSFQPTJUPSZ
πʔϧ DNETIFMGJPTSFQPTJUPSZ
πʔϧ DNETIFMGJPTSFQPTJUPSZ
πʔϧ DNETIFMGJPTSFQPTJUPSZ
։ൃελΠϧ
1VMM3FRVFTUT $0/53*#65*/(NEൈਮ ։ൃελΠϧ
1VMM3FRVFTUT QVMMSFRVFTUൈਮ ׆ൃͳϨϏϡʔจԽ ։ൃελΠϧ
ίʔσΟϯάن $0/53*#65*/(NEൈਮ ։ൃελΠϧ
ςετ &YFDVUFEUFTUT XJUIGBJMVSFT VOFYQFDUFE JO TFDPOET ςετۃྗॻ͘ʂ
։ൃελΠϧ
िҰͷఆྫ(JU)VCɺ 4MBDL্Ͱͷ͔ٞΒਵ ࣌։ൃϧʔϧΛߋ৽ ։ൃελΠϧ J04ఆྫγʔτ
ϒϥϯνઓུ
ϒϥϯνઓུ جຊ(JU)VC'MPX ֤ࣗτϐοΫϒϥϯνΛNBTUFSRB͔ Β࡞ͬͯ࡞ۀ ։ൃ༻ͷNBTUFSϒϥϯνͱ2"༻ͷRBϒϥϯν
ϒϥϯνઓུ RB NBTUFS RB NFSHF NFSHF
ϒϥϯνઓུ NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ
RB εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF
NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ RB
εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF ϒϥϯνઓུ εϓϦϯτ
NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ RB
εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF ϒϥϯνઓུ ։ൃظؒத NBTUFS
NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ RB
εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF ϒϥϯνઓུ 2"ظؒத RB
NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ RB
εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF ϒϥϯνઓུ 2"ظؒதͷ NBTUFS։ൃ Ͱ͖Δਓ͚ͩ
NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ RB
εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF ϒϥϯνઓུ ਃޙ RBNBTUFSʹNFSHF ద࣌NFSHFͯ͠Δ
ϒϥϯνઓུ NBTUFS։ൃ NBTUFS։ൃ UBH ਃ RB NBTUFS RB2" RB2" εϓϦϯτ
RB εϓϦϯτ εϓϦϯτ UBH ਃ NFSHF NFSHF
#FUB৴
#FUB৴ CJUSJTF (JU)VC J5VOFT $POOFDU 5FTU'MJHIU $SBTIMZUJDT 5FTUFS %FTJHOFS 0UIFST
%FWFMPQFS IPPL EFMJWFSZ QVMMSFRVFTU
#FUB৴ CJUSJTF (JU)VC J5VOFT $POOFDU 5FTU'MJHIU $SBTIMZUJDT 5FTUFS %FTJHOFS 0UIFST
%FWFMPQFS IPPL EFMJWFSZ QVMMSFRVFTU QVMMSFRVFTU
#FUB৴ CJUSJTF (JU)VC J5VOFT $POOFDU 5FTU'MJHIU $SBTIMZUJDT 5FTUFS %FTJHOFS 0UIFST
%FWFMPQFS IPPL EFMJWFSZ QVMMSFRVFTU QVTI NFSHF
#FUB৴ CJUSJTF (JU)VC J5VOFT $POOFDU 5FTU'MJHIU $SBTIMZUJDT 5FTUFS %FTJHOFS 0UIFST
%FWFMPQFS IPPL EFMJWFSZ QVMMSFRVFTU ܧଓత EFMJWFSZ ରϒϥϯνҎԼ NBTUFS RB RBYYYY
#FUB৴ CJUSJTF (JU)VC J5VOFT $POOFDU 5FTU'MJHIU $SBTIMZUJDT 5FTUFS %FTJHOFS 0UIFST
%FWFMPQFS IPPL EFMJWFSZ QVMMSFRVFTU 2"ظؒத EFMJWFSZ
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
4MBDL௨
2"ޮԽ
2"ޮԽ 2"σόοά༻ʹ༷ʑͳσ όοάϝχϡʔΛ༻ҙ
$16 ϝϞϦ༻දࣔ 2"ޮԽ
ϦϞʔτɺϩʔΧϧ௨ͷγ ϛϡϨʔτ 2"ޮԽ
6TFS%FGBVMUT ,FZDIBJO %# ը૾Ωϟογϡͷআ 2"ޮԽ
िؒʹԿճىಈͨ͠ͳͲͷ αʔϏεϢʔβ۠εςʔλ εΛมߋ 2"ޮԽ
Ξχϝʔγϣϯͷมߋ 2"ޮԽ
࠶ੜಈըͷCJUSBUF SFTPMVUJPO TFHNFOUϑΝ Πϧͷసૹ࣌ؒͳͲ"71MBZFS ͔ΒऔಘͰ͖ΔใΛશͯಈ ը্ʹPWFSMBZ 2"ޮԽ
ϩάग़ྗ֬ೝ 2"νʔϜͰʮJ04 $POTPMFʯͱ͍͏πʔϧͰ࣮ ػΛͭͳ͍Ͱ֬ೝ 2"ޮԽ
ͦͷଞ
νʔϜϥϯνษڧձʢִिʣ ΧϯϑΝϨϯεొஃ
։ൃ෩ܠ
·ͱΊ
·ͱΊ ։ൃεϐʔυͱΞϓϦͷ҆ఆੑɺ ίʔυ࣭Λอͬͨܧଓతͳ։ൃ ʹऔΓΜͰ͍·͢
5IBOLZPV
8F`SFIJSJOH IUUQTBCFNBHO[SBT