Umfassende Umstrukturierung der SlipItIn-App für eine moderne, zustandsbasierte und SignalR-gestützte Multiplayer-Architektur. Einführung neuer Services für Auth, API, SignalR, lokalen Speicher und Game-State-Management via Dependency Injection. Komplette Neugestaltung der Views (Login, Registrierung, Lobby, Spielbrett) mit MVVM und CommunityToolkit.Mvvm. Navigation jetzt über MAUI Shell mit expliziten Routen. Game-Logik auf Events/Messaging umgestellt, UI und Logik entkoppelt, Echtzeit-Updates integriert. SignalR für alle Spielaktionen inkl. Wiederverbindung und Offline-Queueing. Lokaler Speicher für Auth, Userdaten, GameState und Aktionen. MainPage entfernt, neue Views implementiert. Projektdatei um NuGet-Pakete und Shared-Projekt erweitert. Backend-Änderungen für direkte Spieler-Zuordnung und korrekte EF Core-Relationen. App ist nun robust, testbar und unterstützt Multiplayer- sowie Offline-Szenarien.
43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using SlipItIn.Infrastructure;
|
|
using SlipItIn.Services;
|
|
using SlipItIn.Services.Interfaces;
|
|
using SlipItIn.ViewModels;
|
|
|
|
namespace SlipItIn;
|
|
|
|
public static class MauiProgram
|
|
{
|
|
public static MauiApp CreateMauiApp()
|
|
{
|
|
var builder = MauiApp.CreateBuilder();
|
|
builder
|
|
.UseMauiApp<App>()
|
|
.ConfigureFonts(fonts =>
|
|
{
|
|
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
|
|
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
|
|
});
|
|
|
|
builder.Services.AddSingleton<IAppConfigurationService, AppConfigurationService>();
|
|
builder.Services.AddSingleton<ILocalStorageService, LocalStorageService>();
|
|
builder.Services.AddSingleton<IAuthSessionService, AuthSessionService>();
|
|
builder.Services.AddSingleton<IApiService, ApiService>();
|
|
builder.Services.AddSingleton<ISignalRService, SignalRService>();
|
|
builder.Services.AddSingleton<IGameStateService, GameStateService>();
|
|
|
|
builder.Services.AddTransient<LoginViewModel>();
|
|
builder.Services.AddTransient<RegisterViewModel>();
|
|
builder.Services.AddSingleton<LobbyViewModel>();
|
|
builder.Services.AddSingleton<GameBoardViewModel>();
|
|
|
|
#if DEBUG
|
|
builder.Logging.AddDebug();
|
|
#endif
|
|
|
|
var app = builder.Build();
|
|
ServiceHelper.Services = app.Services;
|
|
return app;
|
|
}
|
|
}
|