В offline и обратно

69
В offline и обратно Денис Ильин Songsterr 2016

Transcript of В offline и обратно

Page 1: В offline и обратно

В offline и обратно

Денис Ильин Songsterr

2016

Page 2: В offline и обратно
Page 3: В offline и обратно

О чем поговорим• Философия Progressive Web Apps

• Service Worker: за и против

• Инструменты

• Оптимизация мобильного веба

• Progressive Web Apps для бизнеса

3

Page 4: В offline и обратно

4

Веб в 2016

Page 5: В offline и обратно

Progressive Web App

1. Progressive

2. Responsive

3. Connectivity independent

4. App-like

5. Fresh

6. Safe

7. Discoverable

8. Re-engageable

9. Installable

10. Linkable

5

Page 6: В offline и обратно

Немного теории

Page 7: В offline и обратно

1. Прогрессивным

7

Работать с каждым пользователем в не зависимости от окружения используя метод постепенного улучшения как основной принцип работы.

Page 8: В offline и обратно

2. Адаптивным

8

Подстраиваться под любое устройство: десктоп, смартфоны, планшеты или что либо другое.

Page 9: В offline и обратно

3. Независимым от соединения

9

Используя Service Worker приложение должно работать в оффлайн режиме при прерывании или отсутствии соединения.

Page 10: В offline и обратно

4. Выглядеть нативно

10

Приложение должно соответствовать привычным для пользователя способам взаимодействия и навигации.

Page 11: В offline и обратно

5. Самообновляемым

11

Приложение должно контролировать процесс автоматического обновления посредством Service Worker API.

Page 12: В offline и обратно

6. Безопасным

12

Посредством использования HTTPS предотвращать перехват и подмену данных.

Page 13: В offline и обратно

7. Определяемым

13

Посредством W3C манифеста и регистрации через Service Worker приложение идентифицируется как «приложение» поисковыми системами.

Page 14: В offline и обратно

8. Удерживающим

14

Используя технические возможности мотивируем пользователя еще раз использовать приложение, например посредством push уведомлений.

Page 15: В offline и обратно

9. Легким в установке

15

Позволяет «сохранить» приложение на устройстве посредством добавления PWA в список установленных приложений без использования магазина.

Page 16: В offline и обратно

10. Легким в использовании

16

Для начала использования приложения достаточно открыть URL. Позволяет путем смены URL менять состояние приложения.

Page 17: В offline и обратно

Я говорю — Progressive Web App, ты думаешь —

Service Worker. Почему так?

17

Page 18: В offline и обратно

Service Worker ключевая технология, давшая жизнь PWA (но не единственная)

18

Page 19: В offline и обратно

Перейдем к практике

Page 20: В offline и обратно

Обычный цикл Service Worker

20

Page 21: В offline и обратно

Оффлайн

21

Page 22: В offline и обратно

Синхронизация

22

Page 23: В offline и обратно

23

Page 24: В offline и обратно

F. A. Q.

Page 25: В offline и обратно

Что делать браузерам, которые не поддерживают

Service Worker?

25

Page 26: В offline и обратно

Делаем fallback на Application Cache

26

Page 27: В offline и обратно

Application Cache? Я занимаюсь веб технологиями уже n-лет и ни

разу не слышал о нем!верни мне мой 2010

27

Page 28: В offline и обратно

Без трудностей не обойтись

• Проблемы синхронизации.

• POST-запросы не кэшируются.

• Игнорируются http заголовки.

• Нужно дописывать настройки в htaccess.

28

И это лишь малая часть проблем…

Page 29: В offline и обратно

Почему нет?

29

Page 30: В offline и обратно

Если все сайты захотят иметь свою offline версию,

что будет с кэшем?

30

Page 31: В offline и обратно

Варианты ответов:• Место на телефоне заканчивается также, как память в Google Chrome.

• При переполнении браузер падает в забвении и просыпается с чистеньким кешем.

• Сайты бьются за место под солнцем, переодически выталкивая друг друга из кеша.

• Управление кешем ложится на плечи пользователя.

31

Page 32: В offline и обратно

Варианты ответов:• Место на телефоне заканчивается также, как память в Google Chrome.

• При переполнении браузер падает в забвении и просыпается с чистеньким кешем.

• Сайты бьются за место под солнцем, переодически выталкивая друг друга из кеша.

• Управление кешем ложится на плечи пользователя.

32

Page 33: В offline и обратно

Замеры• Chrome/Opera: без ограничений

• Firefox: без ограничений, но уведомляет при 50Mb

• Mobile Safari: 50Mb

• Desktop Safari: без ограничений, но уведомляет при 5Mb

• Edge/IE10+: максимум 250Мb, уведомляет при 10Мb

33

https://www.html5rocks.com/en/tutorials/offline/quota-research/

Page 34: В offline и обратно

Могу ли я узнать сколько места занимает

мое приложение?

34

Page 35: В offline и обратно

Такая возможность есть, но๏ Quota Management Api

• Плохая поддержка

• Сложные синтаксические конструкции

๏ Storage Quota Estimate Api

• Экспериментальное, поддержка в Chrome/Firefox

• PWA ориентированное

• Простые promise-like конструкции

35

Page 36: В offline и обратно

Как это всё дебажить?

36

Page 37: В offline и обратно

• Service Worker библиотеки

• Developer Tools

• Что ещё я могу сделать?37

Page 38: В offline и обратно

sw-toolbox

38

Абстракция над Service Worker, которая без глубокого погружения помогает обеспечить offline приложению

Page 39: В offline и обратно

39

Page 40: В offline и обратно

40

Page 41: В offline и обратно

41

Page 42: В offline и обратно

42

Page 43: В offline и обратно

43

Page 44: В offline и обратно

๏ sw-precache

๏ sw-helpers

• sw-appcache-behavior

• sw-offline-google-analytics

44

Page 45: В offline и обратно

Chrome Dev Tools

45

Page 46: В offline и обратно

Мы уже приехали?почти

46

Page 47: В offline и обратно

Lighthouse

47

Auditing and performance metrics for Progressive Web Apps

Page 48: В offline и обратно

Всё конечно хорошо, но iOS не поддерживает PWA. Зачем они мне?

48

Один из аргументов почему организации не вкладываются в PWA

Page 49: В offline и обратно

Только потому что iOS не поддерживает все возможности

PWA, не означает, что они не будут работать на iOS.

Page 50: В offline и обратно

PWA на iOS

5010.667 3.208видео

Page 51: В offline и обратно

Раскадровка загрузки веб приложения

Page 52: В offline и обратно

Не забывайте про замеры и оптимизацию

• First meaningful paint (время появления основного контента)

• Speed Index (визуальная полнота страницы)

• Estimated Input Latency (готовность обрабытывать пользовательские команды)

• Time To Interactive (полная готовность к взаимодействию)

52доклад про метрики оптимизации PWA от Paul Irish

Page 53: В offline и обратно

Используйте:• App Shell

• Chanking & lazy-loading

• Tree shaking & dead code elimination

• HTTP2

• Отложенная инициализация

53

Page 54: В offline и обратно

Про бизнес

54

Page 55: В offline и обратно

Не все клиенты или потенциальные клиенты имеют ваше нативное приложение

55

Page 56: В offline и обратно

Аудитория мобильного веба в 3 раза больше и растет в 2 раза быстрее аудитории приложений

Page 57: В offline и обратно

57

Большинство пользователей смартфонов скачивают ноль приложений в месяц

Page 58: В offline и обратно

Чем быстрее мобильный веб, тем больше ваша

прибыль

58

Page 59: В offline и обратно

Анализ рынка от DoubleClick

«53% посетителей мобильного сайта уходят, если он не загрузится за 3 секунды».

59

Page 60: В offline и обратно

60

➡Каждая выигранная секунда скорости загрузки дает 2% увеличения конверсии. ➡Каждые выигранные 100ms увеличивают доход на 1%.

1 из 2 посетителей ожидает загрузки страницы в течении 2х секунд

Page 61: В offline и обратно

Пользователи могут извлечь выгоду из offline режима

61

Page 62: В offline и обратно

Пользователи могут извлечь выгоду из Push-notification

Page 63: В offline и обратно

Немного статистики• Washington Post увеличил ретеншен в 5х раз.

• AliExpress увеличил конверсию на 82% на iOS. В то время, когда общий показатель составил 104%.

• Flipkart увеличил конверсию на 70%

• …ваш проект

63

список можно продолжать ещё долго

Page 64: В offline и обратно

Время удивлений!

64

Page 66: В offline и обратно

Главная причина по которой iOS не должен остановить вас это тот факт,

что шаги, предпринимаемые для создания PWA, принесут пользу всем.

66

Page 67: В offline и обратно

Работа над PWA означает фокусировку на производительности. Вы должны убедиться, что UX оптимизирован для

мобильных устройств.

Page 68: В offline и обратно

Спасибо за внимание

Page 69: В offline и обратно

Вопросы?

69

/gizmoo

@followdarko

/dgizmo