# AppClientBase - .NET MAUI Enterprise Base App

Base frontend application cho iOS và Android được xây dựng với .NET MAUI theo chuẩn Enterprise.

## Tech Stack

- **.NET 10 MAUI** - Cross-platform framework
- **CommunityToolkit.Mvvm 8.4.0** - MVVM implementation
- **CommunityToolkit.Maui 9.1.0** - MAUI extensions

## Project Structure

```
AppClientBase/
├── MauiProgram.cs              # DI & configuration
├── App.xaml                    # Application resources
├── AppShell.xaml               # Navigation shell
├── ViewModels/                 # MVVM ViewModels
│   ├── BaseViewModel.cs        # Base với IsBusy, Title
│   └── MainViewModel.cs        # Main page ViewModel
├── Views/                      # XAML Pages
│   └── MainPage.xaml           # Main page với compiled bindings
├── Services/                   # Business services
│   ├── INavigationService.cs   # Navigation interface
│   ├── NavigationService.cs    # Shell navigation
│   ├── ISettingsService.cs     # Settings interface
│   └── SettingsService.cs      # MAUI Preferences wrapper
├── Models/                     # Data models
├── Resources/
│   └── Styles/
│       ├── Colors.xaml         # Brand, Semantic, Surface colors
│       ├── Typography.xaml     # Font families, sizes, text styles
│       ├── Theme.xaml          # Button, Entry, Card styles
│       └── Styles.xaml         # Template implicit styles
└── Platforms/                  # Platform-specific code
    ├── Android/
    └── iOS/
```

## Features

### MVVM + Dependency Injection
- Constructor injection qua DI container
- Singleton cho stateful services (NavigationService, SettingsService)
- Transient cho ViewModels và Views

### Branding System
- **Colors.xaml**: Light/Dark colors riêng biệt
- **Typography.xaml**: Font scale (Caption → Display)
- **Theme.xaml**: ButtonPrimary, ButtonSecondary, CardDefault styles
- AppThemeBinding cho Light/Dark mode support

### Compiled Bindings
- `x:DataType` cho performance tối ưu
- Compile-time binding validation

## Getting Started

```bash
# Navigate to project
cd apps/app-client-base

# Restore packages
dotnet restore

# Build for macCatalyst
dotnet build -c Debug -f net10.0-maccatalyst

# Build for iOS (requires Xcode with iOS simulator)
dotnet build -c Debug -f net10.0-ios

# Build for Android (requires Android SDK)
dotnet build -c Debug -f net10.0-android
```

## Requirements

- .NET 10 SDK
- MAUI workload (`dotnet workload install maui`)
- For iOS: macOS with Xcode
- For Android: Android SDK

## Related Skills

Xem các MAUI Skills để hiểu thêm về patterns được sử dụng:
- `.agent/skills/maui-enterprise-architect/SKILL.md`
- `.agent/skills/maui-branding-expert/SKILL.md`
