Files
DigiRadio/Software/APP/igiRadio/Documentation/DEVELOPMENT.md
T
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

1.5 KiB
Raw Blame History

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

open /Users/michelebigi/Documents/Develop/DigiRadio/Software/APP/igiRadio/igiRadio.xcodeproj

Rigenerare il progetto (se necessario):

cd Software/APP/igiRadio
python3 Scripts/generate_xcodeproj.py

Build e test da terminale

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.