Technologie, um iPhone, BlackBerry und Android-Handy gleichzeitig zu schreiben?

Gibt es eine Strategie oder zumindest Best Practice, um eine App zu schreiben, die auf iPhone, BlackBerry und Android läuft?

Ich weiß nichts über die Entwicklungsumgebungen für BB und Android, aber ich nehme an, dass beide Java-Apps unterstützen.

Ich weiß, dass das iPhone einen ObjectiveC-Abschnitt (sowie eine ganz neue Benutzeroberfläche) benötigen würde.

Hat jemand das getan?

Vielleicht möchten Sie http://phonegap.com/

Eine Technik, die für bestimmte Arten von Apps wie z. B. Referenzanwendungen geeignet ist: Verwenden Sie HTML / CSS / JavaScript und schreiben Sie kompakte Clients, die das HTML-Viewer-Objekt der Plattform verwenden, um lokal eingebettete Webinhalte zu lesen.

Eine Technik zum Schreiben plattformübergreifender Anwendungen, die sowohl auf BlackBerry als auch auf Windows Mobile ausgeführt wurde, bestand darin, alles in HTML zu schreiben. Ich musste eine Teilmenge von HTML und CSS verwenden, die sowohl im BlackBerry Browser als auch im Pocket Internet Explorer funktionierten. Ich habe auch ein wenig JavaScript verwendet.

Ich habe sehr kleine Viewer geschrieben, die intern gespeicherte HTML und Bilder mit jar: // (BlackBerry) und res: // (Windows Mobile) URLs ausführten. Ich war in der Lage, alle HTML- und Bilddateien als Teil der BlackBerry-Anwendung einzubetten, indem ich eine benutzerdefinierte Version des Browserfelds verwendete. Dasselbe gilt für Windows Mobile. Ich konnte Pocket Internet Explorer als eingebettetes ActiveX in meiner Windows Mobile-Anwendung verwenden.

Hinweis – Für BlackBerry musste ich ältere Geräte mit OS 4.2 unterstützen. Dazu habe ich viele RIM-Codebeispiele, wie SecondaryResourceFetchThread.java, wiederverwendet, um in die Anwendung eingebettete Bilder abzurufen und über ein benutzerdefiniertes Verbindungsobjekt, das HttpConnection implementiert hat, das ich für die interne Bearbeitung von jar: // URLs entworfen habe eingebettete HTML / Bilder in meine BlackBerry-Anwendung. Es war ein wenig schwierig, es herauszufinden. Für Windows Mobile war es intuitiver.

Es gibt andere Möglichkeiten zu tun, was ich brauche, aber es funktionierte perfekt für eine medizinische Referenzanwendung, und ich konnte separate CSS-Dateien für BlackBerry und für Windows Mobile entcasting, um den Inhalt für die beiden mobilen Geräte leicht anders zu formatieren. (Es war so, als würde man die Kompatibilität von Netscape und Internet Explorer in den alten Tagen testen.)

Dies funktioniert möglicherweise nicht für Ihre Situation, aber wenn Ihre Anwendung eine “Referenz” -Anwendung im Web-Stil ist und Sie wissen, wie man HTML gut macht, kann dieser Ansatz funktionieren.

Wir untersuchen derzeit auch dies und wir fanden:

Titan

Kony-Lösungen

Diese Produkte haben gute Kritiken. Das Titanium ist kostenlos für die Community Edition.

Eine andere Option, die man sich ansehen kann, ist Rhodes , ein Ruby-Framework.

http://j2mepolish.org könnte eine gute Wahl sein, aber iphone ist nur in der Roadmap. Aber Android und BB werden ebenso wie alle anderen j2me-Telefone unterstützt.

Auch wenn Sie Spiele schreiben, schauen Sie sich meine plattformübergreifende (iPhone, Android, etc.) Lösung namens “Cuttlefish Engine” unter http://www.cuttlefishengine.com an .

Wenn Sie Multiplattform-Apps schreiben, müssen Sie entscheiden, wie viel Code geteilt werden soll. Die 2 Optionen sind

  • Alles. Sie verwenden (schreiben) plattformübergreifende GUI-Bibliotheken und Systemroutinen
  • Die Logik ist plattformübergreifend, aber die Darstellungsschicht ist plattformspezifisch

Der zweite Ansatz tendiert dazu, bessere Apps zu liefern, aber es ist mehr Arbeit (vorausgesetzt, Sie müssen die plattformübergreifenden Bibliotheken nicht schreiben).

Das Schwierige an der mobilen Welt ist das Auswählen einer Sprache. Genau jetzt hast du

  • Java : Android, Blackberry, Java ME-Telefone
  • Ziel C / C : iPhone, Windows Mobile
  • Javascript : Palm Pre

Sie können Java zu Javascript und umgekehrt kompilieren. Sie können Java auch zu C kompilieren oder eine Javascript-Engine verwenden, die Sie von C aus aufrufen können. Ich glaube nicht, dass Sie C auf einem Java / JavaScript-Telefon ausführen können. Das bringt mich dazu, deinen Code in Java / Javascript zu schreiben. Cross-Compiles (und Mischsprachen im Allgemeinen) haben den Nachteil, dass das Debugging etwas schwieriger wird.

Außerdem können Sie das Mobile Community Framework (MCF) ausprobieren. Dies ist ein Cross Platform Framework, das nativ auf iPhone, Android, WinMobile, Symbian und BlackBerry läuft. MCF übernimmt Netzwerk-, Standort- und Proximity-Vorgänge für Sie in einem Wi-Fi Ad-Hoc-Netzwerk oder über einen dedizierten Proxy-Server, wenn keine direkte Verbindung möglich ist. Es hat eine einfache API, und es ist kostenlos zu benutzen. Auf diese Weise können Sie Ihre App-Schnittstelle und -Logik auf jeder Plattform separat entwickeln und MCF verwenden, um Instanzen Ihrer Anwendung so zu verbinden, wie Sie es möchten.

Mehr Infos unter http://uvamobiltec.com

Sie können immer eine Javascript-App im Web schreiben, und es sollte auf allen drei funktionieren. Natürlich wird das nicht auf dem Telefon installiert.

Android hat eine Webansicht, die Javascript ausführt. Ich bin mir sicher, dass die anderen Plattformen das auch tun. Wenn Sie den Großteil Ihrer Logik in JavaScript geschrieben haben, könnten Sie möglicherweise das Javascript plattformübergreifend wiederverwenden.

Noch ein weiterer Rahmen ist http://www.mosync.com/

Es scheint alle wichtigen Plattformen zu unterstützen.

Adobe Flex und Flash Builder sieht auch vielversprechend aus. Sie sollten immer noch ihre proprietären, aber mit dem Video auf ihrem Entwickler Center Website scheint es wert. Übrigens, die neueste Version unterstützt derzeit Android. Die Unterstützung für iOS soll im Juni 2011 durch ein Update erfolgen.

Wenn Sie plattformübergreifende Web-App schreiben möchten, ist SenchaTouch oder Phonegap eine gute Wahl.

Wenn Sie eine native App bevorzugen, ist die beste plattformübergreifende Lösung Titanium . Mit Titanium kannst du deine App in Javascript schreiben, und sie kompiliert JS in nativen Code (Objective-C, Java …)