dive into push notifications
TRANSCRIPT
Agenda
-WTF? How it works?
-iOS Push Notifications
-Android Push Notifications
-Nowadays
Definition
Push Notifications
Определение:
Push Notification позволяют приложению уведомлять
пользователя о новых сообщениях или событиях без
необходимости фактически приложению быть
открытым, подобно тому, как текстовое сообщение
делает звук и всплывает на экране.
Это отличный способ для приложений
взаимодействовать с пользователем в фоновом
режиме, будь то игра сообщает нам о некоторых
событиях, происходящих в игровом мире или просто
почтовая программа издает звуковой сигнал когда новое
сообщение появляется в почтовом ящике.
-Pull – запрос производится
клиентом, ответ пораждается
сервером
-Push – информация поступает от
сервера к клиенту
Pull vs Push
How it works?
-Mobile application & device
-Push service (APNS, GCM,…)
-3rd party server (Push provider)
Key players
1. Подписка на пуши
1. Подписка на пуши
2. Доставка пушей
2. Доставка пушей
iOS Push Notifications
1. Подписка на пуши
2. Отправка пушей
-3rd party server хранит токены устройств
-Отправляет пуши по этим токенам
-Production & development зоны
Пример payload
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
},
"acme1" : "bar",
"acme2" : 42
}
3. Получение пушей
4. APNS certificate & Provision profile
-Подписать приложение правильным
Provision profile
-Сгенерировать APNS сертификат и
загрузить его на 3rd party server
Чтоб все заработало нужно:
How To! http://qblx.co/YTX4lP
Android
Push Notifications
1. Подписка на пуши
-Подключение gcm.jar
http://developer.android.com/google/gcm/gs.html#libs
-Настрока AndroidManifest.xml
http://developer.android.com/google/gcm/gs.html#an
droid-app (step 1 & 2)
-Подписка
http://developer.android.com/google/gcm/gs.html#an
droid-app (step 3 & 4)
2. Отправка пушей
-3rd party server хранит токены (registration_ids)
устройств
-Отправляет пуши по этим токенам (обычный
HTTP запрос)
-Нет явно выделенных Production &
Development зон
Пример payload
{ "data": {
"score": "5x1",
"time": "15:10»
},
"registration_ids": ["4", "8", "15", "16", "23", "42"]
}
3. Получение пушей
Разработчик сам решает как
показывать сообщение пользователю
4. Project ID & API key
-Создать Google API project
http://developer.android.com/google/gcm/gs.ht
ml#create-proj и использовать project ID в
приложении
-Получить API key и загрузить на 3rd party
сервер
http://developer.android.com/google/gcm/gs.ht
ml#access-key
Чтоб все заработало нужно:
Ключевые отличия iOS & Android
-Размер payload (iOS: 256 байт, Android 4KB)
-UI (разработчик сам определяет действие по приходу пуша и
как его показывать в Android)
-Тестовая зона (В Android нет)
-Связь с APNS устнавливается по TLS, c GCM по HTTPS
-GCM более настраиваемый
Nowadays
mBaaS providers
mBaaS providers
• StackMob
http://developer.stackmob.com/tutorials/ios/Push-
Notifications
• Parse https://parse.com/tutorials/ios-push-notifications
• Kinvey http://devcenter.kinvey.com/ios/guides/push
• QuickBlox
http://quickblox.com/developers/SimpleSample-
messages_users-ios
• Pusher http://pusher.com/
• Urban Airship http://urbanairship.comhttp://servicesangle.com/blog/2012/10/23/mobile-backend-as-a-service-mbaas-all-hype-or-here-to-stay/