Sparround

Layihə arxitekturası və qatlar

Flutter komandası 2024-cü ildə rəsmi app architecture bələdçisi dərc etdi və orada tövsiyə olunan model iki əsas qata bölünür:

  • UI qatı — widget-lər və vəziyyəti idarə edən obyektlər (ViewModel/Notifier/Bloc). Yalnız göstərmək və istifadəçi hərəkətlərini ötürməklə məşğuldur
  • Data qatırepository-lər və servislər. Repository datanın mənbəyini gizlədir (şəbəkə, cache, lokal baza), servis isə konkret mənbə ilə danışır

Aralarındakı qayda sadədir: UI heç vaxt birbaşa HTTP çağırmır. O, repository-dən domen obyekti alır və mənbənin nə olduğunu bilmir.

QatMəsuliyyətiNəyi BİLMİR
WidgetGöstərmək, hadisə ötürməkAPI-nin JSON formatını, HTTP status kodlarını
ViewModel / BlocEkran vəziyyətini idarə etməkŞəbəkə kitabxanasını (dio/http)
RepositoryData mənbəyini seçmək, cache məntiqiWidget-ləri və `BuildContext`-i
ServiceBir mənbə ilə danışmaq (API, DB)Biznes qaydalarını

Interview ipucu. "Arxitekturanı necə qurursan?" sualında paket adları sadalamaq zəif cavabdır. Güclü cavab asılılıq istiqamətini göstərir: UI → repository → service, heç vaxt tərsinə. Bunun praktik faydasını da de: repository interfeys olduğu üçün testdə saxta ilə əvəz olunur və ekranı şəbəkəsiz test etmək mümkün olur. Bir qat da əlavə et: mürəkkəb biznes qaydaları varsa, aralıqda use case qatı yaradıram; sadə CRUD-da isə bu, lazımsız boilerplate olardı.

📚 Mənbələr və sənədlər