Собеседовался на позицию мидла. Вот некоторые вопросы которые задавали. Часть на obj-c, часть swift. Что-то может забыл. Но по темам довольно дотошно расспрашивали.
- Виды архитектур, с чем работал(mvc, mvp, viper… etc)
- В паттернах отличие фасада от билдера
- Root-классы Obj-c (перечень, для чего нужны)
- NSObject (основные методы)
- Почему при создании объекта вызываем 2 метода alloc,init
- Отличие id/instancetype
- Как убедится что объект поддерживает метод
- Директивы свойств (strong, weak …). Отличия, какие ставятся по умолчанию.
- Зачем нужен synthesize?
- Чем свойства отличаются от ivar
- Что такое Computed propery
- Опциональный тип (структура, назначение)
- Структуры и классы (отличия в аспектах производительности, памяти, многопоточности)
- SOLID
- Протокол-ориентированная парадигма
- Многопоточное и асинхронное программирование (способы работы с потоками)
- Отличия GCD/OperationQueue
- Frame/bounds
- Жизненный цикл контроллера
- Жизненный цикл приложения
- Структура appDelegate
- Виды нотификаций, настройка, обработка итд.
- Deep link
- App transfer protocol (что именно запрещает-разрешает)
- Разрешения для доступа к фото, локации, камере итп
- Работа с картами (гугл, яндекс…)
- Кластеризация
- Codable
- Серилизация
- BLE
- tvOS
- watchOs
- TestFlight
- Отличие internal/external testers
- Настройка учетки разработчика для запуска на устройстве
- Provision profile
[upd]
- Алгоритмы (О-нотация, определение, эффективность алгоритма)
- Почему при оценке алгоритма не учитываются коэффициенты?
- Почему оценке алгоритма
log
не важно основание логарифма? - Оценка сложности задач
- Технологии разработки (waterfall, kanban…)
- Виды тестирования
- TDD
[upd 2]
- GitFlow
- Rebase vs Merge
[upd 3: после нового собеседования]
- SOLID - по каждому пункту пояснить как это используется в Apple-овских классах
- rxSwift
- ООП (полиморфизм)
- По архитектурам (MVVM, MVP, Clean architecture: отличия и структуру)
- ARC (и пр. управление памятью)
- Обсуждение репозиториев в гите.
[upd 4]
- Родные средства для дебага кода-интерфейса
- Сторонние тулзы для дебага траффика, интерфейса.