Обнаружьте ошибки в представленном Swift‑фрагменте
Основные риски — неизвестная очередь callback, удержание контроллера и неясное время жизни сервиса. titleLabel здесь устанавливается до чтения, поэтому nil не гарантирован.
Читать ответПодготовка к интервью
845 вопросов для подготовки на позицию Mobile-разработчик
Что проверяют на интервью
Подборка помогает системно подготовиться к интервью на позицию Mobile-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: mobile, android, kotlin.
Каталог
Основные риски — неизвестная очередь callback, удержание контроллера и неясное время жизни сервиса. titleLabel здесь устанавливается до чтения, поэтому nil не гарантирован.
Читать ответЦикла сильных ссылок здесь нет: Person сильно удерживает Pet, а Pet слабо ссылается на Person. weak owner автоматически станет nil после освобождения владельца.
Читать ответОбщий Dictionary читается и изменяется конкурентно без синхронизации. Защитить нужно все обращения; порядок insert/delete всё равно не определён.
Читать ответНазовите фактический языковой режим проекта и версию toolchain отдельно. Само использование нового Xcode не означает, что весь код собирается в Swift 6 mode.
Читать ответoverlay рисует кнопку поверх ScrollView и может перекрывать последние элементы. safeAreaInset резервирует для кнопки место в безопасной области прокрутки.
Читать ответStructured concurrency связывает дочерние задачи со временем жизни области родителя. Task.detached не относится к ней; обычный Task {} тоже создаёт unstructured task.
Читать ответСкажите, в каком состоянии был проект при вашем приходе и какую часть перехода делали лично. Версия компилятора и языковой режим проекта — не одно и то же.
Читать ответУточните стек backend отдельно от мобильных клиентов. Android и iOS — клиентские платформы, а не исключения внутри списка серверных языков.
Читать ответПриведённый Kotlin-код уже использует mutableListOf, корректный add и обратный обход. Он выводит 7, 5, 1 и Done!, пропуская только элемент 3.
Читать ответРазделите Kotlin SDK на публичный API, локальное состояние и синхронизацию с сервером. Начисление достижений делайте идемпотентным и привязанным к игроку.
Читать ответОшибка — var в параметре вторичного конструктора. Свойства через val/var объявляются в первичном конструкторе; делегирование this(section) здесь корректно.
Читать ответExtension-функция не получает доступ к private-полям класса, поэтому fullName не компилируется. Перенесите её внутрь Person или откройте нужные свойства осознанно.
Читать ответ