He estado jugando con el desarrollo de aplicaciones de Android en Java durante un tiempo y estoy empezando a manejarlo. Sin embargo, si quiero comenzar con una versión de iOS, necesito codificar todo desde cero, lo cual es, bueno, indeseable.
Me preguntaba qué soluciones multiplataforma hay disponibles y qué tan bien funcionan en la práctica. He estado pensando en aplicaciones web, tal vez usando jQuery Mobile o Titanium , o Adobe Flash / Flex / Air. Tampoco tengo todavía una Mac, en la que probablemente tendré que invertir.
Entonces mis preguntas:
¿Qué entornos de desarrollo multiplataforma existen para iOS / Android (y / u otros dispositivos)?
¿Cuál ha sido tu experiencia con estas herramientas? (esto es lo que realmente quiero saber)
android
ios
cross-platform
Alister
fuente
fuente
Respuestas:
Descargo de responsabilidad: trabajo para una empresa, Particle Code, que crea un marco multiplataforma. Hay un montón de empresas en este espacio. Parece que surgen nuevos cada semana. Buenas noticias para ti: tienes muchas opciones.
Estos marcos adoptan diferentes enfoques y muchos de ellos están diseñados fundamentalmente para resolver diferentes problemas. Algunos se centran en juegos, otros se centran en aplicaciones. Haría las siguientes preguntas:
¿Qué quieres escribir? ¿Aplicación empresarial, aplicación de productividad personal, juego de rompecabezas, juego de disparos en primera persona?
¿Qué tipo de entorno de desarrollo prefiere? ¿IDE o editor de texto simple?
¿Tiene sentimientos fuertes sobre los lenguajes de programación? De los marcos con los que estoy familiarizado, puede elegir entre ActionScript, C ++, C #, Java, Lua y Ruby.
Mi empresa está más en el espacio del juego, por lo que no he jugado tanto con los marcos JavaScript + CSS como Titanium, PhoneGap y Sencha. Pero puedo contarte un poco sobre algunos de los marcos orientados a juegos. Los juegos y las aplicaciones de Internet enriquecidas son un área donde los marcos multiplataforma pueden brillar, porque estas aplicaciones tienden a dar más importancia a ser visualmente únicas y menos a integrarse con las IU nativas. Aquí hay algunos marcos para buscar:
Unity www.unity3d.com es un motor de juegos 3D. Es realmente diferente a cualquier otro entorno de desarrollo en el que he trabajado. Construye escenas con modelos 3D y define el comportamiento adjuntando scripts a objetos. Puede realizar secuencias de comandos en JavaScript, C # o Boo. Si desea escribir un juego basado en la física en 3D que se ejecute en iOS, Android, Windows, OS X o consolas, esta es probablemente la herramienta para usted. También puede escribir juegos en 2D utilizando recursos 3D; un buen ejemplo de esto es el juego independiente Max and the Magic Marker, un desplazamiento lateral 2D basado en la física escrito en Unity. Si no lo sabe, le recomiendo que lo consulte (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 completos con activos y texturas 3D, lo que realmente ayuda a ponerse al día con lo que puede ser un entorno bastante complicado.
Corona www.anscamobile.com/corona es un motor de juegos 2D que utiliza el lenguaje de secuencias de comandos 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 de iOS es un testimonio de su éxito. El ambiente es muy sencillo, 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 de la interfaz de usuario, como botones o cuadros de lista, pero hay un complemento CoronaUI disponible para los suscriptores.
Particle SDK www.particlecode.com es una solución multiplataforma un poco 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 UI WYSIWYG. Actualmente admitimos la construcción para dispositivos Android, iOS, webOS y Windows Phone 7. También puede generar Flash o HTML5 para la web. El marco se desarrolló originalmente para juegos sociales multijugador en línea, como póquer y backgammon, y se adapta a juegos y aplicaciones 2D con lógica compleja. El marco admite gráficos 2D e incluye un motor de física 2D.
NÓTESE BIEN:
Fuente
En términos de curva de aprendizaje, diría que Unity tuvo la curva de aprendizaje más empinada (para mí), Corona fue 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 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 una 16: 9 como los nuevos dispositivos Android qHD. El editor de UI 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 de sus objetivos, por lo que le recomiendo descargar un par de estas herramientas y probarlas. Todas estas herramientas se pueden probar de forma gratuita.
Además, si pudiera publicar un anuncio de servicio público, la mayoría de estas herramientas están en un desarrollo realmente activo. Si encuentra un marco que le guste, envíe sus comentarios y hágales saber lo que le gusta, lo que no le gusta y las características que le gustaría ver. Tiene una oportunidad real de influir en las próximas versiones de estas herramientas.
Espero que esto ayude.
fuente
MonoTouch y MonoDroid, pero lo que sucederá con esa parte de Attachmate ahora es una incógnita. Por supuesto, incluso con las soluciones mono, todavía está creando vistas que no son multiplataforma, pero la idea es la reutilización de la lógica empresarial.
Esté atento a http://www.xamarin.com/ , será interesante ver qué se les ocurre.
fuente
Mi experiencia al hacer algo muy simple en PhoneGap + jQuery Mobile estuvo bien. Pude hacerlo rápidamente para iOS. Sin embargo, no funcionó en mis teléfonos Android sin realizar algunos cambios. El proyecto era una aplicación muy sencilla para tomar fotografías 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 nunca haya un desarrollo sencillo entre plataformas. Creo que el navegador está lo más cerca posible. Al elegir algo como PhoneGap, creo que solo está cambiando un conjunto de puntos débiles por un conjunto diferente de puntos débiles.
fuente
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 bien el soporte de Android para C ++ a través del NDK es adecuado para hacer su lógica comercial en C ++ en lugar de solo algunos fragmentos de código críticos para el rendimiento, pero en caso de que ese caso de uso sea bien compatible, puede 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 programación más ampliamente soportado (con la excepción de C) y, por lo tanto, es el lenguaje central de la mayoría de las grandes aplicaciones multiplataforma.
fuente
Aunque acabo de comenzar a analizar esta área de desarrollo, creo que se reduce a esta diferencia básica: algunas herramientas conservan el código original y algunas se adaptan a nativo ...
por ejemplo, PhoneGap solo 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 entrega un proyecto XCode ... así que si no está familiarizado con iOS, entonces eso realmente no le proporcionaría ningún beneficio sobre PhoneGap, pero si SÍ sabe un poco, eso podría darle un poco más de capacidad para modificar las versiones nativas después de su mayor esfuerzo de codificación.
Yo mismo no he usado appcelerator, pero trabajé en un proyecto hace un par de semanas en el que uno de los miembros de nuestro equipo creó una aplicación para iPad completa en aproximadamente 24 horas usándola.
Y sí, para enviarlo a Apple, tendrá que obtener una Mac, pero si esa no es su plataforma de trabajo principal, puede ser barata.
fuente
Cappuccino o PhoneGap .
A veces, aunque intentar encontrar un atajo no le ahorra tiempo ni le da un producto final comparable.
fuente
También hay MoSync Mobile SDK
Licencia GPL y comercial. Hay una buena visión general de su enfoque aquí .
fuente
Si alguna vez usó LUA, puede probar Corona SDK puede crear aplicaciones que se ejecutan en IOS y Android
https://coronalabs.com/
Lo descargué y me equivoqué, encuentro que LUA es un lenguaje de secuencias de comandos muy fácil de aprender sin las molestias / limitaciones habituales del lenguaje de secuencias de comandos ...
fuente
También está BatteryTech, que hemos estado usando durante los últimos 18 meses y hemos lanzado varios juegos. http://www.batterypoweredgames.com/batterytech
Todo el soporte de C ++, Android e iOS, todos los usuarios obtienen la fuente completa. La nueva v2 incluye enlaces lua.
fuente