2013-09-04 10 views
15

Pracuję nad aplikacją internetową, która używa django.PhoneGap z Django Backendem

Chciałbym utworzyć natywną aplikację witryny dla ios/android za pomocą luki telefonicznej.

Czy to możliwe? Jak rozumiem, urządzenia natywne nie mogą interpretować kodu Pythona.

Jest to wcześnie w projekcie i jeśli okaże się zbyt trudne, mogę przejść z innym schematem, np. Backbone.js.

Jakieś przemyślenia/doświadczenia?

Odpowiedz

20

To prawda, nie można uruchomić kodu Pythona na iOS lub Android przy użyciu PhoneGap, ale nie ma takiej potrzeby. Tak, możesz zbudować natywną aplikację mobilną swojej witryny za pomocą PhoneGap.

postaram się wyjaśnić co nieco, jak te technologie porównać do siebie:

  • Django to framework pyton WWW uruchomiony na serwerze WWW
  • PhoneGap to framework do tworzenia natywnych aplikacji mobilnych z wykorzystaniem technologii internetowych (HTML5 + CSS + JavaScript), aplikacja będzie działać na urządzeniu mobilnym

Jedno wspólne podejście jest zbudowanie mobilnej UI z IE jQuery Mobile i korzystać z aplikacji internetowej Django dostarczenie RESTful API, aby pobrać dane do aplikacji.

Aby uzyskać więcej informacji, zobacz this another question.


Edycja: Odpowiedź na pytanie w pierwszym komentarzu

Tak, to jest możliwe, aby zbudować szybki i dobrze pracuje aplikacji z tych ram. Wydajność z dzisiejszymi smartfonami jest bardziej zależna od jakości implementacji niż np. JQuery mobile i Django.

Zasadniczo z PhoneGap istnieją trzy różne sposoby na pokazywanie zawartości do użytkownika:

  • bocznych serwer generowanych stron
  • stron generowanych po stronie klienta z javascript usin danych z serwera, przekazane w ramach predefiniowane Format stosując na przykład JSON
  • kombinacją dwóch poprzednich

This answer wyjaśnia serv er-klient komunikacja i renderowanie strony całkiem dobrze.

Możesz użyć PhoneGap trochę jak ograniczoną przeglądarkę internetową, i po prostu pokazać zawartość bezpośrednio z twojego serwera, tak jak wtedy, gdy użytkownik uzyskuje dostęp do witryny za pomocą zwykłej przeglądarki internetowej. Ale nie polecam tego, chociaż. Takie podejście ma wiele wad (tj. Co się stanie, gdy użytkownik otworzy link z twojej strony prowadzącej do innej strony internetowej?)

Dokładniej, przynajmniej moim zdaniem, interfejs użytkownika napisany z Javascriptem i działający wewnątrz aplikacji z PhoneGap nie jest natywny.Porównywanie aplikacji natywnych i aplikacji PhoneGap to kolejna rzecz, tutaj jest jeden take on explaining the differences.

Nie wiem, jaki rodzaj usługi budujesz, ale ogólnie sugerowałbym ocenę różnych podejść przed rozpoczęciem tworzenia aplikacji. Czy responsywna strona internetowa zoptymalizowana pod kątem urządzeń przenośnych rzeczywiście spełnia wymagania aplikacji?

Jeśli zdecydujesz się na zbudowanie aplikacji z PhoneGap, proponuję zrobić to za pomocą Javascript po stronie klienta i pobrać dane z backendu Django z żądaniami XHR w formacie JSON. Istnieje wiele dostępnych w Internecie examples.

+0

Dzięki. Czy ta metoda zapewni dobrą wydajność na urządzeniach mobilnych? Drugi wątek, do którego jesteś podłączony, sugeruje tak. Jednak czytałem różne opinie. Próbuję zawołać głowę, jaka jest różnica między odwiedzenie strony z komputera stacjonarnego a telefonem komórkowym? Pulpit uruchamia widoki za pośrednictwem adresów URL - czy jest taki sam na urządzeniach mobilnych? Czy sugeruje się, aby logika widoku była napisana w JavaScript i działała natywnie przez telefon, aby uzyskać najlepsze wyniki? Zgłaszanie innego pytania ... dlaczego nie działa wolno na komputerze, na którym serwer obsługuje funkcje widoku, a nie klienta? – endline

+0

@eol Zaktualizowałem odpowiedź z odpowiedziami na nowe pytania, z wyjątkiem ostatniej, której nie rozumiałem. – lekksi

+0

Wziąłem twoją radę i przystąpiłem do budowania mojej strony używając Django z Tastypie RESTful API, aby uzyskać dostęp z mojej aplikacji phonegap na iOS. Mimo to wciąż staram się owijać głowę wokół uwierzytelniania sesji podczas korzystania z takich interfejsów API. Mam szczegółowe moje problemy (TUTAJ) (http://stackoverflow.com/questions/19717875/django-tastypie-request-user-from-js-client-side). Mam nadzieję, że możesz rzucić trochę światła, by pomóc mi owinąć głowę wokół tego stosu. Z góry bardzo dziękuję. @lekksi – endline

Powiązane problemy