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.
| Qat | Məsuliyyəti | Nəyi BİLMİR |
|---|---|---|
| Widget | Göstərmək, hadisə ötürmək | API-nin JSON formatını, HTTP status kodlarını |
| ViewModel / Bloc | Ekran vəziyyətini idarə etmək | Şəbəkə kitabxanasını (dio/http) |
| Repository | Data mənbəyini seçmək, cache məntiqi | Widget-ləri və `BuildContext`-i |
| Service | Bir 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
- App arxitekturasırəsmidocs.flutter.dev
- Arxitektura bələdçisirəsmidocs.flutter.dev
UI və data qatlarının məsuliyyətləri və aralarındakı sərhəd rəsmi olaraq burada təsvir olunub.
- Arxitektura case studyrəsmidocs.flutter.dev