Sürükle

Genel Ocak 28, 2026

Mobil Uygulamalarda State Yönetimi (React Native Özelinde)

Yazar admin

Yorumlar 0

Mobil Uygulamalarda State Yönetimi

1) Giriş

Mobil uygulama geliştirme süreçlerinde kullanıcı deneyimini doğrudan etkileyen en kritik konulardan biri state yönetimidir. Özellikle React Native (RN) gibi bileşen tabanlı framework’lerde state’in nasıl tutulduğu, güncellendiği ve paylaşıldığı; uygulamanın performansından bakım maliyetine kadar birçok alanı etkiler.

Yanlış kurgulanmış bir state yönetimi:

  • Beklenmeyen UI davranışlarına
  • Performans problemlerine
  • Debug edilmesi zor hatalara
  • Zamanla büyüyen teknik borca

neden olur. Buna karşılık doğru bir state yönetimi yaklaşımı, mobil uygulamanın ölçeklenebilir, öngörülebilir ve sürdürülebilir olmasını sağlar.

React Native ekosisteminde state yönetimi için çok sayıda yaklaşım ve araç bulunur. Ancak her proje için “tek doğru” yoktur. Uygulamanın kapsamı, kullanıcı sayısı, gerçek zamanlı ihtiyaçları ve ekip yapısı gibi faktörler state yönetimi kararlarını doğrudan etkiler.

Bu yazıda:

  • Mobil uygulamalarda state kavramını
  • React Native özelinde state yönetimi yaklaşımlarını
  • Hangi senaryoda hangi yöntemin doğru olduğunu
  • En sık yapılan hataları
  • Ondokuzon’un pratikte benimsediği yaklaşımları

teknik doğruluğu koruyarak ama anlaşılır bir dille ele alacağız.

2) Temel Kavramlar

State yönetimini doğru anlayabilmek için önce temel kavramları netleştirmek gerekir.

State Nedir?

State, bir uygulamanın o anki durumunu temsil eden veridir. Kullanıcının yaptığı her etkileşim, uygulamanın state’ini değiştirir.

Örnekler:

  • Kullanıcının giriş yapıp yapmadığı
  • Sepetteki ürünler
  • Açık/kapalı modal durumu
  • API’den gelen veri

React Native’de state değiştiğinde, ilgili bileşenler otomatik olarak yeniden render edilir.

Local State vs Global State

Local State

  • Tek bir bileşeni ilgilendirir
  • Genellikle useState veya useReducer ile yönetilir
  • Basit ve izole durumlar için idealdir

Global State

  • Birden fazla ekran veya bileşen tarafından kullanılır
  • Uygulama genelinde paylaşılır
  • Redux, Context API, Zustand gibi çözümlerle yönetilir

Yanlış yerde global state kullanmak, uygulamayı gereksiz yere karmaşıklaştırır.

Prop Drilling Problemi

State, üst bileşenden alt bileşenlere props ile aktarılırken çok derin hiyerarşiler oluşabilir. Buna prop drilling denir.

Bu durum:

  • Kod okunabilirliğini düşürür
  • Bakımı zorlaştırır

Global state çözümleri genellikle bu problemi çözmek için kullanılır.

State vs Derived State

Her veri state olmak zorunda değildir. Bazı değerler mevcut state’lerden türetilmiş olabilir.

Yanlışlıkla her şeyi state yapmak:

  • Gereksiz render’lara
  • Karmaşık veri akışına

yol açar.

3) Teknik Derinlik 

Bu bölümde React Native özelinde kullanılan state yönetimi yaklaşımlarını daha teknik bir perspektiften ele alıyoruz.

React Native’de Yerel State Yönetimi

useState

Basit durumlar için idealdir.

const [count, setCount] = useState(0);

Avantajları:

  • Basit
  • Okunabilir
  • Hızlı geliştirme

Dezavantajları:

  • Karmaşık state yapılarında yetersiz kalır

useReducer

Daha karmaşık state geçişleri için kullanılır.

const reducer = (state, action) => {

  switch (action.type) {

    case ‘increment’:

      return { count: state.count + 1 };

    default:

      return state;

  }

};

Avantajları:

  • State geçişleri merkezi
  • Daha öngörülebilir yapı

Context API (React Native’de)

Context API, global state ihtiyacı için React’in sunduğu yerleşik çözümdür.

Kullanım alanları:

  • Tema yönetimi
  • Dil ayarları
  • Kullanıcı oturum bilgileri

Ancak Context:

  • Büyük ve sık güncellenen state’ler için uygun değildir
  • Yanlış kullanımda performans sorunları yaratabilir

Redux (RN Özelinde)

Redux, React Native projelerinde uzun yıllardır kullanılan güçlü bir state yönetimi çözümüdür.

Avantajları:

  • Tek yönlü veri akışı
  • Zaman yolculuğu (devtools)
  • Büyük uygulamalar için ideal

Dezavantajları:

  • Boilerplate fazlalığı
  • Öğrenme eğrisi

Modern RN projelerinde genellikle Redux Toolkit tercih edilir.

Alternatifler: Zustand, Recoil, Jotai

Son yıllarda daha hafif çözümler öne çıkmıştır.

Zustand

  • Minimal API
  • Context + Redux arası bir yapı
  • Performans odaklı

Recoil

  • Atom bazlı state yönetimi
  • Daha esnek yapı

Ondokuzon projelerinde bu çözümler, proje ölçeğine göre değerlendirilir.

En Sık Yapılan Hatalar

  • Her şeyi global state yapmak
  • Context’i Redux gibi kullanmak
  • Async state yönetimini kontrolsüz yapmak
  • State’i UI’dan ayırmamak

Bu hatalar zamanla ciddi teknik borca dönüşür.

4) Adım Adım Uygulama / Rehber Bölümü

Bu bölümde React Native projelerinde doğru state yönetimi yaklaşımını adım adım ele alıyoruz.

Adım 1: State Türlerini Belirleme

Önce şu sorular sorulmalıdır:

  • Bu state sadece bu ekranı mı ilgilendiriyor?
  • Başka ekranlar da kullanacak mı?
  • Kalıcı mı, geçici mi?

Adım 2: Basitten Başlamak

İlk aşamada:

  • useState
  • useReducer

ile başlanmalı, erken optimizasyondan kaçınılmalıdır.

Adım 3: Global State Gereksinimini Analiz Etme

Aşağıdaki durumlarda global state mantıklıdır:

  • Kullanıcı oturumu
  • Sepet
  • Uygulama ayarları

Adım 4: Async State ve API Yönetimi

API çağrıları state yönetiminin en kritik noktalarındandır.

Öneriler:

  • Loading ve error state’lerini ayırmak
  • Tek bir source of truth oluşturmak

Adım 5: Performans Testleri

State değişimleri:

  • Gereksiz render’a yol açıyor mu?
  • Memoization gerekli mi?

Bu sorular düzenli olarak kontrol edilmelidir.

5) Performans, Güvenlik ve Optimizasyon

State yönetimi doğrudan performansı etkiler.

Performans

  • Gereksiz global state render maliyetlidir
  • Selector’lar optimize edilmelidir
  • Memo kullanımı dengeli olmalıdır

Güvenlik

  • Hassas veriler (token vb.) state’te tutulmamalı
  • Secure storage tercih edilmelidir

2025 Standartları

  • Minimal global state
  • Async state yönetimi net ayrılmış yapı
  • UI ve business logic separation
  • Performans ölçümleri (profiling)

6) Kullanılan Teknolojiler (Ondokuzon Perspektifi)

React Native

Ana mobil geliştirme çatımızdır.

React.js / Next.js

Web tarafındaki state yaklaşımlarıyla tutarlılık sağlanır.

Firebase

Gerçek zamanlı state senaryolarında dikkatli kullanım gerekir.

PHP / Laravel

Backend API’ler state mimarisini doğrudan etkiler.

Ondokuzon’da state yönetimi, frontend ve backend birlikte düşünülerek tasarlanır.

7) Sık Sorulan Sorular

Her RN projesinde Redux gerekli mi?
Hayır.

Context API yeterli mi?
Küçük projelerde evet.

Global state performansı düşürür mü?
Yanlış kullanılırsa evet.

Async state en zor kısım mı?
Genellikle evet.

State’i ne zaman refactor etmeliyim?
Büyüme başladığında.

Zustand production için uygun mu?
Evet, doğru kurgulanırsa.

State test edilebilir mi?
Evet, doğru ayrıştırılırsa.

8) Sonuç / Özet

Mobil uygulamalarda state yönetimi, sadece teknik bir tercih değil; ürünün geleceğini belirleyen mimari bir karardır. React Native projelerinde doğru state yönetimi yaklaşımı:

  • Daha az bug
  • Daha yüksek performans
  • Daha sürdürülebilir kod
  • Daha mutlu kullanıcılar

anlamına gelir.

Her projede ihtiyaçlar farklıdır. Bu nedenle state yönetimi çözümleri de ezbere seçilmemelidir. Ondokuzon olarak, React Native projelerinde state yönetimini; uygulamanın ölçeğini, ekibin deneyimini ve ürün hedeflerini birlikte değerlendirerek tasarlıyor, uzun vadede sürdürülebilir mimariler kurmaya odaklanıyoruz.

Yorum Bırak

two × 5 =