Sử dụng Phonegap để phát triển Ứng dụng gốc [đã đóng]


97

Gần đây tôi đã xem qua Phonegap . Có ai trong số bạn đã thử nó. Nó là một công cụ đáng kinh ngạc tuyên bố rằng các nhà phát triển có thể sử dụng khuôn khổ dựa trên HTML 5 như Sencha touch và Jquery cùng lúc có quyền truy cập vào các tính năng gốc trên điện thoại. Ngoài ra, mã được di động từ Android sang Iphone với một số nỗ lực. Trước khi bắt tay vào làm, tôi muốn biết trải nghiệm của diễn đàn với Phonegap là gì. Những điểm khó khăn là gì và nó có thực sự có thể mở rộng để phát triển ứng dụng cấp doanh nghiệp hay không.

Câu trả lời:


95

Tôi đã xây dựng một vài ứng dụng bằng PhoneGap và đối với những gì nó cung cấp, điều đó thật tuyệt. Có một số lưu ý nhanh mà tôi muốn chỉ ra, có thể giúp ích cho bạn.

Disable device-based features you're not using Các tính năng gia tốc kế, định vị được bật theo mặc định. Nếu bạn không sử dụng chúng, tôi sẽ tắt chúng đi, vì ứng dụng của bạn sẽ tải nhanh hơn (khởi tạo) và chạy mượt mà hơn.

onDeviceReady- Đây là phương thức được gọi khi phonegap đã tải và sẵn sàng. $ (document) .ready hoặc bất cứ thứ gì bạn đã quen, không thực sự áp dụng ở đây - trừ khi bạn chỉ làm giao diện / nội dung HTML được mã hóa cứng. Nếu bạn đang tương tác với các tính năng của iPhone, chẳng hạn như GeoLocation, bạn sẽ cần thực hiện mọi thứ sau khi onDeviceReady được gọi.

Pick a UI/library Có rất nhiều tùy chọn cho giao diện / thư viện, jquery-mobile, sencha touch, jqtouch, v.v. Mỗi tùy chọn này đều cung cấp một cách tiếp cận độc đáo và bộ tính năng. Thực hiện một số nghiên cứu và sử dụng một, nhưng tránh kết hợp. Bạn có thể đọc thêm một số tùy chọn, công cụ tại đây: http://www.phonegap.com/tool (link cập nhật)

Also, more on just mobile development in general, with PhoneGapNếu bạn đang tìm cách xây dựng các ứng dụng, được phân phối thông qua Android market và iPhone App Store, tôi sẽ đọc qua danh sách đầy đủ của họ để biết hướng dẫn về cách phát triển ứng dụng của bạn. Ví dụ: trong liên kết công cụ ở trên, có một "công cụ / plugin" được gọi là Easy APNS - trong khi điều này hữu ích cho Android - và có thể thực hiện được về mặt kỹ thuật trên iPhone, nó vi phạm thỏa thuận phát triển, vì nó nói rằng bạn phải sử dụng thông báo của Apple mạng, v.v. Đây chỉ là một ví dụ, nhưng đọc những thứ đó sẽ giúp bạn đỡ đau đầu hơn, nếu đó là mục tiêu cuối cùng của bạn.

Nói chung, nó rất tốt cho các ứng dụng nhẹ, đặc biệt nếu bạn đến từ nền tảng phát triển web. LocalStorage, GeoLocation, v.v. hoạt động rất tốt. Tôi hy vọng điều này sẽ giúp một chút ... và cảm thấy để đặt câu hỏi.

Chỉnh sửa bổ sung:

Tôi thực sự nghĩ rằng nó phụ thuộc vào những gì bạn muốn làm và những gì bạn biết cách làm. Matt chỉ ra rằng phát triển các ứng dụng gốc dành cho iOS thì tốt hơn, v.v. Vâng, nếu bạn có thời gian và kiến ​​thức để tìm hiểu điều đó - tất nhiên bản địa sẽ tốt hơn. Nhưng PhoneGap được tạo cho các nhà phát triển web có thể sử dụng bộ kỹ năng hiện có của họ và xây dựng ứng dụng. Ngoài ra, PhoneGap cho phép bạn xây dựng ứng dụng nhanh chóng, dành cho iOS, Android, Symbian, Palm, Blackberry. Với những điều chỉnh nhỏ đối với cơ sở mã của bạn cho mỗi.


2
Có vẻ như các nhà phát triển đang bị chia rẽ trên Phonegap.
SaKet

8
Nếu vào cuối ngày, bạn có thời gian và tiền bạc để học các ngôn ngữ khác nhau để xây dựng các ứng dụng gốc cho Android và iOS - thì hãy làm như vậy :) Nhưng đối với hầu hết chúng ta, sử dụng những gì chúng ta biết để xây dựng các ứng dụng chạy thực sự tốt trên nhiều thiết bị, không có trí tuệ.
TNC

easyapns là dành cho iPhone thông báo chỉ (không android) và thực hiện mạng lưới thông báo sử dụng Apple, không chắc chắn nơi bạn có được những ý kiến cho rằng nó phá vỡ các thỏa thuận phát triển ..
Traveling_Monk

lời giải thích hay .. Cảm ơn :)
Mrunal

Một trình gỡ lỗi tốt là người bạn tốt nhất của bạn. Hãy kiểm tra này lên iOS debug từ xa: stackoverflow.com/questions/7242997/...
JoshuaDavid

52

Dưới đây là tất cả các hướng dẫn về Hiệu suất tốt nhất mà tôi đã đọc cho PhoneGap ... có rất nhiều điều cần cảnh giác để đảm bảo bạn có hiệu suất ổn định, vững chắc ... nhưng bạn có thể thu thập tất cả chỉ trong một buổi tối đọc.

Dưới đây là những loại cốm tốt nhất:

PhoneGap / Mẹo Hiệu suất Web Di động

Bật các chức năng mới

Ngành kiến ​​trúc

Kiến trúc ứng dụng của bạn trong Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2


1
Bộ sưu tập tài liệu tuyệt vời .. Thực sự hữu ích, cảm ơn :)
Mrunal

29

Trước khi bày tỏ quan điểm của mình về Phonegap, tôi cần đưa ra một tuyên bố từ chối trách nhiệm nhỏ rằng tôi hoàn toàn không phải là một nhà phát triển web. Đối với tôi, viết JavaScript và CSS giống như việc nhổ răng. Điều đó nói rằng, tôi không thích Phonegap.

Có một số khía cạnh rất hấp dẫn của khuôn khổ, chủ yếu là lời kêu gọi "Viết-Một lần-Chạy-Bất-kỳ-được-nào" và "Tôi-Không-Phải-Học-Mục-tiêu-C?" lời kêu gọi. Khung công tác thậm chí có thể cung cấp cho bạn quyền truy cập vào một số tính năng phần cứng như gia tốc kế. Tất cả những điều này đều có giá trị, ở một mức độ nhất định.

Điều đó nói rằng, không có ứng dụng iOS tuyệt vời nào được xây dựng bằng bất kỳ loại khung nền tảng chéo nào. Có rất nhiều tương tác giao diện người dùng tinh tế và thanh lịch được xử lý cho bạn bằng các điều khiển UIKit gốc mà nhiều người dùng và nhà phát triển coi đó là điều hiển nhiên cho đến khi họ bị thiếu, chẳng hạn như một loạt các đường cong hoạt ảnh chế độ xem cực kỳ chi tiết và cuộn trang không có ở đó trong giao diện người dùng dựa trên chế độ xem web. Bạn có thể vất vả để tái tạo chúng một cách hoàn hảo, nhưng đối với việc đầu tư thời gian đó, tại sao không chỉ sử dụng bản gốc?

Một điểm thứ hai cần lưu ý là cộng đồng hỗ trợ cho các ứng dụng iOS do Phonegap xây dựng nhỏ hơn đáng kể so với các ứng dụng được phát triển tự nhiên. Nếu bạn là người dựa vào cộng đồng trong các dự án, điều này cũng sẽ khiến bạn tạm dừng.

Cuối cùng, nó phụ thuộc vào chất lượng trải nghiệm mà bạn muốn mang lại. Giới hạn trên thấp hơn với Phonegap. Nếu bạn sẵn sàng chấp nhận trải nghiệm người dùng kém xuất sắc để đổi lấy thời gian phát triển giảm và tính di động tăng lên, thì đó là một khuôn khổ rất khả thi.

Như ẩn ý cho bất kỳ ai quan tâm, Marco Arment và Dan Benjamin gần đây đã thảo luận về chủ đề này. Bạn có thể nghe nó ở đây .


5
+1 Điểm tuyệt vời về quy mô của cộng đồng.
David Tang

5
+1 Điểm tuyệt vời về trải nghiệm người dùng. Nó thực sự quan trọng trong iOS.

1
bạn cũng có thể tạo trải nghiệm người dùng tương tự trong phonegap. Tôi không nghĩ rằng nó chỉ là một vấn đề của học tập khách quan c. khi các hệ điều hành di động khác trở nên phổ biến: Androi bây giờ, hãy xem điều gì sẽ xảy ra với Windows Mobile và Firefox OS ... giải pháp crossplatform sẽ là giải pháp THEO DÕI nếu bạn muốn không bị giới hạn ở x% thị phần mà iOS sẽ có lúc đó.
đáng nhớ

1
@memical, nhóm nhà phát triển Facebook sẽ không đồng ý với bạn, vì một điều. Tôi không nói rằng nó không có ý nghĩa từ góc độ bao phủ thị trường, tôi đang nói rằng nó không hiệu quả như bản địa. Bất chấp những gì bạn nói, đó là một sự thật.
Matt Wilding

4

Quy trình cài đặt liên quan đến một số gói (Java, Apache Ant, Ruby, iOS SDK, Android SDK và PhoneGap chính nó), tất cả đều phải được cài đặt và thiết lập chính xác. Đây có thể là một nỗ lực lớn. Công bằng mà nói, họ có một thứ gọi là PhoneGap Build trong phiên bản beta sẽ giúp việc này dễ dàng hơn nhiều.

Chúng tôi sử dụng nó với NS Basic / App Studio để sản xuất các ứng dụng đủ điều kiện cho các cửa hàng ứng dụng.


PhoneGap Build vẫn đang trong giai đoạn thử nghiệm một năm sau đó, hơn sáu tháng sau khi Adobe mua lại nhà phát triển ban đầu, Nitobi.
DOK

2

nếu bạn không tạo một trò chơi hay một widget, chỉ là một ứng dụng đẹp mắt thì phonegap là lựa chọn của bạn.

Nhưng bạn nên cẩn thận với JS của mình, tránh làm bất kỳ điều gì trong JS, ví dụ như nếu bạn muốn thực hiện bất kỳ hoạt ảnh nào, tránh đặt bộ đếm thời gian với khoảng thời gian nhỏ (ví dụ: 100 mili giây), tránh các hoạt ảnh jquery và giống nhau. Ví dụ: thay vì làm mờ hoạt ảnh bằng cách đặt bộ hẹn giờ trong khoảng thời gian ngắn giảm độ mờ tại từng điểm từng bước (đây là cách làm việc của jquery fade hoạt động), bạn nên sử dụng chuyển tiếp css3 từ độ mờ 1 sang độ mờ 0.

Lời khuyên của tôi là đi với một cái gì đó như zeptojs.com, sau khi tất cả phonegap sẽ không chạy ie6 :-)

Xem một số hướng dẫn về cách làm cho JS của bạn nhẹ hơn

http://bcksp.blogspot.com/


thực sự bây giờ bạn cũng có thể xây dựng trò chơi
ghi nhớ

1

Nếu bạn không cần bất kỳ tính năng hoặc hiệu suất phần cứng nào ngoài những gì HTML5 và Phonegap cung cấp, một ứng dụng web đóng gói (cộng với một số quyền truy cập hạn chế vào các tính năng khác) là một giải pháp tuyệt vời.

Nhiều doanh nghiệp triển khai ứng dụng web quy mô lớn. Phonegap (hoặc chỉ là một điều khiển chế độ xem web đơn thuần với nội dung được nhúng) sẽ cho phép bạn chạy các ứng dụng web này ngoại tuyến (tất nhiên là ngoại trừ bất kỳ dữ liệu trực tuyến nào được yêu cầu).


0

Một "nỗi đau" không được đề cập khi triển khai giữa một số thiết bị khác nhau: Càng nhiều thiết bị, đường cong học tập càng lớn. Để triển khai tới các thiết bị iOS với PhoneGap, bạn sẽ cần tìm hiểu những kiến ​​thức cơ bản về Xcode trên máy Mac. Để triển khai cho Android, bạn sẽ cần cài đặt và tìm hiểu Eclipse, Android SDK, v.v. Các nền tảng khác yêu cầu sử dụng SDK riêng của chúng. Học một số Xcode, Javascript và Java thô sơ giúp tôi hiểu các lỗi và cú pháp chung.

"Tạo một lần, triển khai mọi nơi" để lại RẤT NHIỀU bước!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.