Архітектура екранів і навігація — це система, яка визначає, як користувач переміщається між екранами мобільного додатка, повертається назад і знаходить потрібні функції. Архітектура включає правила переходів, ієрархію екранів і способи повернення до попередніх розділів. За даними Apple Human Interface Guidelines (2025), продумана навігація знижує когнітивне навантаження користувача на 40%, а користувачі витрачають на 25% менше часу на пошук інформації. Опанувавши базові принципи архітектури екранів, ви зможете створювати додатки з інтуїтивно зрозумілою структурою.
Головне
Архітектура екранів і навігація — це каркас мобільного додатка, який визначає доступні екрани та способи переміщення між ними. Кожен екран вирішує конкретне завдання: список товарів, картка товару, кошик або форма оформлення замовлення. За даними Apple Human Interface Guidelines (2025), продумана навігація знижує когнітивне навантаження користувача на 40%. Початківцям варто починати з простої схеми з трьох-п'яти екранів.
Будь-яка архітектура екранів включає три базових елементи: екрани, переходи та контейнери навігації. Екрани відображають контент, переходи керують анімацією зміни екранів, а контейнери зберігають історію переміщень користувача. В Android цю роль виконує FragmentManager, в iOS — UINavigationController. Розуміння цих трьох компонентів — перший крок до проєктування зручного інтерфейсу.
У мобільних додатках виділяють чотири основні типи навігації: стекова, модальна, вкладочна та жестова. Стекова модель працює як стопка карт — кожен новий екран кладеться зверху, а кнопка "Назад" знімає верхню карту. За даними Nielsen Norman Group (2024), стекова навігація — найбільш передбачуваний патерн, зрозумілий 94% користувачів без навчання. Починати зі стеку варто тому, що він інтуїтивно зрозумілий користувачам будь-якої платформи.
Модальні вікна — це тимчасові екрани, які вимагають дії перед поверненням до основного контенту. Вони використовуються для одного завдання: підтвердження дії, форма входу або вибір опції. На відміну від стеку, модальне вікно не зберігається в історії переходів. Тип навігації вибирають виходячи зі сценаріїв використання додатка.
На iOS навігація будується навколо UINavigationController — контролера, який керує стеком екранів. UINavigationController автоматично додає навігаційну панель із заголовком і кнопкою "Назад". За даними Apple Developer Documentation (2025), 85% додатків в App Store використовують UINavigationController як основний навігаційний патерн. Початківцям iOS-розробникам достатньо освоїти push і pop у поєднанні з основами UX/UI дизайну.
При push-переході новий екран поміщається в стек навігації, і користувач бачить анімацію появи справа. При pop-переході поточний екран видаляється зі стеку, і користувач повертається на попередній. UINavigationController зберігає посилання на всі екрани стеку, дозволяючи повертатися на кілька кроків назад. Ми в IT Sectr використовуємо цей підхід у всіх iOS-проєктах для побудови лінійних користувацьких сценаріїв.
На Android архітектура екранів реалізується через Navigation Component — бібліотеку від Google для побудови навігації. Navigation Component використовує граф навігації (nav graph), де кожен екран — вузол, а переходи — ребра між ними. За даними Android Developers Guide (2025), Navigation Component скорочує кількість помилок навігації на 60% порівняно з ручним FragmentManager. Початківцям Android-розробникам рекомендується одразу освоювати Navigation Component.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
// В nav_graph.xml:
<!--
<fragment android:id="@+id/homeFragment"
android:name=".HomeFragment" />
<fragment android:id="@+id/detailFragment"
android:name=".DetailFragment" />
<action android:id="@+id/toDetail"
app:destination="@id/detailFragment" />
-->
// Перехід по кнопці:
view.findViewById<Button>(R.id.open_detail).setOnClickListener {
findNavController().navigate(R.id.toDetail)
}
До появи Navigation Component розробники керували переходами через FragmentManager — системний клас для заміни фрагментів. FragmentManager працює з транзакціями: replace, add, remove для зміни фрагментів на екрані. Однак він вимагає ручного керування стеком і станами, що часто призводить до помилок. Google офіційно рекомендує Navigation Component як більш безпечну альтернативу ручному FragmentManager.
Початківці часто допускають типові помилки при проєктуванні архітектури екранів. Найпоширеніша — відсутність єдиного центру керування навігацією, коли переходи розкидані по всьому коду. За даними аналізу Google Play Console (2025), додатки з хаотичною навігацією мають на 37% більше crash-репортів, пов'язаних з переходами. Єдиний маршрутизатор або навігаційний граф вирішує цю проблему.
Багато новачків забувають обробляти системну кнопку "Назад" на Android або жест змахування на iOS. Необроблене повернення призводить до зависання додатка або неочікуваного виходу з нього. На Android Navigation Component обробляє кнопку "Назад" автоматично, якщо налаштовано граф навігації. Нижче приклад обробки кнопки "Назад" за допомогою OnBackPressedDispatcher.
class MyFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val callback = OnBackPressedCallback(true) {
if (isSheetExpanded) {
collapseSheet()
isEnabled = false
} else {
isEnabled = false
requireActivity().onBackPressedDispatcher.onBackPressed()
}
}
requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner, callback
)
}
}
Код перевіряє, чи розгорнуто панель Bottom Sheet: якщо так — згортає її, якщо ні — передає подію системному диспетчеру. Це стандартний патерн для кастомної обробки "назад" в Android.
Часто задавані питання
Архітектура екранів — це структура переходів між екранами мобільного додатка. Вона визначає, які екрани доступні користувачеві, в якому порядку вони відкриваються і як користувач повертається назад до попереднього розділу. Продумана архітектура робить інтерфейс інтуїтивно зрозумілим і значно знижує кількість багів, пов'язаних з навігацією, на етапі розробки.
У мобільних додатках виділяють стековий, модальний і вкладочний типи навігації. Стекова працює як стопка екранів з поверненням назад. Модальна відкриває тимчасові вікна для одного завдання. Вкладочна ділить додаток на розділи з перемиканням між ними. Вибір типу залежить від завдань розробника та потреб користувачів.
Стекова навігація зберігається в історії переходів — користувач може повернутися на будь-який попередній екран. Модальні вікна не зберігаються: після закриття користувач потрапляє одразу на той екран, з якого відкрив вікно. Стек підходить для послідовних завдань (вибір товару — кошик — оформлення), модальні вікна — для одиночних дій.
Для Android рекомендується використовувати Navigation Component — сучасну бібліотеку від Google. Вона автоматично керує стеком, кнопкою "Назад" і deep links. FragmentManager — більш старий інструмент, що вимагає ручного керування станом. Google офіційно рекомендує Navigation Component для всіх нових проєктів.
Без продуманої архітектури екранів додаток швидко перетворюється на хаос, де кожен новий екран додається без системи. Це призводить до помилок переходів і складнощів з додаванням нових функцій. За даними Google Play Console, додатки без архітектури навігації мають на 37% більше багів. Планування екранів на старті економить до 30% часу розробки.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.