2009-05-04 7 views
31

¿Existe alguna estrategia o al menos las mejores prácticas para escribir una aplicación que se ejecute en iPhone, BlackBerry y Android?Tecnología para escribir iPhone, BlackBerry y teléfono Android al mismo tiempo?

Soy ignorante sobre los entornos de desarrollo para BB y Android, pero supongo que ambos admiten aplicaciones Java.

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

¿Alguien ha hecho esto?

+0

¿Puede/debería incluir tabletas basadas en iPad y Android en la mezcla? – ripper234

+0

Bajo nivel también? Luego aquí: http://stackoverflow.com/questions/5393844/common-ide-to-develop-mobile-applications-and-deploy-it-to-iphone-android-black/6986237#6986237 – YumYumYum

+0

duplicado de http://stackoverflow.com/questions/51988/what-work-has-been-done-on-cross-platform-mobile-development/ – Gabor

Respuesta

19

Es posible que desee echa un vistazo a http://phonegap.com/

+1

Lo he usado varias veces. Si bien es obvio que no tiene todas las funciones como la escritura de una aplicación nativa, es excelente para aplicaciones pequeñas, en varios dispositivos – cpjolicoeur

+0

Acabo de ver la película. Perfecto. ¡Gracias! –

+1

Para que lo sepas, el marco de phonegap, al momento de escribir este documento, no ofrece un mecanismo de almacenamiento persistente y unificado entre las plataformas. Esta ha sido una gran fuente de dolor para quienes intentamos escribir aplicaciones de plataforma cruzada. También existen muchas otras diferencias entre las plataformas, por lo tanto, cuando inicie su proyecto, querrá hacer un esfuerzo concertado para establecer qué técnicas están disponibles para usted. –

1

Al escribir aplicaciones multiplataforma, debe decidir cómo gran parte del código para compartir. Las 2 opciones son

  • Todo. Utiliza (escribir) las bibliotecas plataforma GUI transversales y sistema de rutinas
  • La lógica es multiplataforma, pero la capa de presentación es específica de la plataforma

El segundo enfoque tiende a dar mejores aplicaciones, pero es una más trabajo (suponiendo que no es necesario escribir las bibliotecas multiplataforma).

Lo difícil del mundo de los dispositivos móviles es elegir un idioma. En este momento usted tiene

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

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

1

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

+1

Ahora bien, si solo el J2ME en sí mismo no chupaba tan horriblemente, esa podría ser una solución útil. – davr

4

Otra opción para mirar es Rhodes, que es un marco de Ruby.

1

Además, si está escribiendo juegos, consulte mi solución multiplataforma (iPhone, Android, etc.) llamada Sepia Engine, en http://www.cuttlefishengine.com.

+0

Lol, en Support en el sitio solo obtienes una palabra ... 'Soon'! –

+0

El sitio ha sido actualizado y ahora tiene mucha más información, incluida una versión beta descargable. –

8

Una técnica, que funciona de manera adecuada para ciertos tipos de aplicaciones, tales como aplicaciones de referencia: uso de HTML/CSS/JavaScript y escribir clientes compactos que utiliza visor HTML objeto de la plataforma para leer el contenido web integrado localmente.

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

Escribí a los espectadores muy pequeños que se escapaban de HTML e imágenes almacenadas internamente utilizando las URL jar: // (BlackBerry) y res: // (Windows Mobile). Pude incrustar todos los archivos HTML e imágenes como parte de la aplicación BlackBerry, utilizando una versión personalizada del campo del navegador y. Lo mismo para Windows Mobile, pude usar Pocket Internet Explorer como un ActiveX incorporado en mi aplicación Windows Mobile.

Nota: para BlackBerry, tuve que admitir dispositivos heredados que ejecutan OS 4.2. Para hacerlo, reciclé muchos ejemplos de código RIM, como SecondaryResourceFetchThread.java, para extraer imágenes incrustadas en la aplicación y enviarlas a través de un objeto de conexión personalizado que implementó HttpConnection, que diseñé para manejar jar: // URL's internamente. HTML/imágenes incrustadas en mi aplicación BlackBerry. Fue un poco difícil de entender. Para Windows Mobile, fue 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 algo así como probar la compatibilidad Netscape versus 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 usted sabe cómo hacerlo HTML bien, este enfoque puede funcionar.

5

Actualmente estamos buscando en esto también y encontramos:

Titanium

Kony Solutions

Estos productos tienen buenas críticas. The Titanium es gratis para la edición de la comunidad.

+0

Si no te importa, ¿puedes compartir tus hallazgos en Kony Solutions? – Seshagiri

1

Además, podría probar con Mobile Community Framework (MCF). Este es un marco de plataforma cruzada que se ejecuta de forma nativa en iPhone, Android, WinMobile, Symbian y BlackBerry. MCF maneja las operaciones de red, ubicación y proximidad para usted, en una red Wi-Fi Ad-Hoc o a través de un servidor proxy dedicado si no es posible la conexión directa. Tiene API simple, y es de uso gratuito. De esta forma, puede desarrollar la interfaz y la lógica de su aplicación por separado en cada plataforma, y ​​usar MCF para conectar instancias de su aplicación de la manera que desee.

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

1

Siempre se puede escribir una aplicación de JavaScript en la web, y debería funcionar en los tres. Por supuesto, eso no se instala en el teléfono.

Android tiene una vista web que ejecuta Javascript. Estoy seguro de que las otras plataformas también lo hacen. Si escribió la mayor parte de su lógica en javascript, podría reutilizar ese javascript en todas las plataformas.

1

Si desea escribir aplicaciones web multiplataforma, SenchaTouch o Phonegap es una buena opción.

Si prefiere la aplicación nativa, la mejor solución multiplataforma es Titanium. Usando Titanium, puedes escribir tu aplicación en Javascript y compila JS en código nativo (Objective-C, Java ...)

1

Adobe Flex y Flash Builder también se ven prometedores. Aún así, debería considerar su propietario, pero con el video en su sitio web de centro de desarrolladores parece que vale la pena. Por cierto, la última versión Actualmente es compatible con Android. Se supone que el soporte para iOS estará disponible en junio de 2011 mediante una actualización.

Cuestiones relacionadas