Mobil dasturlash

Foydalanuvchi interfeysida navigatsiya dizayni: tab, stack va modalni to‘g‘ri tanlash

Goxost Blog · · 7 min read · 277 views
Foydalanuvchi interfeysida navigatsiya dizayni: tab, stack va modalni to‘g‘ri tanlash
Foydalanuvchi interfeysida navigatsiya dizayni: tab, stack va modalni to‘g‘ri tanlash

Kirish: navigatsiya dizayni nimani hal qiladi

Mobil dasturlarda foydalanuvchi interfeysiga navigatsiya dizayni deganda, ekranlar o‘rtasida oqilona yo‘l tanlash, holatni yo‘qotmaslik va foydalanuvchining maqsadini tez bajarish imkonini beradigan UI mexanizmlar majmui tushuniladi.

Bu mavzuni “qulay” so‘zi bilan to‘ldirib bo‘lmaydi: navigatsiyaning aniq yechimlari bor, masalan, orqaga qaytish xatti-harakati, pastki menyu soni, sarlavha va kontekstni saqlash, chuqur bog‘lanishda marshrutni boshqarish.

Mobil ilovalarda navigatsiya ko‘pincha uchta asosiy qolipdan tuziladi: stack (ekranlar ketma-ketligi), tab (asosiy bo‘limlar bo‘yicha tez o‘tish) va modal (asosiy oqimni vaqtincha to‘xtatib, aniq ishni bajarish).

To‘g‘ri tanlov noto‘g‘risini tuzatmaydi, shuning uchun qaror qabul qilishda mezon bo‘lishi kerak: foydalanuvchi qaysi joyda doim “qaytib kelishi” mumkin, qaysi joy esa faqat “yo‘l” sifatida kerak bo‘ladi.

  • Tab odatda foydalanuvchi tez-tez ko‘radigan asosiy bo‘limlar uchun: masalan, “Bosh sahifa”, “Qidiruv”, “Bildirishnomalar”, “Profil”.
  • Stack foydalanuvchi ketma-ket jarayonni bosib o‘tadigan ekranlar uchun: masalan, ro‘yxatdan o‘tish → kod kiritish → sozlash.
  • Modal qisqa va aniq harakatlar uchun: masalan, “Filtrni tanlash”, “Rasm yuklash”, “Parolni tiklash”.

###

Navigatsiya foydalanuvchiga uchta savolga javob berishi kerak: “Men qayerdaman?”, “Bu qadamdan oldin nima bo‘lgan?”, “Keyingi qadam nimaga olib boradi?”. Buni sarlavha, orqaga qaytish va kontekstni saqlash orqali hal qilinadi.

Orqaga qaytish xatti-harakati eng ko‘p xatoga sabab bo‘ladigan joy: masalan, modal yopilganda stack avtomatik o‘zgarib ketishi yoki formadagi kiritish yo‘qolishi.

  • Stack ekranda “Orqaga” tugmasi foydalanuvchi oldin ko‘rgan ekraniga qaytarishi kerak; kutilmagan “Bosh sahifaga tashlab yuborish” tajribasi navigatsiyani buzadi.
  • Formali sahifalarda: bekor qilish tugmasi bosilganda “tahrirlanayotgan qiymatlar” qanday ishlashi aniq bo‘lishi lozim (masalan, tasdiqlash oynasi yoki saqlab qolish).
  • List → detal oqimida: list filtrlari (masalan, “Faol” filtri) qaytishda yo‘qolmasligi kerak, aks holda foydalanuvchi qayta filtrlashga majbur bo‘ladi.

Tarix va konteks: navigatsiya qanday evolyutsiya qilindi

Mobil platformalarda navigatsiya logikasi uzoq vaqt davomida progressiv “vizual markerlar”dan semantik oqimlarga o‘tdi. Dastlab ko‘p ilovalar “ekranlarni navbatma-navbat ochish” (stack) fikriga tayangan, keyin esa asosiy bo‘limlar uchun doimiy ko‘rinadigan yo‘nalishlar paydo bo‘ldi.

So‘nggi avlod tajribalar esa brauzer konsepti bilan yaqinlashdi: marshrut (routing), chuqur bog‘lanish (deep link), orqaga tugma tarixini saqlash kabi g‘oyalar mobil ilovalarda ham ishlay boshladi. Bu 2010-yillarda “deep link” va “single-activity/single-navigation-container” kabi yondashuvlar kengayishi bilan yaqqol ko‘rindi.

  • 2007–2010: bir nechta sahifa o‘tishi “ekranlar almashinuvi” sifatida ko‘rilgan; orqaga qaytish ko‘pincha platforma defaultiga tayanardi.
  • 2012–2016: asosiy bo‘limlar uchun pastki navigatsiya va tablar ommalashdi; foydalanuvchi tez aylanishga moslashdi.
  • 2016–hozir: deep link, nested navigation va marshrut holatini tiklash “default” talab bo‘lib bormoqda.

Amaliy mexanizm: navigatsiya stackida marshrut va holat qanday boshqariladi

Stack navigatsiyada har bir “o‘tish” yangi ekranni stack tepasiga qo‘shadi. “Orqaga” tugmasi stack tepasidagi ekranni olib tashlaydi va ostidagisini qayta ko‘rsatadi. Bu tartib UI’da ham, ma’lumot holatida ham barqaror bo‘lishi kerak.

Holat yo‘qolishi ko‘pincha two-steps xatoda uchraydi: birinchidan, ekranga o‘tishda parametrlarga noto‘g‘ri tayaniladi (masalan, faqat IDni uzatib, qidiruv shartlarini unutish), ikkinchidan, qaytishda list/detallar qayta yuklanib, foydalanuvchi joylashgan pozitsiya yo‘qoladi.

  1. Stackga o‘tish: foydalanuvchi “List → Detail” qilganda detail ekrani uchun minimal kerakli parametrlari uzating (masalan, itemId).
  2. Kontextni saqlash: list filtrlari va scroll pozitsiyani (kamida qaytishda qaysi bo‘lim filtri tanlanganini) saqlash rejasini belgilang.
  3. Orqaga qaytish: back harakati stack tarixiga to‘liq mos kelishi; modal yopilganda “qadamlar” noto‘g‘ri hisoblanmasligi kerak.

Tab va modalni amalda cheklash: raqamlar bilan mezonlar

Tab navigatsiyada asosiy bo‘limlar sonini haddan oshirish kognitiv yukni ko‘paytiradi. Odatda pastki tablar 3–5 tadan oshmasligi tavsiya qilinadi; 5 dan keyin foydalanuvchi belgilarni farqlashda sekinlashadi va “to‘g‘ri tab” tanlash xatolari ko‘payadi.

Modal oynalar esa juda ko‘p bo‘lsa, foydalanuvchi oqimdan tez-tez uzilib ketadi. Modal faqat aniq vazifani tugatish uchun ishlatilishi, “bekor qilish” yo‘li ravshan bo‘lishi va stack tarixini buzmasligi kerak.

KomponentQachon ishlatishCheklov (amaliy)Tipik xato
Pastki tablarAsosiy bo‘limlar orasida tez o‘tish3–5 taHar bir noyob ekranni alohida tabga chiqarish
StackKetma-ket jarayon (wizard, detalga o‘tish)Foydalanuvchining “orqaga” modeli izchil bo‘lsinOrqaga qaytganda kontent qaytadan “sakrab” ketishi
ModalAniq ish (filtr, tasdiq, yuklash)Kam va maqsadliModal yopilganda oldingi holat to‘g‘ri tiklanmasligi

Formatlash va vizual signallar: foydalanuvchi qayerda ekanini qanday biladi

Navigatsiya UI’da “qayerda ekanini” ko‘rsatmasa, foydalanuvchi keyingi qadamni taxmin qilishga majbur bo‘ladi. Bu ayniqsa pastki tablar bilan birga stack ishlatilganda muhim: foydalanuvchi qaysi tabda ekanini va stack qanchaga chuqurlashganini anglab turishi kerak.

Vizual signal uchun amaliy qoidalar: sarlavhani kontekstga bog‘lang, belgilash (active state) ravshan bo‘lsin, “orqaga” tugmasi o‘rnini bosuvchi joylarda bo‘shliq qoldirmang.

  • Faol tabni ajratish: kamida rang kontrasti va o‘zgarish (masalan, ikonning to‘liq rangga o‘tishi) bo‘lsin.
  • Sarlavha: bo‘lim nomini yoki jarayon bosqichini aniq ayting (masalan, “To‘lov usuli” o‘rniga “Sozlamalar”).
  • Breadcrumb kabi ko‘rinishlar: hamma joyda shart emas, lekin chuqur navigatsiyada foydali bo‘lishi mumkin (agar UI joy yetarli bo‘lsa).

Performance va best practice: navigatsiya sekinlashmasligi uchun nimalarga qarash kerak

Navigatsiya faqat dizayn emas: u tarmoq so‘rovlar, kesh va render bilan bevosita bog‘liq. Har ekranga o‘tishda to‘liq qayta yuklash tajribani sekinlashtiradi; shuning uchun caching strategiyasi va ekranni tayyorlash (prefetch) mexanizmlari rejalashtiriladi.

Amaliy qoida: listdan detailga o‘tishda kerakli ma’lumotni tez olish uchun kiritilgan navigatsiya parametrlari to‘g‘ri bo‘lsin (masalan, itemId bo‘yicha bir martalik so‘rov), va ortiqcha formatlashni render siklidan tashqariga chiqarish kerak.

  • Tez-tez ishlatiladigan ma’lumotlarni (bo‘lim ro‘yxati, filtrlash parametrlari) lokal keshda saqlash.
  • Orqaga qaytganda listni qayta yaratib yubormaslik: scroll pozitsiya va tanlangan filtrlarga qaytishni ta’minlash.
  • Prefetch: foydalanuvchi listdagi “yaqin” elementni bosishi ehtimoli yuqori bo‘lsa, keyingi ekranga kerak bo‘ladigan ma’lumotni fon rejimida tayyorlash.

Tipik xatolar va ularni tuzatish yo‘llari (real misollar)

Quyidagi muammolar ko‘p uchraydi va ularning yechimi dizayn bilan emas, navigatsiya holati bilan ishlanadi. Agar “orqaga” bosilganda foydalanuvchi qayta ro‘yxatdan o‘tish ekranini ko‘rsa yoki filtrlar qaytishda o‘chib ketsa, bu navigatsiya modeliga zid.

Quyidagi yechimlar amaliy: parametr uzatishni aniqlashtiring, holatni saqlashni belgilab bering va ekranni render qilish logikasini barqaror tuting.

  • Xato: deep linkdan ochilganda stack noto‘g‘ri to‘planadi va “orqaga” tugmasi kutilmagan ekranga qaytaradi.**

Yechim:** deep link marshrutini to‘g‘ri “stack yo‘li” sifatida yig‘ish (kerakli oraliq ekranlarni yaratish) va oxirgi ekran parametrini aniq uzatish.

  • Xato: “Filtr” modalini yopgach list holati qayta tiklanmaydi.**

Yechim:** modal bekor qilish va tasdiqlash alohida event bo‘lsin; tasdiqda filtr holatini store/state-ga yozib, list qaytishda shu holatni o‘qisin.

  • Xato: ro‘yxatdan o‘tish jarayonida qadamlar o‘rtasida kiritish yo‘qoladi.**

Yechim:** steplar orasida inputni “kiritish modeli” sifatida alohida saqlash; qaytishda input fieldlarini tiklash.

FAQ

Pastki tablar sonini necha tadan oshirmaslik kerak?

Amaliy tavsiya: 3–5 ta. 5 tadan oshsa, faol tabni tez topish va ikonlarni farqlash qiyinlashadi; natijada noto‘g‘ri tanlash ko‘payishi mumkin.

Stackda “orqaga” bosilganda formadagi kiritish yo‘qoladimi?

Yo‘qolmasligi kerak degan qat’iy qoida bor emas, lekin xatti-harakat oldindan belgilanadi: “bekor qilish” kutilganda kiritish yo‘qolishi mumkin, ammo “orqaga” navigatsiya modeli doirasida odatda foydalanuvchi ishini saqlab qolish ma’qul.

Modalni qachon tanlash kerak: stackmi yoki modalmi?

Agar foydalanuvchi vazifa aniq bo‘lsa va asosiy oqimni vaqtincha to‘xtatish yetarli bo‘lsa modal mos. Agar foydalanuvchi ko‘proq ketma-ket qadamlarni bosib o‘tsa (masalan, bir nechta step), stack ko‘proq mos keladi.

U ochilgan marshrut yo‘liga mos qaytishi kerak. Ya’ni deep linkdan kelib chiqqan ekran stack ichida to‘g‘ri joylashishi va “orqaga” kutilgan oraliq bosqichlarga ketma-ket qaytishi lozim.

List → detail qaytishda scroll pozitsiya saqlanishi kerakmi?

Ha, amaliy jihatdan ko‘pincha kerak: aks holda foydalanuvchi qaytishda yana qidirishga yoki skrollni tiklashga majbur bo‘ladi. Hech bo‘lmaganda filtrlash holati (tanlangan parametrlar) saqlanishi kerak.

Xulosa

Navigatsiya dizayni foydalanuvchining maqsadiga yo‘l bo‘lib xizmat qiladi: stack, tab va modalni to‘g‘ri tanlash; orqaga qaytish modelini izchil qilish; kontekst va holatni saqlash — bularning barchasi o‘lchanadigan tajriba natijalarini beradi.

Eng yaxshi yondashuv: har bir ekran o‘tishida “qanday holat saqlanadi, qanday parametrlari uzatiladi va orqaga qaytishda nima ko‘rinadi?” degan savolga javobingiz aniq bo‘lsa, dizayn ham, ishlash ham barqaror bo‘ladi.