2013-09-04 13 views
15

Ich arbeite an einer Webanwendung, die Django verwendet.PhoneGap mit Django Backend

Ich möchte eine native Anwendung der Website für iOS/Android mit Telefon Lücke erstellen.

Ist das möglich? Wie ich verstehe, können native Geräte Python-Code nicht interpretieren.

Es ist früh im Projekt und wenn es zu schwierig wird, kann ich mit einem anderen Rahmen I.e backbone.js gehen.

Irgendwelche Gedanken/Erfahrungen?

Antwort

20

Das ist richtig, Sie können nicht Python-Code auf iOS oder Android mit PhoneGap ausführen, aber das ist nicht nötig. Ja, Sie können mit PhoneGap eine native mobile Anwendung Ihrer Website erstellen.

Ich werde versuchen, ein wenig zu erklären, wie diese Technologien miteinander vergleichen:

  • Django ist ein Web-Framework Python auf einem Webserver
  • PhoneGap läuft ist ein Framework für den Aufbau native mobile Anwendungen Web-Technologien (HTML5 + CSS + JavaScript), wird die Anwendung auf einem mobilen Gerät laufen

ein weit verbreiteter Ansatz ist die mobile UI mit dh jQuery Mobile und verwenden Sie die Django Web-Anwendung zu bauen einenzu schaffen, um Daten an die Anwendung zu senden.

Werfen Sie einen Blick auf this another question für weitere Details.


Edit: Beantworten Sie die Frage in dem ersten Kommentar

Ja, es ist möglich, eine schnelle und gut funktionierende Anwendung mit dieser Frameworks zu bauen. Die Leistung mit den heutigen Smartphones hängt mehr von der Qualität der Implementierung ab als von jQuery mobile und Django an sich.

Grundsätzlich mit PhoneGap gibt es drei verschiedene Möglichkeiten, den Inhalt an den Benutzer zeigt:

  • Server-Seite generierten Seiten
  • Seiten auf der Client-Seite generierten mit Javascript usin Daten von dem Server, in einem übertragenen vordefinierten Format beispielsweise unter Verwendung von JSON
  • eine Kombination der beiden vorhergehenden

This answer verdeutlicht serv Er-Client-Kommunikation und Seiten-Rendering ganz gut.

Sie könnten PhoneGap ein bisschen wie einen eingeschränkten Webbrowser verwenden und Inhalte direkt von Ihrem Server anzeigen, als würden Sie mit einem normalen Webbrowser auf die Site zugreifen. Aber ich empfehle diese, obwohl. Dieser Ansatz hat viele Nachteile (zB was passiert, wenn der Benutzer einen Link von Ihrer Website zu einer anderen Website öffnet?)

Um genau zu sein, zumindest meiner Meinung nach, Benutzeroberfläche mit Javascript geschrieben und innerhalb einer App laufen gebaut mit PhoneGap ist nicht nativ.Vergleiche native Anwendungen und PhoneGap-Anwendungen ist eine andere Sache, hier ist eine take on explaining the differences.

Ich weiß nicht, welche Art von Service Sie erstellen, aber im Allgemeinen würde ich empfehlen, die verschiedenen Ansätze zu bewerten, bevor Sie mit dem Erstellen einer Anwendung beginnen. Wäre eine reaktionsschnelle, für Mobilgeräte optimierte Website wirklich erforderlich oder besteht Bedarf an einer App?

Wenn Sie sich entscheiden, eine App mit PhoneGap zu erstellen, würde ich vorschlagen, dass Sie es mit clientseitigem Javascript tun und die Daten aus dem Django-Backend mit XHR-Anfragen im JSON-Format abrufen. Es gibt viele examples im Internet verfügbar.

+0

Danke. Würde diese Methode eine gute Leistung auf Mobilgeräten erbringen? Der andere Thread, den Sie verlinkt haben, schlägt dies vor. Ich habe jedoch unterschiedliche Meinungen gelesen. Ich versuche herauszufinden, was ist der Unterschied zwischen einem Besuch der Website von einem Desktop-Computer im Vergleich zu mobilen? Der Desktop löst Aufrufe über URLs aus - funktioniert das auch auf Mobilgeräten? Oder wird vorgeschlagen, dass die Ansichtslogik in JavaScript geschrieben wird und nativ am Telefon ausgeführt wird, um die besten Ergebnisse zu erzielen? Eine weitere Frage stellen ... Warum läuft es nicht langsam auf dem Desktop, wo der Server die Ansichtsfunktionen und nicht den Client behandelt? – endline

+0

@eol Ich habe die Antwort mit Antworten auf Ihre neuen Fragen aktualisiert, mit Ausnahme der letzten, die ich nicht verstanden habe. – lekksi

+0

Ich habe Ihren Ratschlag übernommen und meine Website mit Django mit einer Tastypie RESTful-API für den Zugriff über meine phonegap iOS-App erstellt. Dennoch habe ich immer noch Probleme damit, mich bei der Verwendung solcher APIs um die Sitzungsauthentifizierung zu kümmern. Ich habe meine Frage (n) [HIER] (http://stackoverflow.com/questions/19717875/django-tastypie-request-user-from-js-client-side) ausführlich beschrieben. Ich hoffe, du könntest Licht ins Dunkel bringen, um mir dabei zu helfen, meinen Kopf um diesen Stapel zu wickeln. Vielen Dank im Voraus. @lekksi – endline

Verwandte Themen