Desarrollo multiplataforma iOS / Android

He estado jugando con el desarrollo de aplicaciones de Android en Java por un tiempo y estoy empezando a manejarlo. Sin embargo, si quiero comenzar con una versión de iOS, necesito codificar todo desde cero, lo que es, bueno, indeseable.

Me preguntaba qué soluciones de plataforma cruzada hay disponibles y qué tan bien funcionan en la práctica. He estado pensando en aplicaciones web, quizás usando jQuery Mobile o Titanium , o Adobe Flash / Flex / Air. Tampoco tengo una Mac, en la que probablemente tendré que invertir.

Entonces mis preguntas:

  1. ¿Qué entornos de desarrollo multiplataforma existen para iOS / Android (y / u otros dispositivos)?

  2. ¿Cuál ha sido tu experiencia con estas herramientas? (Esto es lo que realmente me interesa saber)

Descargo de responsabilidad: trabajo para una empresa, Particle Code, que crea un marco multiplataforma. Hay muchas empresas en este espacio. Aparecen nuevos cada semana. Buenas noticias para ti: tienes muchas opciones.

Estos marcos tienen diferentes enfoques, y muchos de ellos están diseñados fundamentalmente para resolver diferentes problemas. Algunos se centran en los juegos, otros se centran en las aplicaciones. Haría las siguientes preguntas:

¿Qué quieres escribir? ¿Aplicación empresarial, aplicación de productividad personal, juego de rompecabezas, shooter en primera persona?

¿Qué tipo de entorno de desarrollo prefieres? ¿IDE o simple editor de texto?

¿Tienes fuertes sentimientos sobre los lenguajes de progtwigción? De los marcos con los que estoy familiarizado, puede elegir entre ActionScript, C ++, C #, Java, Lua y Ruby.

Mi compañía está más en el espacio del juego, así que no he jugado tanto con los frameworks JavaScript + CSS como Titanium, PhoneGap y Sencha. Pero puedo contarte un poco sobre algunos de los frameworks orientados a juegos. Los juegos y las aplicaciones de Internet sofisticadas son un área en la que los marcos multiplataforma pueden brillar, porque estas aplicaciones tienden a dar más importancia a ser visualmente únicas y a mezclarse menos con las IU nativas. Aquí hay algunos marcos para buscar:

  • Unity http://www.unity3d.com es un motor de juegos 3D. Es realmente diferente a cualquier otro entorno de desarrollo en el que he trabajado. Construyes escenas con modelos 3D y defines el comportamiento adjuntando scripts a los objetos. Puede hacer una secuencia de comandos en JavaScript, C # o Boo. Si desea escribir un juego 3D basado en la física que se ejecutará en iOS, Android, Windows, OS X o consolas, esta es probablemente la herramienta para usted. También puede escribir juegos en 2D usando recursos 3D; un buen ejemplo de esto es el juego independiente Max y el marcador mágico , un desplazamiento lateral basado en física 2D escrito en Unity. Si no lo sabe, le recomiendo que lo revise (especialmente si hay niños en su hogar). Max está disponible para PC, Wii, iOS y Windows Phone 7 (aunque la última versión es un puerto, ya que Unity no es compatible con WinPhone). Unity viene con algunos juegos de muestra con elementos y texturas en 3D, lo que realmente ayuda a ponerse al día con lo que puede ser un entorno bastante complicado.

  • Corona http://www.anscamobile.com/corona es un motor de juegos en 2D que utiliza el lenguaje de escritura Lua y es compatible con iOS y Android. El punto de venta de Corona es la capacidad de escribir juegos basados ​​en la física muy rápidamente en pocas líneas de código, y la gran cantidad de juegos basados ​​en Corona en la tienda de aplicaciones iOS es un testimonio de su éxito. El entorno es muy delgado, lo que atraerá a algunas personas. Viene con un simulador y depurador. Agrega el editor de texto de su elección y tiene un entorno de desarrollo. El SDK base no incluye ningún componente UI, como botones o cuadros de lista, pero un complemento CoronaUI está disponible para los suscriptores.

  • El SDK de partículas http://www.particlecode.com es una solución multiplataforma ligeramente más general con experiencia en juegos. Puede escribir en Java o ActionScript, utilizando un modelo de aplicación MVC. Incluye un IDE basado en Eclipse con un editor de interfaz de usuario WYSIWYG. Actualmente admitimos la construcción de dispositivos Android, iOS, webOS y Windows Phone 7. También puede emitir Flash o HTML5 para la web. El marco fue desarrollado originalmente para juegos sociales multijugador en línea, como el póker y el backgammon, y se adapta a juegos 2D y aplicaciones con lógica compleja. El marco admite gráficos 2D e incluye un motor de física 2D.

NÓTESE BIEN:

Hoy anunciamos que el Código de partículas ha sido adquirido por Appcelerator, fabricantes del marco de plataformas multiples de Titanium.

A partir del 1 de enero de 2012, [ Particle Code ] ya no admitirá oficialmente la plataforma [ Particle SDK ].

Fuente

  • El Airplay SDK http://www.madewithmarmalade.com es un framework de C ++ que le permite desarrollar en Visual Studio o Xcode. Es compatible con gráficos 2D y 3D. Airplay se dirige a iOS, Android, Bada, Symbian, webOS y Windows Mobile 6. También tienen un complemento para crear aplicaciones de AirPlay para PSP. Mi C ++ está muy oxidado, no he jugado mucho, pero parece genial.

En términos de curva de aprendizaje, diría que Unity tiene la curva de aprendizaje más inclinada (para mí), Corona es la más simple, y Particle y Airplay están en algún punto intermedio.

Otro punto interesante es cómo los marcos manejan diferentes factores de forma. Corona admite escalamiento dynamic, que será familiar para los desarrolladores de Flash. Esto es muy fácil de usar, pero significa que terminas perdiendo espacio en la pantalla cuando pasas de una pantalla 4: 3 como el iPhone a un 16: 9, como los nuevos dispositivos qHD Android. El editor de interfaz de usuario de Particle SDK le permite diseñar diseños flexibles que se escalan, pero también le permite ajustar los diseños para tamaños de pantalla individuales. Esto lleva un poco más de tiempo pero le permite hacer que la aplicación se vea personalizada para cada pantalla.

Por supuesto, lo que funciona para usted depende de su gusto individual y estilo de trabajo, así como sus objectives, por lo que le recomiendo descargar algunas de estas herramientas y darles una oportunidad. Todas estas herramientas son gratuitas.

Además, si pudiera simplemente hacer un anuncio de servicio público, la mayoría de estas herramientas están en desarrollo realmente activo. Si encuentra un marco que le guste, por supuesto envíe comentarios y dígales lo que le gusta, lo que no le gusta y las funciones que le gustaría ver. Usted tiene una oportunidad real de influir en lo que entra en las próximas versiones de estas herramientas.

Espero que esto ayude.

MonoTouch y MonoDroid, pero lo que sucederá con esa parte de Attachmate ahora es una incógnita. Por supuesto, incluso con las soluciones mono, aún está creando vistas no multiplataforma, pero la idea es la reutilización de la lógica empresarial.

Eche un vistazo a http://www.xamarin.com/ y será interesante ver qué se les ocurre.

Mi experiencia con hacer algo muy simple en PhoneGap + jQuery Mobile estaba bien. Pude hacerlo rápidamente para iOS. Sin embargo, no funcionó en mis teléfonos Android sin hacer algunos cambios. El proyecto era una aplicación muy simple para tomar fotos y publicarlas en un sitio web. Y al final del día, se sintió “torpe” en comparación con una verdadera aplicación nativa.

No creo que haya un desarrollo cruzado de plataformas fácil. Creo que el navegador es lo más cercano que obtendrás. Al elegir algo como PhoneGap, creo que solo estás intercambiando un conjunto de puntos de dolor por un conjunto diferente de puntos de dolor.

En caso de que no desee utilizar un marco completo para el desarrollo multiplataforma, eche un vistazo a C ++ como una opción. iOS es totalmente compatible con el uso de C ++ para la lógica de su aplicación a través de Objective-C ++. No sé qué tan adecuado es el soporte de Android para C ++ a través del NDK para hacer su lógica de negocios en C ++ en lugar de solo algunos fragmentos de código críticos para el rendimiento, pero en caso de que el caso de uso esté bien soportado, podría intentarlo.

Este enfoque, por supuesto, solo tiene sentido si la lógica de su aplicación constituye la mayor parte de su proyecto, ya que las interfaces de usuario deberán escribirse individualmente para cada plataforma.

De hecho, C ++ es el lenguaje de progtwigción más soportado (con la excepción de C), y es por lo tanto el lenguaje central de la mayoría de las aplicaciones multiplataforma grandes.

Aunque recién comencé a analizar esta área del desarrollo, creo que se reduce a esta diferencia básica: algunas herramientas retienen el código original y algunas versiones del puerto como nativas …

por ejemplo, PhoneGap solo conserva el código HTML / CSS / JS que usted escribe, y lo envuelve en un código iOS suficiente para calificar como una aplicación, mientras que Appcelerator le ofrece un proyecto XCode … así que si no está familiarizado con iOS, entonces eso realmente no te proporcionaría ningún beneficio a través de PhoneGap, pero si sabes un poco, eso podría darte un poco más de habilidad para ajustar las versiones nativas después de tu mayor esfuerzo de encoding.

No he usado el acelerador, pero trabajé en un proyecto hace un par de semanas, donde uno de los miembros de nuestro equipo creó una aplicación completa para iPad en aproximadamente 24 horas.

Y sí, para enviarlo a Apple, tendrás que obtener un mac, pero si esa no es tu plataforma de trabajo principal, puedes ir barato.

Cappuccino o PhoneGap .

A veces, aunque tratar de encontrar un atajo no le ahorra tiempo ni le da un producto final comparable.

Si alguna vez ha usado LUA, puede probar Corona SDK puede crear aplicaciones que se ejecutan en iOS y Android

http://developer.anscamobile.com/

Lo he descargado y me he metido con algunos, encuentro que LUA es un lenguaje de scripting muy fácil de aprender sin los habituales problemas / limitaciones del lenguaje de scripts …

También hay MoSync Mobile SDK

Licencia GPL y comercial. Hay una buena visión general de su enfoque aquí .

También está BatteryTech que hemos estado usando durante los últimos 18 meses y hemos lanzado varios juegos fuera de él. http://www.batterypoweredgames.com/batterytech

Con soporte para C ++, Android e iOS, todos los usuarios obtienen una fuente completa. El nuevo v2 incluye enlaces lua.