Ekran mimarisi ve navigasyon, kullanıcının bir mobil uygulamanın ekranları arasında nasıl hareket edeceğini, geri döneceğini ve gerekli işlevleri bulacağını belirleyen bir sistemdir. Mimari, geçiş kurallarını, ekran hiyerarşisini ve önceki bölümlere dönüş yöntemlerini içerir. Apple Human Interface Guidelines (2025)'e göre, iyi tasarlanmış navigasyon, kullanıcının bilişsel yükünü %40 azaltır ve kullanıcılar bilgi aramak için %25 daha az zaman harcar. Ekran mimarisinin temel ilkelerine hakim olarak, sezgisel olarak net bir yapıya sahip uygulamalar oluşturabileceksiniz.
Ana Noktalar
Ekran mimarisi ve navigasyon, mevcut ekranları ve aralarında hareket etme yollarını tanımlayan bir mobil uygulamanın iskeletidir. Her ekran belirli bir görevi çözer: ürün listesi, ürün kartı, sepet veya ödeme formu. Apple Human Interface Guidelines (2025)'e göre, iyi tasarlanmış navigasyon, kullanıcının bilişsel yükünü %40 azaltır. Yeni başlayan geliştiriciler, üç ila beş ekrandan oluşan basit bir şema ile başlamalıdır.
Herhangi bir ekran mimarisi üç temel öğe içerir: ekranlar, geçişler ve navigasyon konteynırları. Ekranlar içeriği görüntüler, geçişler ekran değiştirme animasyonlarını yönetir ve konteynırlar kullanıcının hareket geçmişini saklar. Android'de bu rolü FragmentManager, iOS'ta ise UINavigationController üstlenir. Bu üç bileşeni anlamak, kullanıcı dostu bir arayüz tasarlamanın ilk adımıdır.
Mobil uygulamalarda dört ana navigasyon türü vardır: yığın, modsal, sekme ve jest tabanlı. Yığın modeli bir kart destesi gibi çalışır — her yeni ekran üste konur ve "Geri" düğmesi en üstteki kartı kaldırır. Nielsen Norman Group (2024)'e göre, yığın navigasyonu en öngörülebilir desendir ve kullanıcıların %94'ü tarafından eğitim almadan anlaşılır. Bir yığınla başlamanız önerilir çünkü herhangi bir platformun kullanıcıları için sezgisel olarak nettir.
Modsal pencereler, ana içeriğe dönmeden önce bir eylem gerektiren geçici ekranlardır. Tek bir görev için kullanılırlar: bir eylemi onaylama, giriş formu veya seçenek seçimi. Bir yığından farklı olarak, modsal pencere navigasyon geçmişinde kaydedilmez. Navigasyon türü, uygulamanın kullanım senaryolarına göre seçilir.
iOS'ta navigasyon, ekran yığınını yöneten bir denetleyici olan UINavigationController etrafında inşa edilir. UINavigationController, otomatik olarak başlık ve "Geri" düğmesi içeren bir navigasyon çubuğu ekler. Apple Developer Documentation (2025)'e göre, App Store'daki uygulamaların %85'i ana navigasyon deseni olarak UINavigationController'ı kullanır. Yeni başlayan iOS geliştiricilerinin yalnızca UX/UI tasarımının temelleriyle birlikte push ve pop'u öğrenmeleri yeterlidir.
push geçişi sırasında, yeni bir ekran navigasyon yığınına yerleştirilir ve kullanıcı sağdan kayma animasyonu görür. pop geçişi sırasında, geçerli ekran yığından kaldırılır ve kullanıcı önceki ekrana döner. UINavigationController, yığındaki tüm ekranlara referanslar saklayarak kullanıcının birkaç adım geri gitmesine olanak tanır. IT Sectr'de, tüm iOS projelerinde doğrusal kullanıcı senaryoları oluşturmak için bu yaklaşımı kullanıyoruz.
Android'de ekran mimarisi, Navigation Component (Google'ın navigasyon oluşturma kitaplığı) aracılığıyla uygulanır. Navigation Component bir navigasyon grafiği (nav graph) kullanır; burada her ekran bir düğüm ve geçişler aralarındaki kenarlardır. Android Developers Guide (2025)'e göre, Navigation Component, manuel FragmentManager'a kıyasla navigasyon hatalarını %60 azaltır. Yeni başlayan Android geliştiricilerinin hemen Navigation Component'i öğrenmeleri önerilir.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
// nav_graph.xml içinde:
<!--
<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" />
-->
// Düğmeye tıklayarak gezinme:
view.findViewById<Button>(R.id.open_detail).setOnClickListener {
findNavController().navigate(R.id.toDetail)
}
Navigation Component'ten önce geliştiriciler, geçişleri FragmentManager (fragmentleri değiştirmek için bir sistem sınıfı) aracılığıyla yönetiyordu. FragmentManager, ekrandaki fragmentleri değiştirmek için replace, add, remove işlemleriyle çalışır. Ancak, manuel yığın ve durum yönetimi gerektirir ve bu da genellikle hatalara yol açar. Google, resmi olarak manuel FragmentManager'a daha güvenli bir alternatif olarak Navigation Component'i önermektedir.
Yeni başlayan geliştiriciler, ekran mimarisi tasarlarken sık sık tipik hatalar yapar. En yaygın olanı, geçişlerin kodun her yerine dağıldığı tek bir navigasyon kontrol merkezinin olmamasıdır. Google Play Console analizine (2025) göre, kaotik navigasyona sahip uygulamalar, geçişlerle ilgili %37 daha fazla çökme raporuna sahiptir. Tek bir yönlendirici veya navigasyon grafiği bu sorunu çözer.
Birçok yeni başlayan, Android'deki sistem "Geri" düğmesini veya iOS'taki kaydırma hareketini işlemeyi unutur. İşlenmeyen geri dönüş, uygulamanın donmasına veya beklenmedik şekilde kapanmasına neden olur. Android'de, navigasyon grafiği yapılandırılmışsa Navigation Component, "Geri" düğmesini otomatik olarak işler. Aşağıda, OnBackPressedDispatcher ile "Geri" düğmesinin işlenmesine bir örnek verilmiştir.
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
)
}
}
Kod, Bottom Sheet panelinin genişletilmiş olup olmadığını kontrol eder: genişletilmişse daraltır, değilse olayı sistem dağıtıcısına iletir. Bu, Android'de özel "geri" işleme için standart bir desendir.
Sıkça Sorulan Sorular
Ekran mimarisi, bir mobil uygulamanın ekranları arasındaki geçiş yapısıdır. Kullanıcı için hangi ekranların mevcut olduğunu, hangi sırayla açıldıklarını ve kullanıcının önceki bölüme nasıl döneceğini belirler. İyi tasarlanmış bir mimari, arayüzü sezgisel hale getirir ve geliştirme sırasında navigasyonla ilgili hata sayısını önemli ölçüde azaltır.
Mobil uygulamalarda yığın, modsal ve sekme navigasyon türleri vardır. Yığın navigasyonu, geri dönüş ile ekran yığını gibi çalışır. Modsal, tek bir görev için geçici pencereler açar. Sekme navigasyonu, uygulamayı aralarında geçiş yapılabilen bölümlere ayırır. Tür seçimi, geliştiricinin görevlerine ve kullanıcı ihtiyaçlarına bağlıdır.
Yığın navigasyonu geçişlerin geçmişinde kaydedilir — kullanıcı önceki herhangi bir ekrana dönebilir. Modsal pencereler kaydedilmez: kapatıldıktan sonra kullanıcı, pencereyi açtığı ekrana doğrudan gider. Yığın, sıralı görevler için uygundur (ürün seçimi — sepet — ödeme), modsal pencereler tek eylemler için uygundur.
Android için Navigation Component (Google'ın modern kitaplığı) kullanılması önerilir. Yığını, "Geri" düğmesini ve derin bağlantıları otomatik olarak yönetir. FragmentManager, manuel durum yönetimi gerektiren daha eski bir araçtır. Google, tüm yeni projeler için resmi olarak Navigation Component'i önermektedir.
İyi planlanmış bir ekran mimarisi olmadan, uygulama hızla kaosa dönüşür, her yeni ekran sistem olmadan eklenir. Bu, geçiş hatalarına ve yeni özellikler eklemede zorluklara yol açar. Google Play Console'a göre, navigasyon mimarisi olmayan uygulamalarda %37 daha fazla hata bulunur. Başlangıçta ekranları planlamak, geliştirme süresinden %30'a kadar tasarruf sağlar.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.