Как лучше всего разработать программу чтения RSS для Android на основе HTTP-запросов? - PullRequest
3 голосов
/ 10 октября 2011

Я новичок в разработке приложений для Android, поэтому я задаю эти вопросы, чтобы узнать, какой лучший способ сделать приложение для чтения RSS. У меня есть сервер, который загружает и хранит в базе данных новости от Yahoo. В этой базе данных хранятся заголовок, содержание, дата публикации и ссылка на новости. Чем я делаю HTTP POST на сервер для загрузки новостей на Android. Данные с сервера на Android передаются в Json.

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

  1. Должен ли я передавать весь список новостей в одном ответе на POST или лучше сделать так, чтобы лучше было сделать несколько POST, чтобы получить один и тот же список? Я задаю этот вопрос, потому что ответ от сервера может быть слишком большим, и я не знаю, какой способ лучше передать его.

  2. Система комментариев - это особенность моего приложения. Так нужно ли мне создавать систему аутентификации или это можно сделать на основе ID телефона?

  3. Еще одна вещь, которую мне нужно сделать, - это предупредить пользователя о появлении новых новостей на сервере. Я понятия не имею, как это сделать с HTTP POST? Нужно ли отправлять на сервер список своих пользователей на Android?

Спасибо за внимание.

Ответы [ 3 ]

3 голосов
/ 10 октября 2011

Вот ответы на ваши вопросы.

1) Это зависит больше от того, какой интерфейс вы выбрали для своего приложения Android.С моей точки зрения, вы должны использовать многостраничный интерфейс (например, предыдущие ссылки внизу экрана) для вашего читателя.И вам следует кэшировать результаты предыдущей страницы, а также следующей страницы в вашем приложении (так что это также означает получение только выборочных результатов), чтобы при нажатии пользователем кнопки «Следующая / Предыдущая» отзывчивость вашего приложения была хорошей.

2) В идеале ваше приложение должно запрашивать показ всплывающего диалогового окна, запрашивающего аутентификацию для комментариев.Вы должны использовать что-то вроде http://developer.android.com/reference/android/accounts/AccountManager.html для хранения этих учетных данных, чтобы в следующий раз не запрашивать учетные данные снова после успешной аутентификации.

3) В этом случае вам следует обратиться к http://code.google.com/android/c2dm/ Опрос определенно не тот путь, по которому можно пойти :)

0 голосов
/ 20 октября 2011
  1. POST против GET - POST предназначен для изменения состояния сервера, весь GET предназначен для чтения результатов - вы должны использовать GET для получения новостей и POST для публикации комментариев

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

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

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

0 голосов
/ 19 октября 2011

Видите, это зависит от размера вашего файла и, что более важно, от того, насколько быстро он вам нужен. Больше запросов, безусловно, увеличит время ожидания. Как правило, вы должны пойти по одному запросу. Но это снова зависит, я когда-то работал над приложением для Android и у меня была та же проблема. Но в моем случае я разделил его на 2 запроса. Один для того, чтобы я быстро получал исходные данные и мог показывать их пользователю. Позже с другим запросом я могу получить оставшиеся данные. Так что смотрите, что вам больше подходит.

Кроме того, сколько запросов вы должны сделать в среднем за час. Больше опроса, безусловно, съест вашу батарею много. Если нажатие может помочь вам, попробуйте узнать, может ли C2DM от Google помочь вам.

Для парсера Rss у IBM есть отличная ссылка на http://www.ibm.com/developerworks/xml/tutorials/x-androidrss/index.html

...