¿Existe un marco multiplataforma para desarrollar aplicaciones para iPhone/Android?[cerrado]

StackOverflow https://stackoverflow.com/questions/30953

Pregunta

Estoy interesado en escribir aplicaciones para iPhone y la plataforma Android.Esperaba encontrar un middleware/marco que abstrajera algunas de las diferencias en las API y me permitiera especificar la plataforma de destino en el momento de la compilación.¿Existe o está previsto un marco de este tipo?

¿Fue útil?

Solución

brecha telefónica es un marco basado en javascript/css/html dirigido a iPhone, Android y Blackberry.(Al menos en el iPhone) también se puede incluir como una aplicación nativa.La capa de interfaz de usuario para estas aplicaciones generalmente está integrada en html/javascript y puede ser más lenta que una verdadera aplicación nativa.

brecha telefónica


Reaccionar nativo le permite crear experiencias de aplicaciones de clase mundial en plataformas nativas utilizando una experiencia de desarrollador consistente basada en JavaScript y React.El enfoque de React Native está en la eficiencia del desarrollador en todas las plataformas que le interesan: aprenda una vez, escriba en cualquier lugar.Facebook utiliza React Native en múltiples aplicaciones de producción y seguirá invirtiendo en React Native.La interfaz de usuario para las aplicaciones React Native son controles nativos, por lo que su interfaz de usuario suele ser más rápida que un enfoque HTML/javascript puro para la gestión de la GUI.

Reaccionar nativo


Unidad es un motor de juegos multiplataforma desarrollado por Unity Technologies y utilizado para desarrollar videojuegos para PC, consolas, dispositivos móviles y sitios web.Unity se destaca por su capacidad para orientar juegos a múltiples plataformas.Las plataformas compatibles incluyen Android, Apple TV, BlackBerry 10, iOS, Linux, línea Nintendo 3DS, OS X, PlayStation 4, PlayStation Vita, Unity Web Player (incluido Facebook), Wii, Wii U, Windows Phone 8, Windows, Xbox 360, y Xbox One.

Unidad


Abierto FL es un puerto de código abierto de la API de Flash para Escritorio, navegador, iOs, Android, Flash, HTML5, etc.y es una opción a considerar para quienes vienen del mundo Flash.Se basa en archivos binarios nativos y también se dirige a navegadores (Flash/HTML5).

abierto


MonoJuego es una implementación de código abierto de Microsoft XNA 4.x Framework.Facilita a los desarrolladores de XNA la creación de juegos multiplataforma con una reutilización de código extremadamente alta.Actualmente es compatible con iOS, Android, Windows (tanto OpenGL como DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile y la consola OUYA.

monojuego


Adobe Flash Y lo creas o no, Adobe Flash puede publicar archivos binarios nativos en iOS, Android, escritorio y, por supuesto, en la web.El rendimiento es razonable, pero no increíble.Si tenías un juego Flash, es posible que puedas llevarlo al móvil muy fácilmente.Y esto no requiere ningún complemento de ningún tipo.De hecho, crea un binario independiente nativo que se ejecuta en cada plataforma.

adobe

Otros consejos

Editar:Desde que se hizo esta pregunta se han desarrollado una serie de soluciones viables.Si bien el tono de esta respuesta aún puede ser preciso (para beneficiarse al 100% del HW/OS probablemente sea necesaria una aplicación nativa), puede encontrar varias respuestas posibles debajo de esta pregunta.

Tanto Android como iPhone tienen interfaces de usuario muy definidas.Incluso si encontrara un marco que salvara las enormes diferencias en los niveles de aspecto más bajos (Android está programado en Java sobre una máquina virtual personalizada, iPhone es un código nativo programado en Objective-C) y en los niveles superiores (las aplicaciones de iPhone son una completamente aislada y protegida, el modelo de objetos de Android se distribuye y las clases se invocan libremente entre aplicaciones y bibliotecas), su aplicación final se sentiría extraña y fuera de lugar en cualquiera de ellas.Piense en la falta de multitáctil en Android o la falta de botones de hardware dedicados en el iPhone.

Su mejor opción sería desarrollar una interfaz de usuario específica para la plataforma y tener el modelo y la lógica central de su aplicación en algún tipo de lenguaje de secuencias de comandos.Luego busque un intérprete en C simple (para iPhone) y uno en Java (para Android). Scheme, Lisp y Javascript podrían cumplir los requisitos.Solo asegúrese de que el intérprete no esté expuesto a los usuarios finales o estaría violando el acuerdo de confidencialidad del iPhone...

Si su aplicación tiene muchos datos, puede seguir el modelo de muchas aplicaciones de iPhone y desarrollar interfaces de usuario nativas para iPhone y Android, y tener toda la lógica de la aplicación en un servidor remoto.Su interfaz de usuario se convierte en la única parte instalada de la aplicación y todo lo demás se aloja en la red.Esto tiene la ventaja añadida de tener la posibilidad de ofrecer perfiles itinerantes entre diferentes dispositivos y una interfaz web.

Agregando otro servicio a la pila aquí: romóvil está buscando crear precisamente esto.Parece tonto: piense en la web de principios de los 90.Pero podría ser la forma más sencilla de trasladar su aplicación favorita a todas las plataformas móviles importantes.

Más detalles: Rhomobile promete:Compile una vez e implemente en cualquier teléfono inteligente

( Nota:No trabajo para Rhomobile;Acabo de encontrar la historia hoy.)

No tengo experiencia directa con iPhone o Android, pero acabo de leer un artículo sobre "Titanium" y cuando visité su sitio, encontré esto:

http://www.appcelerator.com/products/titanium-mobile/

Trabajo (edito) bastante con las soluciones "nativas" Obj-C y Java (4 Android).También creo una aplicación con Appcelerator para iPhone y Android que funciona bien.Las API de Appcelerator son bastante extensas.La aplicación Appcelerator Kitchen Sink muestra una gran cantidad de elementos y funcionalidades listas para incluir en una aplicación ( https://github.com/appcelerator/KitchenSink ).Sin embargo, dado que mi aplicación Appcelerator no es demasiado compleja, no me siento cómodo recomendándola en general.Un colega me dijo que su equipo de desarrollo lo probó y no quedaron satisfechos.Sin embargo, no pudo nombrar una razón real.Sin embargo, seguiré probándolo para ver cuáles son las limitaciones.Una gran limitación es la compatibilidad con la plataforma (actualmente sólo iOS y Android).

En cuanto a Rhodes, esta solución parece bastante impresionante sobre el papel, especialmente en términos de plataformas compatibles.Aunque veo algunos problemas.Primero, las aplicaciones de demostración y la aplicación del fregadero de la cocina necesitan mucho espacio en el disco, se ejecutan un poco entrecortadas y a veces se ven raras (al menos en Android).En segundo lugar, hay muy pocas aplicaciones del "mundo real" que encontrar.Me refiero a aplicaciones que se han descargado al menos más de 1000 veces y que satisfacen necesidades del mundo real además de las de demostración.¡Para mí, la usabilidad tiene la máxima prioridad en las aplicaciones móviles (de consumo)!

Veo un gran potencial en las aplicaciones HTML/CSS/JavaScript/PhoneGap.Recientemente leí algunos artículos sobre empresas más grandes que utilizan HTML(5) para crear sus aplicaciones (p. ej.netflix http://mashable.com/2010/12/03/netflix-html5/, Zynga http://www.spielsucht24.de/2010/12/21/zynga-launches-html5-mafia-wars-atlantic-city-for-mobile-web/) Todavía existen algunos problemas de usabilidad y rapidez que deben resolverse al crear aplicaciones móviles con tecnologías web.Otro problema podría ser la prueba, depuración y mantenimiento de aplicaciones HTML de nivel empresarial.

romóvilEl marco Rhodes hace esto.Las aplicaciones Rhodes son nativas para cada teléfono inteligente individual

Mitopía tiene un marco inédito llamado RUGS.Se presentaron recientemente en la conferencia TechCrunch 50 y su tecnología parecía muy interesante.Pudieron compilar una aplicación que se ejecutaba en todas las plataformas de teléfonos inteligentes (y pudieron aprovechar las capacidades de cada uno...acelerómetro en el iPhone, por ejemplo).Desafortunadamente su sitio web dice que debe enviarles un correo electrónico si desea obtener más información.Podría valer la pena enviarles un correo electrónico si realmente desea desarrollar un sistema dirigido a teléfonos inteligentes multiplataforma.

Vi su presentación en el webcast de TC50, pero desafortunadamente no puedo encontrar un video para ustedes ahora.

Vuelva a publicar aquí con un resumen de qué marco decide utilizar y por qué lo eligió.

QuickConnectiPhone te permite escribir tu aplicación en JavaScript y aún así es instalable.En este momento hay una versión de Android en Alpha inédita.

Tener ambos le permitiría crear su aplicación en JavaScript, CSS y HTML, realizar llamadas al teléfono iPhone o Android para comportamientos del dispositivo como vibración, ubicaciones GPS, etc.

La versión para iPhone se puede descargar desde https://sourceforge.net/projects/quickconnect/ y si me contactas te puedo enviar la versión de Android.

Incluso si realmente quisieras hacerlo, no sería práctico crear tu propio marco multiplataforma: iPhone es código nativo, Android es Java.

Por supuesto, no hay nada que le impida, por ejemplo, compartir la lógica central de C/C++ en una aplicación de escritorio con su contraparte de iPhone.

Mira esto:

http://www.xmlvm.org/overview/

Es un proyecto que intenta poder realizar una compilación cruzada de programas escritos en una variedad de idiomas de origen en una variedad de idiomas de destino.Uno de los casos de prueba iniciales fue escribir programas en Java y ejecutarlos en un iPhone.Vale la pena ver el vídeo en el sitio.Han discutido la posibilidad de poder apuntar también a Android.

Dicho esto, no lo he probado.El proyecto parece bastante beta y no hay mucha actividad en su sitio SourceForge.

Puede desarrollar aplicaciones Java para iPhone con iSpectrum.De esta manera, podrá reutilizar una cantidad constante del código de su aplicación entre Android y iPhone (y posiblemente subprogramas de escritorio o MIDlets J2ME dependiendo de lo que haga :))

Más información en http://www.flexycore.com

Tu mejor opción será AirPlay, visita Sitio web de Airplay

Con un clic podrá implementarlo para Android, Iphone, Samsung Bada, Symbian, Windows Mobile, BREW, WebOS y Maemo.

Mi libro HTML5 para iOS y Android le permite tomar aplicaciones web creadas en HTML, JavaScript y CSS y convertirlas en aplicaciones independientes que puede cargar en las tiendas de aplicaciones (gratis o para vender). http://html5formobile.com - Los contenedores para hacer esto para los SDK de iOS y Android están disponibles gratuitamente en el sitio web y no necesita ningún conocimiento de ninguno de los lenguajes de programación si sigue las instrucciones del libro.

Me doy cuenta de que esta pregunta es bastante antigua, pero aparece en las búsquedas de Google, así que pensé que sería una buena idea actualizarla.

Creo que un buen marco en este momento que apunta a ambas plataformas y que en realidad se ejecuta de forma nativa, permitiendo escribir juegos de buen rendimiento sería Corona.

Enlace: http://www.anscamobile.com/corona/

Hemos tenido éxito con el middleware Ice-Touch al tener dispositivos iPhone y Android que se comunican con los mismos servidores.con generación de código bastante decente para objetos y métodos de red.pero la lógica local aún debe escribirse en el idioma del teléfono.De esta manera podríamos aprovechar las ventajas de la interfaz de usuario de cada uno, mientras nuestro modelo reside en el mismo servidor y nuestros controladores se generan automáticamente.

Texto del enlace

Sólo quería mencionar que una aplicación web que utilice el complemento Gears puede utilizar Geolocalización (Ya no está disponible) (servicios de ubicación GPS y Wifi) y funciona en Android (el navegador del G1 viene con soporte integrado para Gears).

No estoy seguro de si hay esperanzas de obtener compatibilidad con Gears en un iPhone, pero es otro enfoque útil para crear aplicaciones web con funciones adicionales y al mismo tiempo tener una amplia gama de dispositivos.

Un marco así, por naturaleza, no podría aprovechar las funciones específicas del iPhone, como el acelerómetro o los gestos con varios dedos.También probablemente anularía los términos del SDK de Apple.

Como sugirió Andyuk, considere escribir una aplicación web.Funciones básicas como llamar a alguien. poder acceder de esa manera.

No existe nada (en lo que valga la pena confiar, en todo caso), y dudo que alguna vez haya algo planeado oficialmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top