Тех собес на middle-senior IOS Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории IOS Developer

Посмотреть видео в категории

(2025-01-25)

— Value type vs Reference type:

1. Чем отличаются valuetype и referencetype? Расскажи подробнее. 2. Ты упомянул, что value_type может храниться в куче. В каких случаях это происходит? 3. А если это не массив, а что-то ещё? Приведи другие примеры. 4. А переполнение стека — в каких ситуациях это может произойти? Почему тогда объект уйдёт в кучу? 5. А как обстоит дело с generics? Там value_type тоже может уйти в кучу?у?

— Copy-on-write:

1. Что такое механизм copy-on-write? 2. Можно ли реализовать copy-on-write поведение для своей структуры? Если да, то как?

— ARC (Automatic Reference Counting):

1. Что такое ARC и как он работает? 2. Что такое retain_cycle и почему он возникает? 3. Чем отличались MRC и ARC? 4. Расскажи подробнее про типы ссылок: strong, weak, unowned. 5. Как работает weak-ссылка на уровне реализации? Что такое side_table? 6. Как устроен жизненный цикл объекта при ARC? 7. В какой момент освобождается сама таблица (side_table)? 8. У ARC нет garbage_collector. Каким образом тогда реально освобождается память?

— Многопоточность:

1. Что такое serialqueue и concurrentqueue? Чем отличаются вызовы sync и async? 2. Если я кладу задачи в concurrent_queue асинхронно — могу ли я быть уверен, что они начнут выполняться в том же порядке, в котором я их вызвал? 3. Какие основные проблемы многопоточности ты знаешь? 4. Давай подробнее про deadlock: может ли он возникнуть между разными очередями? 5. Какие механизмы синхронизации есть в iOS, чтобы избежать data_race? 6. Можно ли решить datarace просто с помощью serialqueue? 7. Какие есть приоритеты у задач (QoS)? Что они означают?ают?

— Жизненный цикл UIViewController:

1. Назови методы жизненного цикла UIViewController в правильном порядке начиная с init. 2. Что происходит с view в viewDidLoad? Добавлена ли она уже в иерархию? 3. Чем отличается viewWillAppear от viewDidLoad? 4. Для чего был добавлен метод viewIsAppearing и чем он отличается от viewWillAppear? 5. Если свернуть приложение и потом развернуть — какие методы жизненного цикла вызовутся у UIViewController?

— Архитектуры:

1. Что такое паттерн MVVM и как он устроен? 2. Каким образом View взаимодействует с ViewModel? Может ли View напрямую менять state? 3. Какие сложности ты видишь в MVVM? 4. Расскажи про архитектуру VIPER. Какие там компоненты и за что каждый отвечает? 5. Какие плюсы и минусы у VIPER? 6. Как вы решаете проблему избыточности кода в VIPER?

— Паттерны проектирования:

1. С какими паттернами ты работал? 2. Чем отличается фабрика от абстрактной фабрики? 3. В чём разница между фабрикой и билдером? 4. Что для тебя значит «правильная реализация singleton»? 5. Как решить проблему тестирования классов, которые используют singleton? 6. Как у вас реализован DI (dependency injection) в проекте?

— SOLID:

1. Что означают буквы в аббревиатуре SOLID? 2. Приведи пример для каждого принципа. 3. В связке «интерактор — сервис» кто из них является высокоуровневым модулем, а кто низкоуровневым?