Skip to content

Repository files navigation

NoteFlow — App Android nativa e autosufficiente

Nessun server, nessun PHP, nessun database esterno. NoteFlow è stata riscritta in Kotlin nativo: la logica che prima girava su PHP (login, note, cartelle, tag, utente) ora vive dentro l'app stessa, con Room (SQLite nativo di Android) come database. Il markup HTML/CSS/JS originale (quello che hai sempre visto) resta identico: viene generato al volo da template Kotlin invece che da PHP, e le stesse chiamate fetch() del frontend vengono intercettate e risposte in-process, senza rete.

Download

Link: https://github.com/mrrearm/NoteFlowApp/releases/download/NoteFlow/NoteFlow.apk

Come funziona

  • data/ — entità Room (users, folders, notes, tags) e DAO con tutte le query, equivalenti allo schema SQL originale.
  • api/ — router che replicano esattamente api/notes.php, api/folders.php, api/user.php: stesse azioni, stessi parametri, stesse risposte JSON.
  • web/ — template Kotlin che generano le pagine HTML (login, register, dashboard, editor) con lo stesso markup/CSS/JS di sempre, dati inseriti a runtime.
  • WebAppRouter — il cuore del sistema: intercetta ogni richiesta della WebView (shouldInterceptRequest) su un dominio finto (https://noteflow.local/...) e risponde localmente, istantaneamente, senza alcuna rete reale.
  • MainActivity — inietta un piccolo patch JavaScript che trasforma le chiamate fetch() POST (usate da app.js/editor.js) in richieste GET con parametri in querystring, perché Android WebView non permette di leggere il corpo delle richieste POST lato nativo. Il frontend non se ne accorge: stesso comportamento, stesso risultato.

Vantaggi rispetto alle versioni precedenti

  • Zero dipendenze esterne: niente AWebServer, niente MariaDB, niente binari da compilare
  • Build veloce e affidabile in CI (nessuna compilazione Docker fragile)
  • Un utente demo pronto all'uso: demo@noteflow.app / demo1234, creato automaticamente al primo avvio
  • Tutti i dati restano sul dispositivo, al sicuro nella sandbox dell'app

Firma dell'app stabile (nessuna perdita dati tra un aggiornamento e l'altro)

Il repository include keystore/debug.keystore, una chiave di firma fissa usata per firmare ogni build. Senza questo file, GitHub Actions ne genererebbe una diversa e casuale ad ogni esecuzione (i runner sono "usa e getta"), costringendo a disinstallare l'app ad ogni nuova build — perdendo account, note e tutto il resto, perché Android non permette di aggiornare un'app con una firma diversa da quella già installata.

Con questa chiave stabile: non serve più disinstallare tra un aggiornamento e l'altro. Installa semplicemente il nuovo APK sopra quello vecchio (Android lo riconoscerà come un aggiornamento legittimo) e tutti i tuoi dati restano intatti.

Build con GitHub Actions

git add .
git commit -m "Riscrittura nativa Kotlin+Room: app standalone, niente più PHP/server esterni"
git push

Poi tab Actions → aspetta il completamento (qualche minuto in più della versione wrapper, per via della generazione del codice Room) → scarica NoteFlow-debug-apk dalla sezione Artifacts → installa senza disinstallare prima la versione precedente.

Se in futuro vuoi modificare la UI

I file HTML/CSS/JS originali restano la fonte di verità visiva:

  • app/src/main/assets/www/assets/css/ — stili (invariati, copiati as-is)
  • app/src/main/assets/www/assets/js/ — logica frontend (invariata, copiata as-is)
  • app/src/main/java/it/mrrearm/noteflow/web/*.kt — template che generano l'HTML delle pagine (qui vanno replicate eventuali modifiche fatte a index.php/editor.php/login.php/register.php nel progetto PHP originale, se in futuro le aggiorni là)

Limiti noti

  • Un solo utente locale per dispositivo: essendo tutto dentro la sandbox dell'app, non c'è sincronizzazione automatica tra più telefoni.
  • La cronologia versioni delle note (note_versions nello schema originale) non è ancora collegata all'interfaccia: la tabella esiste ma il salvataggio automatico dello storico va aggiunto in un secondo momento, se ti serve.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages