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

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

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

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

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

(2025-03-23)

— Сравнение языков:

1. Расскажи, как бы ты описал язык Swift. Что его выделяет и отличает от Java? 2. Я правильно понял: ты сказал, что Swift имеет динамическую типизацию? 3. Какие языки ты знаешь с динамической типизацией? 4. А Java с какой типизацией? 5. Swift ближе к Python или к Java по типизации?

— Типы данных в Swift:

1. Какие основные категории типов данных есть в Swift? 2. Что такое структура? Это тип значения или ссылочный тип? 3. Какие ещё типы значения, кроме структуры, есть в Swift? 4. Enum — это тип значения или ссылочный тип?

— Управление памятью:

1. Как в Swift организовано управление памятью? 2. Какой механизм за это отвечает? 3. Расскажи про ARC. 4. Для чего нужны сильные и слабые ссылки? 5. Приведи практический пример, где используем слабую ссылку, а где — сильную. 6. А что будет, если в UI не объявить свойство слабой ссылкой? 7. В бизнес-логике, где нет UI, зачем использовать слабые ссылки? 8. Как называется механизм, когда в замыкании мы явно указываем слабую ссылку (weak self)? 9. Где ещё мы используем слабые ссылки и зачем? 10. Что ты знаешь про утечки памяти? Когда мы можем гарантированно получить утечку памяти?и?

— Протоколы:

1. Использовал ли ты протоколы в Swift? 2. Что такое протокол? Можешь дать определение или провести аналогию? 3. Можем ли мы включать реализацию в протокол? Каким образом? 4. Что такое композиция протоколов? Как выглядит её синтаксис? 5. Можем ли мы наследовать протоколы друг от друга? 6. Знаешь ли ты стандартные протоколы в Swift?

— Диспетчеризация методов:

1. Что такое диспетчеризация методов в Swift? 2. Что происходит при вызове метода у наследованного класса?

— Дженерики:

1. Приходилось ли тебе использовать дженерики в Swift? 2. Что такое дженерики? 3. Приведи пример использования дженерика. 4. Чем дженерики отличаются от шаблонов в C++?

— Свойства:

1. Какие бывают свойства (property) в Swift? 2. Чем отличаются вычисляемые и невычисляемые свойства? 3. Приведи пример синтаксиса объявления свойства. 4. Что даёт ключевое слово let? 5. Как сделать изменяемое свойство? 6. Что такое getter и setter? 7. В чём ошибка, если в setter мы пишем name = newValue для вычисляемого свойства? 8. Что такое lazy свойства? Для чего они нужны?его они нужны?

— Copy-on-Write и память:

1. Приходилось ли слышать про механизм copy-on-write? 2. Какие типы данных хранятся в куче, а какие в стеке?е?

— UI-библиотеки:

1. Какие две основные библиотеки UI используются в iOS-разработке? 2. Что такое SwiftUI? 3. Чем отличается UIKit от SwiftUI? 4. Что такое SnapKit? 5. Можем ли мы обойтись без SnapKit? Чем тогда изменится код? 6. Что такое constraint? 7. Какие типы констрейнтов бывают? 8. Как система решает, какой из элементов занимает больше места, если заданы противоречивые констрейнты?констрейнты?

— Базовые вопросы по UI:

1. Как работает механизм обработки нажатия кнопки в iOS? 2. Что такое жизненный цикл ячейки (UITableViewCell)? 3. Чем жизненный цикл ячейки отличается от жизненного цикла обычного UIView? 4. Что такое переиспользование ячеек? 5. Что такое content priority? 6. Чем отличаются UIView и CALayer? Как они связаны?и связаны?

— Сохранение данных:

1. У тебя есть класс «Машина» с полями. Какие есть способы сохранить объект «Машина» так, чтобы после перезапуска приложения восстановить его? 2. Что нужно сделать, чтобы сохранить объект в файл? 3. Какие ещё способы хранения, кроме базы и файла, можно использовать? 4. Какой аналог SharedPreferences в iOS? 5. Какой протокол в Swift нужно реализовать, чтобы объект можно было сериализовать и сохранять?ь? 6.