wake-up-neo.net

iOS / Android plattformübergreifende Entwicklung

Ich habe eine Weile mit der Entwicklung von Android Apps in Java) herumgespielt und beginne, mich damit auseinanderzusetzen. Allerdings, wenn ich gleich anfangen möchte Auf einer iOS-Version 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:

  1. Welche plattformübergreifenden Entwicklungsumgebungen gibt es für iOS/Android (und/oder andere Geräte)?

  2. Welche Erfahrungen haben Sie mit diesen Tools gemacht? (das ist es, was ich wirklich wissen möchte)

112
Alister

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 grundlegend darauf ausgelegt, unterschiedliche Probleme zu lösen. Einige konzentrieren sich auf Spiele, andere auf Apps. Ich würde folgende Fragen stellen:

Was willst 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? Unter den mir vertrauten Frameworks können Sie zwischen ActionScript, C++, C #, Java, Lua und Ruby wählen.

Mein Unternehmen ist mehr im Spielebereich tätig, daher habe ich mit JavaScript + CSS-Frameworks wie Titanium, PhoneGap und Sencha nicht so viel gespielt. Aber ich kann Ihnen ein bisschen über einige der spielorientierten Frameworks erzählen. Spiele und Rich-Internet-Anwendungen 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 sich weniger in native Benutzeroberflächen einzufügen. Hier sind einige Frameworks, nach denen Sie suchen müssen:

  • Unity www.unity3d.com ist eine 3D-Spiele-Engine. Es ist wirklich anders als in jeder anderen 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 Skripte in JavaScript, C # oder Boo erstellen. Wenn Sie ein 3D-Physikspiel schreiben möchten, das auf iOS, Android, Windows, OS X oder Konsolen ausgeführt werden kann, ist dies wahrscheinlich das richtige Werkzeug für Sie. Sie können auch 2D-Spiele mit 3D-Assets schreiben - ein gutes Beispiel hierfür ist das Indie-Spiel Max und der Magic Marker , ein in Unity geschriebener 2D-Side-Scroller auf Physik-Basis. Wenn Sie es nicht wissen, empfehle ich, es zu überprüfen (besonders wenn es irgendwelche Kinder in Ihrem Haushalt gibt). 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-Elementen und -Texturen, die Ihnen dabei helfen, sich in einer möglicherweise recht komplizierten Umgebung zurechtzufinden.

  • Corona www.anscamobile.com/corona ist eine 2D-Spiele-Engine, die die Lua-Skriptsprache 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 den Erfolg. Die Umgebung ist sehr schlank, was einige Leute ansprechen wird. Es kommt mit einem Simulator und Debugger. Sie fügen Ihren gewünschten Texteditor hinzu und haben 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 entweder in Java oder ActionScript mit einem MVC-Anwendungsmodell schreiben. Es enthält eine Eclipse-basierte IDE mit einem WYSIWYG-UI-Editor. Wir unterstützen derzeit die Erstellung 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 soziale Online-Multiplayer-Spiele wie Poker und Backgammon entwickelt und eignet sich für 2D-Spiele und Apps mit komplexen Inhalten Logik: Das Framework unterstützt 2D-Grafiken und enthält eine 2D-Physik-Engine.

NB:

Heute gaben wir bekannt, dass Appcelerator, Hersteller des plattformübergreifenden Titanium-Frameworks, den Partikelcode übernommen hat.

...

Ab dem 1. Januar 2012 wird [ Particle Code ] die Plattform [ Particle SDK ] nicht mehr offiziell unterstützen.

Quelle

  • Das Airplay SDK www.madewithmarmalade.com ist ein C++ - Framework, mit dem Sie entweder in Visual Studio oder Xcode entwickeln können. Es unterstützt sowohl 2D- als auch 3D-Grafiken. Airplay zielt auf iOS, Android, Bada, Symbian, webOS und Windows Mobile 6. Sie haben auch ein Add-On zum Erstellen von AirPlay-Apps für PSP. Mein C++ ist sehr verrostet, ich habe nicht viel damit gespielt, aber es sieht cool aus.

In Bezug auf die Lernkurve würde ich sagen, dass Unity (für mich) die steilste Lernkurve hatte, Corona die einfachste und Particle und Airplay irgendwo dazwischen.

Ein weiterer interessanter Punkt ist, wie die Frameworks mit verschiedenen Formfaktoren umgehen. Corona unterstützt die dynamische Skalierung, die Flash-Entwicklern vertraut ist. Dies ist sehr einfach zu bedienen, bedeutet jedoch, dass Sie Platz auf dem Bildschirm verschwenden, wenn Sie von einem 4: 3-Bildschirm wie dem iPhone zu einem 16: 9-Bildschirm wie dem neuen qHD Android) wechseln Mit dem Benutzeroberflächen-Editor können Sie flexible Layouts entwerfen, die skaliert werden können, aber Sie können auch die Layouts für einzelne Bildschirmgrößen anpassen. Dies dauert etwas länger, aber Sie können die App für jeden Bildschirm maßgeschneidert aussehen lassen.

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 sie zu testen. Alle diese Tools können kostenlos ausprobiert werden.

Wenn ich nur eine öffentliche Bekanntmachung machen könnte - die meisten dieser Tools befinden sich in einer wirklich aktiven Entwicklung. Wenn Sie ein Framework finden, das Ihnen gefällt, senden Sie auf jeden Fall Feedback und teilen Sie diesen 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 die nächsten Versionen dieser Tools fließt.

Hoffe das hilft.

103
DocDude

MonoTouch und MonoDroid, aber was jetzt mit diesem Teil von Attachmate passieren wird, ist jedermanns Vermutung. Natürlich erstellen Sie auch mit den Mono-Lösungen weiterhin 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 auf sie zukommt.

15
Derek Beattie

Meine Erfahrung mit der Vereinfachung von Aufgaben in PhoneGap + jQuery Mobile war in Ordnung. Ich konnte es schnell für iOS machen. Auf meinen Android) Handys funktionierte es jedoch nicht, ohne Änderungen vorzunehmen. Das Projekt war eine sehr einfache App, um Bilder aufzunehmen und auf einer Website zu veröffentlichen. Und am Ende des Tages es fühlte 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 wahrscheinlich nur einen Schmerzpunktsatz gegen einen anderen Schmerzpunktsatz.

11
Evan

Wenn Sie kein vollwertiges Framework für die plattformübergreifende Entwicklung verwenden möchten, sehen Sie sich optional C++ an. iOS unterstützt die 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. Wenn dieser Anwendungsfall jedoch gut unterstützt wird, können Sie es versuchen.

Dieser Ansatz ist natürlich nur 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 häufigsten unterstützte Programmiersprache (mit Ausnahme von C) und daher die Kernsprache der meisten großen plattformübergreifenden Anwendungen.

7
yeoman

Obwohl ich gerade erst angefangen habe, mich mit diesem Entwicklungsbereich zu befassen, glaube ich, dass es auf diesen grundlegenden Unterschied ankommt: Einige Tools behalten den ursprünglichen Code bei und andere portieren auf native ...

zum Beispiel behält PhoneGap nur den HTML/CSS/JS-Code bei, den Sie schreiben, und verpackt ihn in ausreichend iOS-Code, um als App zu gelten, während Appcelerator Ihnen ein XCode-Projekt liefert. Wenn Sie also nicht mit iOS vertraut sind, Dann würde das Ihnen gegenüber PhoneGap keinen wirklichen Vorteil bringen, aber wenn Sie DO ein bisschen wissen, könnten Sie nur ein bisschen mehr Möglichkeiten zum Tweaken haben die nativen Versionen nach Ihrem größeren Programmieraufwand.

Ich habe appcelerator selbst noch 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 an Apple zu wenden, müssen Sie einen Mac kaufen, aber wenn dies nicht Ihre primäre Arbeitsplattform ist, können Sie billig werden.

5
Robot Woods

Wenn Sie jemals LUA verwendet haben, können Sie versuchen, mit Corona SDK Apps zu erstellen, die auf IOS und Android ausgeführt werden

http://developer.anscamobile.com/

Ich habe es heruntergeladen und einiges rumgespielt. Ich finde, dass LUA eine sehr einfach zu erlernende Skriptsprache ist, ohne die üblichen Probleme/Einschränkungen der Skriptsprache.

3
Jeff

Cappuccino oder PhoneGap .

Manchmal spart der Versuch, eine Verknüpfung zu finden, jedoch keine Zeit und gibt Ihnen kein vergleichbares Endprodukt.

3
SK9

Es gibt auch MoSync Mobile SDK

GPL und kommerzielle Lizenzierung. Es gibt einen guten Überblick über ihre Vorgehensweise hier .

3
Roger Dahl

Es gibt auch BatteryTech, das wir in den letzten 18 Monaten verwendet haben und von dem mehrere Spiele veröffentlicht wurden. http://www.batterypoweredgames.com/batterytech

Alle C++, Android und iOS-Unterstützung, alle Benutzer erhalten den vollständigen Quellcode. Die neue Version 2 enthält Lua-Bindings.

2
Rob