Cross-Platform Lösungen sind alle nicht nativ, oder?
Hier kann man nicht pauschal mit einem klaren Ja oder Nein antworten. Aber nehmen wir als Beispiel die Lösung von Microsoft. Das 2011 gegründete Xamarin und 2016 von Microsoft übernommene Unternehmen erlaubt erst einmal grundsätzlich auch die Entwicklung von zwei separaten Apps für Android und iOS.
Der klassische Ansatz vereinheitlicht die Programmiersprache durch die einheitliche Verwendung von C#. Trotzdem bleiben vor allem die Oberfläche und die Navigation erst einmal getrennt.
Dabei sind die verwendeten Controls in der Oberfläche an die nativen Original-Controls gebunden. Ein iOS-Button in Xamarin sieht so aus und verhält sich so wie ein iOS-Button, der von Swift angesteuert wird. Ebenso ist ein Label in Xamarin.Android wie ein Label, das von Kotlin bzw. Java angesprochen wird. Auch für die eher systemnahe Programmierung kann das ganz normale native API der jeweiligen Plattform vollumfänglich genutzt werden.
Richtig Cross-Platform wurde es eigentlich erst mit der Einführung von Xamarin.Forms 2014, das schnell populär wurde. Hier arbeitet man mit einer abstrakten Oberflächen-Beschreibungssprache namens XAML, mit der man ein Control wie einen Button mit seinen Eigenschaften definieren kann.
Ein solches Control wird dann mittels eines Default Renderer in das entsprechende native Control umgesetzt. Mit dem neuen, noch in der Entwicklung befindlichen Nachfolger .Net MAUI ist dies auf sogenannte Handler geändert worden, die noch flexibler sind.
So ist dieser Ansatz weiterhin nativ mit einer vereinheitlichenden Abstraktionsebene. Das hat Vor- und Nachteile. Trotzdem bleibt jederzeit die Möglichkeit für Entwickler, eine Ebene tiefer zu gehen und wieder direkt mit dem nativen Control zu arbeiten und das native API anzusprechen.
Cross-Platform Lösungen, die sehr webbasiert sind, arbeiten ähnlich, andere sind weiter weg von der nativen Ebene.
Flutter macht es anders
Einen ganz anderen Ansatz verfolgt die relativ neue Cross-Platform-Lösung von Google. In Flutter werden in keiner Abstraktionsebene native Controls gebunden, sondern man zeichnet auf einem 2D Canvas die Controls selbst. Dazu wird die in C/C++ geschriebene 2D Grafikbibliothek Skia für das schnelle Zeichnen verwendet.
Neben den bereits genannten Vorteilen bei der Verwendung von bestehendem Code für beide Plattformen gibt es noch weitere Aspekte.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
App-Entwicklung: Cross-Platform oder nativ programmieren? | Vorteile einer Cross-Platform-Umsetzung |
Ja, das ist in der Tat ein strittiger Punkt, man kann hier nicht pauschal mit einem...
Das ist ein sehr interessanter Artikel
"Develop once , deploy anywhere' wurde inzwischen wie oft versprochen? Hat es (ehrlich...
Bei den guten CrossPlatform Apps die Du suchst, erkennst Du es eben nicht leicht oder...