2012-05-05 26 views
11

Tôi đã phát triển một trang web đầy đủ chức năng và nhóm của chúng tôi đang tìm cách xuất trang web này sang ứng dụng iPhone (và cuối cùng là các nền tảng khác). Ví dụ tốt nhất mà tôi có thể đưa ra là về cơ bản tôi đã tạo Facebook, bây giờ tôi muốn tạo ứng dụng của Facebook (ứng dụng được khởi chạy từ màn hình chính của iPhone chứ không phải từ trình duyệt). Vì vậy, rõ ràng, chúng tôi đã có các chức năng, và chúng tôi chỉ cần chuyển đổi nó sang một nền tảng khác. Làm thế nào khó khăn này? Liệu chúng ta có phải tạo ra một phần mềm hoàn toàn mới và về cơ bản bỏ qua tất cả các mã PHP hiện có mà chúng ta đã có? Ứng dụng về cơ bản sẽ giống như trang web, ngoại trừ một vài thay đổi về bố cục. Chúng tôi có thể muốn nó có thể truy cập vào tính năng của máy ảnh và chắc chắn có thể tải lên một bức ảnh mà tôi cho rằng sẽ loại bỏ một ứng dụng di động? Tôi vẫn không hiểu được sự phân định giữa việc tạo một ứng dụng di động và một ứng dụng khởi chạy từ màn hình chính của iPhone. Các bạn có gợi ý nào về việc bắt đầu từ đâu và khó khăn như thế nào? Nếu chúng ta có thể có được chức năng mà chúng ta muốn và làm cho nó dễ dàng hơn với chính mình bằng cách sử dụng mã hiện có, chúng ta sẽ vui mừng.tạo một ứng dụng di động từ một trang web hiện có

Cảm ơn

+0

Bạn biết rõ khách quan-c như thế nào? –

+0

Không nhiều, tôi có một số nền C++ tốt và tôi có một sự hiểu biết chung về nơi Ob-C khác, vv –

Trả lời

9

Hãy bắt đầu với những thứ cơ bản.

Trang web dành cho thiết bị di động là trang web được truy cập thông qua trình duyệt web của điện thoại. Các trang HTML được phân phối từ máy chủ web (và giao diện người dùng được tối ưu hóa cho bố cục điện thoại).

Ứng dụng gốc (thường được gọi là "ứng dụng") về bản chất là một ứng dụng có thể chạy được tải xuống điện thoại. Đối với iPhone, chúng được viết trong Objective-C. Đối với Android, chúng được viết bằng Java. Đối với Windows Mobile chúng được viết bằng C#, vv

Dưới đây là những tin tức xấu bạn đang phải đối mặt:

trật tự -Trong cho ứng dụng của bạn để khởi động từ "màn hình chủ" của iPhone nó phải được biên dịch bằng Objective C. Tương tự với Android/Java.

-Để truy cập máy ảnh, cần phải được biên dịch bằng Mục tiêu C (hoặc Java cho Android).

Vì vậy, đây là một số tin tốt cho bạn:

-Bạn có thể dễ dàng viết ứng dụng mẹ đẻ của mình là một hoàn toàn giao diện người dùng front-end và gọi mã phía máy chủ hiện tại của bạn sử dụng một mô hình REST API cho logic kinh doanh. Bạn chỉ cần để lộ các chức năng bạn cần để lộ cho các ứng dụng. Vì vậy, đó là 1 cách để tái sử dụng cơ sở mã hiện tại và làm cho ứng dụng trở nên đơn giản hơn. Có những khung Objective C tốt như RESTKit, điều này khá dễ dàng.

-Bạn có thể làm cho ứng dụng của bạn thực sự cheesy và về cơ bản làm cho nó trở thành một trình duyệt web để trang web của bạn, nhưng có thể không được chấp thuận bởi Apple nếu bạn không tùy chỉnh nó cho iPhone phần nào. Và nó sẽ là một trải nghiệm kém cho người dùng iPhone, những người mong đợi một ứng dụng thực hiện như một ứng dụng. Tôi sẽ không đề nghị này.

-Nếu bạn dự định phát hành trên nhiều nền tảng hoặc thực sự không muốn duy trì dự án Objective C (và dự án Java trong tương lai), bạn có thể sử dụng một cái gì đó như PhoneGap, Appcelerator Titanium hoặc Sencha Touch . Đây là các trình bao bọc sẽ lấy một ứng dụng được viết bằng công nghệ web (HTML 5) và biên dịch chúng thành các ứng dụng gốc. Các ứng dụng HTML 5 này có thể truy cập máy ảnh, v.v. Các nhà phát triển hiện tại của bạn không cần phải tìm hiểu Objective-C và có thể sử dụng các kỹ năng HTML/JavaScript của họ mà họ đã có. Có rất nhiều ưu điểm đối với các công nghệ này. Nhược điểm là ứng dụng của bạn sẽ không nhìn/cảm thấy khá tốt như một ứng dụng bản địa hoặc sử dụng bất kỳ tính năng "thú vị" nào của điện thoại. Nó sẽ thực hiện sorta giống như một trang web di động tốt. Nếu bạn có người dùng giao diện người dùng/thiết kế tốt, bạn có thể tạo ra một cái gì đó khá tốt bằng cách sử dụng các công nghệ web này. Nhưng nếu bạn chỉ đang tìm cách mô phỏng một trang web thành ứng dụng gốc (và không tạo ra trò chơi giết người tiếp theo), thì đó có thể là đặt cược tốt nhất của bạn vì một số lý do.

Nếu bạn google app gốc so với phonegap (hoặc sencha touch), có rất nhiều thông tin về ưu và khuyết điểm. Đó có lẽ là một nơi tốt để bạn bắt đầu học.

+0

Ok, tuyệt. Đó là những gì nghiên cứu của tôi đã khiến tôi tin, đôi khi mọi người sử dụng từ "ứng dụng" một cách nhẹ nhàng, và tôi không phải lúc nào cũng rõ ràng nếu họ đang nói về một ứng dụng gốc có thể được phân phối hoặc chỉ là một trang web trên thiết bị di động, . –

0

Tùy theo điều kiện. Về cơ bản, bạn có thể sử dụng UIWebViews và một biểu định kiểu tùy chỉnh để làm cho ứng dụng trở thành một cổng thông tin cho trang web, mà tôi tin rằng ứng dụng facebook thực hiện. Nó sẽ không hoạt động tốt như một ứng dụng thực sự có nguồn gốc, nhưng nó có thể phục vụ cho mục đích của bạn tốt với ít bảo trì hơn.

1

Xem điều khoản 2.12 của App Store xét Guideliness

https://developer.apple.com/appstore/resources/approval/guidelines.html#functionality

... Apps mà chỉ đơn giản là các trang web đóng gói như các ứng dụng ... có thể bị từ chối

+0

Vì vậy, những gì khác biệt ứng dụng facebook để đủ điều kiện? –

+0

Facebook tùy chỉnh ứng dụng của họ sang điện thoại, mặc dù nó chạy trong trình bao bọc web. Nếu ứng dụng gốc của họ chỉ là một trình duyệt web trỏ đến trang web bình thường của họ, nó sẽ bị từ chối. Tuy nhiên, ứng dụng gốc của họ, và SDK, vẫn còn khá lame cho một công ty với nguồn lực của họ. – Joel

2

Ngoài phản hồi tốt của @Joel, trước hết bạn nên hiểu loại tính năng nào bạn nên cung cấp cho người dùng, nếu tính năng chính chỉ có thể xem trang web bằng cách sử dụng UIWebView chỉ để có thể phân phối ứng dụng trên cửa hàng, như @Teofilo đã nói it is not allowed. Hiện nay có các giải pháp khác nhau để phát triển các ứng dụng đa nền tảng, (ví dụ: PhoneGap), cho phép bạn phát triển các ứng dụng cho các nền tảng khác nhau bằng các công nghệ như html5, ajax, v.v. qua UIWebViews.
Tùy thuộc vào loại chức năng mà bạn muốn cung cấp cho người dùng, hiệu suất chắc chắn sẽ tốt nhất trong trường hợp phát triển tự nhiên, vì bạn có nhiều quyền kiểm soát hơn đối với ứng dụng và trên thiết bị, nhưng vẫn có thể thuận tiện khi sử dụng giải pháp đa nền tảng nếu các tính năng được chia sẻ dễ triển khai, để có được kết quả tương tự trên các nền tảng khác nhau. Cũng không quá quan trọng đối với loại công nghệ mà bạn sử dụng ở mặt sau, điều quan trọng là sử dụng các định dạng/giao thức chuẩn để giao tiếp (ví dụ http/json). Đây chỉ là quan điểm của tôi, tôi hy vọng một người nào đó có thể đưa ra quan điểm của mình về chủ đề này, bởi vì tôi nhận thấy điều đó là rất thường xuyên ngày hôm nay.
Tuy nhiên, câu hỏi hay.

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