PulseX

PulseX

Timer da palestra per iPhone e Apple Watch con schede allenamento, frequenza cardiaca live, calcolo calorie e salvataggio automatico su Apple Salute. Funziona anche solo su iPhone, è localizzato in 5 lingue ed è 100% privacy first.

Funzionalità principali

Timer di recupero intelligente

Imposta la durata di recupero per esercizio: il timer riparte automaticamente al termine di ogni serie e si arresta da solo quando arriva a zero, con suono e vibrazione finali.

📝

Schede allenamento personalizzate

Crea schede con elenco esercizi, numero di serie, ripetizioni target e tempo di recupero per ciascun esercizio. Ogni scheda è modificabile, riordinabile e duplicabile.

🏋

Schede predefinite

PulseX include schede pronte all'uso come Full Body, Upper Body e Lower Body: utili per partire subito o come base da personalizzare.

Esecuzione guidata

Avvia una scheda e PulseX ti guida esercizio per esercizio: vedi la serie corrente, le ripetizioni target e il recupero in corso, con avanzamento automatico al set successivo.

Frequenza cardiaca live

Con Apple Watch al polso, PulseX legge i BPM in tempo reale tramite HKLiveWorkoutBuilder e li mostra anche su iPhone via WatchConnectivity, con aggiornamenti continui durante tutta la sessione.

🔥

Zone di intensità

Le zone HR (Riscaldamento, Brucia grassi, Cardio, Anaerobica, Massima) vengono calcolate sulla tua frequenza massima stimata, con la data di nascita letta da Apple Salute.

🔥

Calorie da frequenza cardiaca

Quando la HR è disponibile, PulseX stima l'energia attiva con la formula Keytel, parametrizzata su età e frequenza media: più precisa rispetto al solo MET.

📱

Calorie da formula MET (iPhone solo)

Senza Apple Watch la HR non è disponibile: PulseX calcola le calorie con la formula MET (forza moderata, MET 5.0) basandosi sul peso corporeo letto da Apple Salute, evitando di lasciare a zero la sessione.

📊

Statistiche di fine sessione

A sessione conclusa vedi durata totale, numero di serie e set completati, calorie stimate, frequenza cardiaca media e massima, distribuzione per zona e dettaglio esercizio per esercizio.

📚

Cronologia sessioni

Ogni allenamento viene archiviato in locale con data, scheda usata, durata, calorie, BPM medi/massimi e dettaglio set. Apri lo storico per rivedere ogni singola sessione passata.

🔊

Suoni e vibrazioni

Allerta sonora e haptic alla fine del recupero, sia su iPhone (audio in background) sia su Apple Watch (haptic dedicato), per non dover guardare lo schermo durante l'esercizio.

🎧

Continua sotto musica

Il timer continua a funzionare con app in background grazie alla Background Audio Mode: puoi ascoltare la tua playlist senza interrompere il conteggio del recupero.

Profilo e impostazioni

Pannello unico per tema chiaro/scuro/automatico, lingua dell'app, peso corporeo (auto-letto da Salute), preferenze suoni e haptic, gestione schede e sincronizzazione con Apple Watch.

🌙

Tema e lingua

Tema chiaro, scuro o automatico e selezione della lingua tra Italiano, English, Français, Español e Deutsch, indipendentemente dalle impostazioni del dispositivo.

Integrazione Apple Salute

PulseX dialoga con HealthKit in modo trasparente: legge solo ciò che serve per stimare e scrive l'allenamento al termine della sessione.

🔔

Lettura frequenza cardiaca

Su Apple Watch, durante la sessione di forza, PulseX usa HKWorkoutSession + HKLiveWorkoutDataSource per ricevere i campioni HR in streaming dal sensore ottico.

🎂

Lettura data di nascita

Letta una sola volta tramite HKCharacteristicType(.dateOfBirth) per calcolare la frequenza cardiaca massima stimata (220 - età) e definire le zone HR. Nessun valore viene memorizzato fuori dall'app.

Lettura peso corporeo

Il valore più recente di bodyMass viene letto via HKSampleQueryDescriptor, convertito in kg e usato per stimare le calorie con MET quando manca la HR.

💾

Scrittura allenamento

A fine sessione PulseX salva un HKWorkout di tipo Traditional Strength Training con data di inizio, fine, durata e energia attiva stimata, in modo che compaia nello storico Apple Salute e contribuisca agli anelli Attività.

🔕

Permessi opzionali e revocabili

L'accesso ad Apple Salute è sempre opzionale: se rifiuti, PulseX continua a funzionare senza HR e senza scrittura. I permessi sono revocabili in qualsiasi momento da Salute → Condivisione dati → PulseX.

Salvataggio asincrono

La scrittura su HealthKit avviene tramite Task.detached in fire-and-forget, cosí il termine sessione è istantaneo per l'utente e non blocca mai la UI.

Ecosistema

PulseX vive su tre superfici Apple coordinate: iPhone, Apple Watch e widget/complications, sempre allineate via App Group locale.

App Apple Watch nativa

Versione watchOS dedicata: avvia, metti in pausa o termina il timer dal polso, vedi BPM live, zona HR corrente e calorie stimate. Funziona in autonomia dopo la sincronizzazione iniziale, anche con iPhone in tasca.

🔁

Sincronizzazione WatchConnectivity

Schede allenamento, impostazioni, profilo e stato del timer vengono trasmessi tra iPhone e Apple Watch via WatchConnectivity, con coalescing delle modifiche e nessun passaggio in cloud.

📱

Widget Home Screen iPhone

Widget WidgetKit in formato piccolo e medio per la schermata Home: mostra il timer di recupero in corso o l'ultima sessione completata, con tap per aprire direttamente la sessione attiva in PulseX.

Complications Apple Watch

Complicazioni in formato circolare, rettangolare e inline da aggiungere al quadrante: aprono PulseX al polso con un solo tocco, pronto per avviare la sessione.

📚

App Group condiviso

App, widget e complications condividono lo stato tramite App Group sandbox locale: ciò che vedi nel widget è sempre coerente con l'app, senza chiamate di rete e senza duplicazione dati.

🛡

Robustezza dati

Schede e cronologia sono persistite in locale con codifica versionata: in caso di archivio danneggiato l'app si auto-ripristina avvisando l'utente, garantendo che PulseX si apra sempre.

Caratteristiche tecniche

Stack UI

SwiftUI 6.0

Architettura

MVVM + ObservableObject

Concurrency

Swift 6 strict, @MainActor

Target iOS

iOS 17.0+

Target watchOS

watchOS 10.0+

HealthKit Watch

HKLiveWorkoutBuilder

HealthKit iPhone

HKWorkoutBuilder (non-live)

Tipo workout

Traditional Strength Training (indoor)

Persistenza

100% locale, zero rete

Sincronizzazione

WatchConnectivity + App Group

Widget

WidgetKit (iOS + watchOS)

Background mode

audio (timer in background)

Lingua in-app

AppStorage + Environment Locale

Test framework

Swift Testing (#expect)

Build system

XcodeGen (project.yml)

Lingue supportate

Italiano

English

Français

Español

Deutsch

Privacy e sicurezza

🔒

Privacy assoluta

Schede, sessioni e dati restano solo sui tuoi dispositivi. Nessun dato è trasmesso a server esterni.

🚫

Zero tracking

Nessun analytics, nessun SDK pubblicitario, nessun cookie di profilazione.

👤

Nessun account

L'app funziona subito, senza registrazione e senza login: nessun ID utente viene mai creato.

🔌

Funziona offline

Non serve connessione internet per allenarti, salvare sessioni o sincronizzare con Apple Watch.

🔕

HealthKit opt-in

L'accesso ad Apple Salute è opzionale e revocabile dalle impostazioni di sistema in qualsiasi momento.

🛡

Sandbox e App Group

App, widget e complications condividono dati solo all'interno di un App Group locale, protetto dal sandboxing iOS/watchOS.

Torna a PulseX Privacy Supporto