Перейти к содержимому
На этой странице

Графический интерфейс пользователя

Все темы IOS Developer

Какие методы существуют для построения пользовательского интерфейса (UI)?

Существует несколько методов для построения пользовательского интерфейса (UI) в приложениях:

  1. Использование кода: Программное создание интерфейса с помощью языка программирования и фреймворков, таких как UIKit в iOS или Android SDK в Android.

  2. Использование интерфейсных конструкторов: Использование инструментов визуального создания интерфейса, таких как Interface Builder в Xcode для iOS или XML-макетов в Android Studio для Android.

  3. Кросс-платформенные фреймворки: Использование фреймворков, которые позволяют создавать интерфейс один раз и запускать его на различных платформах, таких как React Native, Flutter или Xamarin.

  4. Проектирование веб-интерфейса: Создание интерфейса с помощью веб-технологий, таких как HTML, CSS и JavaScript, для работы в браузере или встроенного веб-вью в мобильных приложениях.


Какие классы пользовательского интерфейса (UI) вам известны, и возможно ли, что вы с ними работали?

Несколько примеров классов пользовательского интерфейса (UI), с которыми я знаком:

  1. UIButton (iOS): Класс кнопки, используемый для создания кнопок в iOS-приложениях.

  2. TextView (Android): Класс текстового поля, позволяющего отображать и редактировать текст в Android-приложениях.

  3. JButton (Java Swing): Класс кнопки в библиотеке Java Swing, используемый для создания кнопок в десктопных приложениях на Java.

  4. QLineEdit (Qt): Класс для ввода одной строки текста в приложениях, разработанных с использованием Qt.

  5. TextField (Flutter): Виджет текстового поля в фреймворке Flutter, используемый для ввода текста в мобильных и веб-приложениях.

  6. HTML: Для отображения текста используют элементы p, span и другие подходящие по смыслу элементы. Стандартного HTML-элемента TextView нет.


Что представляет собой UIKit?

UIKit - это фреймворк, предоставляемый Apple для разработки пользовательского интерфейса (UI) в iOS-приложениях. Он содержит широкий спектр классов и инструментов для создания интерактивных и интуитивно понятных пользовательских интерфейсов, включая элементы управления, виды, анимации, жесты и многое другое. UIKit обеспечивает обработку событий пользовательского ввода, управление макетом, а также рисование и анимацию объектов на экране. Он является основным компонентом для создания iOS-приложений и играет ключевую роль в разработке мобильных приложений для устройств Apple.


Какие основные классы входят в состав UIKit?

Основные классы UIKit включают:

  1. UIViewController: Управляет отображением и жизненным циклом пользовательского интерфейса.

  2. UIView: Отвечает за отображение и взаимодействие с элементами пользовательского интерфейса.

  3. UIButton: Кнопка для выполнения действий по нажатию.

  4. UILabel: Отображает текст на экране.

  5. UIImageView: Отображает изображения.

  6. UITableView: Показывает данные в виде списка.

  7. UICollectionView: Позволяет отображать данные в виде гибкой сетки.

  8. UITextField: Позволяет пользователю вводить текст.

  9. UITextView: Отображает многострочный текст.

  10. UIAlertController: Показывает всплывающие уведомления и диалоговые окна.

  11. UINavigationController: Управляет навигацией между различными экранами приложения.

  12. UITabBarController: Позволяет пользователю переключаться между различными разделами приложения с помощью вкладок.

  13. UIStackView: Упорядочивает и управляет расположением нескольких представлений.

  14. UIActivityIndicatorView: Отображает анимированный индикатор загрузки.

  15. UIProgressView: Показывает прогресс выполнения определенной операции.


Каков жизненный цикл UIViewController в iOS?

Жизненный цикл UIViewController в iOS включает следующие основные методы:

  1. init(coder:) / init(nibName:bundle:): Создание экземпляра UIViewController из кода или из файла XIB.

  2. loadView(): Создание и инициализация представления контроллера.

  3. viewDidLoad(): Выполняется после загрузки представления в память. Обычно используется для настройки начальных параметров.

  4. viewWillAppear(_:): Вызывается перед тем, как представление станет видимым.

  5. viewDidAppear(_:): Вызывается после того, как представление становится видимым.

  6. viewWillDisappear(_:): Вызывается перед тем, как представление будет удалено с экрана.

  7. viewDidDisappear(_:): Вызывается после того, как представление было удалено с экрана.

  8. viewWillLayoutSubviews(): Вызывается перед изменением размера и расположения представления.

  9. viewDidLayoutSubviews(): Вызывается после изменения размера и расположения представления.

  10. dealloc() / deinit(): Освобождение ресурсов и памяти, удерживаемых контроллером.


Что представляет собой UIScrollView?

UIScrollView в iOS - это контейнер, который позволяет просматривать и прокручивать содержимое, размер которого превышает размер экрана устройства. Он позволяет пользователю взаимодействовать с содержимым, которое не помещается на экране целиком, путем прокрутки вверх, вниз, влево или вправо. UIScrollView является основным компонентом для реализации прокручиваемых интерфейсов в iOS.


Что представляет собой свойство contentSize в UIScrollView?

Свойство contentSize в UIScrollView определяет размер области содержимого, которое может быть прокручено. Например, если содержимое UIScrollView больше размера его видимой области, то contentSize будет указывать на этот расширенный размер, позволяя пользователю прокручивать содержимое.


Что представляют собой UICollectionView и UITableView, и как они работают?

Определения:

UICollectionView и UITableView - это классы, предназначенные для отображения списков данных. Они оба основаны на шаблоне проектирования “переиспользуемой ячейки” и используют протоколы делегирования и источника данных для управления данными и внешним видом.

  • UITableView представляет простой список данных с одной колонкой. Он состоит из ячеек, каждая из которых обычно содержит один элемент данных.

  • UICollectionView предоставляет более гибкую структуру для отображения данных в форме сетки или пользовательских макетов. Он может отображать данные в виде секций и элементов, которые могут иметь различные размеры и макеты.

Собеседования: iOS

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: iOS-разработчик, Swift-разработчик. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.