Подскажите пожалуйста, где научиться писать расширяемый, поддерживаемый, и надежный код под андроид. Мне кажется должен быть универсальный подход, который позволит эффективно писать 90% приложений, но почему-то не вижу его в документации гугла(у эпла то такие гайдлайны есть!). Чтобы функционал был разбит на независимые модули, а модули разделены по задачам (модель, отображение, уровень получения данных из кеша и т.п.), все данные надо бы immutable, но сложности с хранением состояния.
Ищу:
- готовые большые опенсорс приложения с поддерживаемым и безопасном кодом (очень не хватает, с Rx - было бы отлично)
- курсы, книги по архитектуре приложений - но конкретно применительно к андроиду. Ясно, что вариантов 100500, но мне нужны лишь те несколько, которые эфффективно решают 99% типичных андроид проблем.
Типичные вопросы, на которые не хватает ответов:
- в каком классе отправлять сетевые запросы для отображения списка? И передать потом данные в правильную активити.
- где кешировать ответ - средствами retrofit/valley, в памяти или в модели ручками?
- что будет контроллером если подход MVC, и должна ли на практике activity только пробрасывать запросы от вью в правильный кастомный контроллер? Где хранить состояние о том, какие фрагменты сейчас отображены?
- Где правильно хранить константы? Например тег, по которому в интенте данные лежат. Когда классов много, уже с этими константами возникает путаница.
- Если модель - не синглтон - то когда, где и как она должна удаляться из памяти?
Про Фернандо знаю, очень полезно, но мало, на многие вопросы ответов нет.