Подтвердить что ты не робот

Android Project: как лучше всего организовать файлы

Я создаю свое первое приложение для Android, и оно уже немного запуталось. Я использую шаблоны List/detail, потому что они соответствуют обстоятельствам, но потому, что я разрабатываю для мобильных устройств и планшета, он немного выходит из-под контроля. Для каждого экрана (список/деталь - один экран) создаются четыре файла. ListActivity, ListFragment, DetailActivity, DetailFragment. Имея четыре экрана до сих пор и буквально только начиная проект, у меня есть 12 файлов, а также три вспомогательных файла для одной таблицы базы данных.

Что я спрашиваю, это лучший способ организовать это? Я использую Android Studio, и, похоже, я не могу сортировать файлы в папках, не помещая их в отдельные пакеты. Так что я делаю что-то вроде com.domain.app.screen1. (Фрагменты | Действия), com.domain.app.screen2. (Фрагменты | Деятельность) и так далее? Или я просто терплю это? Или есть лучший способ сделать это?

Если я неясен, просто дайте мне знать, и я попробую очистить его.

4b9b3361

Ответ 1

Хорошее объяснение @Eric Oestrich:

Написание приложения для средних и больших приложений требует наличия структуры кода. При создании нашего последнего проекта разработки Android я столкнулся со структурой, которая помогла мне.

Код Java:

  • com.example

    • Деятельность

      Содержит все действия. Все классы называются Activity в конце. Таким образом, вы можете сразу узнать, что это такое, когда читаете Java-код, который не имеет полного имени пакета.

    • <сильные > адаптеры

    Содержит все адаптеры.

    • аутентификатор

    Содержит любой класс, связанный с подписью пользователя. Я создаю локальную учетную запись и со всеми связанными с ней классами очень удобен.

    • данные

    Содержит все классы, связанные с управлением данными, такими как ContentProvider и SQLiteHelper.

    • data.migrations

    Содержит все мои миграции SQLite.

    • Фрагменты

    Содержит все фрагменты.

    • Помощники

    Содержит вспомогательные классы. Класс-помощник - это место для размещения кода, который используется более чем в одном месте. Например, у меня есть DateHelper. Большинство методов являются статическими.

    • интерфейсы

    Содержит все интерфейсы.

    • моделей

    Содержит все локальные модели. При синхронизации с HTTP API я анализирую JSON на эти объекты Java, используя Jackson. Я также вытягиваю строки курсора в эти модели.

    • предпочтения

    Содержит все классы для пользовательских настроек. При создании предпочтений мне нужен пользовательский PreferenceDialog, а также пользовательская PreferenceCategory. Они живут здесь.

    • синхронизация

    Содержит все классы, связанные с синхронизацией. Я использую SyncAdapter для извлечения данных из HTTP API. В дополнение к SyncAdapter требуется SyncService, поэтому я создал пакет.

Макеты:

  • Название макета задачи начинается с активности _
  • Имя строки макета адаптера начинается с строки _
  • Имя макета фрагмента начинается с фрагмента _

Ответ 2

Насколько я знаю, нет соглашения, но вот пример того, как вы можете поместить свои файлы в пакеты:

  • mainPackage
    • LauncherFragment
    • LauncherActivity
    • MyApplication
  • uiPackage
    • DetailsFragment
    • DetailsActivity
    • OtherTabletFragment
  • viewPackage
    • пользовательские представления
  • databasePackage
    • MainContentProvider
    • MainDBHelper
    • SecondContentProvider
    • SecondDBHelper
  • dataPackage
    • CustomAdapter
  • utilsPackage
    • xmlUtils
    • Textutils

И многие другие. Вы можете искать проекты android на GitHub и посмотреть.