2012-10-01 12 views
8

Ich habe über die native Funktion-Unterstützung von Phonegap here gelesen. Offensichtlich erwähnt es die Bluetooth-Unterstützung nicht. Es ist mir nicht gelungen, eine andere Plattform mit Unterstützung für die Entwicklung von Cross-Mobile-Plattformen zu finden oder zu finden. Als Ergebnis bin ich derzeit konfrontiert mit zwei Möglichkeiten.Was ist der beste Weg, um eine Cross-Mobile-App mit Bluetooth-Unterstützung zu entwickeln?

  1. Build-unabhängig für alle Plattformen (sehr schmerzhafte Option)

  2. Suchen Sie eine geeignete Cross-Plattform-Entwicklungslösung (die ich noch nicht gefunden habe).

Meine Frage ist; für mobile Entwickler da draußen, welche Option würde ich vorschlagen, die hier nicht aufgeführt ist? Wenn möglich, helfen Sie auch mit Details zu Vor- und Nachteilen.

Vielen Dank.

+2

FWIK gibt es kein offenes SDK für Bluetooth auf iOS. Bluetooth wird nur über Gamekit-Abstraktionen zur Verfügung gestellt, was Sie daran hindert, was Sie tun können. Auf der anderen Seite könnte es möglich sein, eine GameKit-kompatible Bluetooth-Implementierung auf Android zu erstellen. Ich habe diese Option einmal untersucht, bin aber nicht weit über die anfängliche Forschung hinausgekommen. – Cliff

Antwort

7

Build-unabhängig für alle Plattformen (sehr schmerzhafte Option)

Meiner Erfahrung nach ist dies durch die weit dest schmerzhafte Option, und nicht nur für Bluetooth. Der Aufwand für den Umgang mit undichten plattformübergreifenden Abstraktionen neigt dazu, die Vorteile zu überwiegen, wenn Sie ein echtes Produktionsprodukt erhalten. Erstellen Sie eine ausgezeichnete iPhone App. Erstellen Sie eine ausgezeichnete Android App. Sie können viel von dem UI-Design (obwohl nicht alles) teilen. Sie können einen Großteil des Datenstrukturentwurfs gemeinsam nutzen. Sie können einige der internen Architektur teilen. Sie können beliebige Netzwerkprotokolle freigeben (insbesondere, wenn Sie sie in JSON entwerfen). Aber vermeide Code-Sharing und vermeide es, auf den kleinsten gemeinsamen Nenner zu schießen. Es ist ziemlich weit unten ....

Für einige Arten von Projekten macht es Sinn, einige C++ - Code zwischen den Plattformen zu teilen. Der Versuch, dieses Zeug in JavaScript zu entwickeln, ist ein Rezept für Frustration, sobald man über die grundlegendsten Anwendungen hinausgeht. Es ist einfach, etwas im mobilen JavaScript zu hacken, das funktioniert. Es ist sehr schwer, es auf allen Plattformen großartig aussehen zu lassen und zu funktionieren. viel schwieriger, als sie nur nativ zu schreiben.

Einige weitere Diskussionen zu diesem Thema: (.. Wo ich diskutieren, wie große, etablierte C++ Code-Basen zu teilen, aber diese neue Entwicklung nicht anwendbar ist)

+0

"Erstellen Sie eine ausgezeichnete iPhone-App. Erstellen Sie eine hervorragende Android-App" Es ist nicht so einfach ... Außerdem können Sie * keinen * Code teilen. Sie können Muster und Datenflüsse gemeinsam nutzen, aber beide Plattformen verfügen über einzigartige Architekturen, und Sie müssen jedes Feature zweimal schreiben/verwalten. Also, er wird ein besseres Endprodukt bekommen, aber ich kann nicht glauben, dass dies die "am wenigsten schmerzhafte" Option ist! – edthethird

+4

Nachdem ich es mit den anderen Optionen verglichen habe, glaube ich, dass es am wenigsten schmerzhaft ist, wenn es dein Ziel ist, eine ernsthafte Anwendung (ohne Spiel) zu erstellen. Spiele, die stark auf OpenGL angewiesen sind, können OpenGL C/C++ Code zwischen den Plattformen teilen. Aber auch Facebook hat endlich das Handtuch geworfen und eine native App umgeschrieben, nachdem sie jahrelang versucht hatte, ihre JS-Version zu reparieren. Jeder, der daran denkt, iOS-Apps in JavaScript zu schreiben, sollte zunächst sagen: "Ich bin ein besserer JS-Entwickler als das Facebook-Team." Wenn Sie das ehrlich sagen können (und einige können es wahrscheinlich auch), versuchen Sie es. Wenn nicht, schreibe es nativ. –

+0

Große Antwort und Kommentar! Ich denke du machst einen wirklich starken Punkt hier. Ich habe über alle Plattformen nachgedacht und über sie nachgedacht. Ich habe sogar überlegt, die Bluetooth-Funktionalität durch GPS zu ersetzen, aber es gab noch weitere Probleme zu beachten. Nokia allein hat als Unternehmen Geräte auf fünf verschiedenen mobilen Plattformen und Dutzende von Bildschirmgrößen. Das macht es wirklich schmerzhaft. Ich habe die Antwort von hotpaw2 und Cliffs Kommentar gesehen, aber ich warte nur darauf, ein paar mehr Meinungen zu bekommen, bevor ich das akzeptiere. Vielen Dank –

3

Sie listen iOS als eine Ihrer gewünschten Plattform auf. Unter iOS ist eine generische Bluetooth-Kommunikation (außer Bluetooth LE oder Kommunikation über Gamekit, Headset oder Tastatur) nur für Lizenznehmer des Apple MFi-Programms verfügbar. Um Details zu dieser Lizenz zu erhalten, müssen Sie zuerst das MFi-Programm von Apple anwenden. AFAIK, keine Drittanbieter- oder plattformübergreifende Toolkette kann Ihnen dabei helfen für iOS.

0

Ich glaube nicht, dass das OP spricht über iOS-App zu Gerät Kommunikation, sondern Peer-to-Peer-Bluetooth-Kommunikation. Würde die Anforderung für Apple MFi-Programm-Lizenzierung gelten?

Wenn ja, sind die Peer-to-Peer-Bluetooth-APIs (und die Hardware) auf Android oder Windows Phone 8 mit denen von iOS kompatibel? Und wenn ja, sollten Daten von JSON nicht einfach weitergegeben werden, um Cross-Mobile-Apps zu erstellen?

IMHO, für einfache Business-Anwendungen, ist der Aufbau nativer Apps für jede Plattform der richtige Weg, wenn Sie die verfügbaren Ressourcen auf jeder Plattform vollständig nutzen und ihren unterschiedlichen UI-Design-Prinzipien entsprechen möchten.

Verwandte Themen