7

Tôi có một dự án mà tôi nên phát triển một ứng dụng di động (android) và một trang web. Vì cả hai đều có cùng một cơ sở dữ liệu/nội dung và chức năng Tôi muốn viết một mặt cắt ngang chung cho ứng dụng di động và web.Thiết kế mặt máy chủ chung cho ứng dụng di động và web

Bây giờ tôi có hai lựa chọn:

  1. Để phát triển một dịch vụ Web RESTful ở phía máy chủ mà ứng dụng Android và trang web của tôi (HTML/Javascript) sẽ giao tiếp. Tôi nghĩ rằng đó không phải là cách thoải mái để phát triển trang web, bởi vì bạn đã điền tất cả các giá trị thành phần HTML bằng cách sử dụng javascript khi tải trang.

  2. Xây dựng một ứng dụng web với MVC khung (ví dụ CodeIgniter) trong đó mỗi trang sẽ có hai quan điểm:
    a) chung HTML/CSS trang/Javascript cho trang web
    b) dữ liệu JSON cho ứng dụng di động. Trong trường hợp này, ứng dụng di động sẽ thực hiện cuộc gọi HTTP GET tới URL: www.mySite/someParameters và nó sẽ trả lời dữ liệu JSON.

Lựa chọn nào tốt hơn?
Hoặc bạn có đề xuất nào khác không?

+0

không được RESTful (Tôi đã chỉnh sửa nó với từ viết tắt chính xác) chính xác những gì bạn đã giải thích ở điểm 2? xem [tại đây] (http: //en.wikipedia.org/wiki/Representational_state_transfer), "Áp dụng cho các dịch vụ web". Tuy nhiên có, tôi sẽ làm theo ý tưởng này (hai điểm, một ý tưởng!) Chắc chắn. – Sigismondo

+0

@Sigismondo Có, tất nhiên, nó sẽ là RESTfull. Vui lòng xem điểm 1, tôi đã thêm một số mô tả bổ sung. Ưu điểm chính ở điểm 2 là bạn đang phát triển trang web như thường lệ, những gì bạn bổ sung cho ứng dụng dành cho thiết bị di động là bạn chỉ cần thêm chế độ xem nơi dữ liệu JSON được hiển thị thay vì HTML. Cá nhân tôi thích điểm thứ hai, nhưng tôi quan tâm đến cách mọi người phát triển loại ứng dụng như vậy. Thực hành tốt nhất là gì? – mariami

+1

Khi đã RESTful, khung nhìn có thể được thực hiện theo ý muốn của bạn, theo các ràng buộc khác. Ví dụ, bạn có thể có một cái nhìn để ... stackoverflow chính nó! Đây là tài liệu API: https://api.stackexchange.com/docs - ở đây bạn có thể tìm thấy nhiều ứng dụng hoặc giao diện: http://stackapps.com/ - hãy xem trang web di động của SO. Nếu ứng dụng của bạn ngang bằng với "động lực" này thì đây là một lựa chọn tốt ... nhưng nếu bạn bắt đầu cần thêm phản hồi, sử dụng đồ họa OpenGL, không cần tính di động iOS, ứng dụng gốc linh hoạt hơn. – Sigismondo

Trả lời

6

Tôi thích xây dựng một ứng dụng web theo cách này: Ứng dụng

  1. Web với java Spring
  2. Tạo một giao diện REST, thường với hai đầu ra, JSON và XML, ví dụ http://localhost:8080/hellohttp://localhost:8080/greeting.xml

  3. Sử dụng một số khung công tác phụ của khách hàng Tôi thích boostrap để có bố cục đáp ứng .

  4. Sử dụng phía máy khách MVC, như knockoutjs.com.

  5. Cuộc gọi AJAX, nơi tôi gọi url/hello Tôi ánh xạ kết quả đến ràng buộc knockoutj, theo cách này tôi có một ràng buộc hai chiều.

  6. Tạo ứng dụng gốc cho Android hoặc iPhone bằng giao diện .

    tôi hy vọng nó có thể hữu ích

+0

Cảm ơn bạn rất nhiều :) –

0

Câu trả lời phụ thuộc vào (a) cách thoải mái bạn với một trong hai giải pháp và (b) các yêu cầu của dự án. Tôi thích (1) bởi vì tôi không biết bất kỳ khung công tác web nào, nhưng tôi rất quen thuộc với lập trình mạng. Nó sẽ đơn giản để viết một số ứng dụng cuối cùng phục vụ trang HTML. Tuy nhiên, nếu đó là một dự án lớn, thì sẽ rất thuận lợi để chọn (2).

Nếu chỉ muốn hoàn thành công việc và bạn không thấy bất kỳ lợi thế/bất lợi nào cho giải pháp, thì chỉ cần chọn một giải pháp.

Các vấn đề liên quan