IOS / Android desarrollo de plataforma cruzada

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

Me preguntaba qué soluciones de plataforma cruzada están 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. También no tengo todavía un Mac, que probablemente tendré que invertir en.

Así que 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 estoy realmente interesado en saber)

Descargo de responsabilidad: Trabajo para una empresa, Código de partículas, que hace un marco multiplataforma. Hay un montón de empresas en este espacio. Nuevos parecen surgir cada semana. Buenas noticias para usted: usted tiene muchas opciones.

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

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

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

¿Tiene sentimientos fuertes sobre los lenguajes de programación? De los marcos que conozco, puede elegir entre ActionScript, C ++, C #, Java, Lua y Ruby.

Mi empresa está más en el espacio de juego, así que no he jugado tanto con los marcos JavaScript + CSS como Titanium, PhoneGap y Sencha. Pero puedo decirles un poco acerca de algunos de los marcos orientados a juegos. Los juegos y las aplicaciones de Internet ricas son un área en la que pueden brillar los marcos entre plataformas, ya que estas aplicaciones tienden a dar más importancia a ser visualmente únicas y menos a combinarse con las interfaces de usuario nativas. Aquí hay algunos marcos para buscar:

  • Unity http://www.unity3d.com es un motor de juegos en 3D. Es muy diferente a cualquier otro entorno de desarrollo en el que he trabajado. Construyes escenas con modelos 3D y defines comportamientos adjuntando scripts a objetos. Puede script en JavaScript, C # o Boo. Si desea escribir un juego basado en la física en 3D que se ejecutará en iOS, Android, Windows, OS X o consolas, esta es probablemente la herramienta para usted. También puedes escribir juegos 2D usando recursos 3D – un buen ejemplo de esto es el juego indie Max y el Magic Marker , un scroller lateral basado en física 2D escrito en Unity. Si no lo sabes, te recomiendo comprobarlo (especialmente si hay niños en tu hogar). Max está disponible para PC, Wii, iOS y Windows Phone 7 (aunque la última versión es un puerto, ya que Unity no admite WinPhone). Unity viene con algunos ejemplos de juegos completos con activos 3D y texturas, 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 2D que utiliza el lenguaje de scripting 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 el gran número de juegos basados ​​en Corona en la tienda de aplicaciones iOS es un testimonio de su éxito. El ambiente es muy delgado, lo cual atraerá a algunas personas. Viene con un simulador y un depurador. Usted agrega su redactor de textos de la opción, y usted tiene un ambiente del desarrollo. El SDK base no incluye ningún componente de interfaz de usuario, como botones o cuadros de lista, pero un complemento de CoronaUI está disponible para los suscriptores.

  • El Particle SDK http://www.particlecode.com es una solución multiplataforma ligeramente más general con un fondo en los 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. En la actualidad, soportamos el desarrollo de dispositivos Android, iOS, webOS y Windows Phone 7. También puede imprimir Flash o HTML5 para la web. El framework fue desarrollado originalmente para juegos sociales multijugador en línea, como el poker y el backgammon, y se adapta a juegos y aplicaciones 2D con lógica compleja. El marco soporta 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, quienes crean el marco multiplataforma Titanium.

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

Fuente

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

En términos de curva de aprendizaje, diría que Unity tenía la curva de aprendizaje más empinada (para mí), Corona era la más simple, y Partícula y Airplay están en algún punto intermedio.

Otro punto interesante es cómo los marcos manejan diferentes factores de forma. Corona soporta el escalado dinámico, que será familiar para los desarrolladores de Flash. Esto es muy fácil de usar, pero significa que terminas desperdiciando espacio en la pantalla al pasar de una pantalla 4: 3 como el iPhone a un 16: 9 como los nuevos dispositivos qHD Android. El editor de interfaz de usuario del SDK de partículas le permite diseñar diseños flexibles a escala, pero también le permite ajustar los diseños para tamaños de pantalla individuales. Esto toma 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 objetivos – por lo que recomiendo descargar un par de estas herramientas y darles una oportunidad. Todas estas herramientas son libres de probar.

Además, si pudiera 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 favor envíe comentarios y hágales saber lo que le gusta, lo que no le gusta y las características que le gustaría ver. Usted tiene una oportunidad real de influenciar lo que entra en las versiones siguientes de estas herramientas.

Espero que esto ayude.

MonoTouch y MonoDroid, pero lo que sucederá a esa parte de Attachmate ahora es la suposición de nadie. Por supuesto, incluso con las soluciones mono que todavía está creando no cross views plataforma, pero la idea es la reutilización de la lógica de negocio.

Mantener un ojo en http://www.xamarin.com/ será interesante ver lo que vienen con.

Mi experiencia con hacer algo muy sencillo en PhoneGap + jQuery Mobile estaba bien. Yo era capaz de 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 sentía "torpe" en comparación con una aplicación nativa auténtica.

No creo que nunca habrá desarrollo de plataforma cruzada fácil. Creo que el navegador está tan cerca como usted conseguirá. Al elegir algo como PhoneGap, creo que sólo está negociando un conjunto de puntos de dolor para 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 apoya completamente el uso de C ++ para su lógica de aplicación a través de Objective-C ++. No sé qué tan bien el soporte de Android para C ++ a través del NDK es adecuado para hacer su lógica de negocio en C ++ en lugar de sólo algunos fragmentos de código de rendimiento crítico, pero en caso de que el caso de uso esté bien soportado, podría intentarlo.

Este enfoque por supuesto sólo tiene sentido si la lógica de su aplicación constituye la mayor parte de su proyecto, ya que las interfaces de usuario tendrá que ser escrito individualmente para cada plataforma.

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

Aunque apenas he comenzado a mirar este área del desarrollo, pienso que viene abajo a esta diferencia básica: algunas herramientas conservan el código original, y un cierto puerto …

Por ejemplo, PhoneGap sólo mantiene el código HTML / CSS / JS que escribe y lo envuelve en suficiente código iOS 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 proporcionaría ningún beneficio para usted en PhoneGap, pero si lo sabe un poco, eso podría darle sólo un poco más de capacidad para ajustar las versiones nativas después de su mayor esfuerzo de codificación.

No he utilizado appcelerator yo mismo, pero trabajó en un proyecto hace un par de semanas, donde uno de los miembros de nuestro equipo hizo una aplicación completa iPad en aproximadamente 24 horas de uso.

Y sí, para presentar realmente a la manzana, usted tendrá que conseguir un mac, pero si ése no es su plataforma de trabajo primaria usted puede ir barato.

Cappuccino o PhoneGap .

A veces, aunque intentar encontrar un acceso directo no le ahorra tiempo ni le da un producto final comparable.

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

http://developer.anscamobile.com/

He descargado y desordenado alrededor de algunos, me parece LUA un muy fácil de aprender el lenguaje de secuencias de comandos sin las molestias de lenguaje de script habitual / limitaciones ….

También hay MoSync Mobile SDK

GPL y licencias comerciales. Hay una buena visión general de su enfoque aquí .

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

Todos los C + +, Android y soporte iOS, todos los usuarios obtener fuente completa. El nuevo v2 incluye enlaces lua.

  • Desarrollo de una biblioteca de redes Android / iOS compartida
  • Mejor manera de compartir código entre iOS y Android
  • ¿Hay algún marco único para escribir iOS, Android (e incluso Windows Phone)?
  • Desarrollo de aplicaciones móviles de plataforma cruzada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.