Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【試し読み】AbemaTV TECH BOOK / AbemaTV TECH BOOK

CyberAgent
September 22, 2019

【試し読み】AbemaTV TECH BOOK / AbemaTV TECH BOOK

技術書典7で販売した、AbemaTVのエンジニア・デザイナーによる技術同人誌「AbemaTV TECH BOOK」の試し読みです。

本編は以下よりお買い求めいただけます。
https://abematv.booth.pm/items/1589553

CyberAgent

September 22, 2019
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

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

    01 02 03 04 05 06 07 08 TECH BOOK
  2. 泘域 瑬 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
  3. 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
  4. 泘域 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
  5. 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
  6. 泘域 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
  7. 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
  8. 泘域 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
  9. 13.3 ױכ״ : 蔷둚ס⿣鮐ס㵅槁מ⻔ׄי . . . . . .

    . . . . . . . . . . . . . . 264 蜷縖磆☭ 265 9
  10. 瑬 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
  11. 瑬 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 <button disabled={path === HOME_PATH}>Home</button>; }; JavaScript AST ؅❈ֹכյ㴻聋׈׿יַ׾㜟俙⻏ס┞镣׷تؤ٭و䝠㖥םלֿ؂־׾ ג״յ׆׆ױךמ䮕ׅגゼ꾴؅脝䢩׊גٛنؒؠذٛ٤ء؅ؤ٭غכ׊י㵅鍮ך׀ױ׌ն ׈זאׂ JavaScript AST ؅❈זי alias import ؅ named import מٛنؒؠذٛ٤ ء׌׾ؤ٭غ؅✑׽ױ׊׺ֹն姌ס硼ך AST ؅㵅갾מ闑זיײיյלַֹזג׵סםס ־✄䠊׊ױ׊׺ֹն 12
  12. 瑬 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
  13. 瑬 2 珕 AbemaTV ך㰢ש RxJS 2.2 Ⳃ槆ֿ⫋榟ך׀׾־⮭㲊׌׾ (ꦘ佄䈱: A)

    2.2.1 ゖ갭 ⳛ氺ֿ⫙气ך׀׾־לֹ־ע㝂ׂס API ס篙卸؅篁ײ⻉؂׎י⮿偂׊םׄ׿ףַׄױ ׎؆ַױ⠥չס API ؅⺡ַג篙卸ֿ嵣׿יׂ׾♧┫סتعٛ٭ّ٬ꫀ俙ֵֿ׾כ׊ ױ׌ • regionStore.isRegionAllowed(): Promise<boolean> • 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
  14. 瑬 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
  15. 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
  16. 瑬 4 珕 HTML5 Canvas ؅✳זי何⥼ס┕ מ؛٭ف٭ٝؕ׌׾بتطّ؅⛼ז יײג 4.1 ע׋״מ

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

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

    ӣ㍲ 5.1 AbemaTV 琂魸زٔ٤ؾٜסٝ٭ت◀䘶鉮鐄 AR ؓوٛס㲔꤀ס䷑鴜何⥼׻׽ 5.1 ע׋״מ 册嫘ע iOS ؙ٤ةؼؓכ׊י AbemaTV סؠٚؕؓ٤عؓوٛסꪛ溪؅鉿םזיַ׾ סך׌ֿյ⻎免מ獗⫐ס XR ؟ٜغכַֹ篁縨מ䨾㺲׊יַױ׌ն XR ؟ٜغכע✇־כַֹ鞃僻؅׌׾⯼מյ؟ٜغ⯜䍲מחַי鞃僻׊ױ׌ն؟ٜغ⯜ 䍲כעյ2018 䌑⯼⶯־׼ئؕف٭ؙ٭ةؘ٤ع獗⫐ס䪫銉鞪吉٬❿⡑ⱁ⮂وٞةؘؠعכ ׊יꪛ㢼׈׿յ獗〉ֿ册嫘ס噺ⳡכעꫀ➳םׂյ蕟⽱סֵ׾䪫銉ط٭ُמ岚זי埭偂׊ג 94
  19. 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
  20. 瑬 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
  21. 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
  22. 瑬 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
  23. 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
  24. 瑬 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
  25. 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
  26. 瑬 10 珕 HashiCorp Vault ⪌ꝛ 10.1 嚀㳡䗯㕔畘杼ס鐐갭 10.1.1 喋չם鐐갭

    塌㶔䝠㖥ס硄槏ך脝ֻםׄ׿ףַׄםַ׆כעגׂ׈؆ֵ׽ױ׌ն • ל׆מ⟛㲽׌׾־ • ظ٭ذס凉⺴ⵊ • 霼隍 • ؓؠجت埫ꮹ • ٞ٭ط٭ب٘٤ • ס⪴劔蔦✄؅ꮐ׃♐篁ײ • ظوٞؕ免םלסꏕꃻ • Audit(潏吉) ٞء • 悁崻ס嗱焒 • 悁崻免סؕ٤بظ٤عؕ٤قؠعס劄㸯ⵊ 劄⮴סחע׌׃嶠־שכ䘼ַױ׌ֿյ媘׽ע㝂ׂסآ٭تך㸐䗎׈׿יםַך׌ն 姌מゼ꾴כם׾סֿتآ٭ٚلٛطؔך׌ն • بتطّסتآ٭ٜ • 篁縨סتآ٭ٜ סא׿ב׿ך脝ֻיײױ׌ն 164
  27. 10.1 嚀㳡䗯㕔畘杼ס鐐갭 10.1.2 بتطّסتآ٭ٜ بتطֿّتآ٭ٜ׊יַ׀յ鏿俙סؠٚؗغ؅❈氠׌׾㖪⻉מם׾כ♧┫ס׻ֹםゼ 꾴ֿ溪气׊י׀ױ׌ն • ⻄ؠٚؗغךُؾ٭ةغئ٭لتעֵ׿לյא׿ב׿ך㸐䗎׌׾ؤتع • ⻄ئ٭لتמ׻׾㸐䗎ؠ؛ٛطؔס䈼

    א׿ב׿ך㵚䑴׌׾ؤتع ُٜزؠٚؗغס㖪⻉א׿ב׿ךյ • ؓؠجت埫ꮹ • ٞ٭ط٭ب٘٤ • Audit ٞءյ悁崻嗱焒 ؅硄槏׊יַׂסע긊䊬מ㝕㜟ך׌ն ⪢ؠٚؗغמ窢ꄼ׊ג☭朮ַֿיյאס☭ֿ簡┞溷מ♐篁ײ؅✑זיׂ׿׿ף虘ַך׌ ֿ槁㵅עא؆םמꌬ⻉虘ֵׂ׽ױ׎؆ն אֹם׾כ⻄ؠٚؗغך硄槏偙岺ֿ㜟؂זיַ׀յ篙卸脝䢩悁׿ֿ溪气׊יؕ٤بظ٤ ع׫כ溪㺤׊ױ׌ն 㵚䑴ؠ؛ٛطؔס䄐 ױגُؾ٭ةغע⻄ئ٭لتמ׻זי塌茣ֿ沌ם׽յ曩偙מעֵ׾ֿ׵ֹ曩偙מעם ַյכַזגآ٭تמ䜪ױ׈׿׾׆כ׵׊ף׊ףֵ׽ױ׌նא׊יא׆؅䩘ꆻ氠׷蔦✑ ص٭ٜמ꾙זי鬘⥡ⵊ׊יַׂյכַֹ׆כ׵׻ֵׂ׽ױ׌ն 10.1.3 ☔סتآ٭ٜ 篁縨ֿتآ٭ٜ׊יַ׀յ☭ס嵣⪜٬嵣⮂ֿ㙟ֻגכ׀מ⮂יׂ׾鞏꾴ֿ♧┫ך׌ն • 䩘ꆻ氠׷ٜ٭ٜע鬘⥡ⵊյ焒锶ס巆㝤ֿ鱍׀׾ • 悁崻篑鴤ס䬺㝕 165
  28. 瑬 11 珕 Design doc זי ם׏傴ׂס םמ؅傴ׂס לֹ傴ׂס ם׏瑭גהעخنعؘؗؓꪛ溪؅׌׾סך׊׺ֹ־

    א׿עٗ٭ا٭־׼ס锡劳׷ ُ٭آطؔ٤ءס篙卸מ׻׽괚锡ֵֿ׾כ⮿偂׈׿ג㖪⻉׷յخنعؘؙؗؓ٤ةؼֿؓ 蔦䉁煝ꥼסג״מֽ׆םֹםלכַזג槏氮ֿ䮕ׅ׼׿ױ׌ն阋ַ䳕ֻ׿ף✇־׊׼ס Why ׷ What ֵֿזיյאס Why ׷ What ؅闋尴׌׾䩘嫘כ׊יخنعؘؗؓꪛ溪ֿ ֵ׾כ䘼ַױ׌ն ׊־׊杅מز٭ّךخنعؘؗؓꪛ溪؅׌׾כ׀מע免ꪨֿ篑חמח׿י Why ׷ What ֿ⪴劔׈׿םׂם׽յם؆סג״מ׆ס塌茣ֿꪛ溪׈׿גס־յם׏׆סٚؕهٚ ٛ؅ꈷ؆דס־כַֹ䝠㖥ֿ㝤؂׿יַ׀ױ׌ն篙卸כ׊ים׏✑׼׿ג־⮔־׼ם־ז ג׽յ׻ׂ⮔־׼םַٚؕهֿٚٛ❈؂׿גخنعؘؗؓ׷塌茣؅䐤չכ⟛㴕׌׾ע״מ ם׾־׵׊׿ױ׎؆ն אַֹזגゼ꾴؅闋巆׌׾ג״ס䩘嫘ס┞חכ׊י Design doc ؅剹ׂ׆כֿ䮕ׅ׼׿ ױ׌նDesign doc ע剹ַיאסױױךעםׂյ类籽溷םْ٤طػ٤ت؅׊יַׂ׆כך 劄偆סخنعؘؗؓסꪛ溪枱岞؅⹸儙ך׀יַ׾׻ֹמ׊ױ׌ն 11.1 Design doc מ⛰؅傴ׂ Design doc ؅ַ׉剹ַיײ׻ֹכ䘼זי׵յַזגַ✇؅剹ַג׼⮔־׼םַ־׵׊ ׿ױ׎؆ն䧰չסز٭ّךעדַגַ剹ׂ⫐㵼ֿ㴻ױזי׀גסך⪴劔׊ױ׌ն剹׀偙ס ❛ע䔿⶯מ剹ַיַ׾סךאה׼؅⹧脝מ׊יײיׂד׈ַնםֽյ剹ׂ꽃潨؅尴״׾מ ֵגזי姌מ䮕ׅ׾ً٭ة؅⹧脝מ׊יַױ׌ն 200
  29. 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
  30. 瑬 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
  31. 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
  32. 瑬 13 珕 Ⳃ槆⿁韬⯆䐒ס냕䈱⴫ס㲔杯وٞ جت 13.1 䈋鑜Ⳃ槆㚺䬵מ꞊؂׾┩槡ס哭鈝 13.1.1 舅䄕磆☭ ע׋״ױ׊יյⳛ氺㜟䳕סتًبٔٛتعס䕣尊כ氰׊ױ׌ն

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

    ظفؕت镄舌脢׵鹀ꅼ׊י׀יַױ׌ն ӣ㍲ 13.1 AbemaTV ס釱绱تذٜؕע荇չ ׆סئ٭لتס儙⦐⿣鮐ס⯜䕣յאס┞脍؅䬎זיַ׾כַֹ׆כמם׽ױ׌ն׆׿ױ ךס俙䌑ꪨס㸐䗎؅糹䭇׊ױ׌כ♧┫ס׻ֹמם׽ױ׌ն 218
  34. 蜷縖磆☭ 瑬 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
  35. ♀ꎰ 蜷縖磆☭ 瑬 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
  36. AbemaTV Tech Book 2019 䌑 9 劓 22 傽մ䪫銉剹⪿ 7

    曫 v1.0.0 詇մ脢 AbemaTV ظاؕ٤ 呧勓 肰㝚 紬մ겏 ꀲ䉁 ✲獹 溪鉿䨾 AbemaTV ⷦ⯝䨾 傽⩱⚕氺 մ (C) 2019 AbemaTV 268
  37. 00 01 02 03 04 05 06 07 08 00

    01 02 03 04 05 06 07 08