2009-05-04 26 views
31

Có chiến lược hay ít nhất là thực hành tốt nhất để viết một ứng dụng chạy trên iPhone, BlackBerry và Android không?Công nghệ để viết điện thoại iPhone, BlackBerry và Android cùng một lúc?

Tôi không biết gì về môi trường phát triển cho BB và Android, nhưng tôi cho rằng cả hai đều hỗ trợ các ứng dụng Java.

Tôi biết rằng iPhone sẽ yêu cầu phần ObjectiveC (cũng như một giao diện người dùng hoàn toàn mới).

Có ai đã làm điều này không?

+0

Có thể/bạn nên bao gồm máy tính bảng dựa trên iPad và Android trong hỗn hợp? – ripper234

+0

Mức độ thấp quá? Sau đó, tại đây: http://stackoverflow.com/questions/5393844/common-ide-to-develop-mobile-applications-and-deploy-it-to-iphone-android-black/6986237#6986237 – YumYumYum

+0

bản sao của http://stackoverflow.com/questions/51988/what-work-has-been-done-on-cross-platform-mobile-development/ – Gabor

Trả lời

19

Bạn có thể muốn kiểm tra http://phonegap.com/

+1

Tôi đã sử dụng nó một vài lần. Mặc dù rõ ràng là không đầy đủ tính năng như viết một ứng dụng gốc, ứng dụng tuyệt vời của nó dành cho các ứng dụng nhỏ, thiết bị chéo – cpjolicoeur

+0

Vừa xem phim. Hoàn hảo. Cảm ơn bạn! –

+1

Để bạn biết, khung công tác của điện thoại, như của bài viết này, không cung cấp một cơ chế lưu trữ liên tục thống nhất giữa các nền tảng. Đây là một nguồn đau lớn cho những người trong chúng ta đang cố gắng viết các ứng dụng nền tảng. Ngoài ra còn có nhiều khác biệt khác giữa các nền tảng, vì vậy, khi bạn bắt đầu dự án của mình, bạn sẽ muốn thực hiện một nỗ lực phối hợp để thiết lập các kỹ thuật nào có sẵn cho bạn. –

1

Khi viết các ứng dụng đa nền, bạn cần phải quyết định có bao nhiêu mã để chia sẻ. Hai tùy chọn là

  • Mọi thứ. Bạn sử dụng (ghi) chéo thư viện nền tảng gui và hệ thống thói quen
  • Logic là nền tảng chéo nhưng các lớp trình bày là nền tảng cụ thể

Cách tiếp cận thứ 2 có xu hướng cung cấp cho ứng dụng tốt hơn nhưng nó là một công việc nhiều hơn (giả sử bạn không cần phải viết các thư viện nền tảng chéo).

Điều khó khăn với thế giới di động là chọn ngôn ngữ. Ngay bây giờ bạn có

  • Java: Android, Blackberry, Java ME điện thoại
  • Objective C/C: iPhone, Windows Mobile
  • Javascript: Palm Pre

Bạn có thể vượt qua biên dịch java sang javascript và ngược lại. Bạn cũng có thể biên dịch java sang C hoặc sử dụng công cụ javascript mà bạn có thể gọi từ C. Tôi không nghĩ bạn có thể chạy C trên điện thoại java/javascript. Điều đó dẫn tôi đến đề xuất viết mã của bạn bằng Java/Javascript. Cross biên dịch (và trộn các ngôn ngữ nói chung) có nhược điểm của việc gỡ lỗi một chút khó khăn hơn.

1

http://j2mepolish.org có thể là lựa chọn tốt, tuy nhiên, iphone chỉ nằm trong lộ trình. Nhưng android và BB đã được hỗ trợ cũng như tất cả các điện thoại j2me khác.

+1

Bây giờ nếu chỉ J2ME chính nó không hút khủng khiếp như vậy, đó có thể là một giải pháp hữu ích. – davr

4

Một tùy chọn khác để xem là Rhodes, là một khung công tác của Ruby.

1

cũng nếu bạn đang viết trò chơi, hãy xem giải pháp đa nền tảng của tôi (iPhone, Android, v.v.) được gọi là Động cơ mực nang, tại http://www.cuttlefishengine.com.

+0

Lol, dưới sự hỗ trợ trên trang web bạn chỉ nhận được một từ ... 'Soon'! –

+0

Trang web đã được cập nhật và có nhiều thông tin hơn bây giờ, bao gồm bản beta có thể tải xuống. –

8

Một kỹ thuật, mà làm việc phù hợp cho một số loại ứng dụng như các ứng dụng tài liệu tham khảo: Sử dụng HTML/CSS/Javascript và viết các khách hàng nhỏ gọn, sử dụng nền tảng của đối tượng người xem HTML để đọc nội dung web địa phương nhúng.

Một kỹ thuật để viết ứng dụng đa nền tảng chạy trên cả BlackBerry và Windows Mobile, là viết tất cả trong HTML. Tôi đã phải sử dụng một tập hợp con của HTML và CSS hoạt động trên cả Trình duyệt BlackBerry và Pocket Internet Explorer.Tôi cũng đã sử dụng một lượng nhỏ JavaScript.

Tôi đã viết rất ít người xem đã chạy nó ra khỏi HTML được lưu trữ nội bộ và hình ảnh bằng cách sử dụng URL jar: // (BlackBerry) và res: // (Windows Mobile). Tôi đã có thể nhúng tất cả các tệp HTML và hình ảnh như một phần của ứng dụng BlackBerry, bằng cách sử dụng phiên bản tùy chỉnh của trường trình duyệt và. Tương tự cho Windows Mobile, tôi đã có thể sử dụng Pocket Internet Explorer như một ActiveX nhúng trong ứng dụng Windows Mobile của mình.

Lưu ý - đối với BlackBerry, tôi phải hỗ trợ các thiết bị cũ chạy OS 4.2. Để làm như vậy, tôi đã tái chế rất nhiều mẫu mã RIM, chẳng hạn như SecondaryResourceFetchThread.java để kéo hình ảnh được nhúng trong ứng dụng và gửi nó đến thông qua một đối tượng kết nối tùy chỉnh đã triển khai HttpConnection mà tôi đã thiết kế để xử lý jar: // URL cho nội bộ nhúng HTML/hình ảnh trong ứng dụng BlackBerry của tôi. Đó là một chút khó khăn để tìm ra. Đối với Windows Mobile, nó trực quan hơn. Có một số cách khác để thực hiện những gì tôi cần, nhưng nó hoạt động hoàn hảo cho ứng dụng tham chiếu y tế và tôi có thể thiết kế các tệp CSS riêng biệt cho BlackBerry và Windows Mobile để định dạng lại nội dung hơi khác nhau cho hai thiết bị di động. . (Nó giống như thử nghiệm tính tương thích với Netscape so với Internet Explorer trong những ngày cũ.)

Điều này có thể không hoạt động cho trường hợp của bạn, nhưng nếu ứng dụng của bạn là ứng dụng 'tham khảo' kiểu web và bạn biết cách làm HTML tốt, cách tiếp cận này có thể hoạt động.

5

Chúng tôi đang nhìn vào điều này cũng và chúng tôi thấy:

Titanium

Kony Solutions

Những sản phẩm này có nhận xét tốt. Titanium miễn phí cho phiên bản cộng đồng.

+0

Nếu bạn không nhớ, bạn có thể chia sẻ những phát hiện của mình về Kony Solutions không? – Seshagiri

1

Ngoài ra, bạn có thể thử dùng Khung di động cộng đồng (MCF). Đây là một khuôn khổ crossplatform chạy nguyên bản trên iPhone, Android, WinMobile, Symbian và BlackBerry. MCF xử lý các hoạt động mạng, vị trí và lân cận cho bạn, trong mạng Wi-Fi Ad-Hoc hoặc thông qua máy chủ proxy chuyên dụng nếu không thể kết nối trực tiếp. Nó có API đơn giản và miễn phí để sử dụng. Bằng cách này, bạn có thể phát triển giao diện ứng dụng và logic riêng trên từng nền tảng và sử dụng MCF để kết nối các phiên bản ứng dụng của bạn theo cách bạn muốn. Thông tin

thêm tại http://uvamobiltec.com

1

Bạn luôn có thể viết một ứng dụng javascript trên trang web, và nó sẽ làm việc trên cả ba. Tất nhiên là không được cài đặt trên điện thoại.

Android có chế độ xem web chạy Javascript. Tôi chắc chắn các nền tảng khác cũng làm. Nếu bạn đã viết hầu hết logic của mình trong javascript, bạn có thể sử dụng lại javascript đó trên các nền tảng.

1

Nếu bạn muốn viết ứng dụng web đa nền tảng, SenchaTouch hoặc Phonegap là một lựa chọn tốt.

Nếu bạn thích ứng dụng gốc, giải pháp đa nền tảng tốt nhất là Titanium. Sử dụng Titanium, bạn có thể viết ứng dụng của bạn trong Javascript, và nó biên dịch JS thành mã gốc (Objective-C, Java ...)

1

Trình tạo Adobe Flex và Flash cũng có triển vọng. Tuy nhiên bạn nên xem xét độc quyền của nó, nhưng với video trên trang web trung tâm phát triển của họ có vẻ như nó đáng giá. Nhân tiện, bản phát hành mới nhất Hiện tại hỗ trợ Android. Sự hỗ trợ cho iOS được cho là sẽ được ra trong tháng 6 năm 2011 thông qua một bản cập nhật.

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