⚙️ App Android APK

AVEMI Campo — Analisi Tecnica

Stack tecnologico, architettura offline-first, sincronizzazione, sicurezza e integrazione con l'API Nautilus: la scheda tecnica completa di AVEMI Campo.

Cosa è tecnicamente

App Android APK — il meglio del mobile sul territorio

AVEMI Campo è un'app Android distribuita come APK: si installa direttamente sullo smartphone scaricando il file APK fornito da AVEMI, senza passare per il Play Store. Funziona su tutti i dispositivi Android 8+, aggiornamenti gestiti da AVEMI su richiesta.

HTML5CSS3Vanilla JS ES2022 Service WorkerIndexedDBWeb App Manifest
📱 Compatibilità: Android 8+ (Chrome), iOS 16.4+ (Safari), qualsiasi browser desktop moderno. Testata su dispositivi entry-level con 2GB RAM.
ComponenteTecnologia
FrontendVanilla JS ES2022, HTML5, CSS3
Storage localeIndexedDB (via idb wrapper)
Offline cacheService Worker (Cache API)
Mappa campoLeaflet.js 1.9 + OpenStreetMap
GPSWeb Geolocation API
FotocameraMediaDevices.getUserMedia + Canvas compression
SyncBackground Sync API + polling 5 min
AuthBearer Token (HTTP header)
Backend APIPHP 8.0 + MySQL
Architettura offline

Come funziona la modalità offline

💾

Service Worker

Al primo avvio, il Service Worker scarica e memorizza in cache tutti gli asset dell'app (HTML, CSS, JS, icone). Le versioni successive controllano l'hash per aggiornamenti.

🗄️

IndexedDB

I rilievi compilati offline vengono salvati in IndexedDB nel browser del dispositivo. Struttura identica al database server per una sincronizzazione senza conflitti.

🔄

Sync intelligente

Al ripristino della connessione (o ogni 5 minuti), il sync engine invia i record locali all'API, gestisce duplicati con ID locale e riceve conferma di avvenuta scrittura.

🔄 Versionamento cache: Il Service Worker usa un cache-name versionato (es. avemi-campo-v3). Al deploy di una nuova versione, la vecchia cache viene eliminata automaticamente e l'app si aggiorna senza intervento dell'utente.
Sicurezza

Autenticazione e protezione dei dati

🔑

Token Bearer

Ogni operatore ha un token univoco generato con random_bytes(32) e hash SHA-256. Il token viene inviato in ogni richiesta API nell'header Authorization: Bearer ….

🔒

Revoca istantanea

Il responsabile può revocare il token di un operatore dal pannello admin in tempo reale. Tutte le richieste successive vengono rifiutate con 401 Unauthorized.

🌐

HTTPS obbligatorio

Tutte le comunicazioni con il server avvengono esclusivamente su HTTPS. Le chiamate API sono cifrate end-to-end. Il certificato SSL è gestito dall'hosting cPanel.

📷

Foto compresse localmente

Le fotografie vengono ridimensionate e compresse a JPEG qualità 70% direttamente nel browser prima dell'upload. Dimensione massima: 200KB per immagine.

API di backend

Il backend PHP che alimenta l'app

Il backend di AVEMI Campo è scritto in PHP 8.0 puro, senza framework o dipendenze esterne. Gira su hosting cPanel condiviso standard, senza Docker, senza Redis, senza Composer.

EndpointMetodoDescrizione
/campo/api.php?action=authPOSTVerifica token e restituisce info operatore
/campo/api.php?action=syncPOSTRiceve array di rilievi da sincronizzare
/campo/api.php?action=listGETLista rilievi con paginazione e filtri
/campo/api.php?action=photoPOSTUpload foto singola (base64 o multipart)
/campo/api.php?action=statsGETStatistiche per dashboard admin (chart data)
/campo/api.php?action=exportGETExport CSV UTF-8 BOM con tutti i rilievi
/campo/api.php?api=mapGETPunti GPS per mappa Leaflet admin
Requisiti installazione

Cosa serve sul server

✅ Già disponibile su hosting condiviso:
  • PHP 8.0 o superiore
  • MySQL 5.6 o MariaDB 10.4
  • HTTPS con certificato SSL (Let's Encrypt)
  • Accesso cPanel per upload file
  • Estensioni PHP: PDO, JSON, GD (standard)
❌ NON richiesto:
  • Node.js / npm
  • Composer / dipendenze PHP esterne
  • Docker / container
  • Redis / memcache
  • Server dedicato o VPS

Pronto a installare AVEMI Campo?

Forniamo lo ZIP di installazione completo con istruzioni passo-passo. Setup in meno di 10 minuti su qualsiasi hosting cPanel.

Richiedi pacchetto installazione ← A cosa serve