4 1 Secilen Yapi
Kaynak plan v2.0 aktarımı; gerçekleşmiş iş kanıtı değildir. Son kullanıcı kararları ve ADR-FE-001 önceliklidir.
4.1 Seçilen yapı
Bölüm başlığı “4.1 Seçilen yapı”| Alan | Plan kararı | Gerekçe / sınır |
|---|---|---|
| Mobil | Flutter + Dart | Android/iOS için ortak ürün ve tasarım bileşenleri |
| Web oyuncu arayüzü | Flutter Web, erken performans kapısıyla | İlk aşamada ikinci bir büyük ön yüzü bakım yüküne eklememek |
| Masaüstü | Öncelikle geniş ekran web; PWA ayrı doğrulanır | Yerel Windows/macOS/Linux uygulaması otomatik kapsam değildir |
| Durum yönetimi | Riverpod | Bağımlılıkların ve asenkron durumun açık/test edilebilir olması |
| Yönlendirme | go_router | URL, geri dönüş ve derin bağlantı düzeni [S10] |
| HTTP | Dio | Ortak ağ katmanı; platforma göre cookie/token taşıma [S11] |
| Veri modelleri | Freezed + json_serializable | Değişmez modeller ve JSON dönüşümü; gereksiz üretim kodundan kaçınma [S12] |
| Çok dil | Flutter gen-l10n + ARB | Ürün metinleri için resmi yerelleştirme yaklaşımı [S05] |
| Sunucu | Laravel | Kimlik, yetki, oyun modülleri, API ve iş akışları |
| PHP sunucusu | Octane + FrankenPHP | Uzun yaşayan worker modelini doğrulayarak kullanmak [S03–S04] |
| Dış kapı | Mevcut Nginx | TLS, statik dosyalar, HTTP ve WebSocket ters vekili |
| Gerçek zaman | Laravel Reverb | Ayrı çalışan WebSocket yayın hizmeti [S01] |
| Ana veri | PostgreSQL | Transaction, kısıtlar, kilitleme ve kalıcı kayıt |
| Destek veri | Redis | Cache, hız limiti, kuyruk, geçici varlık/presence bilgisi |
| Yönetim | Filament | Yönetim arayüzü; oyun kurallarını atlayan CRUD paneli değil [S26] |
| Push | FCM; Apple platformunda APNs bağlantısı | Açık uygulamadaki canlı olayın yerine değil, dışında bildirim [S27] |
| Dağıtım | Linux + systemd, otomatik CI/CD | Docker zorunluluğu eklemeden tekrarlanabilir kurulum |
Sürüm numaraları ezbere sabitlenmez. Faz 0–1’de desteklenen kararlı Laravel/PHP/Flutter/Dart sürümleri ve bütün paketlerin uyumu doğrulanıp lock dosyalarıyla sabitlenir. Bu belgenin Laravel kaynakları 13.x dokümantasyonuna dayanır; bu, tüm üçüncü taraf paketlerin o sürümle test edildiği anlamına gelmez.