-
Notifications
You must be signed in to change notification settings - Fork 0
Code Guidelines
В основном код должен в плане оформления должен следовать:
- Для Java - Google Java Styleguide
- Для Kotlin - Kotlin Styleguide
В корневом разделе проекта лежат основные папки:
- di - тут все, что связано с Dagger 2
-
ui - тут все экраны, и связанные с ними
Presenters,Interactors, etc -
utils - тут служебные и переиспользуемые компоненты, типа
Extension-функций, методов логгирования, получения изSharedPreferencesи пр. -
Application - класс, расширяющий
android.app.Application
Рассмотрим более детально подпапки:
-
di:
components,modules,scopes,services- тут комментарии излишни, все папки соответствуют компонентам для работы Dagger 2 -
ui: папки с экранами. Структура папок с экранами:
activities,adapters,fragments,interactors,interfaces,models,presenters,repositories,views
Отдельно стоит напомнить (он есть в доках выше) про порядок следования элементов класса:
Java
- статические переменные: public, protected, private
- переменные класса: public, protected, private
- конструкторы
- override-методы
- методы класса: группировка по области видимости и по удобству чтения
- внутренние классы
- внутренние интерфейсы
Kotlin
- свойства класса (properties)
- блок инициализации
- второстепенные конструкторы
- методы класса
- companion-object
Разметка
Порядок следования атрибутов в XML-разметке:
- xmlns
- android
- style
- tools, app, other
В порядке следования android-атрибутов следует придерживаться правил:
- id всегда первый
- width, height - далее
- потом следуют все остальные
Правила нейминга id-атрибутов рассмотрим на следующем примере:
Есть view с идентификатором tv_categories_title_text, находящаяся на экране CategoriesActivity, которая выступает заголовком категорий. Для названия используется snake_case. Состав идентификатора:
tv - тип view, идентификатор которого мы указываем. Используется аббревиатура из первых букв (TextView)
categories - хост-view, на котором находится view
title_text - описание view, и/или его роль на экране
Данное подробное описание служит для того, чтобы в момент обращения к идентификатору view было минимум коллизий названий, позволяющих быстро найти нужную view
Образовательное чтиво о системе Android и её внутреннем устройстве. Может сильно напрячь мозг неподготовленному читателю