О себе
• Из Одессы ☀️🌊⚓️
• 6+ лет опыта в web разработке
• Есть опыт 🛠 нативных Android и iOS 📱
• 👷 свой проект где тестирую 🔥 технологии в production
давным давно ⏳…
geekinformer.net
👓📰.ws
https://www.youtube.com/watch?v=17kGWJOuL
-A&list=PLNYkxOF6rcIAdnzEsWkg0KpMn2WJwMBmN
?
Android Instant Apps Progressive Web Apps
• Много переписывать
• Android 5+
• Ограничение на размер
модуля
• Ненавязчивая интеграция
• Desktop & Mobile
• Chrome 52+
My case
• 60% 🛠, 40% 📱
• 72%
• 60% 📱пришло с
Сможет ли PWA
сделать мой проект
лучше?
Приложение должно
загружаться
максимально быстро
Оптимизация загрузки
• Webpack Tree Shaking
• <link rel="dns-prefetch">
• <link rel="preload">
• <script async> 2x
0.5сек
0.1сек
Intersection Observer
~1mb
картинок
Custom Fonts
font-family: -apple-
system,BlinkMacSystemFont,"Segoe
UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open
Sans","Helvetica Neue",sans-serif;
~200kb
Axios
~12kb
Fetch API
после оптимизации
Скорость загрузки < 1сек
Shadow AMP
В будущем:
https://www.ampproject.org/docs/gu
ides/pwa-amp/amp-in-pwa
Быстрый доступ к
приложению каждый день
App install
banner
https://developers.google.com/web/fundamentals/engage-and-retain/app-i
nstall-banners
Простая авторизация
Credential API
https://developers.google.com/web/fundamentals/security/credential-management/
Open Tab Sign In
https://cli.re/smart-lock-web
Open YOLO
You Only Login Once
Простой шаринг
новостей
Desktop 👍
Mobile 👎
Web
Share
API
https://developers.google.com/web/u
pdates/2016/09/navigator-share
Возможность
контролировать аудио
и видео поток
Media Session API
Before After
https://developers.google.com/web/updates/2017/02/media-session
Push
notifications
https://web-push-book.gauntface.com/
Работа приложения
Offline
Service Worker
Service Worker Libraries
• Cache static files (sw-precache)
• Cache network responses caching strategies (sw-toolbox)
• Offline Analytics (sw-offline-google-analytics)
• Cache static files (workbox-precaching)
• Cache network responses caching strategies (workbox-routing)
• Use Background Sync API (workbox-background-sync)
• Offline Analytics (workbox-google-analytics)
https://developers.google.com/web/tools/workbox
Пользователь
должен знать что он
Offline
Network
API
Информация о
размере кэша
Storage
API
estimation
https://developers.google.com/web/update
s/2017/08/estimating-available-storage-
space
ОС не должна очищать кэш
в случае нехватки памяти
Storage
API
persistent
https://developers.google.com/web/updates/2016/06/persistent-storage
Интерфейс веб приложения
должен выглядеть как
нативный
Прокрутка большой
новостной ленты
Была ли боль?
1
2
https://www.kollegorna.se/en/2017/06/service-worker-gotchas/
Сколько времени
на внедрение PWA
?
• Web Share API - 5 минут
• Manifest.json - 10 минут
• Storage API - 10 минут
• Media Session API - 15 минут
• Credentials API - 5 часов
• Service Worker - 10 часов
Что c iOS?
“Нативные” фичи в
Safari
• App banner
• Full Screen Detection
• Apple Pay
• Airplay Video API
• 3D Touch
• Force Touch
• Push Notifications (Desktop)
• Reduced Motion Media Query
Стал ли мой проект лучше?
• На 10% больше запусков
веб-приложения с
домашнего экрана
• На 15% больше
посещений со
смартфонов
Преимущества
Недостатки
Спасибо за внимание
Timofey Lavrenyuk
fb.me/tlavrenyuk

Тимофей Лавренюк - Почему мне зашел PWA?