Как обычно организовывают структуру папок (пакетов)?

На какие пакеты обычно распределяют java-файлы в приложении, ну там типа "adapters" или еще какие-нибудь?


Ответы (2 шт):

Автор решения: Valeriy

Всё очень сильно зависит от того, какую вы выбрали архитектуру и какие используете паттерны. На самом деле, каждый как хочет так и делает. Если мы обратимся к доке от гугла JetPack и возьмём GuideLine, который упорно пропагандирует MVVM, то можно придерживаться следующей архитектуры:

yourApp:
  di: //если вы используете Dependecy Injection, по сути модели и настройки даггера. С коином ещё не успел познакомиться. Где встречал то модели койна кладут точно также.
  model: //подразумевается слой работы с данными
    models: //подразумеваются ваши модели
     dto: //Data transfer objects
     entity: // или dao немного спорный момент
     vo: //View Objects
    database: // или db слой работы с БД
    repository: // слой работы с репозиторием
    webservices: //слой работы с вебсервисами
  ui: // тут очень сильно разнятся подходы, но в основном это пакет основного экрана и паралельных с ним. Дальше вкладываете по мере необходимости. если экран используется в нескольких местах, вынесите его повыше. Еще момент. я всегда ViewModel храню рядом с экраном частью которого он является. Также и с UI адаптерами (списков, табов и т.д.), кладу их в тот же пакет что и экран на котором он используется ну или здесь папка для адаптеров. Есть выносят его в модель, но как по мне, это не правильно, он работает не станными, а с UI, данные же ему поступают из вне. Но не путайте их с адаптерами для данных, те конечно же в модель.

P.S. Это сугубо моё мнение, и каждый может делать по-своему. Я долго искал, как сделать правильно, и после изучения Гайдлайна, о котором я говорил выше, общения с коллегой, пришёл к такой вот конструкции.

→ Ссылка
Автор решения: Alina Klishyna

существует паттерн MVC - архитектурная идея для построения систем с пользовательским интерфейсом.

  • Модель - основная функциональность

Пользовательский интерфейс делится на 2 области:

  • Вид: элементы интерфейса, таких как вывод данных
  • Контроллер: так же элементы интерфейса, направленные на ввод данных

подробнее можно почитать здесь: https://javarush.com/groups/posts/2536-chastjh-7-znakomstvo-s-patternom-mvc-model-view-controller

введите сюда описание изображения

→ Ссылка