Мобильные приложения: вызов современности

Сейчас едва ли какой-либо успешный интернет-бизнес может обойтись без собственного мобильного приложения. Его создание есть задача, которая в последнее время стала значительно легче, но и много сложнее. Противоречия нет. Сейчас как никогда много инструментов – фреймворков, сервисов, программных пакетов для разработки приложений любой сложности, но в то же время хорошее приложение создать становится все сложнее, потому что требования пользователей непрерывно растут, да и сложности разработки заключаются не только в используемых инструментах. Требования к приложениям сейчас высоки как никогда: оно должно современно выглядеть, быть функциональным, присутствовать на всех мобильных платформах, работать быстро и эффективно, и надежно сохранять пользовательские данные. Все эти требования можно разбить на ряд задач, которые необходимо решить:
- Аутентификация пользователя – Управление пользователями и провайдерами их интернет-личностей.
- Авторизация – Безопасный доступ к облачным ресурсам
- Синхронизация данных – Синхронизация пользовательских настроек между устройствами.
- Анализ поведения пользователей – Отслеживание пользовательской активности и поиск паттернов в ней.
- Управление медиаконтентом – Хранение и передача разнообразного медиаконтента (фото, аудио, видео) между пользователями
- Доставка медиаконтента – Автоматическое обнаружение мобильных устройств и доставка им контента при значительном числе абонентов.
- Отправка push-уведомлений – Оповещение пользователей о происходящих событиях через push-уведомления.
- Хранение общих данных – Хранение и доступ к данным, которые хранятся в NoSQL-БД
- Стриминг данных в реальном времени – Сбор данных об истории переходов внутри сервиса в реальном времени и адаптация сервиса на основе анализа этих данных.
Как справиться с этой задачей?
Amazon представляет три новых сервиса, которые позволят решать поставленные задачи эффективнее.
Amazon Cognito упрощает аутентификацию пользователей, хранение, управление и синхронизацию данных между платформами, устройствами и приложениями. Сервис учитывает сетевой статус устройства (онлайн/оффлайн), и позволяет безопасно хранить пользовательские данные (например, настройки приложений и файлы состояния игр). Cognito работает с многими существующими провайдерами интернет-личностей и поддерживает гостевой (анонимный) режим.
Amazon Mobile Analytics поможет в сборе, визуализации и осмыслении данных, которые касаются использования приложений, вовлеченности пользователей и масштабирования доходов. Данные для анализа могут собираться через AWS Mobile SDK или набор REST API. Метрики можно посмотреть в консоли управления AWS.
Наконец, обновленный мобильный
SDK AWS поможет создавать высококачественные мобильные приложения быстро и эффективно. Через SDK доступны сервисы, специально предназначенные для построения мобильных приложений, а также оптимизированные для использования мобильными устройствами коннекторы для популярных сервисов AWS (услуги стриминга, баз данных, хранения данных) и прочие сервисы AWS. SDK содержит общий механизм аутентификации, который работает во всех сервисах AWS, механизмы для кэширования данных на стороне клиента, интеллектуального разрешения конфликтов и прочие инструменты. С помощью SDK можно создавать приложения для платформ iOS, Android и Fire OS.
Разумеется, новые сервисы наиболее эффективны при использовании вместе – как между собой, так и с другими сервисами AWS. Представленные сервисы являются частью линейки вычислительных услуг AWS, которые доступны во всем мире из одного из дата-центров Amazon, расположенного в США, Южной Америке, Европе или Тихоокеанском регионе.
Вот каким образом новые и существующие сервисы AWS могут помочь с решением обозначенных задач:
А теперь – подробнее о новых сервисах.
Amazon Cognito
Amazon Cognito помогает идентифицировать уникальных пользователей, генерировать временные профили личности с ограниченным доступом, и синхронизирует данные.
Как известно, провайдер личности – это онлайн-сервис, который отвечает за выдачу идентифицирующей информации пользователям, работающим с сервисом или другими, которые признают идентификацию этого сервиса. Cognito создан с учетом необходимости взаимодействия с тремя крупнейшими провайдерами интернета (Amazon, Google, Facebook) и позволяет разработчикам сервисов сэкономить на создании своей системы авторизации. Используя Cognito, разработчикам не нужно задумываться о задачах опознания пользователей или хранения и безопасного шифрования паролей.
Cognito также поддерживает гостевой доступ (без авторизации). В сочетании с сервисами AWS Identity and Access Management и используя AWS Security Token Service, мобильные пользователи могут получать доступ к защищенным ресурсам AWS и даже сохранять данные в облаке, не создавая учетной записи или не производя вход в нее. Если же позже пользователь, который сохранял данные как гость, войдет или создаст учетную запись, Cognito сопоставит идентификационную информацию и объединит профили. Вот как все это работает:
Чтобы начать работать с Cognito, нужно:
- Зарегистрировать учетную запись AWS
- Зарегистрировать приложение в консоли провайдера личности и получить ID приложения или токен. Этот шаг не обязателен, возможно, также использовать только личности без идентификации.
- Создать Cognito identity pool (пул личностей) в консоли управления AWS
- Интегрировать с AWS Mobile SDK: хранилища и синхронизированные данные в находятся в массивах данных.
Пул личностей создается и настраивается в консоли AWS когда приложение опубликовано и используется.
В консоли появляются данные и метрики, которые относятся к пулу.
Теперь о возможностях синхронизации данных. SDK клиента управляет локальной (на мобильном устройстве) базой данных, которая работает на SQLite, так что многое доступно, даже если соединения с интернетом нет. БД работает как кэш и все операции чтения и записи обращаются в первую очередь к ней. Механизмы синхронизации Cognito обращаются к локальному кэшу и сравнивают локальную копию данных с облачной, внося изменения там, где необходимо. По умолчанию Cognito ориентируется на последнюю операцию записи, но это поведение можно изменить и ввести собственный алгоритм разрешения конфликтов. За каждую операцию синхронизации снимается небольшая сумма.
Размер набора данных может составлять до 1 Мб, а каждая личность до 20 Мб.
Набор данных можно создать или открыть и добавить пары ключ/значение несколькими строками кода:
DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"];
NSString *value = [dataset readStringForKey:@"myKey"];[dataset putString:@"my value" forKey:@"myKey"];
Стоимость услуг Cognito зависит от суммарного объема данных приложений, которые хранятся в облаке и количества операций синхронизации. Бесплатно предоставляется 10 Гб хранилища для синхронизации и 1 млн операций синхронизации ежемесячно в течении первых 12 месяцев. Сверх этих пределов – $0.15 за Гб дискового пространства и $0.15 за каждые 10,000 операций синхронизации.
В документации Cognito (
Android and
iOS) подробно описывается эта и другая функциональность.
Мобильная аналитика
Когда приложение создано и начинает работать, необходимо отслеживать показатели активности и вовлеченности пользователей, чтобы улучшить и тонко настроить приложение в соответствии с пожеланиями пользователей. Сервис Amazon
Mobile Analytics может предоставить все необходимые данные и инсайты, чтобы эффективно заниматься этой деятельностью.
Используя данные («события») которые собираются и загружаются приложением, Amazon Mobile Analytics автоматически вычисляет и обновляет следующие метрики:
- Число активных пользователей в день (DAU), месяц (MAU) и новых пользователей
- Показатель «прилипчивости» (DAU/MAU)
- Количество сессий и среднее число сессий на среднего активного пользователя
- Усредненный доход на ежедневно активного пользователя (ARPDAU)
- Усредненный доход на платящего ежедневно активного пользователя (ARPPDAU)
- Показатель удержания на 1, 3 и 7 дней
- Показатель удержания на 1, 2 и 3 недель
- Индивидуализированные метрики
Чтобы приложение могло загружать события, нужно создать «пул личностей», а вызывать соответствующие функции отчета можно через AWS Mobile SDK или REST API. Есть три типа событий:
- Системные – Начало или конец сессии
- Покупки внутри приложения – Транзакции.
- Особое – Специфические действия внутри приложения.
Когда вы используете AWS Mobile SDK, системные события – начало и конец сессии – отсылаются автоматически. Отсылка событий других типов должна производиться самим приложением.
Все метрики доступны в консоли управления AWS, разбитые по вкладкам:
На главной странице – общая информация о приложении и ваших пользователях:
По щелчку на вкладке открывается более полная информация:
Данные можно фильтровать по приложению, временному промежутку или платформе:
Стоимость зависит от количества событий, генерируемых вашим приложением каждый месяц. Первые 100 млн событий бесплатно, дальше – $1 за каждый миллион событий.
AWS Mobile SDK
И, наконец, обновленный и расширенный AWS
Mobile SDK, который значительно упрощает процесс разработки приложений для платформ iOS, Android и Fire OS. Вот что нового было добавлено:
Преобразователь объектов – новая технология отображения объектов, внедренная в DynamoDB для iOS упрощает доступ к DynamoDB с мобильного приложения. Эта технология конвертирует клиентские классы в таблицы Amazon DynamoDB. Программистам не приходится писать код, который конвертирует объекты в таблицы и наоборот. Индивидуальные экземпляры объектов отображаются, как объекты в таблице, которые можно создавать, считывать, обновлять, удалять и запускать запросы.
Менеджер передачи данных S3 (S3 Transfer Manager) – это дополнение к S3 упрощает передачу файлов в хранилище S3 (в обоих направлениях), оптимизируя скорость работы и надежность. Теперь передачу файлов можно поставить на паузу, возобновить или отменить через API. S3TransferManager для iOS перестроен и теперь использует BFTask. У него новый, более понятный интерфейс, все операции теперь выполняются асинхронно.
Улучшения для Android и Fire OS – помимо сервисов, перечисленных выше, SDK теперь поддерживает Amazon Kinesis Recorder. Этот отказоустойчивый сервис записи потоков данных с мобильных устройств, который поддерживает все последние новинки SQS, SNS, и DynamoDB. Он позволяет завершать активные запросы, прерывая соответствующий поток.
Улучшения в работе с iOS / Objective-C – SDK поддерживает ARC и BFTask и следует лучшим практикам для использования Objective-C. Также поддерживаются
Cocoapods и новый язык программирования Apple —
Swift.
Комментарии (0)
Добавление комментариев доступно только зарегистрированным пользователям. Используйте свою существующую учетную запись для авторизации. Если у Вас еще нет учетной записи на сайте ее можно создать пройдя несложную процедуру регистрации. Кстати, для входа на сайт, наравне с учетной записью на cloudzone.ru, можно использовать аккаунт из следующих популярных сервисов: Яндекс, Facebook, Google и LinkedIn