Die Landschaft der plattformübergreifenden App-Entwicklung

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich verfolge diese Dinge nicht sehr genau, aber ich verstehe es. Wenn Sie eine native App für Android und iOS wünschen, wäre es sicherlich schön, sie nur einmal schreiben zu müssen, anstatt in zwei sehr unterschiedlichen Sprachen. Verdoppeln Sie ungefähr Ihre Reichweite, ohne die Arbeit zu verdoppeln. Immer mehr dieser Dinge reichen auch bis zum Desktop, was drei Ziele für eines bedeutet.

Sachen wie PhoneGap fallen mir ein. Sie sagen: "Nutzen Sie bestehende Webentwicklungsfähigkeiten, um schnell hybride Anwendungen zu erstellen, die mit HTML, CSS und JavaScript erstellt wurden." Das ist offensichtlich überzeugend für Webentwickler, die nur minimale neue Dinge lernen müssten. Mein Gehirn neigt eher zu: "Nun, wenn ich das Ding in HTML, CSS und JavaScript schreiben werde, warum lasse ich es nicht dabei?" Progressive Web Apps leisten großartige Arbeit. Dennoch bin ich neugierig, was die Flaggschiff-Apps von PhoneGap sind. Benutze ich großartige und weiß es nicht einmal?

Wenn Sie ein Framework aufsetzen, aber immer noch in der JavaScript-Welt bleiben, würde ich denken, dass der größte Akteur React Native ist. Ich höre, es wird heutzutage fast immer mit Expo verwendet, das anscheinend etwas hat, das React Native im Web funktionieren lässt. Außerdem gibt es buchstäblich React Native for Web.

In der React-Welt gibt es einen weiteren neuen Akteur: Ionic React. Es zielt direkt von Anfang an auf alle drei Plattformen (iOS, Android und Desktop) ab. Ionic ist jedoch nicht neu – es ist seit langem ein Framework, das dies in JavaScript (alternativ in Angular) tut und bald auch für Vue verfügbar sein wird. Überzeugend. Nader Dabit hat einen ersten Blick-Blogbeitrag, der ziemlich gut gemacht ist.

Das alles wird für mich langsam verwirrend, da Ionic unter der Haube anscheinend Cordova verwendet … genau wie PhoneGap? Oder so? Aber jetzt wechselt Ionic zu etwas Eigenem? Ich denke, es ist sinnvoll, dass es einige Low-Level-Interpreter-Dinge gibt, die Web-Primitive in native Primitive übersetzen und dass Leute Entwickler-Tools darauf aufbauen.

Google hat mit Flutter ein Interesse an diesem Spiel. Flutter zielt darauf ab, alle drei Ziele zu erreichen und Ihnen beim Aufbau der Benutzeroberfläche zu helfen. Material Design, Animation und Leistung sind allesamt erstklassige Bürger. Es ist jedoch alles in Dart. Dart kann zu JavaScript kompiliert werden (so dass es für Web-Sachen verwendet werden kann), aber es kompiliert auch zu Maschinencode. Ich stelle mir vor, dass Flutter-Apps für zusätzliche Leistung auf diese Weise kompiliert werden, wenn sie zu nativen Apps werden. Ich habe kein gutes Gefühl dafür, wie beliebt Dart ist, aber ich würde annehmen, dass Webentwickler es wirklich nicht interessiert, in was sie schreiben, wenn großartige Leistung auf allen drei Zielen das Ergebnis ist.

Noch weiter außerhalb meines Fachgebiets liegt Xamarin, die Antwort von Microsoft auf die Vereinheitlichung der Entwicklung auf mehreren Plattformen. Die beteiligten Sprachen sind .NET und C#. Es hat die gleichen Versprechungen wie alles andere: Bauen Sie damit und es funktioniert überall! Das ist für die Bequemlichkeit der Entwickler! Es ist schnell und Sie werden damit erstaunliche Dinge machen!

Ich bin bei all diesen Dingen immer zwiegespalten. Ein Teil von mir beneidet wirklich schöne native Apps. Die meisten meiner Lieblings-Apps auf meinem Handy fühlen sich sehr nativ an, obwohl ich nicht sicher bin, welches Framework sie erstellt hat, falls überhaupt. Zum Beispiel habe ich eine Dribbble-App auf meinem Handy und sie gefällt mir sehr gut. Sie ist einfach und nett. Ich öffne sie und bin angemeldet, was bei Web-Apps normalerweise nicht der Fall ist. Sie fühlt sich schnell an und hat all die In-Page-Animationen, die man von einer nativen App erwartet. Ich wünschte mir total, wir hätten eine solche App für CodePen. Vielleicht, wenn wir heute neu anfangen würden, würden wir sie mit einem plattformübergreifenden Framework schreiben, das alle drei Plattformen abdeckt und uns vielleicht einen coolen Wettbewerbsvorteil verschafft. Ein anderer Teil von mir denkt: Meh, ich bin absichtlich ein Web-Typ. Ich denke, das native offene Web ist der richtige Ort, um zu sein und hat die meiste Langlebigkeit. Eine Codebasis, die das gut bedient, wird im Laufe der Zeit am wenigsten bereut.