2012-10-01 81 views
8

He leído sobre la característica nativa-soporte de Phonegap here. Claramente, no menciona el soporte por Bluetooth. He fallado en encontrar o ubicar cualquier otra plataforma con soporte de desarrollo de plataforma móvil cruzada. Como resultado, actualmente me enfrento con dos opciones.¿Cuál es la mejor manera de desarrollar una aplicación móvil cruzada con soporte para bluetooth?

  1. Construir de forma independiente para todas las plataformas (opción muy dolorosa)

  2. Encontrar una solución de desarrollo multiplataforma adecuado (que no he encontrado todavía).

Mi pregunta es; para los desarrolladores de dispositivos móviles, ¿qué opción me sugieres que tome, una que no figura aquí? Si es posible, también ayuda con los detalles de los pros y los contras.

Muchas gracias.

+2

FWIK no hay un SDK abierto para bluetooth en iOS. Bluetooth solo está disponible a través de abstracciones de Gamekit que te limita en cuanto a lo que puedes hacer. Por otro lado, podría ser posible construir una implementación bluetooth compatible con GameKit en Android. Exploré esta opción una vez pero no pude ir más allá de la investigación inicial. – Cliff

Respuesta

7

Construir de forma independiente para todas las plataformas (opción muy dolorosa)

En mi experiencia, esto es, con mucho, la opción dolorosa menos, y no sólo para Bluetooth. La sobrecarga de lidiar con abstracciones multiplataforma con fugas tiende a superar los beneficios cuando llega a un producto de producción real. Crea una excelente aplicación para iPhone. Crea una excelente aplicación para Android. Puede compartir gran parte del diseño de la interfaz de usuario (aunque no toda). Puede compartir gran parte del diseño de la estructura de datos. Puede compartir parte de la arquitectura interna. Puede compartir cualquier protocolo de red (especialmente si los diseña en JSON). Pero evite compartir códigos y evite disparar al mínimo común denominador. Está muy abajo ...

Para algunos tipos de proyectos, tiene sentido compartir algún código C++ entre plataformas. Intentar desarrollar estas cosas en JavaScript es una receta para la frustración en el momento en que vas más allá de las aplicaciones más básicas. Es fácil piratear algo en el JavaScript móvil que funciona. Es muy difícil que se vea y funcione bien en todas las plataformas; mucho más difícil que solo escribirlos originalmente en primer lugar.

Algunos más discusiones sobre este: (.. Cuando discuto cómo compartir establecidos ++ bases de código grandes, C, pero esto no es aplicable para el nuevo desarrollo)

+0

"Crea una excelente aplicación para iPhone. Crea una excelente aplicación para Android" No es tan fácil ... Además, no puedes compartir el código * any *. Puede compartir patrones y flujo, pero ambas plataformas tienen arquitecturas únicas, y tendrá que escribir/administrar cada característica dos veces. Así que sí, él obtendrá un mejor producto final, ¡pero no puedo creer que esta sea la opción "menos dolorosa"! – edthethird

+4

Al compararlo con las otras opciones, creo que es lo menos doloroso si su objetivo es producir una aplicación seria (que no sea un juego). Los juegos que dependen en gran medida de OpenGL pueden compartir significativamente código OpenGL C/C++ entre plataformas. Pero incluso Facebook finalmente tiró la toalla y reescribió una aplicación nativa después de años tratando de arreglar su versión JS. Cualquiera que esté considerando escribir aplicaciones para iOS en JavaScript debería comenzar diciendo "soy mejor desarrollador de JS que el equipo de Facebook". Si puedes decir eso honestamente (y algunos probablemente lo hagan), pruébalo. Si no, escríbalo de forma nativa. –

+0

¡Gran respuesta y comentario! Creo que estás haciendo un punto realmente fuerte aquí. He considerado y examinado todo tipo de plataformas, incluso he considerado reemplazar la funcionalidad Bluetooth con GPS, pero aún había más problemas que considerar. Nokia solo como empresa tiene dispositivos que se ejecutan en aproximadamente cinco plataformas móviles diferentes y hay docenas de tamaños de pantalla. Eso realmente lo hace doloroso. He visto la respuesta de hotpaw2 y el comentario de Cliff, pero esperaré para obtener algunas opiniones más antes de aceptar esto. Gracias –

3

Lista iOS como uno de su plataforma deseada. En iOS, cualquier comunicación Bluetooth genérica (que no sea Bluetooth LE o comunicación a través de Gamekit, auriculares o teclado) está disponible solo para los licenciatarios del programa Apple MFi. Para obtener detalles sobre esta licencia, primero debe inscribirse en el programa MFi de Apple. AFAIK, ninguna cadena de herramientas de terceros o multiplataforma puede ayudarlo con esto para iOS.

0

No creo que el OP esté hablando de la comunicación de la aplicación iOS al dispositivo, sino de la comunicación bluetooth punto a punto. ¿Se aplicará el requisito de licencia del programa Apple MFi?

Si es así, ¿las API (y el hardware) Bluetooth de igual a igual, por ejemplo, Android o Windows Phone 8, son compatibles con la de iOS? Y si lo fueran, ¿no debería pasar datos por JSON para avanzar en la construcción de aplicaciones entre dispositivos móviles?

En mi humilde opinión, para aplicaciones empresariales sencillas, crear aplicaciones nativas para cada plataforma es el camino a seguir si desea hacer un uso completo de los recursos disponibles en cada plataforma y cumplir con sus diferentes principios de diseño de la interfaz de usuario.

Cuestiones relacionadas