SwiftUI — декларативный UI-фреймворк Apple Кастомный компонент представляет собой структуру, которая реализует протокол View Его интерфейс описывается внутри структуры с помощью композиции стандартных компонентов и…
WebSocket — протокол для двунаправленного обмена данными в реальном времени В браузере для этого применяется объект WebSocket API Соединение создается с помощью new WebSocket(url) — этот вызов открывает канал связи…
Оптимизация обработки изображений Применять ленивую загрузку (lazy loading), при которой загружаются только изображения, попадающие в область видимости Выбирать эффективные форматы сжатия — WebP и AVIF: они уменьшают…
Диспетчеризация методов в final-классе final-класс не допускает наследование, поэтому его методы нельзя переопределить реализация метода протокола вызывается статически, без виртуального вызова компилятор использует…
Сложность поиска элемента в Array без известного индекса Array представляет собой линейную коллекцию при известном индексе доступ выполняется за O(1) без индекса нужен последовательный перебор элементы проверяются по…
Опыт работы с Legacy Code поддерживал и рефакторил устаревшую кодовую базу решал проблемы, связанные с отсутствием документации и тестов использовал тестовое покрытие, чтобы безопасно вносить изменения проводил…
Почему нельзя блокировать main-поток во время сетевых операций? UI/UX: именно main-поток обеспечивает отзывчивость интерфейса При его блокировке происходит замерзание UI и ухудшается реакция приложения Сетевые запросы…
Ключевое различие concurrent и serial очередей Serial очередь обрабатывает задачи последовательно — каждую следующую только после предыдущей Concurrent очередь позволяет запускать задачи параллельно, чтобы они…
Архитектурный паттерн для управления состоянием приложения Поток данных направлен в одну сторону: action → reducer → state → view Подход предотвращает циклические зависимости и чрезмерную сложность Состояние…