Tecnología para escribir iPhone, BlackBerry y teléfono Android al mismo tiempo?

¿Existe una estrategia o por lo menos la mejor práctica para escribir una aplicación que se ejecuta en iPhone, BlackBerry y Android?

Soy ignorante acerca de los entornos de desarrollo de BB y Android, pero supongo que ambos soportan aplicaciones Java.

Sé que el iPhone requeriría una porción de ObjectiveC (así como una UI completamente nueva).

¿Alguien ha hecho esto?

Es posible que desee comprobar http://phonegap.com/

Una técnica que funciona adecuadamente para ciertos tipos de aplicaciones, como las aplicaciones de referencia: Utilice HTML / CSS / JavaScript y escriba clientes compactos que usen el objeto de visor HTML de la plataforma para leer contenido web incrustado localmente.

Una técnica para escribir una aplicación multiplataforma que funcionaba tanto en BlackBerry como en Windows Mobile, era escribirla todo en HTML. Tuve que usar un subconjunto de HTML y CSS que funcionaba tanto en BlackBerry Browser como en Pocket Internet Explorer. Utilicé una pequeña cantidad de JavaScript también.

Escribí muy pequeños espectadores que lo corrió HTML internamente almacenado y las imágenes utilizando jar: // (BlackBerry) y res: // (Windows Mobile) URL's. Fui capaz de integrar todos los archivos HTML y de imágenes como parte de la aplicación de BlackBerry, utilizando una versión personalizada del campo del navegador y. Lo mismo para Windows Mobile, pude usar Pocket Internet Explorer como un ActiveX incrustado en mi aplicación Windows Mobile.

Nota – para BlackBerry, tuve que soportar dispositivos heredados con OS 4.2. Para ello, he reciclado una gran cantidad de muestras de código RIM, como SecondaryResourceFetchThread.java para extraer imágenes incrustadas en la aplicación y entregarlo a través de un objeto de conexión personalizada que implementó HttpConnection que diseñé para manejar jar: // URL para internamente HTML / imágenes incrustadas en mi aplicación BlackBerry. Fue un poco difícil de entender. Para Windows Mobile, era más intuitivo.

Hay otras maneras de hacer lo que necesitaba, pero funcionó perfectamente para una aplicación de referencia médica y pude diseñar archivos CSS separados para BlackBerry y Windows Mobile para reformatear el contenido de forma ligeramente diferente para los dos dispositivos móviles. (Era como probar Netscape contra la compatibilidad de Internet Explorer en los viejos tiempos.)

Esto puede no funcionar para su situación, pero si su aplicación es una aplicación de referencia de estilo web y sabe cómo hacer HTML bien, este enfoque puede funcionar.

Actualmente estamos estudiando esto también y hemos encontrado:

Titanium: http://www.appcelerator.com/products/titanium-mobile-application-development/

Soluciones Kony: http://www.konysolutions.com/wore.php

Estos productos tienen buenas revisiones. El titanio es gratuito para la edición de la comunidad.

Otra opción a considerar es Rhodes , que es un marco de Ruby.

http://j2mepolish.org podría ser una buena opción, sin embargo, iphone sólo está en la hoja de ruta. Pero Android y BB ya están soportados, así como todos los demás teléfonos j2me.

También si estás escribiendo juegos, echa un vistazo a mi multiplataforma (iPhone, Android, etc) solución llamada el Motor Cuttlefish, en http://www.cuttlefishengine.com .

Al escribir aplicaciones multiplataforma, debe decidir cuánto del código compartir. Las 2 opciones son

  • Todo. Utiliza (escribe) bibliotecas gui de plataforma cruzada y rutinas del sistema
  • La lógica es la plataforma cruzada, pero la capa de presentación es específica de la plataforma

El segundo enfoque tiende a dar mejores aplicaciones, pero es un trabajo más (suponiendo que no necesita escribir las bibliotecas de plataforma cruzada).

Lo complicado con el mundo móvil es escoger un idioma. Ahora mismo tienes

  • Java : teléfonos Android, Blackberry, Java ME
  • Objetivo C / C : iPhone, Windows Mobile
  • Javascript : Palm Pre

Puede cruzar la compilación java a javascript y viceversa. También puede compilar java a C o utilizar un motor javascript que puede llamar desde C. No creo que pueda ejecutar C en un teléfono java / javascript. Eso me lleva a sugerir escribir su código en Java / Javascript. Las compilaciones cruzadas (y la mezcla de idiomas en general) tienen la desventaja de hacer la depuración un poco más difícil.

Además, podría dar un intento a Mobile Community Framework (MCF). Este es un marco de crossplatform que se ejecuta nativamente en iPhone, Android, WinMobile, Symbian y BlackBerry. MCF gestiona las operaciones de red, ubicación y proximidad para usted, en una red Ad-Hoc Wi-Fi o mediante un servidor proxy dedicado si no es posible una conexión directa. Tiene API simple, y es libre de usar. De esta manera, puede desarrollar la interfaz y la lógica de la aplicación por separado en cada plataforma y utilizar MCF para conectar instancias de la aplicación de la manera que desee.

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

Siempre puede escribir una aplicación javascript en la web, y debe funcionar en los tres. Por supuesto que no se instala en el teléfono.

Android tiene una webview que ejecuta Javascript. Estoy seguro de que las otras plataformas también. Si escribió la mayoría de su lógica en javascript, podría ser capaz de reutilizar ese javascript a través de plataformas.

Sin embargo, otro marco es http://www.mosync.com/

Parece apoyar todas las plataformas principales.

Si desea escribir una aplicación web multiplataforma, SenchaTouch (http://www.sencha.com/products/touch/) o Phonegap (http://www.phonegap.com/) es una buena opción.

Si prefieres la aplicación nativa, la mejor solución multiplataforma es Titanium (http://www.appcelerator.com/). Usando Titanium, puedes escribir tu aplicación en Javascript, y compila JS a código nativo (Objective-C, Java …)

Adobe Flex y Flash Builder también son prometedores. Sin embargo, usted debe considerar su propiedad, pero con el video en su sitio web desarrollador parece que vale la pena. Por cierto, la última versión Actualmente admite Android. El soporte para iOS se supone que estará disponible en junio de 2011 a través de una actualización.

  • Tomar pagos con tarjeta de crédito en la aplicación
  • El impacto del código nativo en el desarrollo de aplicaciones para Android / iPhone
  • Comenzar con la programación móvil. ¿Qué es una buena plataforma?
  • El proyecto Build Unity con Jenkins falló
  • Aplicación para móviles: orientada a iPhone, WP7, Android y Blackberry
  • AES Encryption Android <-> iOS resultados diferentes en la longitud del mensaje> 15 byte
  • Alineación de la memoria en iPhone y Android
  • Redireccionar a los usuarios a la tienda de aplicaciones de iTunes oa la tienda de Google Play Store?
  • ¿Los navegadores iPhone / Android admiten CSS @media handheld?
  • ¿Qué aplicaciones de iPhone, iPad y Windows Phone se implementan?
  • Marco para la funcionalidad de chat que soporta todas las plataformas móviles y la aplicación web .net
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.