Андроид позволяет держать все текстовые константы в xml файлах. Тоже самое касается и многих других вещей, например, идентификаторов. И если ваше приложение чуть сложнее HelloWorld, то неправильное поименование может сильно повлиять на производительность вашего труда и качество конечного продукта.
Пока я программировал для Андроид, то я сделал для себя пару правил, которые немного улучшают мою жизнь при работе с ресурсами (то самое магическое R):
Например,
Не ленитесь переименовывать автоматически сгенерированные идентификаторы, ибо они только замусорят остальные идентификаторы почти бессмысленными названиями.
Например,
В большей части это относится к идентификаторам в layout-ах. Это следует делать из-за того, что фрэймворк сваливает все идентификаторы в одну кучу и если этого не делать, то становится сложно разобраться где идентификатор находится «физически».
Т.е. главный логический уровень, имя файла, элемент, описание строки
Главная выгода такого подхода заключается в быстром поиске через авто-комплит в Eclipse. Если вы, например, определяете меню в коде, то чтобы найти определенный заголовок для какого-то пункта, достаточно набрать R.string.menu_ и вы сразу же увидите все возможные названия. Тоже самое касается поиска view внутри Activity, достаточно набрать R.id.my_activity_name и всё уже как на ладони. Также при таком подходе вам будет намного легче найти где объявлен ресурс.
Если у вас есть какие-либо строковые константы в коде, то не забывайте, что всегда можно простым нажатием Alt+Shift+A быстро перенести их в xml файл.
Пока я программировал для Андроид, то я сделал для себя пару правил, которые немного улучшают мою жизнь при работе с ресурсами (то самое магическое 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 файл.