Ставка на ibeacon. Новинки мобильной индустрии в реальной...
TRANSCRIPT
Ставка на iBeaconlessons learned
О чем?• iBeacon
О чем?• iBeacon
• Запуск приложения
О чем?• iBeacon
• Запуск приложения
• Socket как альтернатива Push
О чем?• iBeacon
• Запуск приложения
• Socket как альтернатива Push
• Аналитика
Omnom
Покушал
Поймал официанта
Попросил счет
Принесли счет
Положили деньги или карту
Забрали счет
Поймал официанта
Принесли счет
Оставил чаевые
Ушел
Покушал
Поймал официанта
Попросил счет
Принесли счет
Положили деньги или карту
Забрали счет
Поймал официанта
Принесли счет
Оставил чаевые
Ушел
11 минут
Покушал
Достал телефон
Оплатил счет и оставил чай
Покушал
Достал телефон
Оплатил счет и оставил чай
10-20 секунд
Задачи• Ресторан?
Задачи• Ресторан?
• Стол?
Задачи• Ресторан?
• Стол?
• Получить и оплатить счет
Как определить стол?• QR
Как определить стол?• QR
• Указать ручками
Как определить стол?• QR
• Указать ручками
• Или…
lesson 1: iBeacon
iBeacon• UUID
iBeacon• UUID
• major + minor
iBeacon• UUID
• major + minor
• RSSI
почему iBeacon?• iOS 7+
почему iBeacon?• iOS 7+
• все кроме iPhone 4
почему iBeacon?• iOS 7+
• все кроме iPhone 4
• Android
iBeacons:• Estimote
iBeacons:• Estimote
• Stick-n-Find
iBeacons:• Estimote
• Stick-n-Find
• RadBeacon
iBeacons:• Estimote
• Stick-n-Find
• RadBeacon
• China unnamed
RedBear• UUID+major+minor
RedBear• UUID+major+minor
• Сила сигнала
RedBear• UUID+major+minor
• Сила сигнала
• Период вещания
RedBear• UUID+major+minor
• Сила сигнала
• Период вещания
• Безопасность
RedBear• UUID+major+minor
• Сила сигнала
• Период вещания
• Безопасность
• 2+ года работы
Геолокационный регион:• unique UUID
Геолокационный регион:• unique UUID
• >= 1 iBeacon
Геолокационный регион:• unique UUID
• >= 1 iBeacon
• Уведомления: вход + выход
Геолокационный регион:• unique UUID
• >= 1 iBeacon
• Уведомления: вход + выход
• Поиск
Геолокационный регион:• unique UUID
• >= 1 iBeacon
• Уведомления: вход + выход
• Поиск
• Запуск в фоне!!!
Apple учит работе в фоне
Apple учит работе в фоне• iBeacon не background mode!!!!!!
Apple учит работе в фоне• iBeacon не background mode!!!!!!
• ~10 секунд
Apple учит работе в фоне• iBeacon не background mode!!!!!!
• ~10 секунд
• > 10 секунд = Алерт
Apple учит работе в фоне• iBeacon не background mode!!!!!!
• ~10 секунд
• > 10 секунд = Алерт
• только 10 регионов
Как определить ресторан и стол?
• регион = 1 x UUID
Как определить ресторан и стол?
• регион = 1 x UUID
• ресторан = major
Как определить ресторан и стол?
• регион = 1 x UUID
• ресторан = major
• стол = minor
Мы запустились, но не знаем major+minor
Первые проблемы
Мир иллюзий
Для одного бикона
Найти расстояние!
Что хотели
Жизнь
Гипотеза про силу сигнала
PROFIT!!!11
Battery• сила сигнала почти не влияет
Battery• сила сигнала почти не влияет
• влияет период вещания
Боль 1Отваливающийся BLE
Боль 2
Боль 2Зависший BLE
РешениеДекодирование на серваке
Как готовить iBeacon• min 5 измерений
Как готовить iBeacon• min 5 измерений
• low signal strength = high accuracy
Как готовить iBeacon• min 5 измерений
• low signal strength = high accuracy
• BLE stack виснет (~1%)
Как готовить iBeacon• min 5 измерений
• low signal strength = high accuracy
• BLE stack виснет (~1%)
• фантомные буйки (~1%)
Как готовить iBeacon• min 5 измерений
• low signal strength = high accuracy
• BLE stack виснет (~1%)
• фантомные буйки (~1%)
• мобилка собирает данные
Как готовить iBeacon• min 5 измерений
• low signal strength = high accuracy
• BLE stack виснет (~1%)
• фантомные буйки (~1%)
• мобилка собирает данные
• обрабатывает сервер
Behind the magic Пришел в ресторан
Нашел бикон
Запустились в фоне
Нашел биконы
Отправили на сервак
Нашли стол?
Лежит на столе?
Пришел пуш
Попросили разбудить пушем Показали пуш
ДаНет
Job is done!
Flamp
iBeacon
+ iOS + Android
+ Геокодирование
+ Работа в фоне
+ Телефон = iBeacon
+ Магия
– Не стабильные
– Bluetooth = 5%
– $10+
lesson 2: Запуск приложения
Custom URL schemeomnom://app?config=test&user=test&password=test
Command line
Запуск приложения:• Запустить нужный экран
Запуск приложения:• Запустить нужный экран
• Разные серваки
Запуск приложения:• Запустить нужный экран
• Разные серваки
• Разные пользователи
Запуск приложения:• Запустить нужный экран
• Разные серваки
• Разные пользователи
• и.т.д.
Custom URL scheme• быстро реализовать
Custom URL scheme• быстро реализовать
• одна сборка
Custom URL scheme• быстро реализовать
• одна сборка
• быстрая отладка
Custom URL scheme• быстро реализовать
• одна сборка
• быстрая отладка
• config
Custom URL scheme• быстро реализовать
• одна сборка
• быстрая отладка
• config
• iOS + Android
Custom URL scheme• быстро реализовать
• одна сборка
• быстрая отладка
• config
• iOS + Android
• интеграция с другими приложениями
Custom URL scheme• быстро реализовать
• одна сборка
• быстрая отладка
• config
• iOS + Android
• интеграция с другими приложениями
• можно прокидывать в почте и SMS
lesson 3: Данные
Прокидывать данные• real-time
Прокидывать данные• real-time
• много
Прокидывать данные• real-time
• много
• гарантированно
Прокидывать данные• real-time
• много
• гарантированно
• iOS + Android
Пуши?• мало
Пуши?• мало
• не гарантированная доставка
Пуши?• мало
• не гарантированная доставка
• сложный workflow
Socket?
WebSocket?
Socket.io
Socket.io• авторизация
Socket.io• авторизация
• гарантированная доставка
Socket.io• авторизация
• гарантированная доставка
• реконект
Socket.io• авторизация
• гарантированная доставка
• реконект
• малый ping
Socket.io• авторизация
• гарантированная доставка
• реконект
• малый ping
• большой размер
Socket.io• авторизация
• гарантированная доставка
• реконект
• малый ping
• большой размер
• комнаты
Socket.io• авторизация
• гарантированная доставка
• реконект
• малый ping
• большой размер
• комнаты
• масштабируются
Socket.io• авторизация
• гарантированная доставка
• реконект
• малый ping
• большой размер
• комнаты
• масштабируются
• iOS + Android
lesson 4: Аналитика
Аналитика• готовое решение
Аналитика• готовое решение
• в реальном времени
Аналитика• готовое решение
• в реальном времени
• фильтры + воронки
Аналитика• готовое решение
• в реальном времени
• фильтры + воронки
• iOS + Android
Mixpanel
В аналитику должно уйти чуть меньше чем все*
Аналитика + iBeacon =Шли мимо
Зашли
Сели застол
Посмотрели счет
Оплатили
0 25 50 75 100
2
4
5
10
100
Аналитика + iBeacon =Шли мимо
Зашли
Сели застол
Посмотрели счет
Оплатили
0 25 50 75 100
2
4
5
10
100
Конверсия
Кто виноват?
Что делать?request 1 request-id
request N request-id
Мобилка request-id
Аналитикаrequest-id
Server
Аналитика• не пишите велосипед
Аналитика• не пишите велосипед
• специфичная специфика? – фичареквест / форк!
Аналитика• не пишите велосипед
• специфичная специфика? – фичареквест / форк!
• кто виноват?
Аналитика• не пишите велосипед
• специфичная специфика? – фичареквест / форк!
• кто виноват?
• тесты
Аналитика• не пишите велосипед
• специфичная специфика? – фичареквест / форк!
• кто виноват?
• тесты
• цепочка запросов? = request-id
Итого• iBeacon
Итого• iBeacon
• Запуск приложения
Итого• iBeacon
• Запуск приложения
• Socket.io
Итого• iBeacon
• Запуск приложения
• Socket.io
• Аналитика
Вопросы?
http://saintlab.com/codefest2015/