Pull to refresh

Стандарт разработки приложений под Android

Reading time 3 min
Views 17K
Разработчик Андроида сталкивается с большим количеством файлов и ресурсов предназначенных для разных частей программы. Даже он сам через месяц не может вспомнить, какой файл или ресурс к чему относится.
Предлагаемый ниже материал основан на моем опыте разработок многих проектов для Андроида и опробован уже в нескольких проектах. В результате простых правил нагромождение файлов и ресурсов превращается в удобочитаемый проект, экономит время и нервы. Особенно оказалось удобным при работе в команде, когда к проекту могут присоединяться новые программисты. В Eclipse вы легко находите любые ресурсы, поскольку они становятся уникальными, легко находимыми и сортируются в понятном порядке в любых списках. Общие удобные правила позволяют легко читать чужой код и находить нужные ресурсы.

Большинство из указанного является моими личным мнением.



Стандарт разработки приложений Android



Названия всех файлов


Имя файла пишется маленькими буквами, отражает читабельное название элемента, возможно несколькими словами. Пробел заменяется знаком подчеркивания.

Расположение файлов пользователя на SD карте


Корневой каталог для всех файлов пользователя, кроме временных:
/sdcard/название проекта/, например /sdcard/TalentMania/

Каталог для музыки:
/sdcard/название проекта/sound/, например /sdcard/TalentMania/sound/
Каталог для MIDI:
/sdcard/название проекта/midi/, например /sdcard/TalentMania/midi/
Каталог для графики:
/sdcard/название проекта/img/, например /sdcard/TalentMania/img/

Подкаталоги для файлов различных активити:
/sdcard/название проекта/img/название активити/, например /sdcard/TalentMania/img/guitar/

Расположение временных файлов — использовать стандартные функции класса File:
createTempFile(String prefix, String suffix, File directory)
Creates an empty temporary file in the given directory using the given prefix and suffix as part of the file name.
createTempFile(String prefix, String suffix)
Creates an empty temporary file using the given prefix and suffix as part of the file name.

Расположени файлов в ресурсах приложения


Графика и звуки предназначенные для использования в ассетсах (к примеру библиотекой AndEngine) группируются в следующих каталогах:
MIDI файлы — assets/midi/
Графика для спрайтов — assets/gfx/
TTF фонты — assets/font/
Общие файлы, используемые разными activity распологаются в корне. Файлы используемые только одной activity распологаются в соответствующем подкаталоге, например: assets/gfx/guitar/

MP3 файлы распологаются в каталоге res/raw/.

Наименования иконок


В наименованиях иконок используется префикс описывающий ее тип

Иконки ic_ Пример: ic_star.png
Иконки запуска ic_launcher_ Пример: ic_launcher_calendar.png
Иконки меню ic_menu_ Пример: ic_menu_archive.png
Иконки статус бара ic_stat_sys_ or ic_stat_notify_ Пример: ic_stat_notify_msg.png
Иконки вкладок ic_tab_ Пример: ic_tab_recent.png
Иконки диалога ic_dialog_ Пример: ic_dialog_info.png

Кнопки


bt_имя_pressed.png (нажатое изображение) и bt_имя_default.png (изображение по умолчанию)
xml описывающий анимацию размещаются в каталоге drawable! bt_имя.xml

Лэйауты


основные лэйауты соответствуют названиям вызывающих активити.
ac_название_класса.xml – соответствует названию класса активити AcНазваниеКласса.java.

Дополнительные view для данного лэйаута соответствуют названиям вызывающих активити + название view ac_название_класса_название_view_название.xml

view_название_view.xml – общие view для разных лэйаутов.
adt_название_адаптера.xml – название лэйаута для адаптера списка
dialog_название_диалога.xml – название диалога

Наименования элементов в лэйауте


Название элемента используемого в лейауте —
AcНазваниеЛэйаутаНазваниеЭлемента

к примеру: android:id="@+id/AcMenuTemplateTopPanel" показывает что элемент называется “top panel” и предназначен для активити AcMenuTemplate

Анимация


файлы описания анимации сохраняются в каталоге res/drawable.
Для кнопок — bt_имя_anim.png
Для анимации — anim_имя_активити_имя_анимации.png
Если анимации много, то удобнее размещать ее в отдельный каталог res/anim

Графика


Бэкграунд — bg_ориентация_имя.png.
Изображение — im_имя.png

Наименование пакетов


Активити — activities
Адаптеры — adapters
Данные — data
Диалоги — dialogs
Интерфейсы — interfaces
Виды — views

Наименование классов


Активити — AcНазваниеАктивити
Адаптеры для списков — AdtНазваниеАдаптера
Диалоги — DialogНазваниеДиалога
Интерфейс- НазваниеИнтерфейсаInterface

Итог


Предлагаемый стандарт не является догмой и постоянно подвергается изменениям по мере накопления эмпирического опыта. Надеюсь услышать отзывы и предложения по данной теме. Интересно узнать опыт других разработчиков.
Tags:
Hubs:
+29
Comments 35
Comments Comments 35

Articles