Сложность вставки элемента в массив структура данных: массив (статический или динамический) добавление в конец динамического массива: амортизированная сложность — O(1) добавление в начало либо середину: необходимо…
коллекция содержит слабые ссылки на объекты GC освобождает объекты, для которых не осталось сильных ссылок часто выгружаемые объекты быстро превращаются в null внутри коллекции возможна нестабильность данных: элементы…
Проблемы с кэшем после обновления стикера Устаревшие данные: в кэше останется прежняя версия стикера, поэтому пользователь увидит изображение до внесения дизайнерских правок Отсутствие инвалидации: после изменения…
Верстка в UIKit: фреймы и констрейнты, ключевые различия В UIKit применяют два основных подхода к верстке: фреймы и Auto Layout (констрейнты). При использовании фреймов положение и размеры UIView задаются напрямую…
Основные проблемы многопоточности в iOS Гонка данных (data race) — несколько потоков одновременно обращаются к общему ресурсу без необходимой синхронизации Взаимоблокировка (deadlock) — потоки удерживают ресурсы и…
Основные типы коллекций в Swift В Swift предусмотрены 3 базовые коллекции: Array, Set и Dictionary Array — упорядоченная последовательность, в которой допускаются дубликаты Set — неупорядоченная коллекция уникальных…
Опыт автоматизации и CI/CD настраивал CI/CD-процессы с использованием Jenkins, GitLab CI и GitHub Actions автоматизировал этапы сборки, тестирования и развёртывания приложений создавал скрипты для автоматического…
Наследование и назначение Hashable Протокол Hashable обеспечивает поддержку хеширования ключей в словарях и множествах Он наследуется от протокола Equatable Протокол Equatable реализует оператор ==, который позволяет…
Отличие escaping- и non-escaping-замыканий Swift и управление временем жизни объектов non-escaping: замыкание выполняется только в рамках функции, которой оно передано, и завершается до её окончания escaping:…
Ключевые различия между типами значений и ссылочными типами область памяти: value type содержит сами данные, тогда как reference type — ссылку на объект копирование: при присваивании value type дублируется значение, а…
Кодовая верстка интерфейса и Interface Builder: сравнение подходов верстка программно — больше гибкости и полный контроль над настройками, что особенно важно для сложной логики UI Interface Builder — это визуальный…