Архитектура приложения для Android с использованием GWT

#android #gwt

#Android #gwt

Вопрос:

Мне нужно создать приложение для Android с использованием Java, которое может отправлять запрос на чтение или запись некоторых данных в «базу данных» или аналогичное хранилище данных на веб-сервере Google (с использованием технологии GWT). Приложение Android должно иметь возможность аутентифицировать пользователя с помощью учетной записи Google, отправлять запрос на сервер для добавления данных в базу данных на сервере, получать данные с сервера. Я хотел бы знать, какой наилучший подход и архитектуру я должен использовать? Какой механизм я должен использовать для получения ответа на данные по сети (RPC, GET request)? Что я должен поместить на стороне сервера (сервлет, …)? Есть пример, как создать приложение gwt: которое запускает 1. javascript в браузере 2. servlet, service, ServiceImpl, serviceAcynch и т.д… Я думаю, что это бесполезно для моего приложения, потому что мне нужно напрямую получать и отправлять данные на сервер / с сервера.

Мне нужен обмен данными с сервером GWT, чтобы получить / обновить координаты для моего Google MapView. Поэтому мне нужно использовать механизм обмена данными между клиентским приложением Android и GWT.


Зачем мне это нужно на Android? Я должен иметь возможность определять местоположение GPS устройства Android и обновлять данные с помощью веб-сервера, а затем отображать положение моего устройства Android на карте. Мне нужен GWT для хранения, размещения, возврата данных о местоположении (например, для отображения посещенных местоположений). Должно ли оно быть построено как родное приложение для Android? Как я могу обновить, получить данные с сервера GWT?

Комментарии:

1. Вы только что описали мобильное веб-приложение. Я не вижу никакого смысла в разработке этого как собственного приложения.

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

3. Хотя, как отмечали здесь другие, вы на самом деле не описываете собственное приложение, если вам нужно собственное приложение для обнаружения (app Store) или по какой-либо другой причине, которую вы не упомянули, вы можете захотеть взглянуть на что-то вроде PhoneGap и что-то вроде GWT Mobile в сочетании с ним. Конечно, вам не обязательно использовать ни то, ни другое для выполнения того, что вы описываете, но, поскольку вы, возможно, уже знакомы с GWT, возможно, стоит изучить их.

4. Должен ли я использовать Google App Engine вместо GWT? для того, чтобы: «Мне нужен обмен данными с сервером GWT, чтобы получить / обновить координаты для моего Google MapView. Поэтому мне нужно использовать механизм обмена данными между клиентским приложением Android и GWT.»

Ответ №1:

Вы задали общий вопрос. Лучшее, что я могу сделать, это дать вам общий ответ. Для подобных вещей мне нравится создавать REST framework. REST — это надежная и отказоустойчивая парадигма, которая необходима при разработке мобильных приложений, сетевое соединение может прерваться в любое время. Используя REST, вы можете просто использовать стандартные HttpRequests для запроса к серверу. Отвечать на запросы на стороне сервера так же просто, как обрабатывать HttpRequests. На Android класс HttpURLConnection идеально подходит для такого рода вещей. Если вам нужен довольно сложный, но всеобъемлющий пример всего этого, вы можете взглянуть на пример SampleSyncAdapter в Android SDK. Кроме того, вам может показаться интересным это видео с Google IO. Это одно из моих любимых.

Комментарии:

1. Спасибо за видео. К сожалению, ссылка на SampleSyncAdapter не работает. Я не смог найти реальную ссылку. Кажется, Google удалил его (онлайн). Но хорошая новость в том, что вы всегда можете найти его в папке SDK 🙂