Desarrollo multiplataforma para iOS / Android [cerrado]

113

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:

  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 quiero saber)

Alister
fuente
1
Alister, ciertamente no eres la primera persona en hacer este tipo de preguntas, ¡ni eres la primera persona que quiere una respuesta! :) No te olvides de PhoneGap, del cual he escuchado críticas mixtas, y Red Foundry, que es más sencillo pero se ve bien, todavía no multiplataforma.
makdad
1
También puedes usar PhoneGap. Lo he usado y te aconsejo que lo hagas. Existe una disposición para generar un archivo exe (IPA para iOS) utilizando la aplicación desarrollada en PhoneGap en Android.
Jayprakash Dubey
Quiero actualizar esta pregunta, ya que estamos a finales de 2016 y el panorama de herramientas multiplataforma ha cambiado. Yo diría que depende del lenguaje de programación que elijas y donde tu equipo tenga más xp con: 1. JavaScript: Phonegap El rendimiento es malo en dispositivos móviles, por lo que se recomienda usar herramientas con componentes nativos pero JS para la lógica de la aplicación. Las opciones son V-Play ( v-play.net/apps ) o React ( reactnative.com ). 2. C #: Xamarin es tu amigo. 3. C ++: Use un marco C ++ como Qt ( qt.io ). Descargo de responsabilidad: Soy uno de los que están detrás de V-Play, que se basa en Qt.
Christian Feldbacher
Respuesta: Flutter , es el nuevo marco de interfaz de usuario móvil de Google para crear interfaces nativas en iOS y Android en un tiempo récord.
naXa
También hay un prometedor proyecto activo de haxe.org .
Eugene Gr. Philippov

Respuestas:

104

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:

Hoy anunciamos que Particle Code ha sido adquirido por Appcelerator, creadores del marco multiplataforma Titanium.

...

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

Fuente

  • El SDK de Airplay www.madewithmarmalade.com es un marco de trabajo de C ++ que le permite desarrollar en Visual Studio o Xcode. Es compatible con 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 ++ está muy oxidado, no he jugado mucho con él, pero se ve bien.

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.

DocDude
fuente
Estaba pensando en más desarrollo empresarial, pero es posible que me haya inspirado a buscar uno de estos SDK por diversión.
Alister
Los enlaces a cada marco serían útiles
Petrus Theron
2
Actualización: Particle Code fue adquirido por Appcelerator, creadores de Titanium, por lo que el destino del Particle SDK es incierto. Airplay cambió su nombre, de manera bastante inexplicable, a "Marmalade".
DocDude
15

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.

Derek Beattie
fuente
12

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.

Evan
fuente
7

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.

hacendado
fuente
3
Por cierto, Android en realidad parece admitir directamente actividades escritas en C ++ únicamente: developer.android.com/reference/android/app/NativeActivity.html
yeoman
4
Con una advertencia: no hay acceso a Java (por lo tanto, no hay integración de bibliotecas de terceros o acceso a SDK) desde NativeActivity. Lo hace inadecuado para muchos propósitos.
rbgrn
6

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 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.

Robot Woods
fuente
3

Cappuccino o PhoneGap .

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

SK9
fuente
3

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 ...

Jeff
fuente
2

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.

Robar
fuente
3
A partir del 30/05/12: $ 200 por licencia para 5 desarrolladores o menos. $ 800 por más de 5. No se puede utilizar para proyectos de código abierto.
Roger Dahl