L’app nel telefono salva in locale i dati da inserire (phonegap ti fornisce accesso ad sqlite di android o iphone) e quando la connessione è up invia tutto a Yii.
Nell’applicativo server c’è un’interfaccia RESTful (che al momento è un controller) e tramite quella faccio dialogare Smartphone e Yii.
Anche se il tutto sembra molto complicato in realtà non lo è eccessivamente, per usare phonegap devi sicuramente avere un’ottima conoscenza di Javascript.
Su phonegap è comunque Javascript quindi replicabile su browser.
Il problema è che con phonegap hai delle API che ti permettono di capire quando la connessione è up, su un browser normale credo che dovrai implementartela da solo una cosa simile.
Risolto quello poi puoi usare cose tipo plugin jquery per gestire un po’ più agevolmente lo storage dei dati in locale.
Se su Yii hai poi un’interfaccia RESTful inviare i dati da JS a Yii diventa poi piuttosto easy.
Con Phonegap ti disegni l’interfaccia dell’app in HTML e le funzioni in Javascript e HTML + Javascript diventano il codice che risiede nell’app.
Ci sono poi vari approcci, io ho usato spesso JqueryMobile per far apparire tutto molto mobile
Per fare come dici tu, in un browser, dovresti più che altro scrivere un’estensione di firefox o chrome, in qualche modo l’interfaccia offline devi averla in locale, no?
Non ho capito se hai trovato una soluzione al tuo problema Giancarlo. Puoi dirci qualche cosa in più sull’avanzamento dei lavori? Ma sopratutto, è possibile far girare php su android? Non credevo si potesse. In questo caso la risposta alla tua domanda iniziale è NO: non puoi far girare yii su uno smartphone. La tua soluzione va cercata in un altra strada.
@sensorario ciò che devo realizzare è una web application (e quindi in grado di lavorare sia su pc che su smartphone) con supporto Local Storage. Yii lo userei ovviamente solo per la realizzazione dell’interfaccia REST.
Mentre sul device di turno verrebbe caricata la sola pagina web autonoma.
Praticamente anche in caso di perdita della connessione, la pagina mediante l’uso di local storage e di javascript (in quantità massiccia) riesce a far lavorare l’utente offline.
Poi appena torna su lo connessione il database viene sincronizzato.
Ho già implementato una soluzione del genere in passato, funziona bene.
A patto che ci sia la connessione iniziale per caricare la prima volta la pagina, lo script e il db sul device.
Quello che non mi è piaciuto dell’esperienza precedente è che il codice javascript si complica facilmente.
O perlomeno non ho trovato una soluzione decente per dare un pò di ordine e pulizia al codice javascript.
So che esistono parecchi framework javascript, ma non ne ho trovato ancora uno bello, funzionale, completo e rapido da imparare. E’ anche vero che non li ho ancora provati tutti. Per questo ho scritto sul forum, per condividere qualche altra esperienza.
In pratica ti colleghi su www… e carichi la pagina, poi a quel punto puoi anche spegnere la connessione ed usare la web aplication. Quando ritiri su la connessione, sincronizzi i dati.
Il giorno dopo stessa cosa. Ti colleghi a www… carichi la pagina e poi la usi anche senza connessione.
E’ logico poi come dicevi tu che una volta realizzato il tutto, si può anche mettere html, javascript su smartphone con PhoneGap per fruire dell’app sempre e comunque anche senza connessione iniziale.
Ma comunque non cambia la problematica che ho di voler riuscire a sviluppare applicazioni potenti in javascript velocemente e tenendo il codice pulito
Io posso capire i local storage. Ma non capisco il perché della cache. Tu ogni giorno hai la necessità di scaricare una o più pagine html? Se si, vorrei capire il perché usare la cache è una soluzione, certo, ma se ne potrebbero trovare di altre. Per esempio, quella di avere una applicazione web locale che si interfaccia al web solo ed esclusivamente per l’allineamento del db.