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
Что не так с мобильным вебом
Search
Den Ilin
December 09, 2017
Programming
0
70
Что не так с мобильным вебом
09.12.17
RNDJS4
https://vk.com/rndjs
Den Ilin
December 09, 2017
Tweet
Share
More Decks by Den Ilin
See All by Den Ilin
Модель принятия решений или От идеи К релизу
dgizmo
0
30
Other Decks in Programming
See All in Programming
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
CSC307 Lecture 07
javiergs
PRO
1
560
今から始めるClaude Code超入門
448jp
8
9.1k
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
CSC307 Lecture 02
javiergs
PRO
1
780
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
140
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Un-Boring Meetings
codingconduct
0
200
Music & Morning Musume
bryan
47
7.1k
Balancing Empowerment & Direction
lara
5
900
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The SEO Collaboration Effect
kristinabergwall1
0
350
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Leo the Paperboy
mayatellez
4
1.4k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
[SF Ruby Conf 2025] Rails X
palkan
1
760
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Transcript
Что не так с мобильным вебом? illustration by Alleaume Jeremy
Денис Ильин Songsterr
None
Баги браузеров Баги мобильного веба То что не исправить Нативный
веб?
Статистика мобильного веба за 2017 /netmarketshare.com Safari 28 % Chrome
58 % Chrome Safari UC Browser Opera Mini Android Browser Остальные
Баги Браузеров
Особенности Chrome
/video
Pull-to-refresh • touch-action: none • overflow-y: hidden • e.preventDefault() все
тачи верхней части экрана • via chrome://flags (disable-pull-to-refresh-effect) https://goo.gl/oX2K5a
Overflow glowing • position: absolute div блок • e.preventDefault() все
тачи верхней части экрана
Особенности Safari
/video
Swipe back/forward window.history.replaceState(null, null, "#" + url) /video
/video
Controls • «Мертвая зона» в 44px. Хочешь контролы снизу, размещай
не ниже этого значения. • Сделай панель видимой всегда! • Хак: удвой кастомную панель до 88px, по проведенным исследованиям пользователь кликает в центр/верхнюю границу кнопки. /video
Варианты решения Tjournal Songsterr concept
Остальной мир
Show/hide url bar
Не нужно ломать поведение браузера. Только если очень хочется.
/video
Keyboard disappear document.activeElement.blur() ✅ /video
Button/input highlight • :hover, :focus, :active, outline • tap-highlight-color: transparent
а кақ же A11Y?
Баги Мобильного Веба
Анимации
Как сделать гладкие анимации? • translate: transform() • will-change •
What forces layout/reflow и csstriggers.com • requestAnimationFrame() • анимации на js, а не css (прерываемые) • частный случай Web Animations Api
https://dassur.ma/things/120fps/#angle-2-the-main-thread-is-the-ui-thread
position: fixed
www /video
/video
/video
/video
Пути решения overflow: hidden на html и body ✅
Пути решения Слушаем touchmove, если касание происходит вне position:fixed блока,
то e.preventDefault().
Пути решения • (scrollTop === 0) iOS думает, что скроллим
body. touchstart + touchmove проверяем направление скролла, ставим e.preventDefault(). • Форсированно ставим scrollTop = 1, получаем резиновую ленту на iOS ✅
Перестрахуемся! Ставим ::before / after псевдоэлементы
overscroll-behaviour
Спасибо Константину Земцовскому, команда ВКонтакте http://sidebar.imkost.com
/video
Sidebar navigation https://googlechromelabs.github.io/ui-element-samples/side-nav
CSS: portrait/landscape
@media screen and (orientation: landscape) and (min-aspect-ratio: 13/9) ✅
Есть 2 способа исправить ошибку: • написать хак • изменить
дизайн
То что не Исправить!
Существуют решения вроде NoSleep.js, но стабильной работы нет Display sleep
/video
Infinity Scroller https://developers.google.com/web/updates/2016/07/infinite-scroller /video
/video
Схлопывание поиска iOS ❌ /video
«Что мертво, умереть не может»
Нативный Веб?
None
Проблемы с иконками и названиями Twitter Twitter Lite YouTube YouTube
Standalone mode
Без Service Worker на iOS грустно
Веб приложения не хранят стэйт /video
Нативный мобильный веб определенно сохранит больше места на телефоне
Какое приложение выбрать мобильное или нативное?
Лучше один раз попробовать, чем сто раз услышать
Вопросы? @followdarko @followdarko /dgizmo