Slide 1

Slide 1 text

00 01 02 03 04 05 06 07 08 00 01 02 03 04 05 06 07 08 TECH BOOK

Slide 2

Slide 2 text

AbemaTV Tech Book AbemaTV մ蜷 2019-09-22 撶 AbemaTV 氦车 1

Slide 3

Slide 3 text

泘域 瑬 1 珕 JavaScript AST ־׼泘釶״׾ׯׂ׼סٛنؒؠذٛ٤ء 11 1.1 ♀㎇סٛنؒؠذٛ٤ء◜❛ . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 AST Explorer ך AST ؅✄䠊׌׾ . . . . . . . . . . . . . . . . . . . . 13 1.3 jscodeshift ך蔦ⳛٛنؒؠذٛ٤ء . . . . . . . . . . . . . . . . . . . . 15 1.3.1 import 倀ס alias ؅㜽׌ . . . . . . . . . . . . . . . . . . . . . 15 1.3.2 ❈؂׿יַ׾㜟俙⻏؅翝׀䳕ֻ׾ . . . . . . . . . . . . . . . . . 20 1.3.3 تؤ٭و؅脝䢩׊י㜟俙⻏؅翝׀䳕ֻ׾ . . . . . . . . . . . . . 23 1.4 ESLint סٜ٭ٜ؅✑זיؤ٭غ؅⟛㴕׌׾ . . . . . . . . . . . . . . . . 27 1.4.1 AST ؅عٚف٭ت׌׾ . . . . . . . . . . . . . . . . . . . . . . 28 1.4.2 ׌׬יס alias import ؅ؙٚ٭מ׌׾ . . . . . . . . . . . . . . 30 1.4.3 翝׀䳕ֻ⺪茣ם㖪⻉סײؙٚ٭מ׌׾ . . . . . . . . . . . . . . . 31 1.4.4 autofix ؅㵅鍮׌׾ . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.4.5 㵅갾מ❈זיײ׾ . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.5 Babel plugin ך import 倀؅ minify ׌׾ . . . . . . . . . . . . . . . . 38 1.5.1 alias import ע minify מ䔢皑ח . . . . . . . . . . . . . . . . . 38 1.5.2 Babel وٚءؕ٤؅✑׾ . . . . . . . . . . . . . . . . . . . . . . 40 1.5.3 تػشوب٘شعطتع؅剹ׂ . . . . . . . . . . . . . . . . . . 42 1.6 ֽ؂׽מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 瑬 2 珕 AbemaTV ך㰢ש RxJS 45 2.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2 ⳛ氺ֿ⫙气ך׀׾־⮿㴻׌׾ (곓儅䍲: A) . . . . . . . . . . . . . . . . . 46 2.2.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.3 ؗؔ٤غؗئؕثמ䗎׋יذه؅䫐׽גג׳ (곓儅䍲: A) . . . . . . . . 48 2

Slide 4

Slide 4 text

2.3.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.4 䌮⼴僻ׄסؓؕ؞ٔشز (곓儅䍲: A) . . . . . . . . . . . . . . . . . . . 49 2.4.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.4.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.5 ⳛ氺ס⫙气免ꪨ؅⟛㲽׌׾ (곓儅䍲: B) . . . . . . . . . . . . . . . . . . 50 2.5.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.5.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.5.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.6 沁篁ס⫙ꪛ؅⮿㴻׌׾ (곓儅䍲: B) . . . . . . . . . . . . . . . . . . . . 53 2.6.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.6.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.6.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.7 ً٭ةꈴ瓌免סٞء (곓儅䍲: B) . . . . . . . . . . . . . . . . . . . . . 55 2.7.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.7.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.8 䌮⼴ֿ㢼ױ׾⯼סؓؕ؞ٔشز (곓儅䍲: C) . . . . . . . . . . . . . . . 56 2.8.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.8.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.8.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.9 ُؗتֿⳛ־ם־זג׼ؤ٤عٞ٭ٚ٭؅걇׌ (곓儅䍲: C) . . . . . . . 59 2.9.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.9.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.9.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.10 ب٭ؠف٭ئّؾٜؕסوٛنؘشز (곓儅䍲: C) . . . . . . . . . . . . 60 2.10.1 ゼ꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.10.2 闋瞩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.10.3 闋鞃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.11 ׵זכ㳔צגַ偙׫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.11.1 learn-rxjs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.11.2 Angular - RxJS ٚؕهٚٛ . . . . . . . . . . . . . . . . . . . . 63 2.11.3 RxJS - API List . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3

Slide 5

Slide 5 text

泘域 2.12 ֽ؂׽מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 瑬 3 珕 Electron ך癨ⶡם Mac ؓوٛ؅بٖشכ⛼׾ 64 3.1 Electron כע . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.2 Electron ךؓوٛ؅✑׾ . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2.1 ꪛ溪欎㘶ס圸碎 . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2.2 Hello World ؅銨獏׈׎יײ׻ֹ . . . . . . . . . . . . . . . . . 70 3.2.3 ط؞تعؙظؔذ؅✑׾ . . . . . . . . . . . . . . . . . . . . . . 73 3.2.4 قشآ٭ة٤ء׌׾ . . . . . . . . . . . . . . . . . . . . . . . . 78 3.3 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 瑬 4 珕 HTML5 Canvas ؅✳זי何⥼ס┕מ؛٭ف٭ٝؕ׌׾بتطّ؅⛼ז יײג 82 4.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.2 طٞشوס؛٭ف٭ٝؕ . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.3 ـ٭غؘؗؓꈷ㴻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.4 خنعؘؗؓ陭阛 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.5 㵅鍮ס嵣׿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.6 ؤ٭غ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.7 篙卸 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 瑬 5 珕 AbemaTV 琂魸زٔ٤ؾٜמֽׄ׾ٝ٭ت◀䘶鉮鐄 AR ؓوٛ؅ iPhone1 ⺏ך㲔杯׌׾ 94 5.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2 盨齡زٔ٤ؾٜꪛ㹾ס篑紼 . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.3 ٝ٭ت◙䞯闋鞃氠 AR ؓوٛמחַי . . . . . . . . . . . . . . . . . . . 95 5.4 鏿俙ُ٭؜٭⻎免عٚش؞٤ء؅㵅槁׌׾ . . . . . . . . . . . . . . . . 96 5.5 ARKit ךס嗱隍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.6 Wikitude SDK for iOS ךס嗱隍 . . . . . . . . . . . . . . . . . . . . . 98 5.7 Wikitude SDK for iOS מ׻׾㵅鍮偙岺 . . . . . . . . . . . . . . . . . 99 5.7.1 Wikitude SDK סٚؕج٤ت؞٭ס⺅䕑 . . . . . . . . . . . . . 99 5.7.2 Wikitude Studio ┪ךסُ٭؜٭氺⦐ס溫ꜗ . . . . . . . . . . . 100 5.7.3 Wikitude Studio ┪ךסُ٭؜٭┪מ銨獏׈׎׾ 3D ٓظٜס溫ꜗ 101 5.7.4 ⻎免عٚش؞٤ء؅⺪茣מ׌׾ג״ס剹׀䳕ֻ . . . . . . . . . . 103 5.7.5 3D ٓظٜסؓؼْ٭ب٘٤؅摾ꮹٜ٭و⫙气׌׾ג״ס㵅鍮 . . 104 5.8 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4

Slide 6

Slide 6 text

5.9 ⹧脝魕倣 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 瑬 6 珕 AVPlayer ך iOS סⳂ槆وٕٝؕ٭؅舅⛼׌׾ 110 6.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.2 ⳛ氺؅⫙气׌׾ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.2.1 AVPlayerViewController ؅❈זיⳛ氺؅⫙气׌׾偙岺 . . . . . 111 6.2.2 AVFoundation . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.3 ⫙气ؤ٤عٞ٭ٜס UI ؅蔦✑׌׾ . . . . . . . . . . . . . . . . . . . . 114 6.3.1 AVPlayerLayer ؅❈זגⳛ氺銨獏 . . . . . . . . . . . . . . . . 115 6.3.2 ؛٭ف٭ٝؕ؅銨獏׌׾ . . . . . . . . . . . . . . . . . . . . . . 116 6.3.3 ⫙气٬⢶婝ٍذ٤؅✑׾ . . . . . . . . . . . . . . . . . . . . . . 116 6.3.4 ب٭ؠف٭כت؞شوٍذ٤؅✑׾ . . . . . . . . . . . . . . . . 117 6.4 虝չם⫙气偙䑑מ㸐䗎׌׾ . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.4.1 فشؠءٚؗ٤غ⫙气 . . . . . . . . . . . . . . . . . . . . . . . 120 6.4.2 ٛٓ٭عؤ٤عٞ٭ٜמ㸐䗎׌׾ . . . . . . . . . . . . . . . . . 122 6.4.3 AirPlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.4.4 Picture in Picture . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.5 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6.6 ׻׽幾ׂ㳔צגַ偙׫ . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.6.1 HTTP Live Streaming . . . . . . . . . . . . . . . . . . . . . . 128 6.6.2 FairPlay Streaming . . . . . . . . . . . . . . . . . . . . . . . . 128 6.7 ⹧脝倀桬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 瑬 7 珕 SwiftSyntaxBuilder = SwiftSyntax • Function Builders 129 7.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.2 SwiftSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.2.1 Swift ؤ٤قؕٚכ lib/Syntax . . . . . . . . . . . . . . . . . . 131 7.2.2 SwiftSyntax כ SourceKit . . . . . . . . . . . . . . . . . . . . 132 7.2.3 Swift ؤ٭غס䬂骭圸倀勎؅⺅䕑׌׾ . . . . . . . . . . . . . . . 133 7.2.4 With API מ׻׾䬂骭圸倀勎ס㜟剳 . . . . . . . . . . . . . . . . 134 7.2.5 Make API כ Builder API . . . . . . . . . . . . . . . . . . . . 135 7.3 Function Builders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.3.1 SwiftUI מ锶׾偆גם阋靣塌茣 . . . . . . . . . . . . . . . . . . 136 7.3.2 Function Builders כע . . . . . . . . . . . . . . . . . . . . . . 137 7.3.3 Function Builders ךך׀׾׆כ . . . . . . . . . . . . . . . . . 138 5

Slide 7

Slide 7 text

泘域 7.3.4 SwiftUI מֽׄ׾ Function Builders . . . . . . . . . . . . . . . 141 7.4 SwiftSyntaxBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.5 ֽ؂׽מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 瑬 8 珕 Groupie כقنؚ٭ُ٤ت 146 8.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.2 Groupie ס嚣锡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.2.1 Groupie ס╭םؠٚت . . . . . . . . . . . . . . . . . . . . . . . 147 8.2.2 Group כصٛ٭圸ꅎ . . . . . . . . . . . . . . . . . . . . . . . . 147 8.3 ٛتعס亣✑כقنؚ٭ُ٤ت . . . . . . . . . . . . . . . . . . . . . . 148 8.3.1 ٛتعס亣✑ꫀ俙כゼ꾴掾 . . . . . . . . . . . . . . . . . . . . . 148 8.3.2 Section#update ס♐篁ײכٜؓإٛثّ . . . . . . . . . . . . 148 8.3.3 Section#update ס阛砯ꓪ . . . . . . . . . . . . . . . . . . . . . 149 8.4 ٛتعס剳偆؅둚ꅋⵊ׌׾ . . . . . . . . . . . . . . . . . . . . . . . . . 150 8.4.1 㵅갾סٗ٭تآ٭ت . . . . . . . . . . . . . . . . . . . . . . . . 150 8.4.2 ⯜笴؅Ⲏֻי둚ꅋⵊ . . . . . . . . . . . . . . . . . . . . . . . . 151 8.5 update ס⭦槏免ꪨ嬟鼛 . . . . . . . . . . . . . . . . . . . . . . . . . . 152 8.5.1 嬟鼛偙岺 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 8.5.2 嬟鼛篙卸 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 8.6 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 瑬 9 珕 Android ؓوٛآ٭ب٘٤מֽׄ׾ Zeroconf מ׻׾ Network Ser- vice Discovery 154 9.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.2 Zeroconf מחַי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 9.3 Netowork Service Discovery API מחַי . . . . . . . . . . . . . . . . 156 9.3.1 NsdManager מחַי . . . . . . . . . . . . . . . . . . . . . . . 156 9.3.2 NsdServiceInfo מחַי . . . . . . . . . . . . . . . . . . . . 157 9.4 ئ٭لتס⪪ꪛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.5 ئ٭لتס嗱筺 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.6 ئ٭لتס⻏⯼闋尴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 9.7 Android ؓوٛآ٭ب٘٤⻎㛶סؾشع٠٭ؠꄼ⟤ . . . . . . . . . . . 163 9.8 ֽ؂׽מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 瑬 10 珕 HashiCorp Vault ⪌ꝛ 164 10.1 塌㶔䝠㖥硄槏ס鞏꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6

Slide 8

Slide 8 text

10.1.1 坎չם鞏꾴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 10.1.2 بتطّסتآ٭ٜ . . . . . . . . . . . . . . . . . . . . . . . . 165 10.1.3 ☭סتآ٭ٜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 10.1.4 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 10.2 HashiCorp Vault כע . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 10.2.1 Vault ע鞏꾴؅לֹ闋尴׌׾־ . . . . . . . . . . . . . . . . . . 166 10.3 㕈勓紬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 10.3.1 Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 10.3.2 KV Secrets Engine . . . . . . . . . . . . . . . . . . . . . . . . 170 10.3.3 Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 10.3.4 Token כ Lease . . . . . . . . . . . . . . . . . . . . . . . . . . 183 10.4 㵅鴫紬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.4.1 Audit Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.4.2 AppRole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 10.4.3 Dynamic Secrets . . . . . . . . . . . . . . . . . . . . . . . . . 192 10.4.4 Cubbyhole Response Wrapping . . . . . . . . . . . . . . . . . 195 10.5 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 瑬 11 珕 Design doc זי ם׏傴ׂס םמ؅傴ׂס לֹ傴ׂס 200 11.1 Design doc מ✇؅剹ׂ . . . . . . . . . . . . . . . . . . . . . . . . . 200 11.2 Design doc ؅剹ׂ槏氮ע . . . . . . . . . . . . . . . . . . . . . . . 202 11.3 Design doc עלֹ剹ׂ . . . . . . . . . . . . . . . . . . . . . . . . . 203 11.4 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 瑬 12 珕 A/B طتعמ㵚׌׾ظاؕ٤ס⺸׀⺬ַ亠 208 12.1 ע׋״מ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 12.2 AbemaTV מֽׄ׾ A/B طتعעל؆ם׵ס־ . . . . . . . . . . . 209 12.2.1 ❛iOS ؓوٛמיյ杅㴻ٓةٖ٭ٜס CTR 侉ㄌ؅潨溷מ UI ס锶ג潨؅ 2 قذ٭٤䨏؂׎׾㖪⻉ . . . . . . . . . . . . . . . . 209 12.2.2 鎢鳉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 12.3 A/B طتعמ׻׾䚽䛒յא׊י鞏꾴 . . . . . . . . . . . . . . . . . . . 210 12.3.1 鞏꾴Ώظاؕ٤ס♳鞃מ㸐׌׾䘼脝ס氈׈ . . . . . . . . . . . . 210 12.3.2 鞏꾴ΐؤ٤َ٭ؾ٤عֿ؂םׂם׾=ظاؕ٤ס鬘⥡ . . . . . 211 12.3.3 鞏꾴Α㸯׈ם偡瞬ֿ㙟ֻי׊ױֹ . . . . . . . . . . . . . . . . . 211 12.3.4 鞏꾴Β⿣鮐؅ֵׅ׾ذِؕ٤ءֿ㝤؂׿׾ . . . . . . . . . . . . 212 7

Slide 9

Slide 9 text

泘域 12.4 לֹ⻔׀⻉זיַׂ־ . . . . . . . . . . . . . . . . . . . . . . . . . 213 12.4.1 ظاؕ٤لة٘٤٬ظاؕ٤⸮⯵؅✑׽ױ׊׺ֹ . . . . . . . . . 213 12.4.2 ظاؕ٤ס圸ꅎⵊ . . . . . . . . . . . . . . . . . . . . . . . . . 214 12.4.3 ⿣鮐؅犵׀┪ׅ׾ 2 ꅸꪨ . . . . . . . . . . . . . . . . . . . . . . 215 12.5 ױכ״ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 瑬 13 珕 Ⳃ槆⿁韬⯆䐒ס냕䈱⴫ס㲔杯وٞجت 217 13.1 䍇韢ⳛ氺㜟䳕מꫀ؂׾┾汔ס嚣镸 . . . . . . . . . . . . . . . . . . . . 217 13.1.1 蔦䉁箩♃ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 13.1.2 AbemaTV זי✇ . . . . . . . . . . . . . . . . . . . . . . . 218 13.1.3 ⿣鮐غْؕ٤ס⮔ⰺ . . . . . . . . . . . . . . . . . . . . . . . . 219 13.1.4 ْؕ٤ِشب٘٤ . . . . . . . . . . . . . . . . . . . . . . . . . 221 13.1.5 לַֹֹ茣ⲇֿ寛״׼׿׾ס־ . . . . . . . . . . . . . . . . . . 222 13.1.6 عٚ٤تؤ٭غכע✇־ . . . . . . . . . . . . . . . . . . . . . . 222 13.1.7 AbemaTV ס㕈勓٠٭ؠنٞ٭ . . . . . . . . . . . . . . . . . . 224 13.1.8 ⪜畇ⳛ氺ס甦꿔 . . . . . . . . . . . . . . . . . . . . . . . . . . 224 13.1.9 TV 㹾ס㕈勓٠٭ؠنٞ٭ . . . . . . . . . . . . . . . . . . . . . 226 13.1.10 ⺅׽㎇׌ⳛ氺ס䈼沌 . . . . . . . . . . . . . . . . . . . . . . . . 227 13.1.11 ُتذٛ٤ءכע . . . . . . . . . . . . . . . . . . . . . . . . . 229 13.1.12 AbemaTV ע㝂嫘ُتذٛ٤ء✄⯜ . . . . . . . . . . . . . . . 229 13.1.13 CM 䯏⪜偙岺סꇙַ . . . . . . . . . . . . . . . . . . . . . . . . 230 13.1.14 ⳛ氺紬겏䩘岺ס㜟ꈴٛؼؓכؿ٤ٛؼؓס潸⩴ . . . . . . . . . 233 13.1.15 AbemaTV עؿ٤ٛؼؓ溷䩘岺מ杅ⵊ׌׾׆כ؅ꈷ؆ד . . . . . 235 13.1.16 TV 噺汔ס㕈䌙⹺ꜗْظؔؓס剳偆 . . . . . . . . . . . . . . . . 236 13.1.17 ⻄㹾סط٭و魕氙סظةذٜؓ٭؜ؕه◜䝠 . . . . . . . . . . . 237 13.2 勓韢⿣鮐⯜䕣׫סؓوٞ٭ز . . . . . . . . . . . . . . . . . . . . . . 238 13.2.1 ⿣鮐ⲑⵊَؕ٤عס阛廠כ⺪镄ⵊ . . . . . . . . . . . . . . . . . 238 13.2.2 ؛٤ظُ٤غס⿣鮐؅ٛؼؓ紬䧯מ䈼׌ . . . . . . . . . . . . . 241 13.2.3 ⳛ氺⪜畇锺㴻ס瞬㴻劄ꈌⵊ . . . . . . . . . . . . . . . . . . 247 13.2.4 ⪜畇ⳛ氺ס嗱吉ص٭ٜס✑䧯մPreHumanQC ص٭ٜ . . . . 249 13.2.5 AbemaTV ס QC 㴻聋 . . . . . . . . . . . . . . . . . . . . . . 252 13.2.6 ⳛ氺ꆻ氠ס SLO(Service Level Objective) ס锺㴻כ㺿鉿 . . . . 254 13.2.7 槏䞯溷םⳛ氺ꆻ氠ت؞٭ّס圸䞯 . . . . . . . . . . . . . . . . . 259 13.2.8 Media Asset Management بتطّס圸碎 . . . . . . . . . . . . 261 13.2.9 ؛٤وٝ蔷┪╭聋脢ֿؠٚؗغמ⺪茣䙎؅锶⮂׌ױך . . . . . . 263 8

Slide 10

Slide 10 text

13.3 ױכ״ : 蔷둚ס⿣鮐ס㵅槁מ⻔ׄי . . . . . . . . . . . . . . . . . . . . 264 蜷縖磆☭ 265 9

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

瑬 1 珕 JavaScript AST ־׼泘釶״׾ׯ ׂ׼סٛنؒؠذٛ٤ء 儨♀ס JavaScript סꪛ溪欎㘶עյBabel ؅㢼״כ׌׾عٚ٤تقؕٚ٭׷ Prettier ם לסنؚ٭ُشذ٭յESLint מ♣銨׈׿׾ٛ٤ذ٭םלյؤ٭غ؅وٞءُٚهٜמ 侉㜟׌׾ص٭ֿٜ㝂ֵׂ׽ױ׌ն׆׿׼סص٭ٜךעյؤ٭غס圸ꅎ؅䪻䳢׌׾ג״מ AST*1 ؅气䧯׊יַױ׌ն ׆ס皹ךעյ"alias import" ؅ط٭ُמـ٤ث؛٤䓺䑑ך AST מ闑׿יַ׀ױ׌ն jscodeshift ؅❈זגٛنؒؠذٛ٤ء־׼㢼ױ׽յESLint סٜ٭ٜכ׊י㵅鍮յ劄䔿ע Babel عٚ٤تنؚ٭ُ٭؅✑׾כ׆؀ױך闋鞃׊ױ׌ն׆ס皹؅ꄼ׊י AST מ闑׿׾ ׆כךյץַיע JavaScript ؅⺅׽䉌ׂꪛ溪欎㘶ס幾ַ槏闋מ縕ֿ׿ף䌗ַך׌ն 1.1 ☪㍑סٛنؒؠذٛ٤ء◄❆ ♀㎇סٛنؒؠذٛ٤ء◜❛עյES Modules ס import 倀ס㜟剳ך׌նAbemaTV ס Web نٞ٤عؙ٤غךע RxJS ؅䱰氠׊יַױ׌ն׆ס RxJS ס import ךעյ׊ף׊ ף ؤ٭غ 1.1 ס׻ֹמ Rx suffix ؅חׄי alias import ׊יַױ׊גն ӧؤ٭غ 1.1 RxJS ס꞊丗ע Rx suffix ך伺炐׊יַג import { filter as filterRx } from 'rxjs/operators'; *1Abstract Syntax Tree / 䬂骭圸倀勎 11

Slide 13

Slide 13 text

瑬 1 珕 JavaScript AST ־׼泘釶״׾ׯׂ׼סٛنؒؠذٛ٤ء ׆ס׮־מ׵յؤ٭غ 1.2 ס׻ֹמյֽא׼ׂ⺪鞅䙎؅潨溷כ׊גסךֵ؀ֹ alias import ַֿׂח׵ֵ׽ױ׊גն ӧؤ٭غ 1.2 ┉芗氳ם alias import import { store as containerStore } from './ContainerStore'; import { appConfig as config } from '../config'; ׊־׊յalias import ס劔摾׷⾀⻏锺⯵ע僻倀ⵊ׈׿יֽ׼׍յؤ٭غמ׻זיעאס ױױ import ׊יַ׾ꌃ⮔ֿ㝂չֵ׽ױ׊גնױגյؤ٭غ 1.2 ס store ס׻ֹמյؙ ؠتَ٭ع׌׾כ׀ס㜟俙⻏ֿ䜬ַ׎ַך alias import ׊יַג❛׵ֵ׽ױ׊גն׆ֹ ׊גם־ךյalias import ؅陵㵼׌׾־饗韢ֿ鱍׀յ篙卸כ׊יր㜟俙⻏סؤ٤نٛؠع ֿםַꮹ׽ alias import ע׊םַց偙ꓹֿ尴ױ׽ױ׊גն ׈יյֵםגע♀ alias import ؅蒈㝕םؤ٭غ־׼䱱׊⮂׊י翝׀䳕ֻ׾ذتؠֿ┰ ֻ׼׿ױ׊גնלס׻ֹמ闋尴׌׾ך׊׺ֹ־ն ❛ֻףյ婞锺銨槁ך闋尴׊׻ֹכ׌׾כյؤ٭غ 1.3 ס׻ֹם圸倀ס㝂坎䙎מחױטׂ ע׍ך׌ն׈׼מעյ債מ⻎⻏ס㜟俙ֿ㴻聋׈׿יַ׾כ׀ע翝׀䳕ֻך׀ױ׎؆նؤ٭ غ 1.4 ס׻ֹםآ٭تךעյ㜟俙⻏؅┞䭇ך翝䳕ך׀םַ׆כֿ؂־׽ױ׌ն ӧؤ٭غ 1.3 邾丗车מ峚׾ alias import import { filter as filterRx, map as mapRx, } from 'rxjs/operators'; ӧؤ٭غ 1.4 㯸تؤ٭وך⺱⺲ס㚺丗ֿ㲊紶׈׿יַ׾❆ import { routingPath as path } from '../constants'; const HOME_PATH = path.HOME; const Component = ({ path }) => { return Home; }; JavaScript AST ؅❈ֹכյ㴻聋׈׿יַ׾㜟俙⻏ס┞镣׷تؤ٭و䝠㖥םלֿ؂־׾ ג״յ׆׆ױךמ䮕ׅגゼ꾴؅脝䢩׊גٛنؒؠذٛ٤ء؅ؤ٭غכ׊י㵅鍮ך׀ױ׌ն ׈זאׂ JavaScript AST ؅❈זי alias import ؅ named import מٛنؒؠذٛ٤ ء׌׾ؤ٭غ؅✑׽ױ׊׺ֹն姌ס硼ך AST ؅㵅갾מ闑זיײיյלַֹזג׵סםס ־✄䠊׊ױ׊׺ֹն 12

Slide 14

Slide 14 text

瑬 2 珕 AbemaTV ך㰢ש RxJS 2.1 ע׋״מ AbemaTV ךע Web/iOS/Android ס⻄وٚشعنؚ٭ّמיظ٭ذنٞ٭؅銨槁׌ ׾ג״מ ReactiveX (Rx) *1 ֿ❈؂׿יַױ׌Web ך׵ React כ RxJS *2 ؅篁ײ⻉ ؂׎יؓوٛآ٭ب٘٤ֿ圸碎׈׿יַױ׌ RxJS ע event, timer, promise, pub/sub ؅簡┞׈׿גؕ٤ذ٭نؘ٭تך䪒ֹ׆כ ֿך׀׾긊䊬מ➬⯈םنٝ٭ّ٠٭ؠך׌ֿؘؗهنٞ٤عؙ٤غ汔갛ךע Angular ך㕈潒כ׊י❈؂׿יַ׾׵ססא׿♧㜽ס꽝㔔ךעם־ם־嶰ꄞ׊יַױ׎؆ אס┞㎋כ׊י脝ֻ׼׿׾סֿ㳔肪ؤتعס둚׈ך׌RxJS עظ٭ذ⮬ךֵ׾ت عٛ٭ّ؅气䧯٬㜟䳕׌׾ג״ס operator כ⽿ף׿׾ْخشغ聁؅俙㝂ׂ䳀❵׊יַױ ׌א׿׼מ䢍׿׾ג״מע蔦⮔ס䩘ך operator ؅篁ײ⻉؂׎יٞةشؠ؅圸碎׌׾篑 닫؅畤׳סֿ┞沁ס僃ꇓך׌ֿאסג״ס㳔肪꾴包עֵױ׽骅㶠כע阋ֻםַסֿ槁枱 ך׌ א׆ך♀㎇AbemaTV ך㵅갾מ溪气׊גبزؙٖ٭ب٘٤؅㕈מ׊י絊肪ゼ꾴؅✑ 䧯׊ױ׊גؤ٭غע⪢י TypeScript ך剹־׿יַױ׌ױג곓儅䍲ס潨㴗כ׊י祔 ⷃם偙־׼ A, B, C ؅♕ׄיַױ׌筤긖סꌬ⻉┪ゼ꾴ס潲䔿מ闋瞩ֿⷦ⯝׈׿י׊ױ ַױ׌ֿך׀׾דׄ闋瞩؅걇׊י闋ַיײױ׊׺ֹ *1http://reactivex.io/ *2https://rxjs-dev.firebaseapp.com/ 45

Slide 15

Slide 15 text

瑬 2 珕 AbemaTV ך㰢ש RxJS 2.2 Ⳃ槆ֿ⫋榟ך׀׾־⮭㲊׌׾ (ꦘ佄䈱: A) 2.2.1 ゖ갭 ⳛ氺ֿ⫙气ך׀׾־לֹ־ע㝂ׂס API ס篙卸؅篁ײ⻉؂׎י⮿偂׊םׄ׿ףַׄױ ׎؆ַױ⠥չס API ؅⺡ַג篙卸ֿ嵣׿יׂ׾♧┫סتعٛ٭ّ٬ꫀ俙ֵֿ׾כ׊ ױ׌ • regionStore.isRegionAllowed(): Promise • videoStore.metadata$: Observable<{ isFree: boolean }> • userStore.subscriptionStatus$: Observable<’free’ | ’premium’> א׿ב׿סتعٛ٭ّעⳛ氺؅⫙气׊׻ֹכ׊גכ׀מ API ֿ⺡־׿י剳偆׈׿׾׵ סכ׊ױ׌ױגⳛ氺ֿ⫙气ך׀׾סע姌ס匛⚂؅⪢י彸ג׌כ׀ך׌ • 镄舌ֿ陵⺪׈׿יַ׾㐌㔔־׼ؓؠجت׈׿יַ׾ (isRegionAllowed ס篙卸 ֿ true) • 摾倣ⳛ氺 (metadata$ ס篙卸ֿ isFree: true) ךֵ׾ֵ׾ַע劔倣ⳛ氺 (isFree: false) ־ח劔倣⚶〉 (subscriptionStatus$ ס篙卸ֿ premium) ך ֵ׾ ⳛ氺ס⫙气؅ play(): () => void מ׻זי鉿ֹכ׀匛⚂ֿ彸ג׈׿יַ׾㖪⻉ סײ⫙气׌׾ؤ٭غ؅剹ַיׂד׈ַ 2.2.2 鉮璻 combineLatest([ from(regionStore.isRegionAllowed()), videoStore.metadata$, userStore.subscriptionStatus$, ]) .pipe( filter(([isAllowed, { isFree }, subscriptionStatus]) => { if (!isAllowed) { return false; } return isFree || (!isFree && subscriptionStatus === 'premium'); }), ) .subscribe(() => { 46

Slide 16

Slide 16 text

瑬 3 珕 Electron ך癨ⶡם Mac ؓوٛ؅ بٖشכ⛼׾ 勓皹ךעյElectron ؅氠ַיյmacOS ┪ךⳛ✑׌׾ؓوٛآ٭ب٘٤؅✑׾䩘꽄מח ַי闋鞃׊ױ׌ն 册嫘յ瞉脢ע Android ؓوٛآ٭ب٘٤סꪛ溪؅╭מ׊יֽ׽ Web ס䪫銉מֵױ׽뉔 叉ײֵֿ׽ױ׎؆ך׊גն׊־׊յא؆ם瑭ך׵祔ⷃםؓوٛآ٭ب٘٤؅✑׾׆כֿך ׀ױ׊גն ⫐㵼מ岚זי䩘؅ⳛ־׎ףלםגך׵ؓوٛ؅ⳛ־׎׾כ׆؀ױךגל׽濪ׄ׾׻ֹ㕂 瞉׊ױ׊גסךյ鞅脢ס溺׈؆׵׏ץ┞䍲زٔٝ٤ة׊יײיׂד׈ַն 3.1 Electron כע Electron*1 עյظتؠعشو⻔ׄסؠٞتوٚشعنؚ٭ّؓوٛآ٭ب٘٤ֿ✑׿׾ ؛٭و٤خ٭تٚؕهٚٛך׌նElectron ע Github ֿꪛ溪׊גٚؕهٚٛךյꪛ溪䓜⮴ ע Atom כַֹط؞تعؙظؔذסג״מ✑׼׿յאס䔿؛٭و٤خ٭تⵊ׈׿♀מ蔷׽ ױ׌նElectron ؅氠ַי✑׼׿גؓوٛآ٭ب٘٤עյ⩰ꃍסꄼ׽ؠٞتوٚشعنؚ٭ ّךⳛ✑׈׎׾׆כֿך׀ױ׌ն Electron ֿ䱰氠׈׿יַ׾ؓوٛآ٭ب٘٤כ׊יעյAtom ׷ SlackյVisual Studio Code םלֵֿ׽ױ׌ն *1https://electronjs.org/ 64

Slide 17

Slide 17 text

3.2 Electron ךؓوٛ؅⛼׾ 㓴璛梪㗞כ Electron הםײמ勓皹ס㕂瞉ךע Visual Studio Code ؅氠ַױ׊גն րElectron ך✑׼ ׿גؓوٛآ٭ب٘٤ס┪ך Electron ס⪜ꪎ阾◜؅㕂瞉׊יַ׾ցכַֹסעյ ם؆ד־┮䘼饗ם宜䭥הך׌ն ⻎׋خ٭تؤ٭غ־׼յ⻄وٚشعنؚ٭ّךⳛ✑׌׾ؓوٛآ٭ب٘٤؅剹׀⮂׎׾ סע㝕׀ם⯈掾ך׌ն ♀㎇յ瞉脢ע Electron ؅氠ַי獗⫐ص٭ٜ؅ꪛ溪׊גסך׌ֿյ׆סؓوٛآ٭ب٘ ٤؅⯈氠׌׾獗〉ֿ册嫘לס OS סؿ٭ع PC ؅❈זיַ׾־כַֹ掾؅䟨餟׌׾׆כע ֵ׽ױ׎؆ך׊גնאסג״յؓوٛآ٭ب٘٤ֿ䳀❵׊גַ塌茣סꪛ溪דׄמ겏╚׌׾ ׆כֿ⮂匡גסך׌ն ؓوٛآ٭ب٘٤ס㵅鍮מע Web ס䪫銉HTML,CSS,JavaScript؅❈ַױ׌նא ׿ב׿ס霄箖ע♑脢מ饛׽ױ׌ֿյChromium*2 כַֹ؛٭و٤خ٭تهٚؗاכյ Node.js*3 כַֹ JavaScript 㵅鉿欎㘶؅篁ײ⻉؂׎յ⻄وٚشعنؚ٭ّמꈌ׊ג䓺ך قشآ٭ة٤ء׈׿ױ׌ն׆ס׻ֹמ׊יյElectron עؠٞتوٚشعنؚ٭ّؓوٛ آ٭ب٘٤؅㵅槁׊יַױ׌ն 3.2 Electron ךؓوٛ؅⛼׾ ׆׆־׼עյ⪽✄溷םꪛ溪䩘꽄؅獏׊חחյ㵅갾מ Electron ؅氠ַגؓوٛꪛ溪ס偙 岺؅闋鞃׊ױ׌ն׏ץ✑噺氠 PC ؅徙⤫׊יյ鞅ײםֿ׼䩘؅ⳛ־׊י㵅갾מؓوٛ؅ ✑זיײױ׊׺ֹ ♀㎇סئ٤وٜؓوٛآ٭ب٘٤סֽ꾴עյ祔ⷃםط؞تعؙظؔذמ׊ױ׊גն㴞䧯 ْؕ٭ة؅㎫ 3.1 מ獏׊ױ׌ն *2https://www.chromium.org/Home *3https://nodejs.org/ja/about/ 65

Slide 18

Slide 18 text

瑬 4 珕 HTML5 Canvas ؅✳זי何⥼ס┕ מ؛٭ف٭ٝؕ׌׾بتطّ؅⛼ז יײג 4.1 ע׋״מ AbemaTV ؤ٤ط٤صꏕ⟤ز٭ّס㻗╚ך׌ն ؤ٤ط٤صꏕ⟤ز٭ّךעյ╭מꏕ⟤槁㖪כם׾تذة؛־׼յٗ٭ا٭ס镄舌盚勒ױ ךס儙⦐؅ꏕ⟤׌׾硄龑؅䬎䓜׊יַױ׌նفشؠؙ٤غס焒餟♧㜽מ׵յⳛ氺ס焒餟յ 潸◦槏闋סג״ס槁㖪䪫銉ס焒餟յꏕ⟤ꫀꅙסص٭ٜ؅ꪛ溪׌׾ג״סنٞ٤عؙ٤غס 焒餟םלյ坎չם焒餟ֿ䖩锡םز٭ّך׌ն瑭עյAbemaTV ךעؙ٤ةؼؓכ׊י♐◜ ؅׊יַ׾⤒׼յ㏸傽מעյ蔦⯼ס؜ْٚ؅䬎ַך乪䔔׷تؕشزٔ٭؅䭥הꁎ؆ךꏕ⟤ םל؅׊יַױ׌ն ♀㎇עյא؆ם芻再׵鵕ױֻםֿ׼յ׀זכל׆־ך❈ֻ׾כ㯹׊ַךֵ؀ֹյطٞش وبتطّ؅蔦✑׊יײג需ך׌ն 4.2 طٞشوס؛٭ف٭ٝؕ ׈יյWeb סٚؕهꏕ⟤ךעյ؜ْٚס儙⦐♧㜽מ׵յطٞشوםלך☭ס⻏⯼؅⮂׊ ג׽յ✇־׊׼䝠㖥؅؛٭ف٭ٝؕ׌׾׆כֿ׊ף׊ףֵ׽ױ׌ն㎫ 4.1 82

Slide 19

Slide 19 text

4.2 طٞشوס؛٭ف٭ٝؕ ӣ㍲ 4.1 طٞشوס؛٭ف٭ٝؕס❆ ׆ס免յלס׻ֹם偙岺ך؛٭ف٭ٝؕ׌׾־כַֹכյ氺⦐ך؛٭ف٭ٝؕյPower- Point ׷ Keynote ך銨獏׊גطٞشو؅⪜ⲇ׊יյ؛٭ف٭ٝؕ׌׾׆כםלֿ脝ֻ׼ ׿ױ׌ն峜䟨׊גַ׆ככ׊יյ؛٭ف٭ٝؕ׌׾갾מעյ⩧כם׾筶包סꄞꇃ䝠㖥؅ל ס׻ֹמ䪒ֹ־؅脝ֻםׄ׿ףם׽ױ׎؆նPowerPoint ׷ Keynote ךطٞشو؅؛٭ ف٭ٝؕ׌׾갾מעյطٞشو♧㜽סꌃ⮔؅귱׷糽מ׊יյؠُٞ؞٭⻉䧯ס锡꽝ךط ٞشوꌃ⮔דׄ؅⮗׽䫕׀ױ׌ն ׆ס׻ֹמյ㕈勓溷מـ٭غؘؗؓتؕشزٔ٭מעյꄞꇃ䝠㖥כַֹ嚣䗻ֵֿ׽ױ׎ ؆ն✍鞻ך׌ֿյOBS ׷ Wirecast םלסخنعؘؗؓتؕشزٔ٭עյظنؚٜعךꄞ ꇃ䝠㖥؅䪒ֻ׾סך׆ַֹֹ掾ךע➬⯈ך׌նגד׊յؠُٞ؞٭מ糽虝؅❈氠׊ג㖪 ⻉յאס砈䨾׵ꄞꇃכ׊י䪒؂׿י׊ױֹג״յطٞشو蔦✄ס芻再׷倀㲻כ׊י❈ֹ׆ כֿך׀ױ׎؆նؠُٞ؞٭ךעյطٞشوמ❈氠ך׀םַ虝ֿך׀י׊ױַױ׌ն ؠُٞ؞٭♧㜽סꈷ䫘艩כ׊יյ儙⦐ס䝠㖥Fill㎫ 4.2 כꄞꇃס䝠㖥Key㎫ 4.3 ؅א׿ב׿⯁ס儙⦐כ׊יꃻ׾׆כךյ杅㴻ס虝؅❈ֻםׂ׌׾׆כםׂյطٞشو؅▗ ׎׾׆כֵֿ׽ױ׌նKey עءٝ٭تآ٭ٜךꄞꇃ䝠㖥؅銨槁׊ג׵סך׌ն❛ֻףյֵ ׾مؠجٜסٜؓنֿؒ 50% ךֵ׿ףյKey ס⮂ⲇע RGB ֿ 50% מם׽ױ׌ն 83

Slide 20

Slide 20 text

瑬 5 珕 AbemaTV 琂魸زٔ٤ؾٜמֽׄ ׾ٝ٭ت◀䘶鉮鐄 AR ؓوٛ؅ iPhone1 ⺏ך㲔杯׌׾ ӣ㍲ 5.1 AbemaTV 琂魸زٔ٤ؾٜסٝ٭ت◀䘶鉮鐄 AR ؓوٛס㲔꤀ס䷑鴜何⥼׻׽ 5.1 ע׋״מ 册嫘ע iOS ؙ٤ةؼؓכ׊י AbemaTV סؠٚؕؓ٤عؓوٛסꪛ溪؅鉿םזיַ׾ סך׌ֿյ⻎免מ獗⫐ס XR ؟ٜغכַֹ篁縨מ䨾㺲׊יַױ׌ն XR ؟ٜغכע✇־כַֹ鞃僻؅׌׾⯼מյ؟ٜغ⯜䍲מחַי鞃僻׊ױ׌ն؟ٜغ⯜ 䍲כעյ2018 䌑⯼⶯־׼ئؕف٭ؙ٭ةؘ٤ع獗⫐ס䪫銉鞪吉٬❿⡑ⱁ⮂وٞةؘؠعכ ׊יꪛ㢼׈׿յ獗〉ֿ册嫘ס噺ⳡכעꫀ➳םׂյ蕟⽱סֵ׾䪫銉ط٭ُמ岚זי埭偂׊ג 94

Slide 21

Slide 21 text

5.2 琂魸زٔ٤ؾٜꝧ㷀ס磬穅 ز٭ّ؅篁ײյ⚶獗־׼◙砯؅׵׼ַםֿ׼ꪛ溪؅ꅼ״׾׆כֿך׀׾⯜䍲ס׆כך׌ն XR ؟ٜغעאס؟ٜغ⯜䍲־׼气ױ׿גز٭ّס 1 חךյXR*1 ך◜噺מ偆׊ַ❿⡑ ؅氙ײ⮂׌ ئ٭لتמ偆׊ַ❿⡑؅┰ֻ׾ XR 塌茣䱱寛؟ٜغ؅ٓشع٭מ嵛ⳛ׊י ַױ׌նXR ؟ٜغך嵛ⳛ׊יַ׾╚ך AbemaTV •䷑鴜 AR כַֹ AbemaTV ס儙 ⦐מ AR*2 ؅鄋⻉׈׎ג銨槁؅㵅槁׌׾偙岺؅׍זכ埛筺׊יַױ׊גնאסג״յ؟ٜ غ⫐ךע Apple ס ARKit ؅氠ַגوٞعذؕوؓوٛ؅✑䧯׌׾כַֹ嵛ⳛ؅ْؕ٤ך 鉿םזיַױ׊גնאַֹזג嵛ⳛ؅籽ׄי⶯䌑׮ל篑זג 2018 䌑 12 劓⮴僆꼿յחַ מ AbemaTV •侑ꃻ AR ؅㵅槁ך׀׾زٔ٤تֿ⯑匡׊ױ׊גնא׿ֿ㎫ 5.1 ס׻ֹם AbemaTV 盨齡زٔ٤ؾٜס沁篁⫐ך❈氠׌׾ٝ٭ت◙䞯闋鞃 AR ؓوٛס✑䧯❸꾙ך ׊גն 勓皹ךע AbemaTV 盨齡زٔ٤ؾٜסٝ٭ت◙䞯闋鞃 AR ؓوٛ؅ iPhone 1 ⺫ך㵅 槁׌׾偙岺؅闋鞃׊ױ׌ն 5.2 琂魸زٔ٤ؾٜꝧ㷀ס磬穅 2019 䌑 4 劓מꪛ㹾׊ג AbemaTV ס盨齡زٔ٤ؾٜך׌ֿյם׏盨齡زٔ٤ؾֿٜ㢼 ױ׾׆כמםזגס־כַֹכյ沁篁؅镸יַ׾☭ֿ盨齡ס䫋玭⯞؅ 24 免ꪨל׆ך׵䩘 俙倣摾倣ך鮫⪜ך׀׾偆锺ئ٭لتךֵ׾ WinTicket*3 ֿ⻎免מٛٛ٭ت׈׿յאס갾 ס盨齡סٝ٭ت╚类؅镄舌ך׀׾׻ֹמ׌׾ג״ך׊גն 5.3 ٝ٭ت◀䘶鉮鐄榫 AR ؓوٛמחַי 1 濪؅棨׾ג״מ盨ַ⻉ַյ⳧侵؅尴״׾盨齡ע蔦⮔♧㜽ֿٚؕفٜכם׾⠥☭盨䪫ס ע׍ך׌ֿյ㕈勓溷מٚؕ٤כ⽿ף׿׾ز٭ّ؅篁؆ך䨏ֹ杅䖇ֵֿ׽ױ׌նם׏ٚؕ٤ ؅篁׳ס־כַֹכյ免ꅋ 60km ♧┪סꅋ䍲ך鱁׾ꈷ䩘ꇖעכיח׵םַ疾宜䫷䫎؅⺇ׄ ׾׆כמם׾סךյ갟⮬؅✑זי鱁׽׷׌ׂ׊יַ׾־׼ך׌ն םסךյٝ٭ت◙䞯闋鞃ךעאסٚؕ٤ֿלס׻ֹמ篁ױ׿յלס׻ֹםٝ٭ت㺤ꪛמ ם׾־؅闋鞃脢ֿُ٭؜٭؅ⳛ־׊י闋鞃׊ױ׌նאס갾מⳛ־׈׿׾ُ٭؜٭؅ַױױ ךעٌ٠ؕعٍ٭غ┪ס虝♕׀ُءؾشع׷☭䓺ך鉿ֹסֿ┞薭溷ך׊גն♀㎇עאס ُ٭؜٭؅ AR ُ٭؜٭מ㜟剳׊յAR 銨槁ךُ٭؜٭┪מꈷ䩘ס 3D ٓظٜ؅銨獏׌׾ ׆כךյ3D ٓظٜ؅闋鞃脢ֿⳛ־׊םֿ׼闋鞃ך׀׾侑ꃻ AR ؅㵅槁׌׾׆כמם׽ױ *1 րVRց րARց րMRցםלס糹璻ն *2AR ע Augmented Reality ס汻璻ך䬺䒟槁㵅כַֹ䟨⽱ն㵅┾汔ס疾ꪨמف٭زٜٔם镄镊䝠㖥؅銨獏 ׌׾׆כמ׻זי☭չס潨ס⯼מֵ׾┾汔؅♳䞯溷מ䬺䒟׌׾䪫銉ס׆כն *3https://www.winticket.jp/ 95

Slide 22

Slide 22 text

瑬 6 珕 AVPlayer ך iOS סⳂ槆وٝؕ ٕ٭؅舅⛼׌׾ 6.1 ע׋״מ ⳛ氺⪴劔ئ٭لت׷لظ؛؛٤ظُ٤غئ٭لتס册⹳מ׻׽յتُ٭عنؚ٤ؓوٛ ךⳛ氺؅锶׾׆כע册ꄼס׆כמם׽ױ׊גնױגյ귿婝氺׷꼞㛽׻׽ٛشزםٗ٭ا٭ ✄닫؅䳀❵׌׾ג״מյUI מⳛ氺؅❈ֹ׆כֿ㙟ֻיַױ׌ն㝂甦㝂坎ם䉖㖪סؼ٭ث מ䗎ֻ׾ג״מעյⳛ氺⫙气ס焒餟עؓوٛ⯜✑脢מכזי䖩꽆מם׽חחֵ׽ױ׌ն Apple ע AVFoundation framework*1 ך iOS/macOS/tvOS ךסⳛ氺⫙气؅䳀❵׊י ַױ׌նAVFoundation ס AVPlayer ؅❈ֹ׆כךյؓوٛמⳛ氺؅友黡םٝؕؓؗعך 篁ײꁎ׳׆כֿך׀ױ׌ն勓皹ךע㵅갾מյⳛ氺⫙气מ䖩꽆ם塌茣؅䭥זגوٕٝؕ٭ ؅ AVPlayer ך✑זיַ׀ױ׌ն׈׼מյفشؠءٚؗ٤غ⫙气٬AirPlay٬Picutre in Picture םלⳛ氺⫙气؅׻׽➬⯈מ׌׾塌茣ס㵅鍮؅׊יַ׀ױ׌ն 6.2 Ⳃ槆؅⫋榟׌׾ iOS/tvOS ךⳛ氺؅⫙气׌׾מע╭מ♧┫ס 2 חס偙岺ֵֿ׽ױ׌ն 1. AVPlayerLayer ؅栃蔦ס UIView מ魂׽♕ׄ׾ 2. AVKit מ⻻ױ׿׾ AVPlayerViewController ؅❈ֹ 2. ס AVKit ֿ䳀❵׊יַ׾ AVPlayerViewController ע⫐ꌃמ AVPlayerLayer ؅䭥 ח ViewController ך׌նⳛ氺ס View ס♑מյ⫙气ؤ٤عٞ٭ٜ׷♧┫ךע AVPlay- *1https://developer.apple.com/documentation/avfoundation 110

Slide 23

Slide 23 text

6.2 Ⳃ槆؅⫋榟׌׾ erViewController ؅❈זיյⳛ氺؅⫙气׌׾偙岺؅箩♃׊יַ׀ױ׌ն 6.2.1 AVPlayerViewController ؅✳זיⳂ槆؅⫋榟׌׾亠嫎 ؓوٛמꃯⲎ׊גⳛ氺نٜؒؕ؅⫙气׊יײױ׊׺ֹնױ׍յوٞةؘؠعמⳛ 氺نٜؒؕ׆׆ךע sample.mp4؅ꃯⲎ׊יׂד׈ַնؤ٭غ 6.1 ס׻ֹמյ AVPlayer(url:) ך气䧯׊ג AVPlayer ؅ AVPlayerViewController מ廌׌׆כךⳛ 氺؅銨獏ך׀ױ׌ն ӧؤ٭غ 6.1 AVPlayer(url:) ؅✳זגⳂ槆⫋榟 let avc = AVPlayerViewController() let url = Bundle.main.url(forResource: "sample", withExtension: "mp4")! let player = AVPlayer(url: url) avc.player = player self.present(avc, animated: true) 6.2.2 AVFoundation AVPlayer(url:) ؅❈זגⳛ氺ס⫙气ע祔ⷃך׌ֿյⳛ氺نٜؒؕס鞅ײꁎײמע免ꪨ ֿ־־׽յ⛼ַتًشؠס盚勒ךⳛ氺ס⮴״מה׼חׂ⺪茣䙎ֵֿ׽ױ׌նAVFounda- tion מעⳛ氺⫙气מ AVPlayer(url:) ؅❈ֹ♣؂׽מյⳛ氺نٜؒؕס鞅ײꁎײ枱䡢؅ 箖־ׂ⯜䕣ך׀׾ؠٚتֵֿ׽ױ׌ն AVFoundation סؠٚت AVPlayer ךⳛ氺؅⫙气׌׾כ׀յ㎫ 6.1 מ獏׌׻ֹמյ⫐ꌃךעⳛ氺نٜؒؕםלס ⳛ氺׷꼞㛽؅ٓظٜⵊ׊גؠٚت (AVAsset)յ⫙气免ꪨ׷銨獏ס枱䡢؅硄槏׌׾ؠٚت (AVPlayerItem) ؅气䧯׊יַױ׌ն 111

Slide 24

Slide 24 text

瑬 8 珕 Groupie כقنؚ٭ُ٤ت 8.1 ע׋״מ Android ؓوٛך RecyclerView ؅氠ַי鏿겧םٛتع؅篁׳갾מ❈؂׿׾ٚؕه ٚٛכ׊י Groupie ׷ Epoxy םלֵֿ׽ױ׌ֿյAbemaTV ס Android ؓوٛךע Groupie ؅䱰氠׊יַױ׌նGroupie ؅❈氠׌׾׆כך锡筶ס✑䧯׷╒צ꽄ס⯜䕣؅祔 ⷃמ鉿ֹ׆כֿ⺪茣מם׽ױ׊גն׊־׊յْٛشعֵֿ׾┞偙ך䓜撬ظْٛشع׵ֵ׽ ױ׌ն 勓皹ךע Groupie ؅❈זיַׂ╚ך溪气׊גؓوٛסقنؚ٭ُ٤تֿ䜬ⵊ׌׾ゼ꾴 ס⸮㎋כյゼ꾴؅闋尴׌׾ג״מ✑䧯׊ג ItemGroup מחַי闋鞃؅鉿ַױ׌ն 勓皹ע♧┫סٚؕهٚٛف٭ة٘٤ס䝠㖥؅⩧מ阾׊יַױ׌ն • Groupie*1 v2.5.1 • ItemGroup*2 v1.0.0 8.2 Groupie ס哭釐 Groupie עյ鏿俙قذ٭٤ס UI ؅⻻׳ٛتع؅ RecyclerView ך圸碎׊׷׌ׂ׌׾ג ״סٚؕهٚٛך׌նױגյRecyclerView.Adapter ׫锡筶סꃯⲎ׷⯸ꯙ؅鉿םזג׽յ 剳偆؅鉿זג׽׌׾ꫀ俙ֿ氠䟨׈׿יַ׾ג״յⷃ┞ס锡筶ך圸䧯׈׿׾ب٤وٜםٛت ع؅圸碎׌׾갾מ׵䔢מ皑הױ׌ն *1https://github.com/lisawray/groupie *2https://github.com/sckm/ItemGroup 146

Slide 25

Slide 25 text

8.2 Groupie ס哭釐 8.2.1 Groupie ס╚םؠٚت Groupie מע㝕׀ׂ⮔ׄ׾כ♧┫ס 3 甦꿔סؠٚت׷ؕ٤ذ٭نؘ٭تֵֿ׽ױ׌ն Group • Item ׷♑ס Group ؅硄槏׌׾ג״סؕ٤ذ٭نؘ٭ت • Group ע鏿俙ס㲳 Group ؅䭥ח׆כֿך׀׾ • ⪽骭ؠٚتמע Section ׷ ExpandableGroupյUpdatingGroup(Deprecated) ֿ ֵ׾ Item • ٛتع⫐ס⻄锡筶מ㸐䗎׌׾ؠٚت • ViewHolder מظ٭ذ؅فؕ٤غ׌׾䔢ⰺ؅䭥הյUI ס⯜䕣؅鉿ֹ • ئؕثֿ 1 ס Group ךֵ׽յ♑ס Group ؅䭥ח׆כֿך׀םַ GroupAdapter • RecyclerView.Adapter ؅ 类 䪩 ׊ ג ؠ ٚ ت ך յGroupie ؅ ❈ ֹ 㖪 ⻉ מ ע GroupAdapter ؅ RecyclerView מجشع׌׾䖩锡ֵֿ׾ • GroupAdapter מꃯⲎ׊ג Group ⫐ס Item ֿ㵅갾מ銨獏׈׿׾ 8.2.2 Group כصٛ٭啶鵰 Groupie עյSecion ׷ Item םלס Group ؅篁ײ⻉؂׎׾׆כךٛتع؅銨槁׊ױ ׌ն׆ס篁ײ⻉؂׎׼׿ג Group עصٛ٭圸ꅎכם׽ױ׌ (㎫ 8.1)ն 147

Slide 26

Slide 26 text

瑬 9 珕 Android ؓوٛآ٭ب٘٤מֽׄ ׾ Zeroconf מ׻׾ Network Service Discovery 9.1 ע׋״מ Google Home ׷ Amazon Echo כַזגتُ٭عتم٭؜٭ظفؕتס溫㖪מ׻׽յ VUI(Voice User Interface) כַֹ꼞㛽؅氠ַי亣✑؅鉿ֹظفؕتֿ㙟ֻי׀ױ׊גն ׆׿׼סظفؕتס╚מעյظؔتوֿٝؕ♕㺲׊יַםַ׵ס׵ֵ׽ױ׌ն 篑닫ֵֿ׾偙׵ַ׾־כ䘼ַױ׌ֿյאס׻ֹםظؔتوٝؕ؅䭥גםַظفؕت؅ جشعؓشو׌׾갾מעتُ٭عنؚ٤׷ PC ؅氠ַ׾㖪⻉ֿ㝂ַך׌ն ךעյא׿׼סظفؕتכتُ٭عنؚ٤׷ PC עלס׻ֹמ׊יꄼ⟤؅鉿םזיַ ׾סך׊׺ֹ־նئ٭ف؅♃׊י䝠㖥ס׷׽כ׽؅鉿םזיַ׾㖪⻉׵ֵ׾ך׊׺ֹ׊յ ٞ٭؜ٜؾشع٠٭ؠ⫐ך Socket ꄼ⟤׷ P2P ꄼ⟤؅鉿םזיַ׾㖪⻉׵ֵ׾ך׊׺ֹն ׆ס皹ךעյٞ٭؜ٜؾشع٠٭ؠ⫐ךꄼ⟤؅鉿ֹ갾מ䖩锡םؾشع٠٭ؠס圸碎؅祔 汻ⵊյ蔦ⳛⵊ׌׾䪫銉ס 1 חךֵ׾ Zeroconf ؅闋鞃׊յAndroid ؓوٛآ٭ب٘٤מֽ ׄ׾ Network Service Discovery ס㵅鍮כ Android ؓوٛآ٭ب٘٤⻎㛶סؾشع٠٭ ؠꄼ⟤䪫銉ס箩♃؅鉿ַױ׌ն 154

Slide 27

Slide 27 text

9.2 Zeroconf מחַי 9.2 Zeroconf מחַי Zeroconf(Zero Configuration Networking)*1 כעյؤ٤مٖ٭ذ׷ؾشع٠٭ؠ盚勒 ס潸◦䱸籽؅鉿ֹ갾מ杅⯁םؤ٤نؔءٝ٭ب٘٤ئ٭فס圸碎׷䩘ⳛ亣✑ם׊מյ蔦ⳛ 溷מؾشع٠٭ؠ؅圸碎׌׾䪫銉ס 1 חך׌նZeroconf ס锡⚂עյؕ٤ذ٭ؾشعغٚ نعכ׊י⪪ꪛ׈׿יַױ׌*2 ն Zeroconf עלס׻ֹמ׊יؾشع٠٭ؠ圸碎ס蔦ⳛⵊ؅㵅槁׊יַ׾סך׊׺ֹ־ն Zeroconf עյ姌ס 4 חסتطشو؅篑יյؾشع٠٭ؠ圸碎ס蔦ⳛⵊ؅㵅槁׊יַױ׌ն 1. ؾشعُتؠס陭㴻כؾشع٠٭ؠ䱸籽סג״ס IP ؓغٝتⰺ׽䓜י 2. ٌتع⻏כ IP ؓغٝتס㸐䗎טׄ 3. ؾشع٠٭ؠتؤ٭و؅㴻聋׊ئ٭لتס嗱筺؅鉿ֹג״סյُٜز؞ٔتع IP ؓغٝتⰺ׽䓜י 4. ئ٭لتס嗱筺 ׆ס 4 חסتطشوמ׻׽յؤ٤نؔءٝ٭ب٘٤ئ٭ف؅蔦⯼ך圸碎׌׾䖩锡םׂյ ؾشع٠٭ؠ┪סٌتعס⻏⯼؅闋尴׊յئ٭لت؅䳀❵׊יַ׾ٌتع؅蔦ⳛ溷מ溪锶 ׌׾׆כֿך׀ױ׌ն Zeroconf 蔦✄ע锡⚂㴻聋ךֵ׽յ篁縨׷⠥☭מ׻זי坎չם㵅鍮ֿ㲽㐂׊ױ׌ն Bonjour*3 ׷ Avahi*4 ֿ劔⻏ך׌ն Android ؓوٛآ٭ب٘٤מַֽי Zeroconf ؅㵅槁׌׾מעלֹ׊ג׼虘ַך׊׺ֹ ־նַׂח־偙岺ֵֿ׾סך箩♃׊ױ׌ն ױ׍ 1 ח潨סؓوٞ٭زעյAndroid ס埉徙 API ؅❈氠׌׾偙岺ך׌նAPI ٝيٜ 16 ־׼ NSD(Network Service Discovery) סג״ס API ֿյandroid.net.nsd قشآ٭ ةכ׊י䳀❵׈׿יַױ׌ն׆ס API ؅氠ַיئ٭لتס⪪ꪛ־׼ئ٭لتס嗱筺յ⻏ ⯼闋尴ױך鉿ֹ׆כֿך׀ױ׌ն㵅鍮脢ע׆׿׼ס⭦槏סꪛ㢼׷╚偂؅鉿ֹْخشغ؅⽿ צ⮂׊յ⭦槏ס篙卸עؤ٭ٜفشؠך⺇ׄ⺅׾׆כֿך׀׾ג״յ⫐ꌃס⭦槏؅ֵױ׽䟨 餟׎׍㵅鍮׌׾׆כֿך׀ױ׌ն׈׼מյ׆׿׼ס⫐ꌃ⭦槏ע긊⻎劻ך鉿؂׿ױ׌ն׊־ ׊յ1 䍲מ 1 חסئ٭لتס⭦槏׊־鉿ֹ׆כֿך׀םַ׆כ׷ Bonjour כ㴞⪢ם◦䳕䙎 ֿ摾ַ׆כֿ䒘掾ך׌ն *1http://www.zeroconf.org *2http://files.zeroconf.org/draft-ietf-zeroconf-reqts-12.txt *3https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/NetServices/Introduction.html *4http://avahi.org 155

Slide 28

Slide 28 text

瑬 10 珕 HashiCorp Vault ⪌ꝛ 10.1 嚀㳡䗯㕔畘杼ס鐐갭 10.1.1 喋չם鐐갭 塌㶔䝠㖥ס硄槏ך脝ֻםׄ׿ףַׄםַ׆כעגׂ׈؆ֵ׽ױ׌ն • ל׆מ⟛㲽׌׾־ • ظ٭ذס凉⺴ⵊ • 霼隍 • ؓؠجت埫ꮹ • ٞ٭ط٭ب٘٤ • ס⪴劔蔦✄؅ꮐ׃♐篁ײ • ظوٞؕ免םלסꏕꃻ • Audit(潏吉) ٞء • 悁崻ס嗱焒 • 悁崻免סؕ٤بظ٤عؕ٤قؠعס劄㸯ⵊ 劄⮴סחע׌׃嶠־שכ䘼ַױ׌ֿյ媘׽ע㝂ׂסآ٭تך㸐䗎׈׿יםַך׌ն 姌מゼ꾴כם׾סֿتآ٭ٚلٛطؔך׌ն • بتطّסتآ٭ٜ • 篁縨סتآ٭ٜ סא׿ב׿ך脝ֻיײױ׌ն 164

Slide 29

Slide 29 text

10.1 嚀㳡䗯㕔畘杼ס鐐갭 10.1.2 بتطّסتآ٭ٜ بتطֿّتآ٭ٜ׊יַ׀յ鏿俙סؠٚؗغ؅❈氠׌׾㖪⻉מם׾כ♧┫ס׻ֹםゼ 꾴ֿ溪气׊י׀ױ׌ն • ⻄ؠٚؗغךُؾ٭ةغئ٭لتעֵ׿לյא׿ב׿ך㸐䗎׌׾ؤتع • ⻄ئ٭لتמ׻׾㸐䗎ؠ؛ٛطؔס䈼 א׿ב׿ך㵚䑴׌׾ؤتع ُٜزؠٚؗغס㖪⻉א׿ב׿ךյ • ؓؠجت埫ꮹ • ٞ٭ط٭ب٘٤ • Audit ٞءյ悁崻嗱焒 ؅硄槏׊יַׂסע긊䊬מ㝕㜟ך׌ն ⪢ؠٚؗغמ窢ꄼ׊ג☭朮ַֿיյאס☭ֿ簡┞溷מ♐篁ײ؅✑זיׂ׿׿ף虘ַך׌ ֿ槁㵅עא؆םמꌬ⻉虘ֵׂ׽ױ׎؆ն אֹם׾כ⻄ؠٚؗغך硄槏偙岺ֿ㜟؂זיַ׀յ篙卸脝䢩悁׿ֿ溪气׊יؕ٤بظ٤ ع׫כ溪㺤׊ױ׌ն 㵚䑴ؠ؛ٛطؔס䄐 ױגُؾ٭ةغע⻄ئ٭لتמ׻זי塌茣ֿ沌ם׽յ曩偙מעֵ׾ֿ׵ֹ曩偙מעם ַյכַזגآ٭تמ䜪ױ׈׿׾׆כ׵׊ף׊ףֵ׽ױ׌նא׊יא׆؅䩘ꆻ氠׷蔦✑ ص٭ٜמ꾙זי鬘⥡ⵊ׊יַׂյכַֹ׆כ׵׻ֵׂ׽ױ׌ն 10.1.3 ☔סتآ٭ٜ 篁縨ֿتآ٭ٜ׊יַ׀յ☭ס嵣⪜٬嵣⮂ֿ㙟ֻגכ׀מ⮂יׂ׾鞏꾴ֿ♧┫ך׌ն • 䩘ꆻ氠׷ٜ٭ٜע鬘⥡ⵊյ焒锶ס巆㝤ֿ鱍׀׾ • 悁崻篑鴤ס䬺㝕 165

Slide 30

Slide 30 text

瑬 11 珕 Design doc זי ם׏傴ׂס םמ؅傴ׂס לֹ傴ׂס ם׏瑭גהעخنعؘؗؓꪛ溪؅׌׾סך׊׺ֹ־ א׿עٗ٭ا٭־׼ס锡劳׷ ُ٭آطؔ٤ءס篙卸מ׻׽괚锡ֵֿ׾כ⮿偂׈׿ג㖪⻉׷յخنعؘؙؗؓ٤ةؼֿؓ 蔦䉁煝ꥼסג״מֽ׆םֹםלכַזג槏氮ֿ䮕ׅ׼׿ױ׌ն阋ַ䳕ֻ׿ף✇־׊׼ס Why ׷ What ֵֿזיյאס Why ׷ What ؅闋尴׌׾䩘嫘כ׊יخنعؘؗؓꪛ溪ֿ ֵ׾כ䘼ַױ׌ն ׊־׊杅מز٭ّךخنعؘؗؓꪛ溪؅׌׾כ׀מע免ꪨֿ篑חמח׿י Why ׷ What ֿ⪴劔׈׿םׂם׽յם؆סג״מ׆ס塌茣ֿꪛ溪׈׿גס־յם׏׆סٚؕهٚ ٛ؅ꈷ؆דס־כַֹ䝠㖥ֿ㝤؂׿יַ׀ױ׌ն篙卸כ׊ים׏✑׼׿ג־⮔־׼ם־ז ג׽յ׻ׂ⮔־׼םַٚؕهֿٚٛ❈؂׿גخنعؘؗؓ׷塌茣؅䐤չכ⟛㴕׌׾ע״מ ם׾־׵׊׿ױ׎؆ն אַֹזגゼ꾴؅闋巆׌׾ג״ס䩘嫘ס┞חכ׊י Design doc ؅剹ׂ׆כֿ䮕ׅ׼׿ ױ׌նDesign doc ע剹ַיאסױױךעםׂյ类籽溷םْ٤طػ٤ت؅׊יַׂ׆כך 劄偆סخنعؘؗؓסꪛ溪枱岞؅⹸儙ך׀יַ׾׻ֹמ׊ױ׌ն 11.1 Design doc מ⛰؅傴ׂ Design doc ؅ַ׉剹ַיײ׻ֹכ䘼זי׵յַזגַ✇؅剹ַג׼⮔־׼םַ־׵׊ ׿ױ׎؆ն䧰չסز٭ّךעדַגַ剹ׂ⫐㵼ֿ㴻ױזי׀גסך⪴劔׊ױ׌ն剹׀偙ס ❛ע䔿⶯מ剹ַיַ׾סךאה׼؅⹧脝מ׊יײיׂד׈ַնםֽյ剹ׂ꽃潨؅尴״׾מ ֵגזי姌מ䮕ׅ׾ً٭ة؅⹧脝מ׊יַױ׌ն 200

Slide 31

Slide 31 text

11.1 Design doc מ⛰؅傴ׂ • Design docs - A design doc - Malte Ubl - Medium*1 • 媘噺׵庿׼׎׾!? ┪筦ؙ٤ةؼؓמם׾ג״ס Design Doc 鱩⪜ꪎ (1/3)وٞ ةؘؠع䧯Ⲍ牞椙⻔┪סꁿꇓכע3 -  IT*2 • ظاؕ٤غشؠך㳔שظاؕ٤غشؠ - 呎䑑⚶獗نٚؕؗؔ٭ٜ FLYWHEEL *3 ⯥䬠 (䑒ꯄ) 㵅鍮◙㴻סخنعֿؘؗؓם׏䖩锡םס־յ塌茣㵅鍮ך䖩锡דכ锡寛׈׿׾׵ס׷脝䢩 ׊םַכַׄםַ掾םל؅剹׀ױ׌ն需؅莈納׈׎םַך祔愃מꪛ溪ס芻再ֿ⮔־׾׻ֹ ם倀皹؅剹ׂג״מյ┞־׼◝嫘訒瓦䍲ס倀皹ꓪמ䫅ֻ׾סֿ虘ַך׌ն 泘䧗׌כ׆؀ (䑒ꯄ) خنعؘؗؓך㵅鍮׌׾ꌃ⮔׷յٗ٭ا٭מלס׻ֹם䔔꼸؅┰ֻ׼׿׾־脝ֻ׼׿׾ 碃㎪ך剹׀ױ׌նך׀׿ף㴻ꓪ溷מ阛廠ך׀׾塌茣㵅鍮ס潨埉؅剹ׂכյם؆סג״מخ نعؘؗؓꪛ溪؅׌׾ס־僻牞מם׽ױ׌ն גכֻף׆ס Design doc ס⸮畇ךֵ׿ףր׆ס皹؅鞅׳׆כך Design doc כע✇־յ לַֹזג⯈掾ֵֿזילֹ剹ׄף虘ַס־յ⮔־׾׻ֹמם׾ցכַֹסֿ潨䭰׌כ׆ ؀מם׽ױ׌ն 泘䧗׈םַכ׆؀ (䑒ꯄ) خنعؘؗؓך㵅鍮׊םַꌃ⮔׷յٗ٭ا٭׫䔔꼸؅⹳ׯ׈םַ׻ֹמ׌׾ꌃ⮔؅脝ֻ ׼׿׾碃㎪ך剹׀ױ׌ն潨䭰׌כ׆؀דׄ؅剹ַי׊ױֹכյꪛ溪מחַי饗韢׷㵅鍮؅ ׊יַֹׂהמ潨䭰׌כ׆؀؅䬺㝕闋ꓡ׊յ䔔꼸碃㎪ֿ䌮ׂם׽׌ׁי⹺겏ֿח־םׂם ׽ױ׌նא׆ך潨䭰׈םַכ׆؀؅僻牞מ׊יյ霼餟ס׍׿ֿ勓☭׷ز٭ّך㸴םׂם׾ ׻ֹמ׊ױ׌ն 㲔逷ס哭釐 (䑒ꯄ) خنعؘؗؓס㵅鍮嚣锡؅剹׀ױ׌նפזכ锶ילַֹזג׵ס؅㵅鍮׌׾ס־䪻䳢ך ׀׾׻ֹמ׌׾ג״յ┞־׼◝嫘訒瓦䍲ס倀皹ꓪמ䫅ֻ׾סֿ虘ַך׌ն׻׽霄箖ם㵅鍮 ؅剹׀גַ㖪⻉ע姌מ鞃僻׌׾րלס׻ֹמ׷זיַׂ־ցמ剹׀ױ׌ն *1https://medium.com/dev-channel/design-docs-a-design-doc-a152f4484c6b *2https://www.atmarkit.co.jp/ait/articles/1606/21/news016.html *3https://www.flywheel.jp/blog/design-doc-of-design-doc/ 201

Slide 32

Slide 32 text

瑬 12 珕 A/B طتعמ㵚׌׾ظاؕ٤ס⺸ ׀⺬ַ亠 12.1 ע׋״מ AbemaTV ךעյ傽չوٞرؠعס坎չםءٞ٭ت؅鉿םזיַױ׌նאסⲯ卸嗱隍 ס䩘嫘כ׊י氠ַיַ׾ A/B طتعמ㸐׊יյظاؕ٤ֿלֹ⻔׀⻉ֹ־ ؅阾׊יַ ׀ױ׌նםֽյ勓阾◜ךע A/B طتع蔦✄ס⹌㶔ם偙岺韢׷յ簡阛㳔׷⮔卥מ㸐׌׾韢 掾ךעםׂյֵׂױך׵ظاؕ٤ֿלֹ⻔׀⻉זיַׂ־ כַֹُؕ٤غյ㥌⳰סꌃ ⮔؅剹ַיַ׀ױ׌ն 阾◜⫐ך䪒ֹ氠靣מ靯׽ֵֿזג׼긊䊬מ氰׊陹םַך׌ׇֿ㵼 鰴ׂד׈ַױ׎...ն  2019 䌑免掾ךס㸐䗎وٚشعنؚ٭ّכ׊יעյتُ٭عنؚ٤/ذهٝشعؓوٛյ Webյطٝلظفؕتؓوٛ؅╭鼎מյ偆גםظفؕتכ׊יتُ٭عتم٭؜٭׷ VR מ׵䮄䨏׊יַױ׌նظاؕ٤ֿꫀ؂׾ءٞ٭تס鼎כ׊יעյ♧┫ֵֿ׽ױ׌ն 1. 镄舌免ꪨ؅⛞ף׌ 2. 鞏ꓭٗ٭ا٭俙؅⛞ף׌ 3. ٓفٜؕهٚؗا־׼סؓوٛ嵣⪜؅⛞ף׌ 4. 䫋ׅ꘵塌茣םלךؤؕ٤ס嵣ꄼ꾵؅⛞ף׌ 5. طٝلظفؕتסٗ٭ا٭俙؅⛞ף׌ ׆׿׼ 1֐5 סوٞةؘؠعמ UI ظاؕػ٭ֿ 1~2 ⻏׍ח䨾㺲׊יַ׾✄⯜כם׽ ױ׌ն 2016 䌑 4 劓מٛٛ٭ت׈׿ג AbemaTV ך׌ֿյٛٛ٭ت潲䔿־׼偆塌茣ꃯⲎ׷ء ٞ٭ت偡瞬؅㵅偡׊י׀ױ׊גնאסⲯ卸嗱隍כ׊יעٛٛ٭ت傽־׼ס⯼䔿嬟鼛ך鉿ם ֹ׆כֿ㝂־זגסך׌ֿյAbemaTV עؤ٤ط٤ص锡㎋׷免硼锡㎋ך䭰埉ֿ㝕׀ׂש 208

Slide 33

Slide 33 text

12.2 AbemaTV מֽׄ׾ A/B طتعעל؆ם׵ס־ ׿յ婞׊ׂ㴻ꓪ雄❿ך׀םַ鞏꾴؅䫱ֻיַױ׊גնא׆ךյ2018 䌑╚僆꼿־׼ A/B ط تعךס嗱隍؅篁縨מ⺅׽⪜׿յ嗱隍偙岺蔦✄ס侉ㄌ؅׊籽ׄיַױ׌ն A/B طتعע➬⯈ם䩘岺ךֵ׽յꪛ溪篁縨כ׊יעꓨ㵁׊יַ׾סך׌ֿյ偡瞬؅ꓨ ניַֹׂהמظاؕ٤כ׊יס⻔׀⻉ַ偙ס鞏꾴׵ַׂח־嶠׀䔉׽מםזגסך׌ն 12.2 AbemaTV מֽׄ׾ A/B طتعעל؆ם׵ס־ 2019 䌑免掾ךס AbemaTV מֽׄ׾ A/B طتعמ׻׾ⲯ卸嗱隍ס潨溷עյ╭מ嗱隍 㸐骭מ㸐׌׾ր䟨䘼尴㴻ցסג״ך׌ն ׆׿ע⯼ꃍ׊ג׻ֹמٛٛ٭ت傽־׼ס⯼䔿嬟鼛דכ嗱隍⫐㵼כע⯁ס锡㎋מ䔔꼸؅⺇ ׄ׌ׁי婞牞מ雄❿ך׀׍յ⻎׋匛⚂ס嗱隍؅׌׾׆כך婞׊ׂ䟨䘼尴㴻؅׌׾ג״ס׵ סך׌ն 12.2.1 ❆iOS ؓوٛמיյ攐㲊ٓةٖ٭ٜס CTR ䷉ャ؅泘氳מ UI ס 釤ג泘؅ 2 قذ٭٤䡵؂׎׾㕙⺬ ظنؚٜعס UI מⲎֻי嗱隍氠ס UI ؅㵅鍮׊յ 劄㸯ꮹס㸐骭脢 iOS ٗ٭ا٭ס 5%յ םלמ⻔ׄיٛٛ٭ت׊ױ׌ն 嗱隍⫐㵼מ׻זי䖩锡םئ٤وٜئؕث؅ⰺ׽⮂׊י ַױ׌ ٛٛ٭ت䔿յ⮔卥َٝ٭ع؅锶םֿ׼劔䟨䈼嗱㴻؅鉿םַⲯ卸廠㴻؅׊ױ׌ն 㝂ׂס㖪⻉յ嗱隍氠ס UI מ婞ס劔䟨䈼ֵֿ׾㖪⻉עאה׼؅ 100% ꈌ氠׊ױ׌ն鬘ס 劔䟨䈼ֵֿ׾㖪⻉עظنؚٜعס UI מ䨴׌־յ偆גם䩤ה䩘؅脝ֻי⫙䍲嗱隍׌׾׆כ מם׽ױ׌ն劔䟨䈼ֵֿ׾כעַֻםַ㖪⻉עյ嗱㴻篙卸ס姌掾כם׾䟨䘼尴㴻ס包倣ך 雄❿؅鉿ַױ׌ն א׿ע❛ֻףյ ր㴻ꓪ溷מע䈼ֿ劔׾־摾ַ־؂־׼ם־זגֿյئ٭لتכ׊י׻׽䳀❵׊גַ כ䘼ֻ׾✄닫עջջס偙םסךאה׼؅䱰氠׌׾ց ր㴻ꓪ溷מע䈼ֿ劔׾־摾ַ־؂־׼ם־זגֿյջջס偙ֿ♀䔿ס UI 侉ㄌמ⻔ ׄי俠⻉䙎ֿ⺅׽׷׌ַסךאה׼؅䱰氠׌׾ց םלך虘ׂיյֵׂױך׵䟨䘼尴㴻ס包倣כ׊י✇؅ꈷש־ע⻄وٞةؘؠعמ㣗נ׼ ׿יַױ׌ն׵ה؀؆յם׾׬ׂ⠥☭ס╭镸מ䬹׼םַ䟨䘼尴㴻؅ך׀׾׆כֿَؕ٤ع ךעֵ׽ױ׌ն ꓨ锡םסעյA/B طتعךס劔䟨䈼ס篙卸ֿ䊬מ簮㸐婞聋ךꅼ״יַ׾؂ׄךעםׂյ ֵׂױך׵ր嗱㴻篙卸ע䟨䘼尴㴻ס包倣ցכםזיַ׾׆כך׌ն׈׼מյA/B طتعע 209

Slide 34

Slide 34 text

瑬 13 珕 Ⳃ槆⿁韬⯆䐒ס냕䈱⴫ס㲔杯وٞ جت 13.1 䈋鑜Ⳃ槆㚺䬵מ꞊؂׾┩槡ס哭鈝 13.1.1 舅䄕磆☭ ע׋״ױ׊יյⳛ氺㜟䳕סتًبٔٛتعס䕣尊כ氰׊ױ׌ն 坎չם噺汔؅篑닫׊ג䔿յ槁㐂ע AbemaTV סꪛ溪勓ꌃؤ٤ط٤صؙ٤ةؼؓٛ٤ءء ٜ٭وמ䨾㺲׊יַױ׌ն ♀㎇յ׆ס׻ֹם㕂瞉ס塌⚶؅ַגד׀ֵ׽ֿכׇֹ׉ַױ׌ն ⻏⯢ס┪ךעعٚ٤تؤ٭غؙ٤ةؼؓךֵזג׽لظ؛ عٚ٤تؤ٭ظؔ٤ء تع ٚطةتعםלכ⻏▗זיַױ׌ֿյؙ٤ةؼؓךֵ׾כַֹ䟨餟ע䉤賹ךֵ׽ױ׌ն㕈 勓溷מעⳛ氺⿣鮐מꫀ׌׾耘㳔כ婞聋؅䭥הꁎ؆ךַ׾כַֹ䟨餟ך׷זיַױ׌ն ⠥☭溷ם锶闋ךעءٚظؙؔؕذ٭ (Ⱏꬢ㛶) ם׽ٚؕنجؕف٭侫┾╭ךֵ׾כ 䘼זיַױ׌ն׵זכ׵׆ס㖪⻉յ侫ַ⮂׌סעⳛ氺ךֵזי☭ꪨךעֵ׽ױ׎؆ն 韢槏䘼脝ס埫ⵊס׻ֹםؙ٤ةؼֿؓ겏ֹꪛ溪勓ꌃמ┮䘼饗כ뉔叉ײյ儙⦐⿣鮐ס⯜ 䕣٬ꏕ⟤قْٚ٭ذס劄ꈌⵊמ⺅׽篁؆ךַױ׌ն 㵅갾מע׵ֹ㸴׊䩘䌮ׂյ ꆻ氠圸䧯⻻״גⳛ氺؛ًٝ٭ب٘٤ס糹✄מꫀ┰׊יַױ׌ն 勓畇ךעյ儙⦐⿣鮐ס⯜䕣؅ꆻ氠✄笠כ׊יַ־מ둚䍲ⵊ׌׾־אס雧ײ؅箩♃׊יַ ׆ֹכ䘼ַױ׌նⳛ氺قْٚ٭ذ٭מꫀ׌׾霄箖עא׿׮ל꾗⮂׊םַסךׇ㴗䖥ׂד ׈ַն 217

Slide 35

Slide 35 text

瑬 13 珕 Ⳃ槆⿁韬⯆䐒ס냕䈱⴫ס㲔杯وٞجت 13.1.2 AbemaTV זי⛰ ٛؼؓ٬؛٤ظُ٤غ╋긖؅ꓨ镄׊յ㝂㪽✄ך镄舌⺪茣םⳛ氺ꏕ⟤ئ٭لتך׌նؓو ٛ؅⪜׿יײ׿ף┞潨炣撬כם׽ױ׌ն槁㐂סכ׆؀ױדױדٓفٜؕ镄舌脢ס׮ֹֿ㝂 ַך׌ֿյTV ظفؕت镄舌脢׵鹀ꅼ׊י׀יַױ׌ն ӣ㍲ 13.1 AbemaTV ס釱绱تذٜؕע荇չ ׆סئ٭لتס儙⦐⿣鮐ס⯜䕣յאס┞脍؅䬎זיַ׾כַֹ׆כמם׽ױ׌ն׆׿ױ ךס俙䌑ꪨס㸐䗎؅糹䭇׊ױ׌כ♧┫ס׻ֹמם׽ױ׌ն 218

Slide 36

Slide 36 text

蜷縖磆☭ 瑬 1 珕 㲯♏ 杼䌚 / @3846masa ’19 䌑偆ⶻ⪜獗ס Web نٞ٤عؙ٤غظيٞشق٭ն䪫銉剹⪿מע⠥☭ך✇䍲־⮂㺤 ׊יַ׾ֿյؙإئ׊י׵䠊䞯׷نؔ٭غفشؠֿםַסֿ劄ꁿ宜ֿ־׽ն׆ס妏؅鞅؆ ד☭ע䠊䞯؅صؕ٭ع׊יׂד׈ַն峓ַיㄻצױ׌ն 瑬 2 珕 ꄇ⹾ 泡㴌 / @nodaguti 2018 䌑偆ⶻ⪜獗ס Web نٞ٤عؙ٤غؙ٤ةؼؓն瞔舸ؙ٤ةؼؓ؅潨䭰׊חח׵ ׊׺זה׸ֹ✄鞪؅䁼׊יר׽ד׊מ䨴זיַױ׌ն 瑬 3 珕 琉榹 保 / @satsukies ؝ةؘشعֿ㝕㟱׀׌ׁ׾ؙ٤ةؼؓն劄ꁿע鮫⪜׊גף־׽סُؕ؜٭؅▗׽㎇׊י ֽ׽յ等黆־׼גזג 2 ٦劓ך 6000km 䒘鱁熏؅ꇖ䧯ն徙╚㒘⩸陵؅⟛劔׊عٚشؠמ ▗׿׾כַֹյؙ٤ةؼؓמ׊יע瓑劔ם☭包ն2017 䌑מ AbemaTV מ偆ⶻךة٘ؕ٤ ׊յ槁㐂ע AndroidTV ⻔ׄסؓوٛꪛ溪؅䬎䓜׊יַ׾ն 瑬 4 珕 㸓╈ ⲭ䡗ײ׹ז׀ / @toriimiyukki ┩䍲ס냃׻׽舸ֿ㟱׀םؙ٤ةؼؓն2017 䌑מ呎䑑⚶獗ئؕف٭ؙ٭ةؘ٤ع׫偆ⶻ ך⪜獗ն舸♧㜽מ׵儙⦐ֿ㟱׀ךյ鲧⽱ךյ傽勓婣ꇓ녓ךס╚类׷نؘتסꏕ⟤؛ًٝ٭ ب٘٤םל؅鉿ֹն 瑬 5 珕 鱎䄕 ✞点 / @_cokaholic ؓؼْכ㛽⨲؅׆׻םׂ䠀׌׾ؙ٤ةؼؓն2015 䌑מ呎䑑⚶獗ئؕف٭ؙ٭ةؘ ٤ع׫偆ⶻך⪜獗ն槁㐂ע呎䑑⚶獗 AbemaTV ך iOS ؓوٛסꪛ溪؅䬎䓜׊יַ׾ն AbemaTV ך┞沁㟱׀ם沁篁עր㛽⨲כ㝅ֵאצց ն 265

Slide 37

Slide 37 text

♀ꎰ 蜷縖磆☭ 瑬 6 珕 琉榹 ⩞⛫ / @daketake 傽չ AbemaTV סوٕٝؕ٭כ媃ꬢ؅繪׽䌮ׅיַ׾ iOS ؙ٤ةؼؓնXP ס侷聋מ 䕋ַյ媘噺ע׊םַכ䖥מ尴״יַ׾ֿյ㵅鴫ך׀יַ׾־ע⯁ס需ךֵ׾ ն 瑬 7 珕 㱦◒ 栊槀 / @akkyie 2019 䌑偆ⶻ⪜獗ס iOS ؓوؙٛ٤ةؼؓն鲧⽱ע㷆׾׆ככ GitHub סعشوً٭ة ؅锶׾׆כն 瑬 8 珕 㛙㸓 吞 / @scal_ch 2018 䌑╚ꄫ⪜獗ס Android ؙ٤ةؼؓն劄ꁿעب٤وٜםꌃ㺑؅✑׾ג״מ┮锡ם朮 ס⭦⮔؅׊יַ׾ն 瑬 9 珕 ㎜䅨 鏨█ / @ronnnnn_jp 2018 䌑偆ⶻ⪜獗ס Android ؙ٤ةؼؓն槁㐂ע╭מ TV ظفؕت؅䬎䓜ն 瑬 10 珕  硾䇖 / @jun06t15 2013 䌑偆ⶻ⪜獗סئ٭ف٬ؕ٤نؙٚ٤ةؼؓնWeb نٞ٤ع׵׷׾ն2019/06 מ꼞 嚝ꏕ⟤ئ٭لت AWA ־׼ AbemaTV מ沌ⳛն 瑬 11 珕 ╦⟊榹 綛㜀 / @kubotashota توٚعؖ٭٤כر٭صֿ㟱׀םخنعؘؙؗؓ٤ةؼؓն劄ꁿע◩瞏⮔ס蛞㬼כؓؠ ذ٭ةٖס偆⮜ֿ⮂׾ס؅傽չ䔵ה劳؆ךַ׾ն 瑬 12 珕 冋儖 ➭☭ AbemaTV ס UI ظاؕػ٭ն2015 䌑מ呎䑑⚶獗ئؕف٭ؙ٭ةؘ٤ع׫偆ⶻך⪜獗ն ┞锶׌׾כ摾銨䝠ך锯宜ֿםַֿր؛؛؜ِה׶؆מע׈׿םַց؅镸י؞ٖ٤؞ٖ٤ ׌׾傽չ؅ꇃׇ׊יַ׾ն 瑬 13 珕 䐒娢 㼵⺒ "ⳛ氺"ע气嵛סג״յ׻׽筙穀ם"꼞"עُٞ٤סג״מ׷זיַ׾ն׵כ׵כنٛ٭ٚ ٤تך㵵ֿ紬겏تذة؛םסדֿյ劄ꁿע㧁嚝ס㖪כⵊ׊יַ׾ն桨כ潲⮬ 6 宜瞥ס FR 黆؅׆׻םׂ䠀׌׾ն 266

Slide 38

Slide 38 text

辐碊ظاؕ٤ 劮儖 綛㜀 2019 䌑偆ⶻظاؕػ٭ն㝕㳔免♣עًؼ٭⻎㟱⚶כٚ٭ْ٤⻎㟱⚶ס♣銨؅⫅⚈׊י ַגֿյ槁㐂עյًؼ٭؅䭥זיםַ׊捯냃ֿ㟱׀ն 267

Slide 39

Slide 39 text

AbemaTV Tech Book 2019 䌑 9 劓 22 傽մ䪫銉剹⪿ 7 曫 v1.0.0 詇մ脢 AbemaTV ظاؕ٤ 呧勓 肰㝚 紬մ겏 ꀲ䉁 ✲獹 溪鉿䨾 AbemaTV ⷦ⯝䨾 傽⩱⚕氺 մ (C) 2019 AbemaTV 268

Slide 40

Slide 40 text

00 01 02 03 04 05 06 07 08 00 01 02 03 04 05 06 07 08