¿Existe un marco multiplataforma para desarrollar aplicaciones de iPhone / Android?

Estoy interesado en escribir aplicaciones para el iPhone y la plataforma Android. Esperaba encontrar un middleware / framework que abstrayera algunas de las diferencias en las API y me permitiera especificar la plataforma objective en el momento de la comstackción. ¿Existe tal marco existente o planificado?

Phonegap es un marco basado en javascript / css / html que se dirige 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á construida en html / javascript y puede ser más lenta que una verdadera aplicación nativa.

phonegap


React Native 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 radica en la eficiencia del desarrollador en todas las plataformas que le interesan: aprenda una vez, escriba en cualquier lugar. Facebook usa React Native en múltiples aplicaciones de producción y continuará invirtiendo en React Native. La interfaz de usuario para las aplicaciones React Native son controles nativos, por lo que su UI suele ser más rápida que un enfoque HTML / javascript puro para la administración de la GUI.

React Native


Unity es un motor de juego multiplataforma desarrollado por Unity Technologies y utilizado para desarrollar videojuegos para PC, consolas, dispositivos móviles y sitios web. Unity es notable por su capacidad de dirigir juegos a múltiples plataformas. Las plataformas compatibles incluyen Android, Apple TV, BlackBerry 10, iOS, Linux, línea de 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


OpenFL 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 provienen de un mundo Flash. Se basa en binarios nativos y también en navegadores (Flash / HTML5).

Openfl


MonoGame es una implementación de código abierto del Microsoft XNA 4.x Framework. Hace que sea más fácil para los desarrolladores de XNA crear juegos multiplataforma con una reutilización de código extremadamente alta. Actualmente admite iOS, Android, Windows (tanto OpenGL como DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile y la consola OUYA.

monogame


Adobe Flash Y créanlo o no, Adobe Flash puede publicar binarios nativos en ios, android, escritorio y, por supuesto, en la web. El rendimiento es razonable, pero no increíble. Si tuviste un juego Flash, puedes llevarlo al móvil muy fácilmente. Y esto no requiere ningún complemento de ningún tipo. En realidad, crea un binario autónomo nativo que se ejecuta en cada plataforma.

adobe

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

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

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

Si su aplicación tiene datos pesados, 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 está alojado en la red. Esto tiene la ventaja adicional de tener la posibilidad de ofrecer perfiles itinerantes entre diferentes dispositivos y una interfaz web.

Agregando otro servicio al montón aquí: Rhomobile está buscando crear solo esto. Parece una frase simplificada: piense en la web a principios de los 90. Pero podría ser la forma más fácil de portar su aplicación favorita a cada plataforma móvil importante.

Más detalles: Promesas de Rhomobile : comstackr una vez, implementar en cualquier teléfono inteligente

(Nota: no trabajo para Rhomobile, solo encontré la historia hoy).

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

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

Trabajo (ed) bastante con las soluciones “nativas” Obj-C y Java (4 Android). También construyo una aplicación con Appcelerator para iPhone y Android que funciona muy bien. Las API de Appcelerator son bastante extensas. La aplicación Appcelerator Kitchen Sink muestra una gran cantidad de elementos y funcionalidades listos 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 para recomendarla en general. Un colega me dijo que su equipo de desarrollo lo intentó y que no estaban satisfechos. Sin embargo, no pudo nombrar una razón real. Sin embargo, voy a seguir probando para ver dónde están las limitaciones. Una gran limitación es el soporte de la plataforma (actualmente solo iOS y Android).

En cuanto a Rhodes, esta solución parece bastante impresionante en el papel, especialmente en términos de plataformas compatibles. Veo algunos problemas con eso sin embargo. En primer lugar, las aplicaciones de demostración y la aplicación de fregadero de cocina necesitan mucho espacio en disco, se ejecutan un poco entrecortadas y se ven funky a veces (al menos en Android). Segundo, hay muy pocas aplicaciones de “mundo real” para encontrar. Me refiero a las aplicaciones que se han descargado al menos más de 1000 veces y al servicio de las necesidades del mundo real además de la demo diseñada. La usabilidad para mí tiene la máxima prioridad en aplicaciones móviles (para consumidores).

Veo un gran potencial en las aplicaciones HTML / CSS / JavaScript / PhoneGap. Recientemente, leí algunos artículos sobre empresas más grandes que usan HTML (5) para construir sus aplicaciones (por ejemplo, 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 hay algunos problemas de usabilidad y agilidad que deben resolverse cuando se crean aplicaciones móviles con tecnologías web . Otro problema podría ser la prueba, depuración y mantenimiento de aplicaciones HTML de nivel empresarial.

El framework Rhodes de Rhomobile hace esto. Las aplicaciones de Rhodes son nativas para cada teléfono inteligente individual

Mytopia tiene un marco inédito llamado RUGS. Presentaron recientemente en la conferencia TechCrunch 50 y su tecnología se veía muy interesante. Pudieron comstackr una aplicación que se ejecutaba en todas las plataformas de teléfonos inteligentes (y fue capaz de aprovechar las capacidades de cada … acelerómetro en el iPhone, por ejemplo). Lamentablemente, su sitio web dice que necesita enviarles un correo electrónico si desea obtener más información. Puede valer la pena dispararles un correo electrónico si realmente desea desarrollar en un sistema multiplataforma con un teléfono inteligente.

Vi su presentación durante la transmisión web TC50, pero desafortunadamente no puedo encontrar un video para ti ahora.

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

QuickConnectiPhone le permite escribir su aplicación en JavaScript y aún así es instalable. Una versión de Android está en Alpha inédito en este punto.

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

La versión para iPhone se puede descargar desde https://sourceforge.net/projects/quickconnect/ y si se comunica conmigo puede enviarle la versión de Android.

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

Por supuesto, no hay nada que lo detenga, 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 ser capaz de comstackr de forma cruzada progtwigs escritos en una variedad de idiomas de origen a una variedad de idiomas de destino. Uno de los casos de prueba iniciales fue escribir progtwigs en Java y ejecutarlos en un iPhone. Ver el video en el sitio vale la pena. Han discutido la posibilidad de poder apuntar a Android también.

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

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

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

Su mejor elección será AirPlay, visite el sitio web de AirPlay

Un clic y se implementa 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 – las envolturas para hacer esto para los SDK de iOS y Android están disponibles gratuitamente en el sitio web, y usted no necesita ningún conocimiento del lenguaje de progtwigció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 framework en este momento que se dirige a ambas plataformas y que en realidad se ejecuta nativo, lo que permite escribir juegos de buen rendimiento sería Corona.

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

hemos tenido éxito con el middleware Ice-Touch para tener dispositivos iPhone y Android hablando con los mismos servidores. con generación de código bastante decente para objetos y métodos de red. pero la lógica local todavía tiene que escribirse en el lenguaje del teléfono. de esta manera podríamos aprovechar las ventajas de la interfaz de usuario de cada uno, mientras que nuestro modelo vive en el mismo servidor y nuestros controladores se autogeneran.

Texto del enlace

Solo quería mencionar que una aplicación web que use el plugin Gears puede hacer uso de la geolocalización ( ya no disponible ) (servicios de ubicación GPS y Wifi) y esto funciona en Android (el navegador del G1 se envía con soporte incorporado de Gears).

No estoy seguro de si hay esperanzas de obtener compatibilidad con engranajes en un iPhone, pero es otro enfoque útil para desarrollar aplicaciones web con características adicionales y al mismo tiempo tener un amplio scope de dispositivos.

Tal marco, por naturaleza, no podría aprovechar las características específicas del iPhone como el acelerómetro o los gestos con varios dedos. También es probable que anule los términos del SDK de Apple.

Como sugirió Andyuk, considera escribir una aplicación web. Se puede acceder a las funciones básicas, como llamar a alguien de esa manera.

No hay nada existente (vale la pena confiar en él, en todo caso), y dudo que alguna vez haya algo oficial planificado.