DEV Community

Cover image for Mobile Architecture
Gülsen Keskin
Gülsen Keskin

Posted on • Edited on

Mobile Architecture

Uygulama Katmanları:

Data Katmanı: API'lerle etkileşimden sorumlu olan katmandır.
Domain Katmanı: Data katmanından gelen verileri dönüştürmekle görevli olan katmandır.
Business Logic Katmanı: Uygulama state'ini yöneten katmandır.
Presentation Katmanı: UI bileşenlerini state'e göre işleyen katmandır.

Domain katmanı ham verileri business logic katmanı tarafından tüketilen domain'e (etki alanına) özgü modellere dönüştürür.
Business Logic katmanı repository'nin sağladığı domain modellerinin değişmez durumunu (immutable state) korur ve kullanıcı arayüzünden gelen girdilere tepki verir ve state'e göre değişiklik yapılması gerektiğinde depo ile iletişim kurar.

Her katman doğrudan ilişkili olmayan katmanlar arasındaki etkileşimleri önleyen bir ilişki zincirine sahip olmalıdır.
Örneğin presentation katmanı, data katmanındaki apileri doğrudan çağırmamalı veya bunlarla hiçbir şekilde etkileşimde bulunmamalıdır.

Yeniden kullanılabilirliği göz önünde bulundurarak oluşturun:
Bu tavsiye özellikle data katmanı içindir. Data katmanındaki bileşenler, belirli bir ürüne uygulamaya bağlı olmadıkları ve daha geniş topluluğa fayda sağlayabilecekleri için genellikle açık kaynak için mükemmel adaylardır.

Verileri ve domain katmanlarını paketler halinde izole etmek onları diğer uygulamalara aktarmaya veya istenirse pub.dev de yayınlamaya olanak tanır.

Belirli bir model beklemek yerine kodlanmış JSON stringlerini depolamak için genel bir API oluşturabilir böylece bu API diğer domain alanlarında yerel bir depolama API'si olarak kullanılabilir.

Not: Bu yazı very-good-flutter-architecture yazısının özeti niteliğini taşır.

Kaynak:

https://verygood.ventures/blog/very-good-flutter-architecture?utm_source=github&utm_medium=readme&utm_campaign=app_architecture

Top comments (2)

Collapse
 
larbiishak profile image
larbi-ishak

Muhteşem

Collapse
 
gulsenkeskin profile image
Gülsen Keskin

Teşekkürler :D