Project Layout
This is the form for the basic layout/architecture of the project.
(Note that the exact files may not exist, but the general architecture is followed)
Soneek/
├── Core/ # App-wide utilities, global state, types
│ ├── Models.fs # Domain models
│ ├── AppState.fs # Global state / MVU model
│ └── Constants.fs
├── Features/ # Self-contained features
│ ├── MusicPlayer/
│ │ ├── MusicPlayerPage.fs # View / Page
│ │ ├── MusicPlayerViewModel.fs # Optional MVU or state
│ │ └── MusicPlayerService.fs # Business logic
│ └── Library/
│ └── ...
├── Services/ # Shared services (auth, networking, caching)
│ ├── AuthService.fs
│ ├── ApiService.fs
│ └── StorageService.fs
├── Providers/ # Abstracted external integrations
│ ├── FileProvider.fs
│ ├── NotificationProvider.fs
│ └── LocationProvider.fs
├── Pages/ # High-level UI pages
│ ├── HomePage.fs
│ ├── SettingsPage.fs
│ └── LoginPage.fs
└── App.fs # App bootstrap, navigation, MVU loop