Здравствуйте!
Как-то давно я делал простое приложение под Android для запроса json данных с сервера, отображение списка на первом экране.
Если кликнуть на элемент, отобразится детальная информация по этому элементу.
Посмотреть можно
тут.
Сейчас я очень хочу продолжить изучение андроид и реализовать ее "правильно". Сделать правильную архитектуру(MVP? MVI?, MVVM? LifeData), использовать оптимальные библиотечки(Dagger? для внедрения зависимостей, RxJava? вместо AsyncTask, возможно какое-то кеширование, чтобы каждый раз не запрашивать, если данные не изменились(где, кстати, его хранить, в памяти weakreference или в бд?) Возможно, вместо двух "активити" следует использовать два "фрагмента" или один? По clean architecture с разными слоями, читал и на русском и на английском статьи, но понимание только очень общее.
Может ли кто дать совет, как сделать правильную архитектуру такого приложения? Возможно кто делал подобное?
Я был бы очень рад получить советы, какие проблемы у моего апп и как их лучше решать, как они сейчас решаются в реальном мире.
Буду так же рад ссылке на материал/книгу, где все это вместе разбирается, особенно про архитектуру.
Я представляю себе (скорее всего примерно), зачем и как каждый из компонентов андроид нужен и даже использовал их для разных задач в моих приложениях (hi to stack overflow driven development), но не очень понятно, какое же решение будет оптимальным, какое будет устойчивым, легко изменяемым. Для этого хочу сделать рефакторинг, своих приложений, начиная с самого простого.