2011-11-09 19 views
5

Voy a desarrollar una aplicación que será multiplataforma y se lanzará para iOS y Android.xCode vs Android SDK vs Adobe Flex

Mi aplicación utilizará la conectividad de red y se comunicará con el servidor, y debe ser rápida, confiable y receptiva.

Así que mi pregunta es: si elijo Adobe Flex para compilar esa aplicación para iOS y Android, ¿habrá algún problema de rendimiento?

Si no, ¿por qué las personas usan xcode o sdk para Android? ¿Cuáles son las desventajas de usar Adobe Flex sobre xCode y Andoid SDK?

Respuesta

14

Hablando en general, si usa una herramienta multiplataforma "escríbelo una vez y compila para muchas plataformas", probablemente perderá la capacidad de aprovechar algunas (o todas?) Características específicas de dispositivo o plataforma. En realidad, está eligiendo el tipo de solución de menor denominador común. Es decir, tiene a su disposición solo las características de la plataforma disponibles en TODAS las plataformas a las que se dirige.

Crear una aplicación nativa, es decir, usar Xcode para compilar una aplicación de iOS y usar el SDK de Android para crear una aplicación de Android, le brinda acceso completo a todas las características y capacidades específicas de una plataforma determinada, garantizando así el la mejor experiencia de usuario en cada plataforma.

Esto es ahora mi opinión: las aplicaciones nativas son mejores, simplemente porque presentan al usuario una experiencia nativa, una experiencia que les resultará familiar como usuario de la plataforma. Cuando elige utilizar una herramienta multiplataforma, elige activamente ofrecerle a su usuario una experiencia menos que ideal en su dispositivo, pero USTED ahorró algo de tiempo (tal vez) en llevar su aplicación al mercado. ¿Quién es el ganador?

En mi trabajo, mi jefe y yo tuvimos una conversación específica sobre esto. Tenemos aplicaciones nativas de iOS y Android, a propósito, porque no queríamos abandonar las funciones específicas de la plataforma. Queríamos que cada aplicación brindara la mejor experiencia posible en su plataforma. Específicamente acordamos que una solución multiplataforma no era la que nosotros queríamos.

+0

Wow. "Esta es ahora mi opinión: las aplicaciones nativas son mejores, simplemente porque presentan al usuario una experiencia nativa, una experiencia que les será familiar como usuario de la plataforma". - Desearía haber dicho eso. –

+3

Como punto de aclaración, específico de la plataforma Flash de Adobe. Adobe AIR 3 introdujo una forma de llamar al código del dispositivo nativo para extender sus aplicaciones más allá de las API expuestas a través de Adobe AIR. Esta característica se llama extensiones nativas; y anula el argumento de que el uso de AIR/Flash Platform no brinda "acceso completo a todas las características y capacidades específicas de una determinada plataforma". – JeffryHouser

+0

@ www.Flextras.com Interesante de hecho. Pero todavía estás llamando al código nativo, supuestamente Objective-C para iOS. Por lo tanto, no puede alejarse de Objective-C para la funcionalidad nativa en iOS, lo que creo que respalda mi punto un poco. :-) –

-9

No creo que pueda usar Adobe Flex en iOS. Otra solución de plataforma cruzada para investigar sería HTML5. Si puede pagarlo, la mejor solución podría ser implementarlo dos veces, una vez con xcode para iOS y una vez con Android para Android.

+6

-1 para la información incorrecta. Ha podido utilizar las herramientas Adobe Flex (y las plataformas Adobe Flash) para crear aplicaciones nativas de iOS durante bastante tiempo. Hubo un ataque a corto plazo con los acuerdos de desarrollador de Apple; sin embargo, Apple cambió su licencia y muchas aplicaciones se crean con herramientas Flash. Más recientemente, Macinarium, una aplicación desarrollada en Flash, fue la mejor de las listas de juegos en iOS. http://machinarium.net/demo/ – JeffryHouser

+1

Debería echarle un vistazo a la excelente respuesta de Adobe Air – Bruce

3

Puede usar Flex para compilar AIR para iOS o Android. El rendimiento de AIR vs Objective C o Java es significativamente más lento. La ventaja de utilizar AIR es tener una base de bacalao entregada a dos plataformas. Pero si tiene los conocimientos técnicos, Objective C y Java son más adecuados para el desarrollo en sus respectivas plataformas. Sin embargo, muchas aplicaciones exitosas se han lanzado en iOS y Android utilizando AIR. Si quieres saber si funcionaría para ti, buscaría esas aplicaciones en iTunes y Android Market y vería cómo funcionan para ti. Si su aplicación no es un juego, es probable que funcione bien. Y si tu aplicación es un juego simple, también podría funcionar bien. Asimismo, recuerda que hay otras = herramientas de desarrollo de la plataforma multi para elegir, como brecha de teléfono, o appcellerator: http://www.appcelerator.com/ http://phonegap.com/

o incluso Unity 3D: http://unity3d.com/

ACTUALIZACIÓN: Desde esta respuesta original en Novemer 2011, Adobe ha realizado mejoras significativas en AIR para iOS y Android. Los problemas de rendimiento son insignificantes a menos que se ordene algo muy instintivo, como el procesamiento de imágenes de gran tamaño. Del mismo modo, Unity3D también ha mejorado mucho. Es una excelente opción para juegos que son 2D o 3D.

7

Dependiendo de lo que usted está construyendo, el aire es una gran plataforma para el desarrollo de aplicaciones móviles multiplataforma. A pesar de las noticias recientes de que Flash Player ya no se está desarrollando para navegadores móviles, la historia nativa sigue siendo sólida. Además, después de haber visto iOS nativo, Android nativo y desarrollo de Flex, la plataforma Flex es mucho mejor cuando se trata de la facilidad de desarrollo. Con características de alto nivel como el enlace de datos, la administración visual del estado, un modelo de componente/skinning sólido, modelo de transición, etc., es una generación o dos por delante de iOS y Android (IMO).

Si está usando Flex para móviles (iOS/Android/Playbook), se obtiene una mirada común/sentir en todos los dispositivos móviles. @MarkGranoff sugirió que la experiencia del usuario se degrada cuando se usa un enfoque, pero yo lo desafiaría.

Aunque estoy de acuerdo que un estilo de salida de la caja de los componentes de interfaz de usuario en aire se siente un poco fuera, no recomiendo que cualquier persona construir aplicaciones de esa manera de todos modos. En su lugar, crea una aplicación que se parezca a tu aplicación. Ha habido muchas aplicaciones que no se ajustan a la apariencia/aspecto nativo de iOS o Android, pero siguen siendo de calidad desde una perspectiva estética y UX.

Hay algo que decir acerca de una aplicación que se ve/se comporta igual en todas las plataformas. Puedo decirte esto ... al usuario realmente no le importa. Si se ve bien, se siente bien y hace lo que quieren, son felices.

El Mobile SDK de Flex utiliza una gran cantidad de los mismos paradigmas de interfaz de usuario (especialmente en la versión pronto-a-ser-lanzado del SDK) y que es cada vez mejor. No lo desacreditaría. Puede ahorrar mucho dinero y tiempo usando algo como Flex Mobile.

0

si está utilizando aire para desarrollar aplicaciones de plataforma cruzada, debería observar los siguientes hechos:

1) usted no tiene acceso a las funciones nativas (pero se puede utilizar extensiones nativas de aire a pasar por este problema)

2) el rendimiento es más lento que las aplicaciones nativas (pero se puede usar marco de Starling de utilizar el poder de la GPU en dispositivos que se aumenta el rendimiento mucho!)

la línea de fondo es que la creación de aplicaciones móviles usando AS3 y Flex/Air SDK es la mejor solución que se pueda imaginar y el rendimiento si se usa starling es mucho ¡Han aplicaciones nativas!