Страницы

Поиск по вопросам

вторник, 25 июня 2019 г.

Архитектура клиентского приложения Android для интернет магазина [закрыт]

Есть интернет-магазин, нужно написать для него приложение, а точнее для работы с его админкой. Основными функциями должны быть:
добавление/изменение/удаление товаров просмотр списка заказов просмотр категорий/подкатегорий/товаров в виде дерева или каких-то выпадающих списков
В качестве обмена данными с сервером используются REST API. В ответ сервер отдает JSON.
Для выполнения запросов использую ApacheHttpClient (смотрю в сторону библиотеки Volley). Для этого у меня создан класс со статическими переменными и методами для каждого запроса.
На данном этапе интересует следующее: в главном Активити есть кнопка "получить древо категорий" —» вызывается класс со статическим методом для данного запроса —» в ответ получаю JSON-ом список категорий/ подкатегорий.

Коротко о работе приложения: В MainActivity пользователь нажимает на кнопку найти товар по id -->> вызывается асинхронный запрос который обращается к статическому методу класса API.getProductById(String id) -->> метод посылает нужный запрос на сервер и получает от него ответ -->> далее метод .getProductById(String id) отправляет ответ в MainActivity -->> в MainActivity формируется интент с получеными данными и отправляется в нужную активити где и отображаются данные для пользователя.
Вопросы:
1) правильный ли я использую подход для выполнения запросов?
2) как поступить с полученным ответом, где и как его лучше хранить, возможно использовать БД?
3) каким способом можно отобразить данное дерево в Активити, что бы при нажатии на товар я мог просмотреть о нем информацию?
КАТЕГОРИЯ
-подкатегория
-товар
-товар
-подкатегория
-товар
-товар
4) Какая иерархия классов должна присутствовать в подобном приложении.
5) Так же интересует: архитектура подобных приложений и какие средства используются для их реализации? Возможно какие-то примеры, литература...
P.S. Это первый опыт написания функционально приложения для Android с помощью Java, буду рад любой информации!


Ответ

Вы немного неверно строите архитектуру. Вам надо:
Вынести обращения к серваку в отдельный сервис, который крутится в своем потоке - см. в сторону IntentService Полученые от Rest API данные надо складывать в SQLite БД, иначе если не будет коннекта или коннект будет медленный у вас ничего не будет показываться. Показывать нужно всегда данные из БД, причем посредством ContentProvider над этим БД. ContentProvider должен давать вам Cursor, а от курсора вы должны рисовать уже свои деревья/списки.
В итоге получится так, что в фоне у вас будет крутиться сервис, который подсасывает данные из сервера и кладет в БД. Ну а поскольку над БД у вас будет развернут ContentProvider то все изменения которые будет вносить сервис в БД будет автоматом отображаться на UI.
Для рисования списков в последнее время модным стало использование RecyclerView, он лучше себя ведет в тяжелых списках с картинками, правда и кода он требует чуток больше чем ListView
Как то так.

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

Отправить комментарий