Я разработчик Android и хочу создать приложение, которое показывает пользователей на карте и выполняет задачи в зависимости от их местоположения.

Вся модель приложения должна работать на сервере. Мне нужен API, который:

  • Получает местоположение пользователя
  • Выполняет расчеты на основе местоположения пользователей
  • Отправляет ответ конкретным пользователям с результатами

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

Не могли бы вы подсказать мне способ создания сервера?

Я проверил платформу Google Colud и это видео. В видео рассматривается соединение между приложением и сервером, но что мне действительно нужно, так это кодировать модель и развертывать ее в облаке.

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

Можете ли вы предложить мне учебное пособие, в котором рассказывается о процессе создания облачного сервера для мобильного приложения?

12
BabbevDan 3 Сен 2016 в 23:24

3 ответа

Лучший ответ

Это очень сложный вопрос. Я не рекомендую использовать «готовое» решение, такое как FireBase, потому что еще сложнее преобразовать его в «правильный» API позже, когда он вам понадобится. Если вы знаете Android, значит, вы знаете Java, и у вас не возникнет проблем с обучением работе с такой платформой, как Spring Framework, которую я рекомендую. Java на внутреннем сервере нуждается в контейнере сервлетов Java, таком как Tomcat. Сначала вы должны настроить для этого на своем компьютере среду разработки. Я рекомендую поискать учебники Spring Framework для этого, то есть учебники Spring Framework REST.

Во-вторых, вам понадобится база данных, такая как MySql или MongoDB, для хранения данных. Spring поставляется с готовыми подключениями к большинству наиболее распространенных баз данных, поэтому работать с ними довольно легко.

Когда вы будете готовы развернуть свой сервис, я рекомендую использовать PAAS, например Heroku.com, где вы можете сначала запустить свой сервис бесплатно. Таким образом, вы сможете сами все контролировать, а также получите полезный навык.

16
breakline 3 Сен 2016 в 20:40

Поскольку вы пришли из фона JAVA, вам просто нужны некоторые базовые строительные блоки, и все будет в порядке.

  • Используйте PASS: они возьмут любые DevOps с вашей стороны, что будет большим облегчением, учитывая, что вы ничего не знаете на стороне сервера. Я рекомендую использовать Heroku или App Engine. Вот руководство по App Engine с JAVA наверху. https://cloud.google.com/appengine/docs/java/

  • База данных: не уверен, как вы храните и управляете своими пользовательскими данными на данный момент, но если вам нужна база данных, сейчас доступны различные из них. Причина, по которой Firebase является лучшим предложением, заключается в том, что она использует режим реального времени и дает вам контроль на вашей стороне, не тратя много времени на вашу сторону.

  • API: вы берете геолокацию пользователя и отправляете ее на сервер. На сервере вам нужно будет преобразовать это в реальное местоположение и любую другую логику. Для этого вам нужно будет использовать Google GeoLocation и API обратного геокодирования. Найдите apis здесь: https://console.cloud.google.com/apis/

Кроме того, если это поможет, App Engine и Heroku предлагают бесплатные ограничения, и их должно быть достаточно для вашего варианта использования.

1
Vikram Tiwari 4 Сен 2016 в 01:35

Поскольку у вас ограниченный опыт разработки на стороне сервера, я бы предложил использовать платформу backend-as-a-service. Этот подход имеет преимущества, позволяющие вам сосредоточить свое время на кодировании клиента там, где находятся ваши конкурентные преимущества, и позволяет вам использовать многолетний опыт разработки на стороне сервера без необходимости наращивать технологию. Это также означает, что вы можете быстро выполнять итерацию и тестировать идеи функций с меньшим риском.

Есть несколько вариантов, но в вашем случае вам понадобится что-то, что обеспечивает достаточную гибкость для реализации настраиваемой логики и настраиваемой модели данных. Некоторые платформы позволяют создавать полноценное серверное приложение с конечными точками REST api и автоматически заботиться о развертывании, безопасности и управлении. Некоторые примеры поставщиков серверных услуг можно найти здесь https://en.wikipedia.org/wiki/Mobile_backend_as_a_service < / а>.

Некоторые платформы на самом деле позволяют создавать полноценные пользовательские приложения без написания кода, а некоторые из них предоставляют готовые компоненты (например, чат, списки лидеров и т. Д.), Но менее гибкие.

Вот список поставщиков Backend-as-a-service:

Вы не предоставили конкретных сведений о задачах, которые хотите реализовать на бэкэнде, но вполне вероятно, что вы могли бы удовлетворить свои требования с помощью простого API REST, который принимает данные о вашем местоположении, выполняет бизнес-логику, считывает или записывает из вашей модели данных и возвращает все данные, которые нужны вашему клиенту. (Извините, я не могу уточнить ваши требования). Если вы имеете дело с конфиденциальной информацией, такой как данные о местоположении, я настоятельно рекомендую защитить api с помощью TLS / SSL (например, https) или убедиться, что используемая вами платформа обеспечивает это.

0
gener 16 Июл 2018 в 22:55