RosaLog
La stessa cosa di IronLog, ma nel browser: riscritta in HTML, CSS e JavaScript senza una sola dipendenza, senza build e senza server. I dati stanno nel localStorage, il file di export e' identico a quello dell'app.
- Contesto
- Progetto personale
- Ruolo
- Sviluppo completo
- Stack
- HTML · CSS · JavaScript, zero dipendenze
- Dati
- localStorage del browser
- Stato
- Funzionante, installabile da telefono
Descrizione del progetto
RosaLog l'ho fatto per la mia fidanzata: è IronLog portato nel browser, con la tavolozza rosa al posto del rosso su nero.
Stessa struttura a tre livelli dell'app: periodi con durata e stato calcolato sul giorno, scheda con serie, range di ripetizioni, zavorra e riordino, sedute generate copiando la scheda in modo che modificarla non riscriva lo storico.
- Serie variabili — il numero di serie non è fisso nella scheda: l'app lo chiede all'inizio di ogni seduta. Utile durante una fase di accumulo ad esempio, dove le serie aumentano dentro lo stesso periodo.
- Super serie — a un esercizio della scheda se ne può legare un secondo, da fare subito dopo senza pausa, con le sue ripetizioni e la sua zavorra.
- Volume — somma di carico per ripetizioni, aggiornata mentre si digita.
- Ultimo carico — mostrato come segnaposto, preso dall'ultima seduta con lo stesso esercizio dentro il periodo.
- Excel — export e import di un foglio
.xlsnello stesso formato dell'app Flutter, quindi i dati passano da un dispositivo all'altro e si correggono a mano se serve. - Backup JSON — copia esatta di tutto, per spostarsi tra domini diversi.
- Installabile — con il manifest si aggiunge alla schermata home e si apre a tutto schermo come un'app.
Cinque file e nient'altro: la pagina, il foglio di stile, i dati e le regole, il lettore del foglio Excel, l'interfaccia e le schermate. Si aprono con un doppio clic, senza installare niente.
Tech stack
| Linguaggi | HTML, CSS e JavaScript, nessuna libreria |
|---|---|
| Persistenza | localStorage, legato all'origine del sito |
| Export | SpreadsheetML 2003 generato a mano, compatibile con IronLog |
Problema risolto
IronLog gira solo dove ho installato l'APK. Se sono al computer, o se il telefono e' scarico, i miei allenamenti non esistono. E ogni modifica all'app richiede build, cavo e installazione: troppa cerimonia per correggere una riga.
Volevo la stessa cosa raggiungibile da un indirizzo, aggiornabile trascinando una cartella e capace di scambiare dati con la versione Flutter. Da qui il formato di export condiviso: e' il ponte tra le due versioni, non un allegato.
C'era anche una seconda ragione, piu' personale: rifare da zero un progetto che conoscevo gia' bene, ma senza framework, per vedere quanta parte del lavoro fosse davvero mia e quanta me la stesse facendo Flutter.