Zum Thema Controls selbst zeichen oder nicht - Google setzt mit Dart/Flutter auf genau den gleichen Ansatz wie FMX. Vulkan Treiber/Skia (C Vector Grafik Bibliothek) und darauf aufgesetzt die Controls. Und siehe da, die Apps laufen super performant.
Was ich damit sagen will - der Ansatz von Firemonkey ist denke ich gut, nur muss man halt die entsprechende Ressourcen in das Nachbauen der nativen Controls stecken. Wie es geht, zeigt Flutter.
Es geht mir auch gar nicht um die Performance. Die kann bei nachgebauten Controls auch durchaus schneller sein, wenn die GPU effizient genutzt wird. Es geht mir eher um die Akzeptanz der User. Ich weiß nicht genau wie es heute aussieht, aber zumindest bis letztes Jahr waren Apps, die nicht auf die systemeigenen UI-Komponenten gesetzt haben in den App-Stores selten gut bewertet (Außnahmen bilden hier Spiele und manche Media-Player).
Über Flutter kann ich gerade nichts sagen. Das befindet sich noch im Alpha-Stadium.
Wo es für mich interessant wird sind die Sensoren, Kameras, Systemintegration, etc.
Wie sieht es denn dabei mit den anderen IDEs / Frameworks aus, hat da jemand schonmal was Komplexeres gemacht ?
Ich sehe das es bei den Frameworks möglich ist, aber momöglich muss man da 100% die Grundlagen selber legen.
Oder täusche ich mich da, und die Hardwae von iOS/Android wird schon 100% gekapselt und unterstützt ?
Ich spreche jetzt nur über Xamarin. Bei den anderen Frameworks fehlt mir die Erfahrung.
Mit Xamarin hast du zunächst vollen Zugriff auf die nativen APIs jeder Plattform. Das heißt, du kannst mit Xamarin prinzipiell jede bestehende App nachbauen.
Nun willst du aber vermutlich nicht alle doppelt oder gar dreifach implementieren müssen, nur um ein Foto mit der Kamera aufzunehmen und es per REST-Call auf einem Server abzulegen. Dafür ist in Xamarin vieles gekapselt. Es gibt zahlreiche Bibliotheken, die Zugriffe auf native APIs hinter plattformunabhängigen Interfaces verstecken. Hier ein Beispiel aus MVVM-Cross:
https://www.mvvmcross.com/documentat...er?scroll=1208
Um ein Foto auf egal welcher Platffform aufzunehmen würde es daher prinzipiell reichen Folgendes zu tun:
Code:
var task = Mvx.Resolve<IMvxPictureChooserTask>().TakePicture((*Die Parameter lasse ich mal weg*))
Abstraktionen gibt es inzwischen für nahezu alles im Xamarin-Umfeld.
Beispiele gibt es für alles mögliche:
https://developer.xamarin.com/sample...rin-forms/all/
https://github.com/MvvmCross/MvvmCross