tg-me.com/iosdev/1370
Last Update:
Подборка вопросов по Swift и iOS с технических собеседований 2024
Я продолжаю обновлять базу знаний, а также собирать материалы (и новые темы) для будущего обновления приложения iOS IQ.
Сегодня готов поделиться здесь огромным материалом (а в ноушене комментариями, дополнениями и примерами).
1. В чем разница между статической переменной и переменной класса?
Почему их природа схожа, и при чём здесь наследование?
2. Вычисляются ли ленивые переменные более одного раза?
И почему потокобезопасность важна.
3. В чём разница между self и Self?
Разница же в Swift заключается в их использовании и контексте. Если вы писали на других языках, то наверняка знаете для чего там использовался this или typeof (в ноушне много примеров).
4. Как сделать методы опциональными в протоколе?
Есть два подхода - optional и extension (а вот как их использовать - в разборе вот здесь).
5. Как происходит оптимизация использования памяти в UITableView?
В канале я регулярно делюсь проблемами и решениями для оптимизации. Например, как быть, если у нас очень много ячеек. В Notion есть пример разбора и таких ситуаций.
6. Что такое Dependency Injection и каковы его преимущества?
Здесь, как вы уже догадались, речь про Constructor injection/Property injection/Method injection. Ну и про описание преимуществ, конечно.
7. Объясните разницу между throws и rethrows в Swift
Как правильно использовать do-catch и многое другое.
8. Объясните типы сессий и задач, поддерживаемые классом URLSession.
Default Session/Ephemeral Session/Background Session. В этой теме рассмотрено, есть ли у нас способ повторить неудавшиеся запросы.
9. Сравните статические и динамические библиотеки
Про то, что может включать каждый тип либ, что происходит при компиляции, как быть с обновлениями.
10. Как бы вы реализовали список с бесконечной прокруткой?
Большой разбор на примерах.
11. Что такое copy-on-write в Swift? Объясните, как настроить его реализацию.
Конечно, эта техника позволяет значительно сократить использование памяти и повысить производительность. Но вот что внутри?
12. Объясните, как используется паттерн Factory и какую проблему решает этот паттерн.
Тут можно не забыть об использовании этой подборки
13. Что такое APNS и как он работает?
14. Объясните назначение ключевого слова «mutating» в Swift.
15. В чем разница между @StateObject
и @ObservedObject
в SwiftUI?
16. Что такое Mocks и Stubs и в чем разница между ними?
Назначение/Поведение/Использование.
17. Объясните протоколы Equatable, Hashable и Comparable в Swift.
18. Что означает UIApplicationMain?
19. Объясните, почему Swift является типобезопасным языком?
Все о Strong Type, Type Inference, Type Casting, optional, дженериках.
20. Зачем вам нужны escaping closures и когда их следует использовать?