Flutter Clean Architecture: Ölçeklenebilir Uygulama Mimarisi Görseli

Flutter Clean Architecture: Ölçeklenebilir Uygulama Mimarisi

13.10.2026 | 9

Neden Clean Architecture?

Flutter projeleri büyüdükçe, main.dart dosyasının karmaşıklaşması ve iş mantığının (business logic) UI katmanına sızması kaçınılmaz bir sorun haline gelir. Clean Architecture, kodunuzu mantıksal katmanlara ayırarak bu karmaşayı yönetilebilir kılar.

Flutter Clean Architecture katmanlı mimari akışı: Presentation, Domain ve Data katmanlarının etkileşimi Görseli
Flutter Clean Architecture katmanlı mimari akışı: Presentation, Domain ve Data katmanlarının etkileşimi

Temel Katmanlar

  • Domain: Uygulamanın kalbidir. İş kurallarını (Use Cases) ve veri modellerini içerir. Framework bağımsızdır.
  • Data: Veri kaynakları (API, Yerel Veritabanı) ile iletişimi yönetir. Repository implementasyonları burada yer alır.
  • Presentation: UI ve State yönetimi. Kullanıcı etkileşimlerini dinler ve Domain katmanındaki Use Case'leri tetikler.

Domain Katmanında Use Case Kullanımı

Use Case'ler, uygulamanın tek bir işlevini temsil eder. Örneğin, bir kullanıcı girişi:

class LoginUseCase { final AuthRepository repository; LoginUseCase(this.repository); Future<Either<Failure, User>> call(LoginParams params) async { return await repository.login(params); } }
Mimari Uyarı: Domain katmanınız asla Flutter kütüphanelerine veya dış paketlere bağımlı olmamalıdır. Bu, uygulamanızın gelecekteki değişikliklere karşı direncini artırır.

Dependency Injection ile Bağları Koparın

Katmanlar arası iletişimi doğrudan nesne oluşturarak değil, get_it gibi araçlarla Dependency Injection kullanarak yapmalısınız. Bu sayede, test süreçlerinde mock nesneleri kolayca enjekte edebilirsiniz.

Sonuç olarak, Clean Architecture başlangıçta biraz fazla iş yükü gibi görünse de, projenin 6. ayında gelen bir değişiklik isteğinde size saatler kazandıracak bir yatırımdır.

| |