Статьи

Back-End как сервис для мобильных приложений

Если вы разработчик мобильных приложений, вам может быть интересно, как управлять пользовательскими данными в вашем следующем приложении. Должны ли вы использовать базу данных, выделенный сервер или, возможно, вы можете управлять только с внешнего интерфейса? Эта статья поможет вам принять лучшее решение.

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

Что касается мобильных и веб-приложений, мы часто говорим о фронтэнде и бэкэндах. В то время как внешний интерфейс определяет пользовательский интерфейс, взаимодействие с пользователем и представление информации, внутренний обрабатывает бизнес-логику, хранение данных и безопасность. Внешний интерфейс — это веб-браузер пользователя или мобильное устройство, а внутренний — сервер или серверы, на которых хранятся и передаются данные.

Растущее число современных мобильных приложений опирается как минимум на несколько функций, которые требуют серверной части. Наиболее распространенными примерами являются аналитика пользователей и использования, push-уведомления, расширенная безопасность, взаимодействие между пользователями (например, в многопользовательских играх или приложениях обмена сообщениями) и монетизация приложения с помощью рекламы.

С точки зрения разработчика мобильных приложений, серверная часть кажется совершенно другим миром, заполненным базами данных и серверами. Поэтому разработчики должны не только создавать красивые и производительные мобильные интерфейсы, они также должны быть осведомлены о сетевой инфраструктуре, такой как веб-серверы, программное обеспечение для управления базами данных, языки сценариев на стороне сервера и многое другое.

Кроме того, ожидается, что они будут экспертами в области современной криптографии и компьютерной безопасности, интеллектуального анализа больших данных и данных, сетей мобильной связи (мобильные приложения в основном работают на смартфонах, подключенных к сети мобильной телефонной связи) и постоянно растущем списке дополнительных технологий.

Естественно, из этого следует, что даже для разработки простого мобильного приложения с серверной частью разработчику необходимо освоить множество инструментов и языков, выходящих за рамки обычной разработки приложений. Конечно, такая ситуация не позволяет многим разработчикам интегрировать серверную часть в свои приложения.

Облачные вычисления вошли в мейнстрим, и XaaS (то есть BaaS, SaaS, PaaS и т. Д. — Back-End как услуга, Программное обеспечение как услуга или Платформа как услуга) уже начали пересматривать способы разработки, публикации программного обеспечения, и потребляется.

Основная идея похожа на аутсорсинг вашей внутренней разработки, обслуживания и управления другой стороне. Другими словами, серверная часть предоставляется разработчикам в виде веб-службы.

В то время как различные поставщики BaaS предлагают разнообразные функции благодаря большому разнообразию моделей ценообразования, большинство из них используют какую-то модель «freemium». Это означает, что основные функции, такие как хранение данных, аналитика пользователей / использования, push-уведомления и аутентификация, предоставляются бесплатно до определенного предела использования. Как только использование превышает этот лимит или запрашиваются дополнительные функции, взимается плата. Это позволяет легко создавать и запускать приложения на уровне бесплатного использования, а затем расширять до платного уровня по мере добавления клиентов.

Обычно разработчик должен использовать SDK и API поставщика BaaS для подключения своего приложения к серверной части.

Самым большим преимуществом BaaS является то, что он освобождает разработчиков от бремени создания и управления бэкэндами самостоятельно. Это позволяет разработчику сосредоточиться на более важных вещах, таких как создание привлекательного пользовательского интерфейса, который будет фактическим фактором успеха приложения. Кроме того, это помогает разработчику избежать крутых кривых обучения, обычно связанных с большинством внутренних технологий. Таким образом, это снижает стоимость и время разработки. Это также обеспечивает дешевый способ экспериментировать с идеями приложений и увидеть, как они работают в реальном мире.

Как и во всем остальном, BaaS имеет некоторые компромиссы. Самым большим недостатком является опасность того, что ваш поставщик BaaS может внезапно прекратить свою деятельность и закрыть сервис. В таком случае, даже если вы переключаетесь на другого провайдера, вам может потребоваться существенно изменить дизайн и перекодировать ваше приложение, поскольку новая служба может иметь совершенно другой API. Фактически, один из самых популярных поставщиков BaaS, Parse, недавно закрылся, что затронуло многих разработчиков (хотя инфраструктура Parse была выпущена по лицензии с открытым исходным кодом, и появились новые поставщики, чтобы предоставить BaaS-совместимый с Parse) ,

Другим недостатком является то, что настройка серверной инфраструктуры в BaaS часто ограничена. Это может означать, что некоторые функции, которые вы хотите использовать для своего приложения, недоступны.

Есть несколько вопросов, которые вы должны задать себе о каждом провайдере BaaS, прежде чем выбрать один для своего мобильного приложения.

Первый вопрос заключается в том, сможет ли провайдер удовлетворить потребности вашего приложения. Стоит отметить, что иногда переопределение области действия вашего приложения в соответствии с функциями, предлагаемыми поставщиком BaaS, может дать вам действительно потрясающие результаты. Но не отказывайтесь от функций, которые придают вашему приложению уникальность и привлекательность!

Большинство поставщиков BaaS предлагают свои услуги бесплатно только до определенного момента. Эта ограничивающая точка обычно определяется чем-то вроде количества вызовов API, количества активных пользователей или аналогичного параметра. Иногда разработчику может быть очень сложно прогнозировать объем использования или количество пользователей приложения. Так что вполне возможно в итоге получить платформу, которая не выгодна для разработчика.

Проверьте это заранее, спроецировав стоимость и доход для диапазона возможных значений, которые соответствуют использованию или количеству пользователей. Затем вы можете увидеть, сколько дохода приложения пойдет на оплату BaaS, и при необходимости скорректировать свою модель дохода. В качестве альтернативы разработчик может найти поставщика BaaS, чья модель ценообразования лучше всего соответствует модели дохода приложения.

Поскольку существуют ограничения для настройки, некоторые приложения могут быть сложными или невозможными для разработки с некоторыми из готовых предложений BaaS. Интересно, что некоторые поставщики BaaS предлагают более специализированные функции, предназначенные для определенной категории приложений, например, игр. Если ваше приложение попадает в такую ​​категорию, существует большая вероятность того, что требуемая функция поддерживается таким провайдером. Вам необходимо провести небольшое исследование о поставщиках BaaS, которые ориентированы на конкретную категорию приложений.

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

Теперь, когда мы получили представление о BaaS как с точки зрения разработчика, так и основателя стартапа приложения, давайте рассмотрим некоторые популярные пакеты BaaS и их функции. В то время как в отрасли доминируют коммерческие провайдеры, число начинающих провайдеров с открытым исходным кодом также, похоже, находится на подъеме.

Платформа Google BaaS, Firebase , предлагает обширный список функций, подразделяемых на три этапа, а именно: разработка, заработок и рост. Стадия разработки состоит из баз данных в реальном времени, аутентификации, облачных сообщений, хранилища, хостинга, лаборатории тестирования (для тестирования приложений на устройстве) и отчетов о сбоях. Будучи коммерческим провайдером, он также интегрировал свою платформу AdMob для монетизации вашего приложения. Далее на пути к росту вы найдете такие функции, как индексация приложений, AdWords, уведомления и многое другое.

Поскольку именно от Google, создателя Android, Firebase обычно рассматривается как платформа Android. Тем не менее, Firebase SDK также доступен для iOS .

Здесь, в Envato Tuts +, у нас есть несколько учебных пособий и курсов, которые помогут вам начать работу с Firebase. Проверь их!

  • Начните с Firebase для Android

  • Как создать приложение для Android-чата с помощью Firebase

  • Используйте Firebase в качестве Back-End

  • Правила безопасности Firebase

Другой коммерческий провайдер, Amazon Web Services (AWS), был одним из первых провайдеров PaaS. Он может похвастаться богатым набором облачных сервисов и сопутствующих инструментов, с контролем, если хотите, над всеми аспектами ваших виртуальных серверов. Фактически, многие другие поставщики облачных услуг используют AWS за кулисами.

Однако вся эта мощь обходится дорого — у AWS гораздо более крутая кривая обучения, чем у других поставщиков BaaS. Возможности включают мобильные SDK, уведомления по электронной почте и SMS, аналитику приложений и Device Farm для тестирования вашего приложения на различных мобильных устройствах.

  • Облачные сервисы
    Изучите Amazon Web Services
    Маркус Мюльбергер
  • викторина
    Тест: Amazon Web Services, знаете ли вы правильный инструмент для работы?
    Адам Браун
  • Amazon App Store
    Как перейти на Amazon In-App Покупки в Google
    Джефф Рейфман

Parse был популярной платформой BaaS, но, к сожалению, Facebook решил закрыть ее. Но не волнуйтесь, что Parse SDK умрет! Facebook отказался от хостинга parse.com в январе 2017 года, но Parse SDK был сделан с открытым исходным кодом. Над Parse SDK работают многие замечательные разработчики, и есть ряд совершенно новых веб-сайтов, которые предлагают хостинг в качестве сервиса.

Одним из лучших является Back4App . Он имеет бесплатный уровень с обширным хранилищем и бюджетом запросов, а также API для Android и iOS.

  • iOS SDK
    Разместите серверную часть Parse SDK для вашего iOS-приложения в приложении back {4}
    Франческо Франкини

Представляя свой высокоэластичный BaaS, Mesosfer является коммерческим провайдером с интересными функциями, поддерживающими мобильные, веб и даже встроенные приложения IoT.

В отличие от предыдущих участников этого списка, BaasBox является поставщиком BaaS с открытым исходным кодом. Статистика использования разработчиками и API, отображаемая на их веб-сайте, предполагает наличие конкурентоспособного и способного поставщика, сопоставимого с коммерческими поставщиками.

Еще один BaaS с открытым исходным кодом — Apache Usergrid (от создателя популярного веб-сервера). Usergrid поддерживает работу на традиционной серверной инфраструктуре, что позволяет развертывать собственную платформу BaaS. Возможности включают управление пользователями, хранение файлов и данных, а также поиск.

Microsoft добавила платформу BaaS в свой популярный набор облачных сервисов Azure. Мобильные службы Azure поддерживают push-уведомления, синхронизацию данных и аутентификацию. Для разработчиков, работающих в корпоративном домене, мобильные службы Azure также имеют надежную поддержку подключения к корпоративным сетям с использованием таких технологий, как Active Directory и VPN. Служба Azure Mobile Services, отражающая недавний охват Microsoft кроссплатформенной разработки, работает на Android, iOS и, конечно, на Windows Phone.

Apple представила свою платформу CloudKit вместе с iOS 8 в 2014 году. Хотя ее основной целью было выступать в качестве онлайн-базы данных для приложений iOS, CloudKit также предлагает множество других функций, включая push-уведомления. Одной из лучших особенностей CloudKit для некоторых разработчиков является то, сколько вы получаете бесплатно. Например, в CloudKit нет ограничений на количество push-уведомлений, которые вы можете отправлять своим пользователям.

Однако при использовании CloudKit следует помнить о том, что в настоящее время он недоступен на платформах, не принадлежащих Apple. Это означает, что если вы хотите создать версию приложения для Android, CloudKit не будет работать!

  • iOS 8
    Введение в CloudKit
    Дэвис Элли
  • iOS SDK
    Как использовать Apple CloudKit для push-уведомлений
    Дэвис Элли

BaaS — это практичное и своевременное решение проблемы добавления серверной части в ваши мобильные приложения. Это также помогает разработчику направлять свое собственное ограниченное время наилучшим образом. Растет число поставщиков BaaS, и теперь вы знаете, как их использовать!