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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Akio Itaya
September 17, 2026
Programming
100
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
210
Building a Meta Ray-Ban display app
akkeylab
0
210
What If Your App Could Debug Itself?
akkeylab
0
96
How to stabilize UI tests using XCTest
akkeylab
0
230
Bringing Spatial Web to E-Commerce
akkeylab
0
110
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
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.6k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
300
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
130
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
170
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
410
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
270
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
140
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
Workers Cache を知る
syumai
0
310
Featured
See All Featured
The Curse of the Amulet
leimatthew05
3
15k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Being A Developer After 40
akosma
91
590k
Six Lessons from altMBA
skipperchong
29
4.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
250
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
4 Signs Your Business is Dying
shpigford
187
23k
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 !!