Desarrollo de aplicaciones móviles de plataforma cruzada

Cada vez se lanzan más plataformas móviles y sdk está disponible para los desarrolladores. Hay varias plataformas móviles disponibles: Android, iOS, Moblin, Windows Mobile 7, RIM, symbian, bada, maemo, etc

Y hacer de la aplicación de plataforma cruzada es dolor de cabeza para los desarrolladores. Estoy buscando cosas comunes a través de las plataformas que ayudarán a los desarrolladores que quieren portar la aplicación a todas las plataformas. Como cuáles son las resoluciones de la pantalla del diff, métodos de la entrada, ayuda abierta del gl etc. comparte por favor los detalles que usted sabe para cualesquiera de la plataforma.

O hay posibilidades, escribiendo código en html (tipo de widget de cosas) y cargarlo en la aplicación nativa. Sé sobre el androide, en el que podemos agregar la vista web en la aplicación llamando a setContentView(view)

Por favor, comparta los detalles de la clase donde podemos agregar la vista html en la aplicación nativa de diferentes tipos de plataformas que usted conoce.

El objetivo de este hilo es compartir detalles comunes entre los desarrolladores. Marcando como comunidad wiki.

Herramientas de plataforma cruzada y biblioteca

  • XMLVM, Codename One e iSpectrum (compilación cruzada de código Java desde una aplicación de Android o creación de una desde cero

  • Intervalo telefónico (aplicaciones móviles de plataforma cruzada)

  • Titanium (para crear aplicaciones móviles y de escritorio con tecnologías web)

  • Mono Touch (C # para el iphone)

  • Rhomobile – http://rhomobile.com/ muestras están aquí: http://github.com/rhomobile/rhodes-system-api-samples

  • Sencha Touch – Sencha Touch es un marco de aplicaciones móviles HTML5 que le permite desarrollar aplicaciones web que se ven y se sienten nativas en dispositivos Apple iOS y Google Android touchscreen. Http://www.sencha.com/products/touch/

  • Corona – Iphone / Ipad / aplicación de la plataforma de plataforma cruzada. Demasiado increíble. Http://anscamobile.com/corona/

  • Una guía para conectar la aplicación Android existente a Windows Phone 7 http://windowsphone.interoperabilitybridges.com/articles/windows-phone-7-guide-for-iphone-application-developers

  • JQuery Mobile Touch-Optimized Web Framework para Smartphones y Tabletas

5 Solutions collect form web for “Desarrollo de aplicaciones móviles de plataforma cruzada”

Mi respuesta aquí cubre algunas de las limitaciones técnicas de cross-platfrom herramientas, pero permítanme ampliar un poco:

Creo que las herramientas multiplataforma han sido históricamente siempre-rans porque tales herramientas tienen el enfoque filosófico equivocado.

Todos los puntos de venta de las herramientas de plaforma cruzada son los beneficios que aportan a los desarrolladores . Se venden con la idea de que permiten a los desarrolladores escribir, una vez ejecutado, en cualquier lugar. Se venden con la idea de que permiten a los desarrolladores ampliar su mercado sin aprender nuevas API. Se venden en la idea de que permiten a los desarrolladores reducir el costo y el tiempo de comercialización.

¿Qué herramienta de cross-plaform NO se venden en es el beneficio que aportan a los usuarios finales .

Beneficio para el usuario final no es un punto de venta, porque el desarrollo de multiplataforma rara vez es un beneficio para el usuario final. El usuario final no le importa lo difícil que el desarrollador tuvo que trabajar para llevar el producto al mercado. Tampoco les importa cuántas plataformas puede ejecutar la aplicación cuando no utilizan una sola plataforma. Sólo se preocupan si la aplicación hace lo que necesitan en el hardware que necesitan para ejecutarlo. A menos que tengan una necesidad específica de ejecutar la aplicación en muchas plataformas diferentes, el hecho de que no les aporta ningún valor.

A la inversa, los compromisos inevitables de hacer una API multiplataforma significan que todas las aplicaciones creadas por la API serán en el mejor grado B en cada plataforma. Nunca serán la mejor herramienta para usar en cada plataforma.

Todo esto significa que en la mayoría de los casos de uso, las herramientas multiplataforma dan al usuario final un producto inferior en comparación con las realizadas con API específicas de la plataforma. El usuario final siempre tendrá una mejor opción.

Ganar dinero a largo plazo, dando a los usuarios finales las herramientas más útiles. Si no se concentran filosóficamente en hacer la vida del usuario final más fácil y más productiva, que están bastante condenados desde el principio. Los usuarios finales tienen un montón de opciones y si su herramienta no es uno de los mejores que no va a hacer en el mercado.

Sólo debe usar herramientas multiplataforma si piensa que "los usuarios realmente se beneficiarán al ejecutar esta aplicación en muchas plataformas diferentes". Si comienza a mirar las herramientas de plataforma cruzada sólo porque harán su vida (los desarrolladores) más fácil, entonces usted los ha escogido por la razón equivocada y que le hará daño más de lo que ayudará.

Existen varios enfoques para el desarrollo multiplataforma en dispositivos móviles. Por supuesto que todos tienen limitaciones. Ninguna solución logra aprovechar todas las funcionalidades del dispositivo de la misma manera que una aplicación nativa.

Reutilización del código

Si bien todos los sistemas operativos móviles no utilizan el mismo lenguaje de desarrollo y API, a veces puede compartir algunas clases o código de nivel lógico.

C ++, por ejemplo, puede probablemente ser reutilizado para una aplicación de iOS , para una aplicación de Android utilizando el NDK , para una aplicación de Symbian ya que se desarrollan en C ++, etc.

Algunas soluciones también ofrecen la posibilidad de escribir la aplicación en un idioma distinto del que normalmente utiliza el dispositivo. Los más famosos (de hecho el único que conozco) son comerciales y se basan en el proyecto Mono (desarrollo C #):

  • MonoTouch para iPhone [1]
  • MonoDroid para Android (todavía en desarrollo)
  • Proyecto similar para BlackBerry (todavía en desarrollo)

Pero no estoy seguro de que realmente se puede llamar a este desarrollo multiplataforma ya que la reutilización de código es limitada dependiendo del dispositivo:

  • Windows Phone 7 no permitirá el desarrollo de código nativo (tal vez en más actualizaciones)
  • AFAIK mono como proyecto no existen para todas las plataformas (todavía?) Bada, webOS, maemo, etc

Y la parte de interfaz de usuario también se mantiene específica para cada dispositivo.

desarrollo web

Una respuesta regular al preguntar sobre el desarrollo multiplataforma para móviles es el desarrollo web. Entonces necesitaríamos un envoltorio, que usará el navegador móvil, para hacer que se vea y se comporte como una aplicación nativa. Esa es la forma en que algunas de las plataformas cruzadas marco que veremos más adelante en el trabajo.

El aumento de HTML5 trae a las funcionalidades de desarrollo web que sólo se podía hacer con una aplicación nativa como la geolocalización, la aplicación fuera de línea, el almacenamiento local.

Podemos encontrar más y más marcos para desarrollar aplicaciones web para móviles con una apariencia nativa, aprovechando los últimos estándares web HTML5, CSS3, Js:

  • Sencha Touch
  • JQTouch basado en jQuery
  • JQuery Mobile framework

Pero HTML5 es todavía muy joven y la implementación puede variar de un navegador a otro. La mayoría de los navegadores móviles predeterminados utilizan el motor WebKit (la principal excepción es Windows Mobile / Phone utilizando Internet Explorer) e incluso así no necesariamente admiten las mismas funcionalidades . La base de datos local sigue siendo difícil de trabajar y no podemos estar seguros de cómo va a implementarlos los diferentes navegadores. Además, incluso con HTML5, el desarrollo web sigue siendo muy limitado en comparación con una aplicación nativa. No puede acceder a contactos, cámara, acelerómetro, etc.

Edit: A principios de este mes el W3C ha publicado algunas advertencias sobre la evolución de HTML5: Article from ZDNet

Por lo tanto, sólo se adaptará a una categoría limitada de aplicaciones.

Marcos multiplataforma

Y que tenemos los frameworks multiplataforma para aplicaciones móviles. Con el que se puede presumiblemente desarrollar una vez y desplegar en diferentes plataformas. Estas soluciones suelen centrarse en iOS y Android y dependen del motor WebKit. Ofrecen más interacción con las funcionalidades del teléfono mientras se desarrollan con tecnologías web. Los más conocidos son Nitobi PhoneGap, RhoMobile Rhodes, Appcelerator Titanium. Pero muchos otros están ahí fuera y no todos usan la misma técnica como MoSync que traduce su código a su propio lenguaje intermedio antes de compilarlo para la plataforma deseada.

[1] Recuerde que Apple tiene una política especial sobre las aplicaciones escritas para su plataforma. No parecen estar bloqueando estas aplicaciones en esta fecha, pero es una información que debe tenerse en cuenta. Editar sección: Apple ha cambiado esta política desde el 9 de septiembre.

Usted obtiene algo de comúnidad al implementar como una aplicación web (html5 como se mencionó anteriormente), pero para aplicaciones nativas ricas las API son completamente diferentes para los distintos teléfonos inteligentes.

HTML5 puede mejorar las cosas un poco, pero para hacer cosas interesantes que necesita para ir nativo.

Hay marcos de plataformas de "plataforma cruzada" como Phonegap, pero he escuchado sobre todo cosas malas sobre su uso para el trabajo "real". (Un montón de gastos generales, etc.)

Sí, html5 está recibiendo algo de atención. También debe mirar a este consorcio y plataforma para venir en Q4. No estoy seguro sobre el éxito de ese proyecto, ya que suena como un gran desafío, pero aquí están los detalles:

Sitio web: http://www.wholesaleappcommunity.com/default.aspx

Noticias: http://news.google.de/news/search?aq=f&pz=1&cf=all&ned=us&hl=es&q=%22Wholesale+Applications+Community%22

WAC pretende publicar su especificación inicial y componentes de su SDK a los desarrolladores en noviembre. Esta especificación se basará en los estándares del W3C y creará una plataforma sólida para el desarrollo de ricas aplicaciones web para móviles. WAC también proporcionará compatibilidad hacia atrás para dispositivos basados ​​en las especificaciones JIL y BONDI actuales. ( http://www.convergedigest.com/Bandwidth/newnetworksarticle.asp?ID=31021 )

.

Se trata de una coalición internacional de alrededor de 25 empresas de telecomunicaciones que tiene como objetivo crear una plataforma abierta a todos los desarrolladores y la venta a todos los usuarios de teléfonos móviles. ( http://www.downloadsquad.com/2010/02/15/atandt-wholesale-applications-community-is-a-platform-not-an-app/ )

Por lo que sé la mayoría de los dispositivos son capaces de ejecutar esto:

Java ME: la plataforma de aplicaciones más ubicua para dispositivos móviles

Creo que esto puede servir tanto como buen y mal ejemplo.

  • Targeting / Developing para múltiples plataformas móviles con un solo lenguaje de programación (C #)? ¿Coste-beneficio?
  • Cómo validar el origen de una invocación de servicio web
  • Herramientas de creación de prototipos para aplicaciones móviles
  • Restringir las llamadas a API. Permitir sólo mi aplicación para móviles
  • IPhone / Android / WP7 aplicación?
  • Intención equivalente en WP7
  • ¿Cuáles son las bases de datos internas y externas que pueden utilizarse con Android, Windows Phone e iOS?
  • Cómo envolver un sitio web en una aplicación de teléfono?
  • Cualquier ventaja de la programación nativa para el desarrollo móvil?
  • Alternativa de Android a MetroGridHelper
  • Portabilidad entre plataformas móviles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.