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
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
Search
Akio Itaya
September 17, 2026
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
【昼開催DAY1】After DroidKaigi 2026 from ピクシブ【オンライン】
https://pixiv.connpass.com/event/403627/
Akio Itaya
September 17, 2026
More Decks by Akio Itaya
See All by Akio Itaya
iOSDCのペンライトを自動制御したい!
akkeylab
0
370
Building a Meta Ray-Ban display app
akkeylab
0
220
What If Your App Could Debug Itself?
akkeylab
0
100
How to stabilize UI tests using XCTest
akkeylab
0
240
Bringing Spatial Web to E-Commerce
akkeylab
0
120
Learn CPU architecture with Assembly
akkeylab
1
2.2k
Porting a visionOS App to Android XR
akkeylab
0
1.2k
How to handle 3D content on Android XR
akkeylab
0
270
Create a website using Spatial Web
akkeylab
0
450
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
920
APNsからLive Activityを開始する話
yumnumm
0
150
JRuby: Past, Present, and Future
headius
0
220
すこし踏み込む CancellationToken
htkym
2
1.6k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
1
730
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
Kubernetes祭り #2 OP/ED
bells17
0
100
R8 の設定見直しでアプリサイズ削減
andpad
0
190
SREの越境 / SRE Collaboration
y0hgi
2
300
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
110
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
860
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Tell your own story through comics
letsgokoyo
1
1.1k
The agentic SEO stack - context over prompts
schlessera
0
970
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
520
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Everyday Curiosity
cassininazir
0
350
BBQ
matthewcrist
90
10k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Transcript
DroidKaigiで広がった私の技術スタック akkey / @AkkeyLab After DroidKaigi 2026 from ピクシブ
akkey • CEO @AkkeyLab, Inc. • Engineer @pixiv Inc. •
DroidKaigi Staff • try! Swift Tokyo Organizer
私とDroidKaigi
私とDroidKaigi 4年連続セッション応募
私とDroidKaigi Google I/O Extended Tokyo 2025
私とDroidKaigi Galaxy XR求めて韓国へ • 発売日に行ったが買えずに帰国 • 開発は継続
DroidKaigi 2026
VMSの開発
VMSの開発 Video Management System • 収録映像のリアルタイム確認 • 進行状況の確認 • 確認作業を遠隔で実施可能
VMSの開発 Appleの技術を活用 • Metal API で描画 • Apple Container で検証
VMSの開発
VMSの開発 func makeTextures(from pixelBuffer: CVPixelBuffer) -> (luma: MTLTexture, chroma: MTLTexture)?
{ let width = CVPixelBufferGetWidth(pixelBuffer) let height = CVPixelBufferGetHeight(pixelBuffer) var lumaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .r8Unorm, width, height, 0, &lumaTextureRef ) var chromaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .rg8Unorm, width / 2, height / 2, 1, &chromaTextureRef ) guard let lumaTexture = CVMetalTextureGetTexture(lumaTextureRef!), let chromaTexture = CVMetalTextureGetTexture(chromaTextureRef!) else { return nil } return (lumaTexture, chromaTexture) }
VMSの開発 func makeTextures(from pixelBuffer: CVPixelBuffer) -> (luma: MTLTexture, chroma: MTLTexture)?
{ let width = CVPixelBufferGetWidth(pixelBuffer) let height = CVPixelBufferGetHeight(pixelBuffer) var lumaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .r8Unorm, width, height, 0, &lumaTextureRef ) var chromaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .rg8Unorm, width / 2, height / 2, 1, &chromaTextureRef ) guard let lumaTexture = CVMetalTextureGetTexture(lumaTextureRef!), let chromaTexture = CVMetalTextureGetTexture(chromaTextureRef!) else { return nil } return (lumaTexture, chromaTexture) }
VMSの開発 func makeTextures(from pixelBuffer: CVPixelBuffer) -> (luma: MTLTexture, chroma: MTLTexture)?
{ let width = CVPixelBufferGetWidth(pixelBuffer) let height = CVPixelBufferGetHeight(pixelBuffer) var lumaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .r8Unorm, width, height, 0, &lumaTextureRef ) var chromaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .rg8Unorm, width / 2, height / 2, 1, &chromaTextureRef ) guard let lumaTexture = CVMetalTextureGetTexture(lumaTextureRef!), let chromaTexture = CVMetalTextureGetTexture(chromaTextureRef!) else { return nil } return (lumaTexture, chromaTexture) }
VMSの開発 func makeTextures(from pixelBuffer: CVPixelBuffer) -> (luma: MTLTexture, chroma: MTLTexture)?
{ let width = CVPixelBufferGetWidth(pixelBuffer) let height = CVPixelBufferGetHeight(pixelBuffer) var lumaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .r8Unorm, width, height, 0, &lumaTextureRef ) var chromaTextureRef: CVMetalTexture? let _ = CVMetalTextureCacheCreateTextureFromImage( kCFAllocatorDefault, textureCache, pixelBuffer, nil, .rg8Unorm, width / 2, height / 2, 1, &chromaTextureRef ) guard let lumaTexture = CVMetalTextureGetTexture(lumaTextureRef!), let chromaTexture = CVMetalTextureGetTexture(chromaTextureRef!) else { return nil } return (lumaTexture, chromaTexture) }
VMSの開発 1枚のView
VMSの開発
VMSの開発 レイアウト変更
VMSの開発
VMSの開発 テクスチャのキャッシュ
VMSの開発
VMSの開発 テクスチャの共有
VMSの開発
私の技術スタック
私の技術スタック • Android XR • Metal API • Apple Container
Thank you !!