Когда AlarmManager предпочтительнее WorkManager? Планирование задач, которым требуется точное время запуска Сохранение работоспособности после перезагрузки устройства Выполнение даже при закрытом приложении…
В каких случаях следует использовать корутины? организация лёгкой конкуренции выполнение асинхронных операций без блокировки запуск параллельных задач с меньшими издержками, чем у потоков удобная работа в реактивном…
UIKit, жизненный цикл UIViewController Точные frame становятся доступны в методе viewDidLayoutSubviews К этому моменту завершён автоматический расчёт компоновки и ограничений В viewDidLoad размеры ещё НЕ…
Ключевые различия Room и SQLDelight Room — официальный ORM от Google для Android, работающий поверх SQLite SQLDelight генерирует типобезопасные Kotlin SQL-запросы Room абстрагирует SQL с помощью аннотаций и объектов,…
Kotlin — современный язык для JVM, полностью совместимый с Java Отличается богатым синтаксисом: поддерживает лямбды, data-классы и extension-функции В язык встроена поддержка null-безопасности благодаря nullable-типам…
Чем отличаются frame и bounds Оба свойства относятся к UIView в iOS (UIKit) frame определяет положение и размер представления в системе координат его супер-вью bounds задаёт размер и положение внутренней области…
Чем отличаются weak и unowned в Swift и в каких случаях выбирают unowned? weak — ссылка, которая при уничтожении объекта может стать nil; поэтому она всегда Optional unowned — слабая ссылка без Optional,…
UITableView и UICollectionView оба представляют собой UI-компоненты iOS для отображения списков UITableView: одна колонка и вертикальная прокрутка UICollectionView: сетка/решетка и свободная компоновка элементов…
Structured и unstructured concurrency Область применения: управление параллельным выполнением и многозадачностью Structured concurrency: задачи выстроены в иерархию и вложены друг в друга, а их жизненный цикл чётко…
Функция — это именованный или анонимный блок кода, предназначенный для выполнения определённой задачи. Замыкание представляет собой функцию вместе со связанным лексическим контекстом, то есть переменными из внешней…
Архитектурные паттерны построения UI MVP (Model-View-Presenter): View передаёт события Presenter Presenter обрабатывает логику и обновляет View и Model Явное разделение UI и бизнес-логики MVVM (Model-View-ViewModel):…
MVX-паттерны: сходства и различия Определяют архитектуру UI: каждый из них разделяет логику приложения, представление и управление состоянием Разделяют зоны ответственности → благодаря этому код проще поддерживать и…