Search
Write a publication
Pull to refresh

Советы по именованию ресурсов в Android

Reading time2 min
Views1.3K
Андроид позволяет держать все текстовые константы в xml файлах. Тоже самое касается и многих других вещей, например, идентификаторов. И если ваше приложение чуть сложнее HelloWorld, то неправильное поименование может сильно повлиять на производительность вашего труда и качество конечного продукта.

Пока я программировал для Андроид, то я сделал для себя пару правил, которые немного улучшают мою жизнь при работе с ресурсами (то самое магическое R):



Имя ресурса должно отображать его суть (самое очевидное правило)


Например,
<string name="set_as_wallpaper">As wallpaper</string>

* This source code was highlighted with Source Code Highlighter.

Не ленитесь переименовывать автоматически сгенерированные идентификаторы, ибо они только замусорят остальные идентификаторы почти бессмысленными названиями.

Имя ресурса должно начинаться с его главной логической области


  • если это название тайтла в меню, то оно должно начинаться с menu
  • если это название тайтла в диалоге, то оно должно начинаться с dialog
  • если это строка для тоста, то начинается с toast
  • если строка связанна с каким-то вашим классом, то пусть название начинается именно с имени этого класса

Если строка или идентификатор относятся строго к какому-то контексту (например, Activity), то после логического названия должно идти название этого контекста


Например,
  • menu_main_send (пункт меню находится в activity Main)
  • toast_add_image_success (тост предназначен для activity AddImage)

Названия должны начинаться с имени файла, в котором они находятся


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

Название должно идти по уровням


Т.е. главный логический уровень, имя файла, элемент, описание строки
  • dialog_main_button_search (это относится прежде всего к Диалогу. Находится в Activity Main. Это для кнопки. Это надпись поиск)
  • toast_error_while_loading_roller_image (это прежде всего текст для Тоста. Это ошибка. Описание


Итого


Главная выгода такого подхода заключается в быстром поиске через авто-комплит в Eclipse. Если вы, например, определяете меню в коде, то чтобы найти определенный заголовок для какого-то пункта, достаточно набрать R.string.menu_ и вы сразу же увидите все возможные названия. Тоже самое касается поиска view внутри Activity, достаточно набрать R.id.my_activity_name и всё уже как на ладони. Также при таком подходе вам будет намного легче найти где объявлен ресурс.

Если у вас есть какие-либо строковые константы в коде, то не забывайте, что всегда можно простым нажатием Alt+Shift+A быстро перенести их в xml файл.
Tags:
Hubs:
Total votes 2: ↑1 and ↓10
Comments1

Articles