Подтвердить что ты не робот

Добавление базы данных /backend в приложения для Android

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

Я новичок в программировании и начинаю с Java/Android. Где я должен начать узнавать об этом? Будет ли это база данных, которая мне нужна? Какие типы являются популярными или хорошими для изучения/использования?

Я читал о https://www.parse.com, и он выглядит интересным и простым в использовании, но я не хочу изучать что-то, что не является стандартом или что я мог бы использовать их только со своим клиентом.

4b9b3361

Ответ 1

Я никогда раньше не использовал Parse, но вам кажется, что вам не нужно беспокоиться о написании всего кода на стороне сервера. Недостатком является то, что он стоит денег, тем больше вы хотите его использовать, и вы также привязаны к их API и способу делать вещи. Если вы используете Parse, вам придется беспокоиться о написании кода для вашего Android-приложения для взаимодействия с Parse. Вы можете увидеть их документацию для получения подробной информации об этом.

Более дешевый маршрут предполагает немного большую работу. Вам понадобится

  • Сервер для размещения бэкэнд

  • Серверный язык (например, Java, PHP, Python.. list) для управления/обработки запросов из приложения Android.

  • Настройка базы данных (mySQL, PostgreSQL, Oracle и т.д.) с помощью требуемых схем (например, таблицы пользователей)

Общий поток: ваше приложение Droid отправит запрос http://yourserver.com/BackendFunction с параметрами этой функции. Язык сценариев на стороне сервера будет выполнять работу с бэкэнд (например, добавить пользователя в базу данных). Сервер возвращается к вашему приложению с некоторой информацией (обычно JSON или XML, независимо от того, что вы выберете) с соответствующей информацией, и ваше приложение отображает хороший вид этой информации.

Вам нужно будет исследовать, как запрашивать базы данных на любом серверном языке и базе данных, которые вы используете, и как отправлять/обрабатывать HTTP-запросы и ответы.

Ответ 2

Вы правы, что вам нужно какое-то хранилище данных на стороне сервера для хранения ваших данных. Это может быть традиционная база данных RDBMS (mysql или postgresql) или нечто более новое, как решение noSQL (mongodb, riak, couchdb). Parse выглядит круто, но я никогда не пробовал.

В моем недавнем проекте Android я использовал библиотеки Android Couchbase (http://www.couchbase.org) с помощью ektorp (http://www.ektorp.org), которые позволяют мне реплицироваться на серверный экземпляр CouchDB. Это было здорово по ряду причин:

  • использует HTTP для отправки данных по умолчанию
  • отправляет данные в формате JSON (без преобразования - привязки/сериализации)
  • простая команда "replicate" в ektorp, чтобы вытащить/сдвинуть данные между клиентом и сервером.

Кроме того, в зависимости от выбранного вами хранилища данных вам все равно нужно решить несколько вещей:

  • В каком формате вы будете отправлять данные на сервер? Я бы порекомендовал JSON. Другие варианты: XML или YML.
  • Как вы сможете преобразовать эти данные на клиенте для транспорта? Библиотека Jackson-json является удивительной, если вы выберете JSON.
  • Вам нужен средний уровень для защиты и/или перевода выбранного формата данных? Возможно, вы захотите проверить Spring MVC для создания веб-сервисов на основе отдыха, если вам нужен средний уровень.

Это может показаться сложным (серверные вещи обычно так часто чувствуют), но держитесь за это, и вы получите его!