Files
micheleandCursor 6087bb5297 Add igiRadio iOS/iPadOS app for DigiRadio control.
Introduces a new SwiftUI app with HTTP REST device control, mock mode for UI development, BLE-based discovery, and documented architecture aligned with the firmware API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 15:45:55 +02:00

59 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DEVELOPMENT — igiRadio
## Requisiti
- macOS con **Xcode 15+** (testato Xcode 26.6)
- iOS 17+ deployment target
- Dispositivo DigiRadio su stessa rete WiFi (STA) o in setup SoftAP
## Aprire il progetto
```bash
open /Users/michelebigi/Documents/Develop/DigiRadio/Software/APP/igiRadio/igiRadio.xcodeproj
```
Rigenerare il progetto (se necessario):
```bash
cd Software/APP/igiRadio
python3 Scripts/generate_xcodeproj.py
```
## Build e test da terminale
```bash
cd Software/APP/igiRadio
xcodebuild -scheme igiRadio -destination 'platform=iOS Simulator,name=iPhone 17' build test
```
## Scheme
- **igiRadio** — app principale
- **igiRadioTests** — unit test protocollo e state
## Mock vs reale
In **DEBUG**, `AppEnvironment` avvia in modalità mock (`MockDigiRadioService`).
Disattivare in **Connessione → Modalità demo (Mock)** e inserire l'host HTTP reale.
## Test su hardware
1. Provisioning WiFi (BLE discovery in-app, o app ESP BLE Provisioning; oppure SoftAP `http://192.168.4.1`)
2. In app: Impostazioni → Connessione → host `http://digiradio-<suffix>.local`
3. Verificare `GET /api/health`
## Documentazione firmware
`/Users/michelebigi/Documents/Develop/DigiRadio/Software/docs/manual/ch-api.tex`
## Architettura runtime
```
SwiftUI → ViewModel → DigiRadioService
├── RealDigiRadioService → HTTPDigiRadioClient (REST JSON)
└── MockDigiRadioService
BLEProvisioningService (CoreBluetooth, solo discovery setup)
```
Il controllo tuner/audio **non** usa GATT proprietario — vedi `BLE_PROTOCOL.md`.