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.

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.