2013-09-04 24 views
15

Tôi đang làm việc trên một ứng dụng web có sử dụng django.PhoneGap với Django Backend

Tôi muốn tạo ứng dụng gốc của trang web cho ios/android bằng cách sử dụng khoảng cách điện thoại.

Điều này có khả thi không? Theo tôi hiểu các thiết bị gốc không thể giải thích mã python.

Đó là dự án sớm và nếu nó chứng tỏ quá khó, tôi có thể đi với một khung công tác khác I.e backbone.js.

Bất kỳ suy nghĩ/trải nghiệm nào?

Trả lời

20

Đúng vậy, bạn không thể chạy mã python trên iOS hoặc Android bằng PhoneGap, nhưng không cần phải làm điều đó. Có, bạn có thể xây dựng một ứng dụng di động gốc của trang web của bạn bằng cách sử dụng PhoneGap.

tôi sẽ cố gắng giải thích một chút như thế nào các công nghệ này so sánh với nhau:

  • Django là một khuôn khổ python web chạy trên một máy chủ web
  • PhoneGap là một khuôn khổ cho việc xây dựng ứng dụng di động có nguồn gốc sử dụng công nghệ web (HTML5 + CSS + Javascript), ứng dụng sẽ chạy trên thiết bị di động

Một cách tiếp cận chung là xây dựng giao diện người dùng di động với số jQuery Mobile và sử dụng ứng dụng web Django để cung cấp RESTful API để nhận dữ liệu cho ứng dụng.

Hãy xem this another question để biết thêm chi tiết.


Edit: Trả lời các câu hỏi trong bình luận đầu tiên

Vâng, nó có thể để xây dựng một ứng dụng nhanh chóng và cũng làm việc với những khung. Hiệu suất với điện thoại thông minh ngày nay phụ thuộc nhiều vào chất lượng của việc triển khai hơn là jQuery và Django trong chính họ.

Về cơ bản với PhoneGap có ba cách khác nhau để hiển thị nội dung cho người dùng:

  • phía máy chủ trang được tạo
  • trang được tạo trên các mặt hàng với Javascript dữ liệu usin từ máy chủ, chuyển giao trong một định dạng được xác định trước sử dụng ví dụ JSON
  • một sự kết hợp của hai trước

This answer làm rõ serv giao tiếp và hiển thị trang của khách hàng khá tốt.

Bạn có thể sử dụng PhoneGap giống như trình duyệt web bị hạn chế và về cơ bản hiển thị nội dung trực tiếp từ máy chủ của bạn như khi bạn truy cập trang web bằng trình duyệt web thông thường. Tuy nhiên, tôi không khuyến cáo điều này là. Cách tiếp cận này có nhiều nhược điểm đối với nó (tức là điều gì xảy ra khi người dùng mở một liên kết từ trang web của bạn dẫn đến một trang web khác?)

Để được chính xác, ít nhất theo ý kiến ​​của tôi, UI viết bằng Javascript và chạy bên trong ứng dụng được xây dựng với PhoneGap không phải là bản địa.So sánh các ứng dụng gốc và các ứng dụng PhoneGap là một điều khác, đây là một trong số take on explaining the differences.

Tôi không biết bạn đang xây dựng loại dịch vụ nào, nhưng nói chung tôi khuyên bạn nên đánh giá các phương pháp khác nhau trước khi bắt đầu xây dựng một ứng dụng. Một trang web được tối ưu hóa cho thiết bị di động đáp ứng có hoặc có nhu cầu thực sự cho những gì ứng dụng có thể cung cấp không?

Nếu bạn quyết định xây dựng một ứng dụng với PhoneGap, tôi khuyên bạn nên làm điều đó với Javascript phía máy khách và tìm nạp dữ liệu từ phụ trợ Django với các yêu cầu XHR ở định dạng JSON. Có rất nhiều examples có sẵn trên internet.

+0

Cảm ơn. Phương pháp này có mang lại hiệu suất tốt trên thiết bị di động không? Chủ đề khác mà bạn đã liên kết đề xuất như vậy. Tuy nhiên tôi đã đọc ý kiến ​​khác nhau. Tôi đang cố gắng che giấu sự khác biệt giữa việc truy cập trang web từ máy tính để bàn so với thiết bị di động? Máy tính để bàn kích hoạt chế độ xem qua url - điều này có giống nhau trên thiết bị di động không? Hoặc là nó được cho rằng logic xem được viết bằng JavaScript và chạy tự nhiên trên điện thoại để có kết quả tốt nhất? Đưa ra một câu hỏi khác .. tại sao nó không chạy chậm trên máy tính để bàn, nơi máy chủ xử lý các chức năng xem và không phải là khách hàng? – endline

+0

@eol Tôi đã cập nhật câu trả lời với câu trả lời cho các câu hỏi mới của bạn ngoại trừ câu hỏi cuối cùng mà tôi không hiểu. – lekksi

+0

Tôi đã đưa ra lời khuyên của bạn và tiến hành xây dựng trang web của tôi bằng cách sử dụng Django với API Tastypie RESTful để truy cập từ ứng dụng iOS trên điện thoại của tôi. Tuy nhiên, im vẫn thực sự đấu tranh để quấn đầu của tôi xung quanh xác thực phiên khi sử dụng các API như vậy. Tôi đã nêu chi tiết (các) vấn đề của tôi [TẠI ĐÂY] (http://stackoverflow.com/questions/19717875/django-tastypie-request-user-from-js-client-side). Tôi hy vọng bạn có thể làm sáng tỏ một chút để giúp tôi quấn đầu quanh đống này. Rất cám ơn trước. @lekksi – endline