- PVSM.RU - https://www.pvsm.ru -

Структура Android проекта – альтернативный путь

Предлагаю вашему вниманию перевод статьи «Android Project Structure — alternative way». Поблагодарить автора оригинальной статьи можно тут [1].

Intro

Все мы знаем, как выглядит структура Android проекта – поместить все изображения в этот каталог, все файлы разметки в тот каталог. Но… во время разработки проекта количество файлов растет очень быстро и становится трудно ориентироваться и переходить к нужному файлу.

Структура Android проекта – альтернативный путь - 1Структура типичного Android проекта

Каталог ресурсов для экрана

В случае если экран содержит большое количество файлов разметки, изображений, размеров – имеет смысл создать отдельные каталоги ресурсов для каждого экрана.

Структура Android проекта – альтернативный путь - 2Структура — каталог ресурсов для каждого экрана

Как вы можете видеть на скрине сверху, мы имеем два корневых каталога внутри каталога main:

  • res-main содержит все общие ресурсы, которые используются на более, чем одном экране.
  • res-screen содержит каталоги ресурсов для каждого экрана, например, about, chat, event details, event list, home, login

Давайте заглянем внутрь папки ресурсов для экрана chat.

Структура Android проекта – альтернативный путь - 3

Сам чат состоит из нескольких xml layouts файлов, поэтому мы создали каталог chat layout и поместили туда эти файлы. Также имеется множество .png изображений, которые используются только на экране чата, поэтому мы поместили все эти изображения в подкаталоги drawable-hdpi, drawable-xhdpi, drawable-xxhdpi и drawable-xxxhdpi каталога chat.

Когда настанет время реализовать альбомную ориентацию или версию чата для планшета, мы создадим каталоги layout-land и layout-sw720dp внутри каталога ресурсов для экрана chat.

Как объявить каталог ресурсов для экрана?

Откройте файл app.gradle и объявите sourceSets внутри секции android. Более подробно об объединении ресурсов написано тут [2].

sourceSets {
    main {
        res.srcDirs = [
                'src/main/res-main',
                'src/main/res-screen/about',
                'src/main/res-screen/chat',
                'src/main/res-screen/event-detail',
                'src/main/res-screen/event-list',
                'src/main/res-screen/home',
                'src/main/res-screen/login',
        ]
    }
}

Примечание: это работает только в режиме просмотра Project.

Заключение

Если вы работаете над большим проектом и хотите классифицировать ваши каталоги, легко определять какой файл разметки, изображение, значение и т.д. принадлежит какому экрану, используйте каталоги ресурсов для каждого экрана.

Автор: qwert2603

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android-development/141429

Ссылки в тексте:

[1] тут: https://medium.com/google-developer-experts/android-project-structure-alternative-way-29ce766682f0#.bkvpmyfxr

[2] тут: http://tools.android.com/tech-docs/new-build-system/resource-merging

[3] Источник: https://habrahabr.ru/post/303926/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox