Plattformübergreifende Entwicklung von iOS / Android [geschlossen]

113

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:

  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 gerne wissen möchte)

Alister
quelle
1
Alister, Sie sind sicherlich nicht die erste Person, die diese Art von Frage stellt, noch sind Sie die erste Person, die eine Antwort wünscht! :) Vergessen Sie nicht PhoneGap, von dem ich gemischte Kritiken gehört habe, und Red Foundry, das mehr Ausstecher ist, aber gut aussieht - noch nicht plattformübergreifend.
Makdad
1
Sie können auch mit PhoneGap gehen. Ich habe es benutzt und rate dir, es zu versuchen. Es ist vorgesehen, eine Exe-Datei (IPA für iOS) mit einer auf PhoneGap in Android entwickelten Anwendung zu generieren.
Jayprakash Dubey
Ich möchte diese Frage aktualisieren, da sie jetzt Ende 2016 ist und sich die plattformübergreifende Tool-Landschaft geändert hat. Ich würde sagen, es hängt von der Programmiersprache Ihrer Wahl ab und davon, wo Ihr Team am meisten XP hat: 1. JavaScript: Die Leistung von Phonegap ist auf Mobilgeräten schlecht. Daher wird die Verwendung von Tools mit nativen Komponenten empfohlen, aber JS für die Anwendungslogik wird empfohlen. Optionen sind V-Play ( v-play.net/apps ) oder React ( reactnative.com ). 2. C #: Xamarin ist dein Freund. 3. C ++: Verwenden Sie ein C ++ - Framework wie Qt ( qt.io ). Haftungsausschluss: Ich bin einer der Leute hinter V-Play, das auf Qt basiert.
Christian Feldbacher
Antwort: Flutter , es ist Googles neues Framework für die mobile Benutzeroberfläche, mit dem native Benutzeroberflächen in Rekordzeit auf iOS und Android erstellt werden können.
NaXa
Es gibt auch ein vielversprechendes aktives haxe.org- Projekt.
Eugene Gr. Philippov

Antworten:

104

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:

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

...

Ab dem 1. Januar 2012 wird [ Partikelcode ] die Plattform [ Partikel 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 in 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 ab. Außerdem gibt es ein Add-On zum Erstellen von AirPlay-Apps für PSP. Da mein C ++ sehr rostig ist, habe ich nicht viel damit gespielt, aber es sieht cool aus.

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.

DocDude
quelle
Ich habe über mehr Unternehmensentwicklung nachgedacht, aber Sie haben mich vielleicht dazu inspiriert, mir zum Spaß eines dieser SDKs anzuschauen.
Alister
Links zu jedem Framework wären nützlich
Petrus Theron
2
Update: Der Partikelcode wurde von Appcelerator, Hersteller von Titan, erworben, sodass das Schicksal des Partikel-SDK ungewiss ist. Airplay änderte seinen Namen unerklärlicherweise in "Marmelade".
DocDude
15

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.

Derek Beattie
quelle
12

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.

Evan
quelle
7

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.

yeoman
quelle
3
Übrigens scheint Android Aktivitäten, die nur in C ++ geschrieben wurden, direkt zu unterstützen: developer.android.com/reference/android/app/NativeActivity.html
yeoman
4
Mit einer Einschränkung - kein Java-Zugriff (also keine Bibliotheksintegration von Drittanbietern oder SDK-Zugriff) von NativeActivity. Macht es für viele Zwecke ungeeignet.
Rbgrn
6

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.

Roboterwald
quelle
3

Cappuccino oder PhoneGap .

Manchmal spart Ihnen der Versuch, eine Verknüpfung zu finden, weder Zeit noch ein vergleichbares Endprodukt.

SK9
quelle
3

Es gibt auch MoSync Mobile SDK

GPL und kommerzielle Lizenzierung. Es gibt einen guten Überblick über ihren Ansatz hier .

Roger Dahl
quelle
3

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.

Jeff
quelle
2

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.

rauben
quelle
3
Stand 30.05.12: 200 US-Dollar für die Lizenz für 5 oder weniger Entwickler. 800 US-Dollar für mehr als 5. Kann nicht für Open Source-Projekte verwendet werden.
Roger Dahl