Экзаменационные вопросы
Только вопросы для самопроверки — без ответов и без разбивки на билеты.
Ответы см. в private_exam_answers.md, ситуационные задачи — в private_exam_tasks.md,
билеты — в private_exam_tickets.md.
Курс: React Native/Expo, состояние и данные, аутентификация, архитектура, сети (лекции 1–14).
-
Опишите основные этапы эволюции мобильных приложений от функционально-встроенных программ до современных экосистем.
-
В чём заключаются ключевые различия между нативными, кроссплатформенными, гибридными приложениями и PWA? Приведите примеры использования каждого подхода.
-
Какие характеристики определяют мобильное приложение как отдельный класс программного обеспечения?
-
Классифицируйте мобильные приложения по назначению и зависимости от сети. Приведите примеры для каждой категории.
-
Опишите архитектурные паттерны MVC, MVP и MVVM. В чём их принципиальные различия?
-
Что такое Expo и какие компоненты входят в его экосистему? Какие преимущества имеет разработка с использованием Expo?
-
Опишите структуру типичного проекта на Expo. Какие файлы и директории являются ключевыми?
-
Как работает система компонентов в React Native? В чём отличие от веб-версии React?
-
Объясните работу хуков
useStateв контексте мобильных приложений. Приведите пример использования. -
Как работает система стилей в React Native? Опишите систему Flexbox.
-
Какие компоненты Expo предоставляют доступ к сенсорам и сервисам устройства? Приведите примеры.
-
Опишите основные навигационные паттерны в React Navigation: Stack, Tab, Drawer. Когда использовать каждый из них?
-
Как передавать параметры между экранами в React Navigation?
-
Какие уровни состояния существуют в мобильных приложениях? Объясните разницу между локальным, глобальным и серверным состоянием.
-
Когда использовать
useState, а когдаuseReducer? Приведите примеры. -
Опишите работу Context API для управления глобальным состоянием. Приведите пример создания AuthContext.
-
В чём разница между AsyncStorage и SQLite? Когда использовать каждый подход?
-
Опишите принципы работы с AsyncStorage. Какие есть рекомендации по безопасности?
-
Как организовать базовый флоу аутентификации в мобильном приложении? Опишите процесс от экрана входа до защищённых экранов.
-
Как реализовать защиту маршрутов (route guards) для аутентифицированных пользователей?
-
Объясните принцип разделения ответственностей (SoC) в контексте мобильных приложений.
-
Чем MVVM отличается от MVP и когда что выбрать?
-
Объясните концепцию Clean Architecture применительно к мобильным приложениям. Какие слои выделяются?
-
Что такое репозиторий как фасад? Как он скрывает детали источников данных?
-
Опишите политики кэширования: Cache-First, Network-First, Stale-While-Revalidate. Когда использовать каждую?
-
Что такое offline-first архитектура? Как реализовать синхронизацию данных при восстановлении соединения?
-
Как организовать глобальное состояние в архитектуре приложения? Сравните Context API, Redux, Zustand.
-
Как организовать граф экранов в приложении? Опишите разделение стеков (auth-stack, app-stack).
-
Как классифицируются ошибки в многослойной архитектуре? Где должны обрабатываться ошибки?
-
Что такое feature-модули и когда их следует выделять?
-
Какие особенности мобильных сетей влияют на архитектуру сетевого взаимодействия? Опишите нестабильность соединения и ограничения ресурсов.
-
В чём основные различия между HTTP/1.1 и HTTP/2? Какие преимущества даёт HTTP/2 для мобильных приложений?
-
Сравните форматы сериализации данных: JSON и Protocol Buffers. Когда использовать каждый?
-
Опишите механизмы аутентификации: JWT, OAuth 2.0, API Keys. Когда использовать каждый?
-
Как классифицируются сетевые ошибки? Опишите временные, постоянные и системные ошибки.
-
Как реализовать стратегию повторных попыток (retry) с экспоненциальной задержкой? Объясните алгоритм.
-
Какие стратегии кэширования данных существуют? Объясните Cache-First, Network-First и Stale-While-Revalidate.
-
Как организовать батчинг запросов? Какие преимущества это даёт?
-
Как обеспечить безопасность сетевого взаимодействия в мобильных приложениях? Опишите транспортное шифрование.
-
Что такое Edge Computing? Как оно применяется в мобильных приложениях?