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
pixivコミックのLiquid Glass対応
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
atomic
April 23, 2026
Programming
40
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
pixivコミックのLiquid Glass対応
atomic
April 23, 2026
More Decks by atomic
See All by atomic
pixivコミックでのXcode16対応
atomic928
0
180
新卒AndroidエンジニアがOJTで学んだこと
atomic928
0
180
Other Decks in Programming
See All in Programming
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
0
370
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.2k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
270
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
110
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
420
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.7k
Cloudflare is Agents
chimame
0
190
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
ALB ログから Trace を気合で繋げる技術
fohte
7
860
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
53
34k
Featured
See All Featured
Speed Design
sergeychernyshev
33
2.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
490
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Optimizing for Happiness
mojombo
378
71k
Transcript
pixivコミックのLiquid Glass対応 2026/04/23 @atomic
atomic • 2024年4月Androidエンジニアとしてピクシブに新卒入社 • 同年7月からiOSに転向 • 現在 pixivコミックSection iOSエンジニア 2
3 Before After Liquid Glass 対応版 リリースしました 🎉
アジェンダ • 全画面に影響するデザイン変更をどう進めていったのか? • 限定的なケースでしか発生しないであろう問題の対応集 4
どう進めていったのか? 5
Liquid Glass対応の期限 • Xcode 26では無効にするオプションが用意されている • Xcode 27から強制適用が想定されるため、それまでに対応が必要 ◦ Xcode
27のリリースが2026年9月ごろ ◦ Xcode 27へのアップデート期限が2027年4月ごろ 6
スケジュール 7 8月末 iOS陣でLiquid Glass対応をどう始めるか相談 PdM・デザイナー向けに情報をまとめ共有 9, 10月 工数の洗い出し・リリーススケジュールの決定 11月
~ 3月 実装 3月末 Liquid Glass対応版リリース 🎉
Liquid Glass対応への基本スタンス • 致命的なレイアウト崩れの修正を優先 ◦ オプトアウトを解除して壊れた箇所の修正がメイン ◦ カスタムビューに Liquid Glass
effect をつけることはしない ◦ Liquid Glass のために画面構成を変えたりはしない • コミックに最適なデザインの見直しは行った ◦ ナビゲーションバーからブランドカラーが無くなるので、それに合わせたデザインにした 8
タスク洗い出し • Liquid Glassを適用した状態のアプリをチーム内で配信し、PdM・デザイナー含め て触ってもらい対応が必要な箇所を洗い出した • 気になる箇所を書き出し、それぞれ対応するか判断し工数を見積もった 9
タスク洗い出し • ナビゲーションバー・タブバーの対応については各画面の構成をパターン化し、そ れぞれで工数を見積った 10
スケジュール決め • それぞれでの工数見積もりの結果、1人50営業日(約2.5ヶ月)かかるという結論に なった ◦ iOSエンジニア2名で開発をしている ◦ pixivコミックは 2012年6月6日 から続けているサービスで、画面数も80近くあり規模が大きい
• 2026年4月30日リリースを目標に決まった ◦ 差し込みのタスクを考慮して余裕を持ったスケジュールにしていたが、実際にはほとんど差し込みは入ら なかったのに、ほぼ目標通りのスケジュールになったため見積もりの1.5倍ほどの時間がかかった ◦ ナビゲーションバーの色を無くす、ビューアとその他画面で色の傾向が逆、後述するレアケースな問題の 対応により想定より時間がかかった 11
限定的なケースでしか発生しない問題の対応集 12
注意 • 紹介する事例は、特定の画面や実装に依存する「極めて限定的なレアケー ス」が中心です • そのため、根本解決ではなく「暫定的なワークアラウンド」としての対応が 多く含まれます • 情報の少ない課題に対し、知見を共有することで誰かの参考になることを目 的としています
13
iPadでタブバーが機能しなくなる 14 ❌ ✅
iPadでタブバーが機能しなくなる 前提 • iPadOS18でタブバーの位置が変わってしまうため、従来通り下に配置するためタ ブの要素をコピーしたタブバーを使っていた • iPadのときは既存のタブバーは非表示にし、アイテムや高さをコピーしたタブバー をaddSubViewする形 15
iPadでタブバーが機能しなくなる • 原因 ◦ selectedItemの同期をviewWillSubviewsでしか行なっていなかった • 解決策 ◦ UITabBarControllerDelegateでもselectedItemの同期をしてあげる必要があった ◦
元々はviewWillSubviewsで記述するだけで、勝手に機能してくれていたがiPadOS26からは機能しなく なった 16
アイコンが動的なテーマ切り替えに追従しない 17 ❌ ✅
• 原因 ◦ Image.xcassetsでライト・ダークテーマ用のそれぞれのアイコンを設定している ◦ 通常は動的にどちらのアイコンを使うかを選んでくれるが、TabBarItemの画像をStoryboardで設定せず にコードで指定していた場合、動的切り替えが機能しない アイコンが動的なテーマ切り替えに追従しない 18
アイコンが動的なテーマ切り替えに追従しない • 解決策 ◦ 1. コード指定をせずStoryBoardで設定する ◦ 2. .withTintColor(_ color:
)で色を指定する ▪ アイコンは切り替わらないが、指定したカラーがダーク・ライトで変わるなら正しく動く 19
ナビゲーションバーのブラーがかからない 20 ❌ ✅
ナビゲーションバーのブラーがかからない • 原因 ◦ UIScrollViewを継承していない場合、ブラーがかからない ◦ ただのUIViewをconstantやtransformで動かしているだけ ◦ 例えば、TableView +
Headerの画面構成で Headerは TableViewの方のスクロールに合わせて constant を動かす場合 • 解決策 ◦ 1. 画面全体をTableViewやCollectionViewで書き換える ◦ 2. constantで動かすUIViewをUIScrollViewにする ▪ 全体をScrollViewにするのが難しい場合 ▪ ただブラーが遅れてくる問題がある。可能なら1.で修正したい 21
アクセサリビューがキーボードに食い込む(UIKit) 22 ❌ ✅
アクセサリビューがキーボードに食い込む(UIKit) • 原因 ◦ inputAccessoryViewにUIToolbarを直接渡していた • 解決策 ◦ 上方向に少し浮かせる拡張を作る 23
アクセサリビューがキーボードに食い込む(SwiftUI) 24 ❌ ✅
アクセサリビューがキーボードに食い込む(SwiftUI) • 原因 ◦ .toolbarにToolBarItemGroup(placement: .keyboard)で配置していた • 解決策 ◦ .safeAreaBar(edge:
bottom)にして中身のButtonに.padding(.bottom, )をつける 25 ❌ ✅
アクセサリビューがキーボードに食い込む(SwiftUI) • 注意点 ◦ .toolbarのままpaddingをつけない ▪ ボタン自体が伸びてしまうため ◦ .buttonBorderShape(.circle)をつける ▪
楕円になってしまうため ◦ .safeAreaBarの中でbuttonStyle(.glassProminent)のボタンを使う場合、.foregroundStyleをつける ▪ ダークモードにしても画像の色が変わらないため 26
ScrollViewのsubviewが透けてしまう問題 27 ❌ ✅
ScrollViewのsubviewが透けてしまう問題 • 原因 ◦ タブバー付近でsubViewが透けてしまい、ScrollViewが見えるが、 ScrollViewが透明でさらに後ろのViewまで見えていた • 画面構成 ◦ ScrollViewは親viewの全体に制約がついている
◦ ScrollViewのbackgroundColorは透明でsubViewがない部分は 親Viewのコンテンツが見えている 28
ScrollViewのsubviewが透けてしまう問題 • 解決策 ◦ 1. ScrollViewの背景をsubviewの背景色にする ▪ 親Viewを見せる必要がない場合 ◦ 2.
subviewの後ろに背景色を持ったUIViewを配置する ▪ 親Viewを見せる必要がある場合 29
pixivコミックのLiquid Glass対応 2026/04/23 @atomic