Перейти к содержимому

Экзаменационные вопросы

Только вопросы для самопроверки — без ответов и без разбивки на билеты. Ответы см. в private_exam_answers.md, ситуационные задачи — в private_exam_tasks.md, билеты — в private_exam_tickets.md.

Курс: React Native/Expo, состояние и данные, аутентификация, архитектура, сети (лекции 1–14).


  1. Опишите основные этапы эволюции мобильных приложений от функционально-встроенных программ до современных экосистем.

  2. В чём заключаются ключевые различия между нативными, кроссплатформенными, гибридными приложениями и PWA? Приведите примеры использования каждого подхода.

  3. Какие характеристики определяют мобильное приложение как отдельный класс программного обеспечения?

  4. Классифицируйте мобильные приложения по назначению и зависимости от сети. Приведите примеры для каждой категории.

  5. Опишите архитектурные паттерны MVC, MVP и MVVM. В чём их принципиальные различия?

  6. Что такое Expo и какие компоненты входят в его экосистему? Какие преимущества имеет разработка с использованием Expo?

  7. Опишите структуру типичного проекта на Expo. Какие файлы и директории являются ключевыми?

  8. Как работает система компонентов в React Native? В чём отличие от веб-версии React?

  9. Объясните работу хуков useState в контексте мобильных приложений. Приведите пример использования.

  10. Как работает система стилей в React Native? Опишите систему Flexbox.

  11. Какие компоненты Expo предоставляют доступ к сенсорам и сервисам устройства? Приведите примеры.

  12. Опишите основные навигационные паттерны в React Navigation: Stack, Tab, Drawer. Когда использовать каждый из них?

  13. Как передавать параметры между экранами в React Navigation?

  14. Какие уровни состояния существуют в мобильных приложениях? Объясните разницу между локальным, глобальным и серверным состоянием.

  15. Когда использовать useState, а когда useReducer? Приведите примеры.

  16. Опишите работу Context API для управления глобальным состоянием. Приведите пример создания AuthContext.

  17. В чём разница между AsyncStorage и SQLite? Когда использовать каждый подход?

  18. Опишите принципы работы с AsyncStorage. Какие есть рекомендации по безопасности?

  19. Как организовать базовый флоу аутентификации в мобильном приложении? Опишите процесс от экрана входа до защищённых экранов.

  20. Как реализовать защиту маршрутов (route guards) для аутентифицированных пользователей?

  21. Объясните принцип разделения ответственностей (SoC) в контексте мобильных приложений.

  22. Чем MVVM отличается от MVP и когда что выбрать?

  23. Объясните концепцию Clean Architecture применительно к мобильным приложениям. Какие слои выделяются?

  24. Что такое репозиторий как фасад? Как он скрывает детали источников данных?

  25. Опишите политики кэширования: Cache-First, Network-First, Stale-While-Revalidate. Когда использовать каждую?

  26. Что такое offline-first архитектура? Как реализовать синхронизацию данных при восстановлении соединения?

  27. Как организовать глобальное состояние в архитектуре приложения? Сравните Context API, Redux, Zustand.

  28. Как организовать граф экранов в приложении? Опишите разделение стеков (auth-stack, app-stack).

  29. Как классифицируются ошибки в многослойной архитектуре? Где должны обрабатываться ошибки?

  30. Что такое feature-модули и когда их следует выделять?

  31. Какие особенности мобильных сетей влияют на архитектуру сетевого взаимодействия? Опишите нестабильность соединения и ограничения ресурсов.

  32. В чём основные различия между HTTP/1.1 и HTTP/2? Какие преимущества даёт HTTP/2 для мобильных приложений?

  33. Сравните форматы сериализации данных: JSON и Protocol Buffers. Когда использовать каждый?

  34. Опишите механизмы аутентификации: JWT, OAuth 2.0, API Keys. Когда использовать каждый?

  35. Как классифицируются сетевые ошибки? Опишите временные, постоянные и системные ошибки.

  36. Как реализовать стратегию повторных попыток (retry) с экспоненциальной задержкой? Объясните алгоритм.

  37. Какие стратегии кэширования данных существуют? Объясните Cache-First, Network-First и Stale-While-Revalidate.

  38. Как организовать батчинг запросов? Какие преимущества это даёт?

  39. Как обеспечить безопасность сетевого взаимодействия в мобильных приложениях? Опишите транспортное шифрование.

  40. Что такое Edge Computing? Как оно применяется в мобильных приложениях?