2011-11-09 31 views
5

Tôi sẽ phát triển một ứng dụng sẽ là nền tảng chéo và nó sẽ được phát hành cho IOS và Android.xCode so với Android SDK và Adobe Flex

Ứng dụng của tôi sẽ sử dụng kết nối mạng và liên lạc với máy chủ và ứng dụng phải nhanh chóng, đáng tin cậy và đáp ứng.

Vì vậy, Câu hỏi của tôi là: Nếu tôi chọn Adobe Flex để xây dựng ứng dụng đó cho iOS và Android, Vì vậy, sẽ có bất kỳ vấn đề hiệu suất nào không?

Nếu không thì tại sao mọi người sử dụng xcode hoặc sdk android? Những nhược điểm của việc sử dụng Adobe Flex trên xCode và Andoid SDK là gì?

Trả lời

14

Nói chung, nếu bạn sử dụng một công cụ đa nền tảng "viết một lần và xây dựng cho nhiều nền tảng", bạn có khả năng sẽ từ bỏ khả năng tận dụng một số tính năng thiết bị hoặc nền tảng cụ thể. Bạn đang, trong thực tế, chọn một loại mẫu số chung thấp nhất của giải pháp. Đó là để nói, bạn có sẵn cho bạn chỉ có các tính năng nền tảng có sẵn trên tất cả các nền tảng bạn đang nhắm mục tiêu.

Xây dựng ứng dụng gốc - sử dụng Xcode để xây dựng ứng dụng iOS và sử dụng SDK Android để tạo ứng dụng Android - cung cấp cho bạn quyền truy cập đầy đủ vào tất cả các tính năng và khả năng cụ thể của nền tảng nhất định, trải nghiệm người dùng tốt nhất trên mỗi nền tảng. Đây là ý kiến ​​của tôi: Ứng dụng gốc tốt hơn, đơn giản chỉ vì họ giới thiệu cho người dùng trải nghiệm bản địa - một trải nghiệm sẽ khiến họ cảm thấy quen thuộc với tư cách là người dùng nền tảng này. Khi bạn chọn sử dụng công cụ đa nền tảng, bạn đang tích cực chọn để cung cấp cho người dùng trải nghiệm ít hơn lý tưởng trên thiết bị của họ, nhưng BẠN đã tiết kiệm thời gian (có thể) đưa ứng dụng của bạn ra thị trường. Ai là người chiến thắng?

Trong công việc của tôi, ông chủ của tôi và tôi đã có một cuộc trò chuyện cụ thể về điều này. Chúng tôi có các ứng dụng iOS và Android gốc, với mục đích, bởi vì chúng tôi không muốn từ bỏ các tính năng dành riêng cho nền tảng. Chúng tôi muốn mỗi ứng dụng cung cấp trải nghiệm tốt nhất có thể trên nền tảng của nó. Chúng tôi đặc biệt đồng ý rằng một giải pháp đa nền tảng không phải là cách chúng tôi muốn đi.

+0

. "Đây là ý kiến ​​của tôi: Ứng dụng gốc tốt hơn, đơn giản chỉ vì họ giới thiệu cho người dùng trải nghiệm gốc - trải nghiệm sẽ khiến họ cảm thấy quen thuộc với tư cách là người dùng nền tảng." - Tôi ước gì tôi nói vậy. –

+3

Là một điểm làm rõ, cụ thể cho Nền tảng Flash của Adobe. Adobe AIR 3 đã giới thiệu một cách để gọi mã thiết bị gốc để mở rộng ứng dụng của bạn qua các API được tiếp xúc thông qua Adobe AIR. Tính năng này được gọi là Tiện ích mở rộng gốc; và nulls đối số sử dụng nền tảng AIR/Flash không cung cấp cho "quyền truy cập đầy đủ vào tất cả các tính năng và khả năng cụ thể của một nền tảng nhất định." – JeffryHouser

+0

@ www.Flextras.com Thật thú vị. Nhưng bạn vẫn đang gọi mã nguồn gốc, có lẽ là Objective-C cho iOS. Vì vậy, bạn không thể thoát khỏi Objective-C cho chức năng gốc trong iOS, mà tôi nghĩ rằng hỗ trợ quan điểm của tôi một chút. :-) –

-9

Tôi không nghĩ bạn có thể sử dụng Adobe Flex trên iOS. Một giải pháp nền tảng khác để điều tra sẽ là HTML5. Nếu bạn có thể đủ khả năng, giải pháp tốt nhất có thể là triển khai nó hai lần, một lần với xcode cho iOS và một lần với Android dành cho Android.

+6

-1 cho thông tin không chính xác. Bạn đã có thể sử dụng các công cụ Adobe Flex (và Adobe Flash Platform) để xây dựng ứng dụng Native iOS trong một thời gian dài. Có một snafu ngắn hạn với các thỏa thuận dành cho nhà phát triển của Apple; Tuy nhiên Apple đã thay đổi cấp phép của họ và nhiều ứng dụng được xây dựng với các công cụ Flash. Gần đây nhất Macinarium, một ứng dụng được xây dựng Flash, là đầu bảng xếp hạng trò chơi trong iOS. http://machinarium.net/demo/ – JeffryHouser

+1

Bạn nên xem câu trả lời tuyệt vời của Adobe Air – Bruce

3

Bạn có thể sử dụng Flex để biên dịch sang AIR cho iOS hoặc Android. Hiệu suất của AIR so với mục tiêu C hoặc Java chậm hơn đáng kể. Lợi thế của việc sử dụng AIR là có một cơ sở mã hóa được phân phối cho hai nền tảng. Nhưng nếu bạn có bí quyết, Objective C và Java phù hợp hơn với sự phát triển trên nền tảng tương ứng của chúng. Tuy nhiên, nhiều ứng dụng thành công đã được khởi chạy trên iOS và Android bằng AIR. Nếu bạn muốn biết nếu nó sẽ làm việc cho bạn tôi sẽ tìm ra những ứng dụng trong iTunes và Android Market và xem cách họ thực hiện cho bạn. Nếu ứng dụng của bạn không phải là trò chơi, nó có thể hoạt động tốt. Và nếu bạn ứng dụng là một trò chơi đơn giản, nó cũng có thể hoạt động tốt. Cũng nên nhớ có = các công cụ khác đa nền tảng phát triển để lựa chọn, như khoảng cách điện thoại, hoặc appcellerator: http://www.appcelerator.com/ http://phonegap.com/

hoặc thậm chí Unity 3D: http://unity3d.com/

UPDATE: Kể từ khi câu trả lời ban đầu này trong Novemer Năm 2011, Adobe đã có những cải tiến đáng kể cho AIR cho iOS và Android. Vấn đề Petformance là không đáng kể, trừ khi bạn là doign somethign rất instinsive như xử lý hình ảnh lớn. Tương tự, Unity3D cũng đã cải thiện rất nhiều. Đó là một sự lựa chọn tuyệt vời cho các trò chơi 2D hoặc 3D.

7

Tùy thuộc vào những gì bạn đang xây dựng, Air là nền tảng tuyệt vời để phát triển các ứng dụng di động đa nền tảng. Mặc dù tin tức gần đây rằng trình phát Flash không còn được phát triển cho trình duyệt trên thiết bị di động, nhưng câu chuyện gốc vẫn còn mạnh mẽ. Thêm vào đó, khi thấy iOS bản địa, phát triển Android và Flex gốc, nền tảng Flex tốt hơn nhiều khi nói đến sự phát triển dễ dàng. Với các tính năng cấp cao như ràng buộc dữ liệu, quản lý trạng thái trực quan, mô hình thành phần/da rắn, mô hình chuyển đổi, v.v., nó là một hoặc hai thế hệ trước iOS và Android (IMO).

Nếu bạn đang sử dụng Flex for mobile (iOS/Android/Playbook), bạn sẽ có giao diện chung trên tất cả các thiết bị di động. @MarkGranoff đề xuất rằng trải nghiệm người dùng bị hạ cấp khi sử dụng cách tiếp cận, nhưng tôi muốn thử thách điều đó.

Mặc dù tôi đồng ý rằng kiểu dáng out-of-the-box của các thành phần giao diện người dùng trong Air cảm thấy một chút, tôi không khuyên bất kỳ ai xây dựng ứng dụng theo cách đó. Thay vào đó, hãy tạo một ứng dụng trông giống như ứng dụng của bạn. Đã có nhiều ứng dụng không phù hợp với giao diện gốc của iOS hoặc Android nhưng vẫn là chất lượng từ góc nhìn thẩm mỹ và UX.

Có điều gì đó để nói cho một ứng dụng trông/hoạt động giống nhau trên tất cả các nền tảng. Tôi có thể nói với bạn điều này nhiều ... người dùng không thực sự quan tâm. Nếu nó có vẻ tốt, cảm thấy tốt và làm những gì họ muốn, họ rất vui.

Flex Mobile SDK sử dụng rất nhiều mô hình giao diện người dùng giống nhau (đặc biệt là trong phiên bản sớm phát hành của SDK) và nó đang trở nên tốt hơn. Tôi sẽ không làm mất uy tín. Bạn có thể tiết kiệm rất nhiều tiền và thời gian bằng cách sử dụng một cái gì đó như Flex Mobile.

0

nếu bạn đang sử dụng không khí để phát triển ứng dụng đa nền tảng, bạn nên chú ý đến sự kiện sau đây:

1) bạn không có quyền truy cập vào các tính năng bản địa (nhưng bạn có thể sử dụng Air Native Extensions để bằng cách vượt qua vấn đề này)

2) hiệu suất là chậm hơn so với các ứng dụng bản địa (nhưng bạn có thể sử dụng khung Starling để sử dụng sức mạnh GPU trong các thiết bị đó sẽ làm tăng hiệu suất rất nhiều!)

các mấu chốt là xây dựng ứng dụng di động sử dụng AS3 và Flex/Air SDK là giải pháp tốt nhất bạn có thể nghĩ đến và hiệu suất nếu sử dụng starling cao hơn nhiều ứng dụng gốc han!

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