2010-11-04 16 views
17

Quiero desarrollar una aplicación para dispositivos Android y iOS. ¿Hay alguna manera de desarrollar la aplicación una vez y desplegarla en ambas? ¿O es necesario desarrollar para cada plataforma por separado?Android y iOS: ¿Cómo desarrollar para ambos?

+0

Consulte también http://stackoverflow.com/questions/6171128/ios-android-cross-platform-development, que hace la misma pregunta pero se cerró porque solicitó las recomendaciones de IDE/framework . – sashoalm

Respuesta

6

Si desea aplicaciones que brinden una experiencia nativa, tendrá que escribir aplicaciones separadas.

Creo que el mejor lugar para comenzar es con una muy buena versión web optimizada para navegadores móviles. Creo que las mejores aplicaciones web son mejores que muchas de las aplicaciones nativas, pero no son competitivas con las mejores aplicaciones nativas.

También hay un par de opciones como Titanium o PhoneGap, que son un tipo de sistema híbrido web/nativo, utilizan la tecnología web para crear aplicaciones nativas.

5

Bien, usted tiene http://monotouch.net y http://monodroid.net. De esta forma, puede tener una lógica comercial común y solo volver a desarrollar su UI.

+1

Muchas aplicaciones móviles solo presentan información y tienen muy poca lógica comercial. – mikerobi

2

Todo depende del tipo de aplicación que desea desarrollar. Si es un juego, le sugiero que escriba la mayor parte como código nativo, y aproveche el hecho de que OpenGL ES 2.0 es compatible de forma nativa en ambas plataformas. Obviamente, todos sus códigos Java no serán reutilizables en iOS, por lo que todo lo que se pueda hacer como biblioteca nativa portátil ayuda a reducir la cantidad de código no reutilizable.

0

Codename One es otro, para el desarrollo de Java en ambas plataformas. No hay experiencia con eso, sin embargo.

0

Si se trata de un juego o una aplicación principalmente gráfica, BatteryTech Engine hará lo que quiera. Todavía necesita XCode para compilar para iOS, pero de lo contrario es una base de código primaria única para ambas plataformas.

1

Usando Qt, que es un framework C++ para el desarrollo multiplataforma que tiene una licencia LGPL y una comercial, puede desarrollar para ambas plataformas y simplemente recompilar su aplicación desde la misma fuente. Como beneficio adicional, también puedes apuntar a Windows, Linux y Mac.

Tenga en cuenta, sin embargo, que Qt presenta sus propios controles, por lo que los widgets no se verán nativos en Android ni en iOS. Además, al igual que con todos los marcos multiplataforma, le proporcionará el mínimo común denominador en términos de características.

De their official blog:

con Qt se puede desarrollar verdaderamente aplicaciones multiplataforma que trabajarán en el escritorio, embebidos y plataformas móviles. Qt 5.2 presenta soporte total para las plataformas Android e iOS y, por lo tanto, permite la creación de aplicaciones móviles multiplataforma que se empaquetan e implementan tanto en Google Play como en App Store desde una base de código. En lugar de escribir dos versiones del mismo código con dos tecnologías diferentes, ¡puede escribirlo una vez con Qt!

App Store de Apple podría no aceptar aplicaciones que utilizan dylibs, sin embargo, que podría force you to use the commercial license para aplicaciones de código cerrado:

En iOS es posible utilizar una versión vinculada de forma dinámica de las librerías Qt, y haz que se incluyan con la aplicación. Esto permite que la aplicación use la licencia LGPL para Qt, a la vez que permite que la aplicación sea de código cerrado. Queda por ver si Apple aceptará las aplicaciones que agrupan los dylibs en la tienda de aplicaciones iOS.Si Apple no acepta aplicaciones que usan dylibs empaquetados en la App Store, entonces será necesario vincular Qt estáticamente a la aplicación. Y como el puerto Qt para iOS usa la versión LGPL de Qt, las reglas para vincular estáticamente con LGPL se activarán, esto puede ser un problema para las aplicaciones de código cerrado.

Finalmente, dado que Qt es un marco de C++, tendrá que utilizar C++ para desarrollar su aplicación.

0

Empecé a usar NativeScript y parece prometedor.

NativeScript es la forma de crear multiplataforma, aplicaciones nativas de iOS y Android sin vistas web. Use Angular, TypeScript o JavaScript moderno para obtener una interfaz de usuario y rendimiento verdaderamente nativos mientras comparte habilidades y códigos con la web. Obtenga el 100% de acceso a las API nativas a través de JavaScript y reutilice los paquetes de NPM, CocoaPods y Gradle. Código abierto y respaldado por Telerik.

2

Hay muchas opciones. Depende si quieres una experiencia nativa o si quieres que las cosas estén en una vista web. Con la experiencia nativa puede que tenga que hacer una codificación nativa, pero aún es mucho mejor que desarrollar 2 aplicaciones nativas separadas.

A continuación se presentan algunos con los que tengo experiencia.

experiencia nativa

Webview

0

He utilizado un montón de cruzadas plataformas en los últimos años, y la de mi perspectiva Xamarin es la mejor, porque al final ella, se puede decir si la aplicación es multiplataforma o no. pero con Xamarin compila a nativo así que no hay diferencia aparente entre ellos en términos de UI. Puede comenzar aquí: https://www.xamarin.com

Cuestiones relacionadas