Владимир Никонов "Вызовы при разработке enterprise продукта"
Azure Mobile Backend
1. Azure back-end для
iOS
и Android
Особенности
разработки
и
быстрый
старт
Виталий
Баум
vitaly.baum@gmail.com
@butaji
2. Структура
доклада
• Требования
к
мобильному
приложению
• Особенности
реализации
• Практические
советы
• Как
быстро
построить
прототип
http://bit.ly/1819mzC
3. Dealer Mobility
• Мобильная
платформа
для
автодилеров
Новости,
спецпредложения
Запись
на
ТО,
личный
кабинет
Оповещения
с
помощью
push
4. Ресурсы
• Серверная
команда
– Разработчики
.NET
• Мобильная
команда
– Разработчики
iOS
– Разработчики
Android
5. Контракт
взаимодействия
• Серверная
команда
не
знает
что
писать
• Клиентская
команда
ждёт
пока
серверная
напишет
что-‐нибудь
• Контракты
бесполезно
передавать
с
помощью
POCO
6. Протокол
взаимодействия
• HTTP REST/JSON
• Запросы
через
HTTPS + AppKey
Проблема
протокола:
• Версионирование
• Решено
через
/api/v1/…
9. Что
нужно
для
приложения?
• Хранение
данных
(База,
Файлы)
• Пуш
уведомления
• Управление
пользователями
• Трансляция
звука/видео
• Аналитика
использования
10. Наш
случай
• Есть
.net разработчики,
которые
умеют
хорошо
готовить
SQL Server
• Есть
требование,
что
продукт
можно
ставить
On Premise
11. Хранение
данных
В
Azure есть:
• Реляционное
хранилище
• Blob storage
Решение:
• SQL Server + Entity Framework
21. Пуш
уведомления
• Azure Worker Role
• PushSharp
• Пул
сообщений
(почта/пуши/смс)
– http://sendgrid.com
– http://twillio.com
22. Пуш
уведомления
• Apple Push Notification Service
– The maximum size allowed for a notification
payload is 256 bytes
• Google Cloud Messaging
– Message can be up to 4kb in size
23. Управление
пользователями
• Кастомная
реализация
– Basic auth
– Facebook, twitter, vk.com, odnoklassniki
– Профили
пользователей
• Общий
AppId на
серверном
и
мобильном
приложении
24. Аналитика
использования
• Приложение
использует
Flurry, Google
Analytics
• Админочка
использует
flurry api, чтобы
показывать
красивые
графики
пользователям
25. Аналитика
использования
• Аудит:
логирование
всех
вызовов
методов
– Статистика
просмотра
данных
– Статистка
регистраций
пользователей
– Статистика
действий
пользователей
28. Backend as Service
• Windows Azure Mobile Services
– Windows Store
– Windows Phone 8
– iOS
– Android
– HTML/JavaScript
– REST API
29. WAMS: iOS,Android
• Есть
SDK для
упрощения
доступа
к
данным
– Абстракция
над
подключением
и
таблицами
– Асинхронные
запросы
с
callback’ами
для
получения
данных
• Язык
запросов
33. WAMS REST API
-‐ Можно
бесшовно
поменять
оснастку
на
Web Api (OData Query Options)
34. Плюсы
и
минусы
WAMS
• Callback hell
• Debugging
• Source control
35. Рекомендации
по
использованию
WAMS
• Отключить
Dynamic Scheme
• Четко
провести
грань,
когда
прототип
стал
приложением
и
заранее
запланировать
миграцию