2012-10-01 8 views
8

Ho letto del supporto di funzionalità nativo di Phoneegap here. Chiaramente, non fa menzione del supporto Bluetooth. Non sono riuscito a trovare o localizzare alcuna altra piattaforma con supporto per lo sviluppo di piattaforme cross-mobile. Di conseguenza, attualmente mi trovo di fronte a due scelte.Qual è il modo migliore per sviluppare un'app cross-mobile con supporto Bluetooth?

  1. Costruire in modo indipendente per tutte le piattaforme (opzione molto doloroso)

  2. Trovare una soluzione di sviluppo cross-platform adatto (che non ho ancora trovato).

La mia domanda è; per gli sviluppatori di dispositivi mobili là fuori, quale opzione suggeriresti di prendere, uno non elencato qui? Se possibile, anche aiutare con dettagli di pro e contro.

Grazie mille.

+2

FWIK non esiste un SDK aperto per Bluetooth su iOS. Il Bluetooth è reso disponibile solo tramite astrazioni di Gamekit che ti limita a ciò che puoi fare. Dall'altro lato, potrebbe essere possibile creare un'implementazione Bluetooth compatibile con GameKit su Android. Ho esplorato questa opzione una volta, ma non sono andato molto oltre la ricerca iniziale. – Cliff

risposta

7

Costruire in modo indipendente per tutte le piattaforme (opzione molto doloroso)

Nella mia esperienza, questo è di gran lunga l'opzione dolorosa almeno, e non solo per Bluetooth. Il sovraccarico di gestione di astrazioni cross-platform che perdono tende a superare i benefici dal momento in cui si arriva a un prodotto di produzione reale. Crea un'eccellente app per iPhone. Crea un'eccellente app per Android. Puoi condividere molto del design dell'interfaccia utente (ma non di tutto). Puoi condividere gran parte del design della struttura dei dati. Puoi condividere parte dell'architettura interna. È possibile condividere qualsiasi protocollo di rete (in particolare se li si progetta in JSON). Ma evita la condivisione del codice ed evita di sparare per il minimo comune denominatore. È piuttosto lontano ...

Per alcuni tipi di progetti è opportuno condividere un codice C++ tra piattaforme. Cercando di sviluppare questa roba in JavaScript è una ricetta per la frustrazione nel momento in cui vai oltre la più semplice delle applicazioni. È facile incidere qualcosa nel codice JavaScript mobile che funziona. È molto difficile farlo sembrare e funzionare alla grande su tutte le piattaforme; molto più difficile che semplicemente scriverli in modo nativo, in primo luogo.

Alcune altre discussioni su questo: (.. Dove discuto come condividere grandi basi di codice, con sede in C++, ma questo non è applicabile per un nuovo sviluppo)

+0

"Crea un'eccellente app per iPhone. Crea un'eccellente app per Android" Non è così facile ... Inoltre, non puoi condividere * qualsiasi * codice. Puoi condividere pattern e flussi, ma entrambe le piattaforme hanno architetture uniche e dovrai scrivere/gestire ogni funzione due volte. Quindi sì, otterrà un prodotto finale migliore, ma non posso credere che questa sia l'opzione "meno dolorosa"! – edthethird

+4

Dopo averlo confrontato con le altre opzioni, credo che sia il meno doloroso se il tuo obiettivo è quello di produrre un'applicazione seria (non di gioco). I giochi che fanno molto affidamento su OpenGL possono condividere in modo significativo il codice OpenGL C/C++ tra piattaforme. Ma anche Facebook ha finalmente gettato la spugna e ha riscritto un'app nativa dopo anni cercando di risolvere la loro versione JS. Chiunque stia pensando di scrivere app iOS in JavaScript dovrebbe iniziare dicendo "Sono uno sviluppatore JS migliore del team di Facebook". Se riesci a dire che onestamente (e alcuni probabilmente possono farlo), dagli un colpo. Altrimenti, scrivilo in modo nativo. –

+0

Ottima risposta e commento! Penso che tu stia facendo un punto molto forte qui. Ho preso in considerazione e esaminato tutti i tipi di piattaforme, ho anche preso in considerazione la possibilità di sostituire la funzionalità Bluetooth con il GPS, ma c'erano ancora più problemi da considerare. La sola Nokia come azienda ha dispositivi che girano su cinque diverse piattaforme mobili e ci sono dozzine di dimensioni dello schermo. Questo rende davvero doloroso. Ho visto la risposta di hotpaw2 e il commento di Cliff, ma aspetterò solo qualche altra opinione prima di accettare questo. Grazie –

3

Elenca iOS come una delle piattaforme desiderate. Su iOS, qualsiasi comunicazione Bluetooth generica (diversa da Bluetooth LE o comunicazione tramite Gamekit, cuffie o tastiera) è disponibile solo per i licenziatari del programma Apple MFi. Per ottenere tutti i dettagli su questa licenza, è necessario prima applicare al programma MFi di Apple. AFAIK, nessuna catena di strumenti di terze parti o multipiattaforma può aiutarti con questo per iOS.

0

Non credo che l'OP si riferisca alla comunicazione tra app iOS e dispositivo, bensì comunicazione Bluetooth peer-to-peer. Verrà applicato il requisito per la licenza del programma Apple MFi?

In tal caso, le API Bluetooth (e l'hardware) peer-to-peer, ad esempio, Android o Windows Phone 8 sono compatibili con quella di iOS? E se lo fossero, i dati trasmessi da JSON non dovrebbero essere abbastanza semplici per la creazione di app cross-mobile?

IMHO, per semplici app aziendali, la creazione di app native per ogni piattaforma è la strada da percorrere se si desidera sfruttare appieno le risorse disponibili su ciascuna piattaforma e conformarsi ai loro diversi principi di progettazione dell'interfaccia utente.

Problemi correlati