Tab Bar — що це таке, панель вкладок у мобільних додатках

Автор: IT Sectr Опубліковано: 2026-02-22 Час читання: 12 хв

Tab Bar — елемент навігації, розташований у нижній частині екрана мобільного додатка, який надає швидкий доступ до основних розділів. На iOS реалізується через UITabBarController, на Android — через BottomNavigationView Material Design. Докладніше про принципи навігації читайте в Human Interface Guidelines Apple.

Головне

  • Tab Bar — нижня панель навігації для перемикання між 3–5 основними розділами додатка
  • UITabBarController — стандартний компонент iOS для керування вкладками із системним зовнішнім виглядом
  • BottomNavigationView — компонент Android з Material Design Library для нижньої навігації
  • Бейджі — числові індикатори на іконках вкладок для відображення сповіщень
  • Кастомізація — іконки, кольори, шрифти та анімації перемикання налаштовуються через API платформи

Що таке Tab Bar?

Tab Bar (панель вкладок) — елемент графічного інтерфейсу, розташований у нижній частині екрана мобільного додатка. Він надає швидкий доступ до 3–5 основних розділів додатка. Кожен розділ представлений іконкою та текстовою міткою. Користувач натискає на вкладку, щоб переключитися на відповідний розділ. Tab Bar залишається видимим на всіх екранах у межах кожного розділу, забезпечуючи постійну точку входу.

Apple рекомендує використовувати Tab Bar для розділів додатка з рівним рівнем важливості. Human Interface Guidelines (2026) вказують: «Tab Bar показує 3–5 вкладок. Якщо потрібно більше — остання вкладка стає пунктом «Ще» з іншими всередині». Material Design Google (2026) рекомендує Bottom Navigation для тих же цілей — 3–5 пунктів, активна вкладка виділяється кольором та анімацією.

На відміну від верхніх вкладок (Top Tab Bar), нижня панель зручніша для керування однією рукою — великий палець природно досягає нижньої частини екрана. Дослідження Nielsen Norman Group (2025) показало, що нижня навігація скорочує час виконання завдання на 22% порівняно з верхньою на смартфонах з діагоналлю від 6 дюймів.

UITabBarController в iOS

UITabBarController — вбудований контролер iOS для організації навігації через вкладки. Кожна вкладка керує власним набором екранів, зазвичай організованим у UINavigationController. UITabBarController автоматично створює Tab Bar у нижній частині екрана з системним напівпрозорим фоном та анімацією при перемиканні.

swift
import UIKit

class MainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let homeVC = HomeViewController()
        let searchVC = SearchViewController()
        let profileVC = ProfileViewController()

        homeVC.tabBarItem = UITabBarItem(
            title: "Головна",
            image: UIImage(systemName: "house.fill"),
            tag: 0
        )
        searchVC.tabBarItem = UITabBarItem(
            title: "Пошук",
            image: UIImage(systemName: "magnifyingglass"),
            tag: 1
        )
        profileVC.tabBarItem = UITabBarItem(
            title: "Профіль",
            image: UIImage(systemName: "person.circle.fill"),
            tag: 2
        )

        let homeNav = UINavigationController(rootViewController: homeVC)
        let searchNav = UINavigationController(rootViewController: searchVC)
        let profileNav = UINavigationController(rootViewController: profileVC)

        viewControllers = [homeNav, searchNav, profileNav]
    }
}

Кожна вкладка в прикладі містить UINavigationController, що дозволяє всередині розділу використовувати стекову навігацію. tabBarItem налаштовує іконку, заголовок та бейдж. Система автоматично застосовує стиль SF Symbols для іконок — стандартних символів Apple з підтримкою динамічного типу та мультикольоровості.

BottomNavigationView в Android

BottomNavigationView — компонент Android з Material Design Library, що реалізує нижню панель навігації. В Android 13+ використовується NavigationBarView — його наступник з покращеною анімацією та адаптивною поведінкою. BottomNavigationView слідує специфікації Material Design 3 (Material You) та підтримує тему додатка, динамічні кольори та анімацію при перемиканні.

kotlin
class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navView: NavigationBarView = binding.navView
        val navController = findNavController(R.id.nav_host_fragment)

        // Прив'язка BottomNavigation до NavController
        navView.setupWithNavController(navController)

        // Налаштування бейджа на вкладці сповіщень
        val badge = navView.getOrCreateBadge(R.id.navigation_notifications)
        badge.isVisible = true
        badge.number = 12
    }
}

Компонент BottomNavigationView підтримує Material Design 3 з трьома стилями: default (підпис + іконка), labeled (збільшений підпис) та unlabeled (тільки іконка). Метод setupWithNavController пов'язує панель з Navigation Component, автоматично оновлюючи активну вкладку при зміні екрана. Бейджі створюються через getOrCreateBadge та підтримують числові та точкові індикатори.

Бейджі та індикатори на Tab Bar

Бейджі — числові або точкові індикатори на іконках вкладок, що відображають кількість сповіщень, нових повідомлень або завдань. На iOS бейдж встановлюється через властивість badgeValue на UITabBarItem. На Android бейджі керуються через BadgeDrawable (Material 3) або getOrCreateBadge в NavigationBarView.

Бейджі — потужний інструмент залучення: дослідження Localytics (2025) показали, що додатки з бейджами показують на 18% вищий retention на 7-й день. Однак зловживання бейджами (більше 3 одночасно) знижує CTR на 12%. Apple та Google рекомендують показувати бейдж тільки для релевантних сповіщень і скидати його при відкритті розділу.

ПлатформаКомпонентВстановлення бейджа
iOSUITabBarItem.badgeValuetabBarItem.badgeValue = "5"
AndroidBadgeDrawablebadge.number = 5
iOSТочковий бейджtabBarItem.badgeColor = .red
AndroidТочковий індикаторbadge.isVisible = true

Кастомізація Tab Bar: іконки, кольори, анімації

Обидві платформи надають широкі можливості кастомізації Tab Bar. На iOS можна змінити колір фону, tint color активної вкладки, шрифт підпису та додати кастомні іконки через SF Symbols або власні assets. На Android кастомізація включає стилі Material 3, анімацію перемикання, ripple-ефект та динамічні кольори на основі шпалер.

swift
// Кастомізація Tab Bar в iOS
let appearance = UITabBarAppearance()
appearance.backgroundColor = .systemBackground
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [
    .foregroundColor: UIColor.secondaryLabel,
    .font: UIFont.systemFont(ofSize: 11)
]
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [
    .foregroundColor: UIColor.systemBlue,
    .font: UIFont.boldSystemFont(ofSize: 12)
]
tabBar.standardAppearance = appearance.

На Android кастомізація BottomNavigationView виконується через атрибути XML або програмно. Material 3 вводить концепт динамічних кольорів: палітра генерується з шпалер користувача та застосовується до компонентів автоматично. Розробник може перевизначити кольори через тему, встановити кастомну анімацію підкреслення (indicator) та налаштувати ripple-ефект.

kotlin
// Кастомізація BottomNavigationView в Android
val navView = findViewById<NavigationBarView>(R.id.nav_view)

with (navView) {
    labelVisibilityMode = NavigationBarView.LABEL_VISIBILITY_LABELED
    itemActiveIndicatorStyle = R.style.CustomIndicator
    itemRippleColor = ColorStateList.valueOf(
        Color.valueOf("#FFE0B2")
    )
}

// В XML: app:menu="@menu/bottom_nav_menu"
// В XML: app:itemActiveIndicatorStyle="@style/Widget.Material3.BottomNavigationView.ActiveIndicator"

Кращі практики нижньої навігації

При проектуванні Tab Bar важливо дотримуватися рекомендацій платформ та досліджень юзабіліті. Apple HIG: не більше 5 вкладок, текст лаконічний, іконки семантичні. Material Design: 3–5 пунктів, активний пункт виділений, лічильник бейджа не більше 99. NN Group (2025): нижня навігація повинна залишатися видимою на всіх екранах розділу, інакше користувач втрачає контекст.

Основні помилки: 6+ вкладок (змушує використовувати «Ще» — знижує discoverability), зміна порядку вкладок при навігації (дезорієнтує), приховування Tab Bar на вкладених екранах (втрата навігаційної прив'язки). Краща практика — фіксований порядок, одноманітні іконки та текстові мітки, бейджі тільки для дій користувача (не для маркетингу).

  • 3–5 вкладок — оптимальна кількість для швидкого вибору без перевантаження
  • Фіксований порядок — вкладки повинні бути стабільними, без динамічного переставляння
  • Іконка + підпис — обидва елементи обов'язкові для розуміння розділу
  • Активна вкладка — повинна візуально відрізнятися кольором, іконкою або анімацією
  • Бейджі — використовуйте для сповіщень, скидайте при відкритті розділу

Часті запитання

Скільки вкладок повинно бути в Tab Bar?

Apple та Google рекомендують 3–5 вкладок. Менше трьох — не вистачає розділів для виправдання нижньої панелі. Більше п'яти — перевантаження уваги, остання вкладка стає пунктом «Ще». Оптимальна кількість за даними NN Group (2025) — 4 вкладки.

В чому різниця між Tab Bar та Bottom Navigation?

Tab Bar — термін Apple для нижньої панелі iOS (UITabBarController). Bottom Navigation — аналог в Android (BottomNavigationView). Функціонально вони ідентичні: швидкий доступ до 3–5 розділів. Різниці у візуальному стилі: iOS — напівпрозорий фон з blur, Android — фіксований колір з ripple-ефектом.

Чи можна приховати Tab Bar на деяких екранах?

Так, але з обережністю. В iOS — hidesBottomBarWhenPushed = true на UIViewController. В Android — View.GONE на BottomNavigationView. Краща практика — приховувати тільки на повноекранних екранах (перегляд фото, відео), але повертати при поверненні. Тривале приховування дезорієнтує користувача.

Як додати бейдж на вкладку Tab Bar?

В iOS встановіть tabBarItem.badgeValue = "N" (рядком). В Android використовуйте getOrCreateBadge(resId) на NavigationBarView. Бейдж автоматично відображається червоним кружком з числом. Скидання: badgeValue = nil (iOS), removeBadge(resId) або badge.isVisible = false (Android).

Чому Tab Bar приховують на iPhone X+?

На пристроях з Home Indicator (iPhone X та новіші) Tab Bar автоматично піднімається вище індикатора. Система додає Safe Area Insets у нижню частину екрана. Розробнику не потрібно вручну коригувати відступи — UIKit та Android SystemUI обробляють це автоматично.

Підсумки

  • Tab Bar — нижня панель навігації на 3–5 вкладок, стандартний елемент iOS та Android
  • UITabBarController (iOS) та BottomNavigationView (Android) — платформенні реалізації
  • Бейджі — числові індикатори на вкладках для сповіщень, підвищують retention на 18%
  • Кастомізація включає кольори, іконки, шрифти та анімацію перемикання на обох платформах
  • Кращі практики — фіксований порядок, іконка + підпис, 3–5 вкладок, видимість на всіх екранах
  • Tab Bar + Navigation — кожна вкладка зазвичай містить стековий навігатор для вкладених екранів
  • Safe Area — нижня панель автоматично адаптується під Home Indicator на безрамкових пристроях

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також