Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
数年滞っていたダークモード対応をおよそ2週間で完了させる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kazuki Chigita
September 03, 2026
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
数年滞っていたダークモード対応をおよそ2週間で完了させる
DroidKaigi2026 Day1のポスターセッションで発表。「家族アルバム みてね」における事例
Kazuki Chigita
September 03, 2026
More Decks by Kazuki Chigita
See All by Kazuki Chigita
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
71
あの日のHotReloadはなぜ動かなかったのか? 〜OSセキュリティ(W^X)とJITコンパイラの攻防〜
chigichan24
3
1.4k
「 動く」サンプルでスムーズなコミュニケーションを
chigichan24
1
1.4k
Claude CodeでサクサクTestコードを移行しよう
chigichan24
2
1.5k
Live Update notificationのつかいどころ
chigichan24
0
380
不具合調査とTest
chigichan24
1
470
Flutterと難読化
chigichan24
0
5.9k
Building Android and looking into the Android System
chigichan24
2
4.3k
DroidKaigiカンファレンスアプリの歴史からみるアプリアーキテクチャのこれまでとこれから
chigichan24
2
3.6k
Other Decks in Programming
See All in Programming
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
360
Oxlintはいいぞ(続)
yug1224
1
500
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
420
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
180
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.3k
「人を評価する AI」の設計と実装
ryoyanara
0
280
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
120
typoなんかねぇよ
raspython3
0
630
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Hono + Inertia + React で LP を構築した話
oukayuka
2
190
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
300
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
800
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Docker and Python
trallard
47
4.2k
We Are The Robots
honzajavorek
0
320
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
The Language of Interfaces
destraynor
162
27k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The browser strikes back
jonoalderson
0
1.6k
A Tale of Four Properties
chriscoyier
163
24k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
460
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Transcript
DroidKaigi 2026 · Poster Session 数年滞っていたダークモード対応を およそ2週間で完了させる せる Human in
the Loop で大規模なUI移行を行うためのプロセス values/ 1 対応した画面数 Wave 1〜5 の累計 2025.11 2026.05 02 事前準備1: 変更を逐次mainにいれる基盤 画面間の一貫性が命 = 中途半端に公開できない。全 リリースに混ぜつつ未公開のまま進める土台を先に作る 必要がある。 surface_primary #FFFFFF に値を集約 valuesnight/ ダークモード対応 =「使う箇所から _light を 消すだけ」に変換 or DesignSystemに則って いない部分を修正する作業 事前準備2: iOS の対応を丸ごと input AI が darkmode/wave_N の PR を作成 2 チーム(人間)が毎日ビルドを触って 成果物をレビュー へ iOS のダークモード対応 PR 約100本(2025.11– 2026.03) AI が時系列で確認し、対応の戦略・ハマった 問題点・人間の判断例を抽出 コンテキストとして活用できるように凝縮 Wave 1 のタスクリストを自動生成 し、 ループのはじめが効率よく回るように設計 フィードバックは ある? No 土台 連休 4/30–5/12 Wave 1 5/8–5/18 Wave 2 5/15–5/19 Wave 3 5/19–5/20 Wave 4 06 ★ 5/20–5/22 5/27–5/29 人間主導 ★ 9割完了 ループを支える 2 つの skill (① と ③ が参照し合う) /feedback-to-tasks フィードバックを 「AI 対応可」と「人間判 断」に二分し、AI 分は 1 タ スク = 1 コミットに分解 Wave が終わるたびに知見を skill へ書き戻す。同じ失敗は次の Wave で は起こらない ようになります。実質 1.5 日スプリントのアジャイル開発 のようなプロセスになります。 特に /feedback-to-tasks は AIに対応可能なものなのか、人間の判断が 必要なのかを蓄積した記録と、実際のコードベース両方を確認して 裏取りをすることで、その精度を高めます。人間が対応してほしいと 判断するスコープを小さくすることが最後の Wave 5 (人間主導による 対応)の作業時間を短くするために必要です。 なぜ大きな事故を防げたのか? ロジックを変えない 作業をリソース置換に限定し、失敗パターンを 「見た目が崩れている」のみになるようにした 2. Wave 反復の多重検査 同じ画面に複数の Wave・人 で何度もチェック が入るため、ヌケモレが小さくなる 3. Human-in-the-Loop 毎日のエンジニアのレビューに加え、PdM / デザイナーも一部Waveでは入り、 対応のスコープと色味の細やかな判断を行った 1. 07 End · ダークモード対応 完了 色置換マップと Compose / styles.xml / drawable の罠 を Wave ごとに積み上げる ナレッジベース GW タイトルの「2週間」= Wave 1 着手 5/8 → Wave 4 マージ 5/22。ここまで AI 主導で対象の 9 割が完了。 AI が判断を委ねた残りは Wave 5 で人間主導に切り替えて 5/29 に回収し、リリースを行いました。 事前準備含めて約 1 ヶ月(GW 含む)、品質担保のE2E テストでもほとんど問題は出ませんでした。 フィードバックを一箇所に集約し、 ナレッジとして蓄積 /darkmode-plan 結果と作業タイムライン AI 主導(実装中は流し見) #111111 FeatureToggle OFF の間は values-night が 読まれない = 何度リリースしても未公開の まま 03 の定義 1 3 残り 1 割は Wave 5(人間主導) Wave 5 → surface_primary_light semantic_colors.xml values/ 05 画面ごとに完璧を目指さず、広く浅く全画面にダークモード対応を 行い、毎日チーム30分触ってフィードバックを集める。各試行を Wave と呼び、生成 → 暫定版配布 → レビュー → ナレッジ化を 1 サイクルとして反復する。人間が関与するのはレビューの タイミングだけで、それ以外 AI がタスク分解含めて自走し続ける。 既存カラーを全部 rename Wave 4 時点の完成度 100+ 画面を触った結果として Wave ループで自走させるプロセス Start · wave_1 9割 ToggleOnの後のデグレ修正 全 266 コミット中 240 04 Android 10 で登場以来「いつかやりた い」課題。他に優先するべき施策も多く あったため時間を作れなかった。 iOS側の対応を先に行い、DesignSystem 含めた基盤の構築を実行 実装はほとんどAIで、レビューはチーム で行う。対象の9割を約2週間の実働で 完成。 2019 AI 共著コミットの比率 レビュー → マージも約 1 日 なぜ数年、滞っていたのか 5件 1+N_evaw 01 9割 ≈ 日 1 Wave の生成時間 → seY 100+ values-night/ Let's discuss! 1. このループがうまく動作する条件は 「失敗を確実に検出できる」×「多重検査」× 「PdM/デザイナーの参加」だと考えています。 i18n、アクセシビリティ対応、大規模 rename… あなたのチームなら何に応用しますか? 2. iOSとAndroidで双方に機能開発をするときに どうやってお互いのコードベースのコンテキスト を共有し、AIによる効率的な開発に 繋げていますか?モノレポ化、ドメイン知識の 外部コンテキスト化、UI操作の自動化等... あなたのチームでの事例を話したいです! 3. UIに関する変更は Visual Regression Test のよ うな基盤を整備することで人の介在をさらに小さ くできる可能性を秘めています。このような基盤 をどう整備していますか? 判断例ごと学ばせ、特にDesignSystemに対応していない 画面への判断を iOS に準拠させる ※本ポスターは、実際の開発結果からClaude Code / Claude Design を使用して、まとめたものです。