Подборка объединяет вопросы, отмеченные на этапах интервью в ivi. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: frontend, python, mobile.
В Swift, например, это можно представить через использование протоколов с ассоциированными типами и оберток типа Any, которые позволяют работать с разными типами, не зная их конкретного вида.
Generics в протоколах позволяют создавать абстрактные и переиспользуемые интерфейсы, которые работают с разными типами данных, сохраняя при этом типобезопасность.
ARC (Automatic Reference Counting) — это механизм управления памятью в iOS, который автоматически отслеживает и управляет временем жизни объектов. Основной принцип работы ARC — подсчет ссылок на объект.
Механизм взаимного исключения (Mutex) — это способ синхронизации, который гарантирует, что в каждый момент времени только один поток или процесс может получить доступ к общему ресурсу.
Асинхронное выполнение означает, что операция запускается и выполняется независимо от основного потока, позволяя программе продолжать работу без ожидания результата.
В операционных системах существуют различные методы управления задачами и ресурсами, которые обеспечивают эффективное выполнение процессов и использование ресурсов:
В моей предыдущей рабочей среде для внедрения зависимостей использовался паттерн Dependency Injection (DI), реализованный с помощью протоколов и фабрик.
CocoaPods и Swift Package Manager (SPM) — это два популярных инструмента для управления зависимостями в iOS-проектах, но они отличаются по способу интеграции и конфигурации.