Ich habe eine Weile mit der Entwicklung von Android-Apps in Java herumgespielt und fange an, es in den Griff zu bekommen. Wenn ich jedoch mit einer iOS-Version starten möchte, muss ich alles von Grund auf neu codieren - was natürlich unerwünscht ist.
Ich habe mich gefragt, welche plattformübergreifenden Lösungen verfügbar sind und wie gut sie in der Praxis funktionieren. Ich habe über Webanwendungen nachgedacht - vielleicht mit jQuery Mobile oder Titanium oder Adobe Flash / Flex / Air. Ich habe auch noch keinen Mac, in den ich wahrscheinlich investieren muss.
Also meine Fragen:
Welche plattformübergreifenden Entwicklungsumgebungen gibt es für iOS / Android (und / oder andere Geräte)?
Welche Erfahrungen haben Sie mit diesen Tools gemacht? (das ist es, was ich wirklich gerne wissen möchte)
quelle
Antworten:
Haftungsausschluss: Ich arbeite für ein Unternehmen, Particle Code, das ein plattformübergreifendes Framework erstellt. Es gibt eine Menge Unternehmen in diesem Bereich. Jede Woche tauchen neue auf. Gute Nachrichten für Sie: Sie haben viele Möglichkeiten.
Diese Frameworks verfolgen unterschiedliche Ansätze, und viele von ihnen sind grundsätzlich darauf ausgelegt, unterschiedliche Probleme zu lösen. Einige konzentrieren sich auf Spiele, andere auf Apps. Ich würde folgende Fragen stellen:
Was möchtest du schreiben? Unternehmensanwendung, persönliche Produktivitätsanwendung, Puzzlespiel, Ego-Shooter?
Welche Entwicklungsumgebung bevorzugen Sie? IDE oder einfacher alter Texteditor?
Haben Sie starke Gefühle für Programmiersprachen? Von den mir vertrauten Frameworks können Sie zwischen ActionScript, C ++, C #, Java, Lua und Ruby wählen.
Mein Unternehmen ist mehr im Spielbereich tätig, daher habe ich nicht so viel mit JavaScript + CSS-Frameworks wie Titanium, PhoneGap und Sencha gespielt. Aber ich kann Ihnen ein wenig über einige der spielorientierten Frameworks erzählen. Spiele und umfangreiche Internetanwendungen sind ein Bereich, in dem plattformübergreifende Frameworks glänzen können, da diese Anwendungen in der Regel mehr Wert darauf legen, visuell einzigartig zu sein, und weniger darauf, sich in native Benutzeroberflächen einzufügen. Hier sind einige Frameworks, nach denen Sie suchen sollten:
Unity www.unity3d.com ist eine 3D-Spiele-Engine. Es ist wirklich anders als jede andere Entwicklungsumgebung, in der ich gearbeitet habe. Sie erstellen Szenen mit 3D-Modellen und definieren das Verhalten, indem Sie Skripte an Objekte anhängen. Sie können in JavaScript, C # oder Boo schreiben. Wenn Sie ein auf 3D-Physik basierendes Spiel schreiben möchten, das unter iOS, Android, Windows, OS X oder Konsolen ausgeführt werden kann, ist dies wahrscheinlich das richtige Tool für Sie. Sie können auch 2D-Spiele mit 3D-Assets schreiben - ein gutes Beispiel dafür ist das Indie-Spiel Max und der Magic Marker, ein auf 2D-Physik basierender Side-Scroller, der in Unity geschrieben wurde. Wenn Sie es nicht wissen, empfehle ich Ihnen, es sich anzusehen (insbesondere, wenn sich Kinder in Ihrem Haushalt befinden). Max ist für PC, Wii, iOS und Windows Phone 7 verfügbar (obwohl die letztere Version ein Port ist, da Unity WinPhone nicht unterstützt). Unity enthält einige Beispielspiele mit 3D-Assets und -Texturen, die wirklich dazu beitragen, sich mit einer möglicherweise recht komplizierten Umgebung vertraut zu machen.
Corona www.anscamobile.com/corona ist eine 2D-Spiele-Engine, die die Skriptsprache Lua verwendet und iOS und Android unterstützt. Das Verkaufsargument von Corona ist die Fähigkeit, physikbasierte Spiele sehr schnell in wenigen Codezeilen zu schreiben, und die große Anzahl von Corona-basierten Spielen im iOS App Store ist ein Beweis für seinen Erfolg. Die Umgebung ist sehr mager, was einige Leute ansprechen wird. Es kommt mit einem Simulator und Debugger. Sie fügen den Texteditor Ihrer Wahl hinzu und verfügen über eine Entwicklungsumgebung. Das Basis-SDK enthält keine UI-Komponenten wie Schaltflächen oder Listenfelder. Abonnenten steht jedoch ein CoronaUI-Add-On zur Verfügung.
Das Partikel-SDK www.particlecode.com ist eine etwas allgemeinere plattformübergreifende Lösung mit Hintergrundinformationen zu Spielen. Sie können mit einem MVC-Anwendungsmodell entweder in Java oder in ActionScript schreiben. Es enthält eine Eclipse-basierte IDE mit einem WYSIWYG-UI-Editor. Wir unterstützen derzeit das Erstellen für Android-, iOS-, webOS- und Windows Phone 7-Geräte. Sie können auch Flash oder HTML5 für das Web ausgeben. Das Framework wurde ursprünglich für Online-Multiplayer-Social-Games wie Poker und Backgammon entwickelt und eignet sich für 2D-Spiele und Apps mit komplexer Logik. Das Framework unterstützt 2D-Grafiken und enthält eine 2D-Physik-Engine.
NB:
Quelle
In Bezug auf die Lernkurve würde ich sagen, dass Unity die steilste Lernkurve hatte (für mich), Corona die einfachste war und Partikel und Airplay irgendwo dazwischen liegen.
Ein weiterer interessanter Punkt ist, wie die Frameworks mit unterschiedlichen Formfaktoren umgehen. Corona unterstützt die dynamische Skalierung, die Flash-Entwicklern bekannt ist. Dies ist sehr einfach zu bedienen, bedeutet jedoch, dass Sie am Ende Platz auf dem Bildschirm verschwenden, wenn Sie von einem 4: 3-Bildschirm wie dem iPhone zu einem 16: 9-Bildschirm wie den neuen qHD-Android-Geräten wechseln. Mit dem UI-Editor des Partikel-SDK können Sie flexible, skalierbare Layouts entwerfen, aber auch die Layouts für einzelne Bildschirmgrößen anpassen. Dies dauert etwas länger, lässt Sie jedoch die App für jeden Bildschirm individuell gestalten.
Was für Sie funktioniert, hängt natürlich von Ihrem individuellen Geschmack und Arbeitsstil sowie Ihren Zielen ab. Ich empfehle daher, einige dieser Tools herunterzuladen und auszuprobieren. Alle diese Tools können kostenlos ausprobiert werden.
Wenn ich nur eine öffentliche Bekanntmachung einreichen könnte, befinden sich die meisten dieser Tools in einer wirklich aktiven Entwicklung. Wenn Sie ein Framework finden, das Ihnen gefällt, senden Sie auf jeden Fall Feedback und teilen Sie ihnen mit, was Ihnen gefällt, was Ihnen nicht gefällt und welche Funktionen Sie sehen möchten. Sie haben eine echte Chance zu beeinflussen, was in den nächsten Versionen dieser Tools enthalten ist.
Hoffe das hilft.
quelle
MonoTouch und MonoDroid, aber was jetzt mit diesem Teil von Attachmate passieren wird, ist unklar. Selbst mit den Mono-Lösungen erstellen Sie natürlich immer noch nicht plattformübergreifende Ansichten, aber die Idee ist die Wiederverwendung von Geschäftslogik.
Behalten Sie http://www.xamarin.com/ im Auge. Es wird interessant sein zu sehen, was sie sich einfallen lassen.
quelle
Meine Erfahrung mit der Erstellung von sehr einfachen Funktionen in PhoneGap + jQuery Mobile war in Ordnung. Ich konnte es schnell für iOS tun. Auf meinen Android-Handys funktionierte es jedoch nicht, ohne einige Änderungen vorzunehmen. Das Projekt war eine sehr einfache App, um Bilder aufzunehmen und auf einer Website zu veröffentlichen. Und am Ende des Tages fühlte es sich im Vergleich zu einer echten nativen App "klobig" an.
Ich glaube nicht, dass es jemals eine einfache plattformübergreifende Entwicklung geben wird. Ich denke, der Browser ist so nah wie möglich. Wenn Sie sich für etwas wie PhoneGap entscheiden, tauschen Sie meiner Meinung nach nur einen Satz von Schmerzpunkten gegen einen anderen Satz von Schmerzpunkten.
quelle
Wenn Sie kein vollwertiges Framework für die plattformübergreifende Entwicklung verwenden möchten, schauen Sie sich optional C ++ an. iOS unterstützt die vollständige Verwendung von C ++ für Ihre Anwendungslogik über Objective-C ++. Ich weiß nicht, wie gut die Unterstützung von Android für C ++ über das NDK für die Ausführung Ihrer Geschäftslogik in C ++ geeignet ist und nicht nur für einige leistungskritische Codefragmente. Falls dieser Anwendungsfall jedoch gut unterstützt wird, können Sie es versuchen.
Dieser Ansatz ist natürlich nur dann sinnvoll, wenn Ihre Anwendungslogik den größten Teil Ihres Projekts ausmacht, da die Benutzeroberflächen für jede Plattform einzeln geschrieben werden müssen.
Tatsächlich ist C ++ die am weitesten verbreitete Programmiersprache (mit Ausnahme von C) und daher die Kernsprache der meisten großen plattformübergreifenden Anwendungen.
quelle
Obwohl ich gerade erst angefangen habe, mich mit diesem Entwicklungsbereich zu befassen, denke ich, dass es auf diesen grundlegenden Unterschied ankommt: Einige Tools behalten den ursprünglichen Code bei, andere portieren auf native ...
PhoneGap behält beispielsweise nur den von Ihnen geschriebenen HTML / CSS / JS-Code bei und verpackt ihn in ausreichend iOS-Code, um sich als App zu qualifizieren, während Appcelerator Ihnen ein XCode-Projekt liefert. Wenn Sie also nicht mit iOS vertraut sind, dass würde dann wirklich keinen Nutzen für Sie über PhoneGap, aber wenn Sie DO etwas wissen, das könnten Sie nur ein bisschen mehr Fähigkeit , die native Versionen nach dem größeren Programmieraufwand zu optimieren.
Ich habe Appcelerator selbst nicht verwendet, habe aber vor ein paar Wochen an einem Projekt gearbeitet, bei dem eines unserer Teammitglieder innerhalb von 24 Stunden eine komplette iPad-App damit erstellt hat.
Und ja, um sich tatsächlich bei Apple zu melden, müssen Sie sich einen Mac zulegen, aber wenn dies nicht Ihre primäre Arbeitsplattform ist, können Sie billig werden.
quelle
Cappuccino oder PhoneGap .
Manchmal spart Ihnen der Versuch, eine Verknüpfung zu finden, weder Zeit noch ein vergleichbares Endprodukt.
quelle
Es gibt auch MoSync Mobile SDK
GPL und kommerzielle Lizenzierung. Es gibt einen guten Überblick über ihren Ansatz hier .
quelle
Wenn Sie jemals LUA verwendet haben, können Sie versuchen, mit Corona SDK Apps zu erstellen, die unter IOS und Android ausgeführt werden
https://coronalabs.com/
Ich habe es heruntergeladen und einige durcheinander gebracht. Ich finde, LUA ist eine sehr einfach zu erlernende Skriptsprache ohne die üblichen Probleme / Einschränkungen der Skriptsprache.
quelle
Es gibt auch BatteryTech, das wir seit 18 Monaten verwenden und von dem wir mehrere Spiele veröffentlicht haben. http://www.batterypoweredgames.com/batterytech
Alle C ++ -, Android- und iOS-Unterstützung, alle Benutzer erhalten die vollständige Quelle. Die neue Version 2 enthält Lua-Bindungen.
quelle