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
140
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
550
Building a Meta Ray-Ban display app
akkeylab
0
240
What If Your App Could Debug Itself?
akkeylab
0
120
How to stabilize UI tests using XCTest
akkeylab
0
250
Bringing Spatial Web to E-Commerce
akkeylab
0
140
Learn CPU architecture with Assembly
akkeylab
1
2.3k
Porting a visionOS App to Android XR
akkeylab
0
1.3k
How to handle 3D content on Android XR
akkeylab
0
290
Create a website using Spatial Web
akkeylab
0
460
Other Decks in Programming
See All in Programming
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
Distance field of Julia set
kinakomoti321
0
310
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
170
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
330
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
330
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
11k
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
6
5.1k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
LLM 101
dalinaum
0
480
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
160
Featured
See All Featured
Done Done
chrislema
187
17k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Facilitating Awesome Meetings
lara
57
7.2k
RailsConf 2023
tenderlove
30
1.6k
New Earth Scene 8
popppiees
5
2.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
Building Adaptive Systems
keathley
44
3.3k
Bash Introduction
62gerente
615
220k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
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 !!