View

Урок 2: Введение в XML, что такое View, теги и атрибуты

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Что такое файл MainActivity.kt? onCreate() setContentView() Файл XML разметки activity_main.xml Разбор имеющихся тегов activity_main.xml xmlns layout_width и layout_height dp – density-independent pixel TextView внутри ConstraintLayout Документация внутри…

Читать полностьюУрок 2: Введение в XML, что такое View, теги и атрибуты

Урок 3: Контейнеры — FrameLayout, LinarLayout. Отступы

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Вложенность элементов в XML Что такое контейнер? Основные лейауты FrameLayout Отступы Разница между gravity и layout_gravity LinearLayout Вложенность элементов в XML Итак, как вы уже поняли, XML…

Читать полностьюУрок 3: Контейнеры — FrameLayout, LinarLayout. Отступы

Урок 5: Ресурсы (res), квалификаторы, локализация, шрифты

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Типы ресурсов в Android Папка res Импорт шрифтов Создание директории font Добавление шрифтов элементам разметки Строковые ресурсы Как создать строковый ресурс (string resource) Квалификаторы на примере локализации…

Читать полностьюУрок 5: Ресурсы (res), квалификаторы, локализация, шрифты

Урок 6: Cтили, темы в приложении и их кастомизация 

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Собственные стили в Android Создание кастомного стиля Создание и применение стиля Переопределение родительского стиля Типы наследования стиля Темы и кастомизация Кастомизация StatusBar (не путать с ActionBar) Собственные…

Читать полностьюУрок 6: Cтили, темы в приложении и их кастомизация 

Урок 7: findViewById, ViewBinding, backing property

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Атрибут id Стиль названия id’шников Получение id элемента View в Activity Способы получения id из XML разметки findViewById ViewBinding Активация ViewBinding в Android проекте Инициализация ViewBinding в…

Читать полностьюУрок 7: findViewById, ViewBinding, backing property

Урок 8: setOnClickListener() — обработка нажатий, property access

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Взаимодействие с элементами экрана Обработка правильного ответа Property access syntax Обработка неправильного ответа Обработка нейтрального состояния, apply Взаимодействие с элементами экрана Мы научились обращаться к элементам экрана,…

Читать полностьюУрок 8: setOnClickListener() — обработка нажатий, property access

Урок 10: AndroidManifest.xml (андройд манифест)

Смотрите видеоурок бесплатно на удобной для вас платформе: Смотреть в Смотреть на Оглавление Введение Отображение иерархии проектов AndroidManifest.xml Тег (пермишены) Merged Manifest Введение Программирование и разработка приложений это не только написание кода, но и конфигурация приложения. Сейчас мы познакомимся с…

Читать полностьюУрок 10: AndroidManifest.xml (андройд манифест)

Атрибут weight и его влияние на производительность

При использовании обычного LinearLayout каждый из on… методов View вызывается его дочерних View только по одному разу, что делает его довольно быстрым. Если же использовать атрибут weight, то метод onMeasure() будет вызван по 2 раза на каждом View. Это делает…

Читать полностьюАтрибут weight и его влияние на производительность

Для чего нужен атрибут weight в LinearLayout?

Это атрибут, который указывает то, какую часть экрана займет View по сравнению с другими View, у которых тоже указан данный атрибут. При этом в зависимости от атрибута orientation, данный атрибут будет влиять на разные параметры View. Если у LinearLayout стоит…

Читать полностьюДля чего нужен атрибут weight в LinearLayout?

Назовите отличия CoordinatorLayout от FrameLayout

CoordinatorLayout можно представить как FrameLayout на максималках. Это улучшенная версия FrameLayout. CoordinatorLayout рассчитан на использование в двух основных случаях В качестве top-level декора приложения или же chrome layout Когда необходимо настроить взаимодействие между layout и его дочерними view либо между…

Читать полностьюНазовите отличия CoordinatorLayout от FrameLayout

Расскажите про ViewGroup и View и в чем их различие?

ViewGroup – это класс, который наследуется от View. Он расширяет View и позволяет хранить в себе другие View, по сути это как контейнер. Все layout’ы являются ViewGroup. Так же этот класс будет базовым и для layout parameters. ViewGroup предоставляет невидимый…

Читать полностьюРасскажите про ViewGroup и View и в чем их различие?

Можно ли ViewModel заменить onSaveInstanceState()?

Не совсем. Вернее не всегда вьюмоделью можно заменить onSaveInstanceState(). Рассмотри такой случай, когда в нашей активити есть ViewModel, которая сохраняет наши данные. Так же эти же данные сохраняются в onSaveInstanceState(). Всего есть три варианта как будет создаваться активити: Активити запускается…

Читать полностьюМожно ли ViewModel заменить onSaveInstanceState()?

Паттерн MVVM

MVVM, — шаблон проектирования архитектуры приложений. Он упрощает разделение разработки графического интерфейса (view) от разработки бизнесс-логики (model). ViewModel в данном шаблоне проектирования является промежуточным звеном, которое помогает преобразовывать данные таким образом, чтобы их было легко представлять и ими было легко…

Читать полностьюПаттерн MVVM

Какие есть недостатки паттерна MVP

Вот несколько минусов MVP в Android-разработке Круговая зависимость View и Presenter. У View есть ссылка на Presenter, а у Presenter есть ссылка на View. Обычно это не так плохо, но стоит вспомнить, что в Андроид View — это как правило…

Читать полностьюКакие есть недостатки паттерна MVP

Паттерн MVP

MVP (Model-View-Presenter) — как и MVC, является шаблоном проектирования архитектуры приложения. Данный паттерн произошел от MVC и многое унаследовал от него. Но есть и отличия. Слои Model и View по своей сути такие же как и в MVC, но вот…

Читать полностьюПаттерн MVP

Паттерн MVC

MVC (Model-View-Controller) — шаблон проектирования архитектуры приложений. Он используется чтобы разделить логику всего приложения на три элемента, связанных друг с другом. Это позволяет разделить представление информации “внутри” приложения и то, как эту информация видит и вводит пользователь. Благодаря этому упрощается…

Читать полностьюПаттерн MVC

Расскажите про реализацию метода View.onMeasure()

onMeasure() — метод, необходимый, чтобы определить размеры View и его “детей”. Данный метод должен быть переопределен таким образом, чтобы быстро и точно возвращать размеры View и его “детей”. Так же есть установки на View от его родителей, который накладывают дополнительные…

Читать полностьюРасскажите про реализацию метода View.onMeasure()