2013-09-04 17 views
15

Sto lavorando a un'applicazione web che utilizza django.PhoneGap con Django Backend

Mi piacerebbe creare un'applicazione nativa del sito per iOS/Android utilizzando il divario telefonico.

È possibile? Come ho capito i dispositivi nativi non possono interpretare il codice Python.

È all'inizio del progetto e se risulta troppo difficile potrei andare con un framework diverso I.e backbone.js.

Qualche idea/esperienza?

risposta

20

Esatto, non è possibile eseguire codice Python su iOS o Android utilizzando PhoneGap, ma non è necessario farlo. Sì, puoi creare un'applicazione mobile nativa del tuo sito utilizzando PhoneGap.

Cercherò di spiegare un po 'come queste tecnologie confrontano l'un l'altro:

  • Django è un framework Python Web in esecuzione su un server web
  • PhoneGap è un framework per la creazione di applicazioni native mobile utilizzando tecnologie web (HTML5 + CSS + JavaScript), l'applicazione verrà eseguita su un dispositivo mobile

un approccio comune è quello di costruire il cellulare con interfaccia utente cioè jQuery Mobile e utilizzare l'applicazione web Django per fornire un RESTful API per ottenere dati nell'applicazione.

Dai un'occhiata a this another question per maggiori dettagli.


Edit: Rispondi alla domanda nel primo commento

Sì, è possibile costruire un'applicazione veloce e ben lavorare con questi quadri. Le prestazioni con gli smartphone di oggi dipendono maggiormente dalla qualità dell'implementazione rispetto a jQuery mobile e Django in sé.

In sostanza con PhoneGap ci sono tre modi diversi per mostrare il contenuto all'utente: le pagine generate

  • lato server
  • pagine generate sul lato client con JavaScript dati usin dal server, trasferiti in un formato predefinito usando per esempio JSON
  • una combinazione delle due precedenti

This answer chiarisce SERV comunicazione er-client e rendering della pagina abbastanza bene.

È possibile utilizzare PhoneGap un po 'come un browser Web vincolato e fondamentalmente mostrare il contenuto direttamente dal proprio server come fareste quando l'utente accede al sito con un normale browser Web. Tuttavia, non consiglio questo. Questo approccio ha molti svantaggi (es. Cosa succede quando l'utente apre un link dal tuo sito Web che conduce ad un altro sito?)

Per essere precisi, almeno a mio parere, l'interfaccia utente scritta con Javascript e in esecuzione all'interno di un'app costruita con PhoneGap non è nativo.Confrontare applicazioni native e applicazioni PhoneGap è un'altra cosa, ecco uno take on explaining the differences.

Non so che tipo di servizio si sta creando, ma in generale suggerirei di valutare i diversi approcci prima di iniziare a creare un'applicazione. Un sito web ottimizzato per dispositivi mobili reattivi farebbe o è realmente necessario per ciò che può fornire un'app?

Se decidi di creare un'app con PhoneGap, ti suggerisco di farlo con Javascript lato client e di recuperare i dati dal backend Django con richieste XHR in formato JSON. Ci sono molti examples disponibili in internet.

+0

Grazie. Questo metodo offre buone prestazioni sui dispositivi mobili? L'altro thread che hai collegato suggerisce così. Comunque ho letto svariate opinioni. Sto cercando di comprendere la differenza tra visitare il sito da una macchina desktop rispetto a quella mobile? Il desktop attiva le visualizzazioni tramite gli URL: è lo stesso sui dispositivi mobili? Oppure viene suggerito che la logica della vista sia scritta in JavaScript e eseguita nativamente sul telefono per ottenere i migliori risultati? Alzando un'altra domanda .. perché non funziona lentamente sul desktop dove il server gestisce le funzioni di visualizzazione e non il client? – endline

+0

@ eol Ho aggiornato la risposta con le risposte per le nuove domande tranne l'ultima che non ho capito. – lekksi

+0

Ho seguito il tuo consiglio e ho proceduto a creare il mio sito utilizzando Django con un'API RESTful di Tastypie per accedere dall'app iOS. Eppure sto ancora cercando di capire come utilizzare l'autenticazione di sessione quando si usano tali API. Ho dettagliato i miei problemi [QUI] (http://stackoverflow.com/questions/19717875/django-tastypie-request-user-from-js-client-side). Spero che tu possa fare un po 'di luce per aiutarmi a girare la testa attorno a questo mucchio. Molte grazie in anticipo. @lekksi – endline

Problemi correlati