2011-08-11 33 views
9

Có nhiều cách để phát triển các ứng dụng iOS. Tôi thích lập trình trong Objective-C để tạo các ứng dụng iOS của mình.Mục tiêu-C và PhoneGap

Nhưng bạn có thể làm hầu hết những điều sử dụng jQTouch, jQMobile, PhoneGap, vv

Câu hỏi:

Khi là nó phù hợp hoặc thích hợp để sử dụng nền tảng bản địa?

+1

Điều này có vẻ giống như một cuộc thảo luận phù hợp hơn cho http://programmers.stackexchange.com (vote thân của tôi chỉ đơn giản là vấn đề di cư) – Joe

Trả lời

20
  1. PhoneGap thực chất là một trình bao bọc, vì vậy nó sẽ luôn tụt hậu so với các tính năng mới nhất, ngoài khả năng có lỗi trong một số trường hợp cạnh.
  2. Không phải tất cả tính năng nền tảng sẽ khả dụng trong PhoneGap, vì vậy bạn cần phải biết những gì không được hỗ trợ trước khi quyết định sử dụng.
  3. Hầu hết các tính năng tăng tốc phần cứng sẽ không bao giờ có sẵn, vì vậy nếu bạn muốn tạo trò chơi tiên tiến với đồ họa cao cấp, nó sẽ không hoạt động tốt.
  4. Việc bảo trì được yêu cầu để làm các mô-đun tùy chỉnh không có sẵn trong hộp có thể thực sự mất nhiều thời gian hơn là phát triển nguồn gốc.
  5. Bạn có thực sự cần chạy trên hơn 2 hệ điều hành di động không? Viết cho iOS và Android sẽ cung cấp cho bạn một mức độ phù hợp thị trường khá lớn, vì vậy bạn có thể nên sử dụng bản địa tốt hơn.

PhoneGap được thiết kế cho các ứng dụng web đơn giản hơn, ứng dụng theo hướng dữ liệu và ứng dụng xã hội yêu cầu kết nối để hoạt động. Bạn có thể kết thúc viết lại ứng dụng bằng ngôn ngữ bản địa nếu ứng dụng của bạn trở nên phổ biến và bạn cần hỗ trợ nhiều tính năng hơn, nhưng nếu bạn có thể khởi chạy ý tưởng nhanh chóng trên nhiều thiết bị thì bạn có lợi thế cạnh tranh trên thị trường.

0

Tôi đã thử điện thoại và điều đầu tiên khiến tôi khó chịu là bạn không thể điều khiển bàn phím như bạn đã từng sử dụng trong obj-c. Bàn phím chính xác như bạn nhận được khi duyệt một trang web, nó có thêm một ngăn ở đầu bàn phím với các nút "kế tiếp/trước". Vì vậy, bây giờ tôi đang thử Titanium Appcelerator, nơi bạn có thể tạo GUI gốc bằng cách sử dụng javascript thay thế.

3

Từ kinh nghiệm của tôi, tất cả các ứng dụng JavaScript đã chậm hơn các ứng dụng được viết trong nền tảng gốc. Không phải vì điện thoại hoặc JavaScript, mà là do hiển thị các phần tử DOM.

0

Tôi nghĩ rằng nếu nó nằm trong khả năng của bạn để học hoặc sử dụng Objective-C, thì hầu như luôn luôn tốt nhất để làm như vậy. Sử dụng SDK gốc cho phép bạn truy cập mọi thứ trên thiết bị theo cách tương thích nhất có thể. Sử dụng các lớp trừu tượng chỉ làm tổn thương chức năng, khả năng tùy chỉnh và gỡ lỗi.

Điều đó nói rằng, có vẻ như có một số khung công tác mạnh mẽ và được viết tốt để biên dịch HTML, CSS và JS thành các ứng dụng gốc. Điều đó có thể thích hợp nếu bạn không có lịch biểu thực sự chặt chẽ hoặc nếu bạn cần lấy mẫu thử nghiệm nhanh, và bạn là một ninja JavaScript, nhưng là một coder Objective-C mới làm quen.

4

Nếu bạn cần phát triển ứng dụng cho nhiều nền tảng di động, nhanh chóng, với nỗ lực tối thiểu (ví dụ: triển khai một lần), hãy sử dụng PhoneGap hoặc tương tự. Các khung công tác này cung cấp loại môi trường "mẫu số chung thấp nhất", do đó bạn thường mất quyền truy cập vào các khả năng của nền tảng gốc.

Mặt khác, nếu bạn đang phát triển một ứng dụng chỉ dành cho iOS, thì bằng mọi cách, hãy phát triển ứng dụng đó trong Mục tiêu-C làm ứng dụng gốc.Sau đó, bạn có toàn quyền sử dụng SDK và khả năng của nền tảng này! Đây là, tất nhiên, khuyến nghị của Apple là một phương pháp hay nhất để phát triển các ứng dụng iOS!

Theo kinh nghiệm của riêng mình, tôi đã trò chuyện với CTO của mình trước khi tham gia công ty về việc chúng tôi có nên phát triển ứng dụng gốc cho nền tảng của chúng tôi hoặc sử dụng PhoneGap hay không. Chúng tôi đồng ý rằng việc phát triển ứng dụng gốc là cách để đi vì chúng tôi có thể tận dụng các khả năng cụ thể của mỗi nền tảng. Ngoài ra, ứng dụng gốc sẽ cung cấp trải nghiệm người dùng tốt hơn trên nền tảng, vì ứng dụng sẽ hoạt động giống như các ứng dụng gốc khác mà người dùng có thể quen thuộc. Hãy nghĩ về ý tưởng cuối cùng đó. Hãy nghĩ về tất cả các ứng dụng bạn thích. Là một nhà phát triển, bạn có thể có thể nói - và nhanh chóng - cái nào là bản địa và cái nào không phải, chỉ bằng cách sử dụng chúng. Bạn nghĩ điều gì mang đến trải nghiệm người dùng tốt hơn? Đôi điều suy nghĩ. :-)

Cuối cùng, tùy thuộc vào bạn. Bạn nói bạn thích lập trình Objective-C. Vì vậy, đi cho nó và đi bản địa! Mặt khác, nếu bạn có nguyện vọng đa nền tảng, và bạn đã quen thuộc với PhoneGap (hoặc những người khác) hoặc muốn tìm hiểu về chúng, thì hãy tìm nó! :-)

1

Dung lượng lưu trữ dữ liệu lớn cho tương thích chéo trên thiết bị di động sẽ là vấn đề với thẻ SIM. Nếu bạn cần ứng dụng lưu trữ ít nhất 10 mb giá trị dữ liệu (tệp phương tiện, tài liệu, v.v ...), bạn sẽ bị giới hạn bởi 2-5mb hoặc localStorage hoặc tệp kê khai bộ nhớ cache. Xem câu hỏi liên quan tôi ở đây:

html5 to store greater than 50 mb worth of data?

+1

này là sai. Tôi có hàng trăm megabyte được sử dụng cho ứng dụng iOS Phonegap của mình. –

+0

Điều đó thực sự tuyệt vời. Bạn có thể viết blog về nó hoặc giải thích cách bạn đã làm nó? Sẽ giúp tôi rất nhiều – John

+0

Luke, bạn có thể nhầm lẫn việc lưu trữ dữ liệu về những gì bạn có thể gửi trong ứng dụng của mình so với dữ liệu mà một ứng dụng lai/web có thể lưu trữ. Giới hạn tối đa là 2,5Mb cho dữ liệu được tải xuống hoặc được tạo bởi ứng dụng. – ader

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