Schon mal von .NET MAUI gehört? Wenn du heute eine mobile App entwickelst, stehst du fast immer vor der gleichen Herausforderung: Soll die App für iOS, Android, Windows oder sogar macOS verfügbar sein? Mit klassischer Entwicklung würdest du mehrere Teams und Codebases benötigen – doch genau hier kommt .NET MAUI (Multi-platform App UI) ins Spiel.
- 1 Was ist .NET MAUI?
- 2 Warum solltest Du MAUI nutzen?
- 3 Typische Einsatzszenarien von MAUI
- 4 Auf welchen Plattformen laufen MAUI Apps?
- 5 Die Vorteile für Entwickler
- 6 Praxisbeispiel 1: Erste Schritte mit .NET MAUI
- 7 MAUI Praxisbeispiel 2: Zugriff auf native Features: Kamera
- 8 Schwächen von .NET MAUI
- 9 Fazit
Was ist .NET MAUI?
.NET MAUI ist der offizielle Nachfolger von Xamarin.Forms und ermöglicht dir, mit nur 1 Codebase Apps für iOS, Android, Windows und macOS zu entwickeln. Für das Frontend wird in XAML verwendet, das Backend benutzt C#.
Darüber hinaus können WebViews mit JavaScript InterOPs zusammen mit nativen MAUI-Controls auf einer Seite verwendet werden. Das eröffnet nahezu unbegrenzte Möglichkeiten in Design und Funktionalität.
MAUI basiert auf .NET 9 und bringt somit eine moderne Architektur mit, die sich perfekt für performante und wartbare Projekte eignet. Kurz gesagt: Einmal entwickeln, überall deployen.
Warum solltest Du MAUI nutzen?
- Cross-Platform: Eine App, mehrere Plattformen – das spart Zeit und Geld.
- Native Performance: Deine App fühlt sich nativ an, da sie direkt auf die nativen APIs zugreift.
- Modernes UI: Dank XAML und C# kannst du flexible, wiederverwendbare UIs erstellen.
- Großes Ökosystem: Du profitierst von der Power des gesamten .NET-Universums.
Typische Einsatzszenarien von MAUI
- Unternehmens-Apps, die intern auf verschiedenen Geräten laufen müssen
- Mobile Apps mit paralleler Desktop-Version (z. B. Tools, Dashboards)
- Startups, die schnell einen Prototypen auf allen Plattformen launchen wollen
Auf welchen Plattformen laufen MAUI Apps?
Diese Tabelle gibt Dir eine Übersicht, auf welchen Plattformen .NET MAUI Apps laufen. Hierbei gibt es speziell bei den mobilen Plattformen Unterschiede, zwischen dem was offiziell unterstützt wird und was in der Praxis tatsächlich funktioniert.
Trotz der Diskrepanz läuft MAUI auf den meisten Mobilgeräten ab ca. 2017 stabil:
Betriebsystem | Lauffähig ab |
---|---|
Android | API 21 (Android 5) Best Practice: Ab API 27 (Android 8.1, entspricht z.B. Google Pixel 1 Phone) Apps < API 27 laufen leider nicht stabil, insbesondere wenn CollectionViews verwendet werden. |
iOS | iOS 12 Best Practice: Ab iOS 15.5 (iPhone 8) Zum Compilieren wird Apple XCode benötigt. Das aktuelle XCode unterstützt Apps ab iOS 15.5. Ältere iOS-Versionen benötigen eine ältere XCode-Version. |
macOS | macOS 12 (Monterey) |
Windows | Windows 10 Build 1809 |
Die Vorteile für Entwickler
Du musst dich nicht mehr entscheiden, ob du zuerst eine iOS- oder eine Android-Version baust. Mit MAUI entwickelst du Features einmal in C# und kannst sie auf allen Plattformen ausrollen. Dabei profitierst du von Hot Reload, MVU/MVVM-Support und starken Debugging-Tools.
Praxisbeispiel 1: Erste Schritte mit .NET MAUI
Schauen wir uns ein kurzes Beispiel an. So einfach kannst du mit XAML ein UI definieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HelloMaui.MainPage"> <VerticalStackLayout Spacing="25" Padding="30"> <Label Text="Willkommen bei .NET MAUI!" FontSize="24" HorizontalOptions="Center" /> <Button Text="Klick mich!" Clicked="OnButtonClicked" /> </VerticalStackLayout> </ContentPage> |
Und im Code-Behind (C#) fügst du die Logik hinzu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
namespace HelloMaui; public partial class MainPage : ContentPage { int count = 0; public MainPage() { InitializeComponent(); } private void OnButtonClicked(object sender, EventArgs e) { count++; (sender as Button).Text = $"Du hast {count} Mal geklickt!"; } } |
Dieses kleine Beispiel läuft auf Android, iOS, Windows und macOS – ohne, dass du den Code anpassen musst.
MAUI Praxisbeispiel 2: Zugriff auf native Features: Kamera
Mit MAUI kannst du auch ganz leicht native Gerätefunktionen nutzen. Beispiel: ein Foto mit der Kamera aufnehmen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using Microsoft.Maui.Media; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private async void OnTakePhotoClicked(object sender, EventArgs e) { try { FileResult photo = await MediaPicker.CapturePhotoAsync(); if (photo != null) { var stream = await photo.OpenReadAsync(); myImage.Source = ImageSource.FromStream(() => stream); } } catch (FeatureNotSupportedException) { await DisplayAlert("Fehler", "Kamera wird auf diesem Gerät nicht unterstützt.", "OK"); } catch (PermissionException) { await DisplayAlert("Fehler", "Keine Berechtigung für Kamera.", "OK"); } } } |
Und im XAML kannst du dazu einen Button und ein Image einfügen:
1 2 3 4 5 |
<VerticalStackLayout Spacing="20" Padding="20"> <Button Text="Foto aufnehmen" Clicked="OnTakePhotoClicked" /> <Image x:Name="myImage" HeightRequest="200" /> </VerticalStackLayout> |
Damit hast du eine plattformübergreifende Foto-Funktion, die auf Android, iOS, macOS und Windows läuft – jeweils mit der nativen Kamera-API.
Schwächen von .NET MAUI
So stark MAUI auch ist, es gibt aktuell noch einige Schwächen, die du kennen solltest. Eine der größten Diskussionen betrifft die Performance der CollectionView. Bei großen Datenmengen oder komplexen UI-Layouts kann die Darstellung spürbar langsamer werden als in nativen Projekten. Das betrifft vor allem Endloslisten, Grids oder sehr viele Bindings.
Workarounds sind unter anderem:
- Virtualisierung richtig nutzen, um nur sichtbare Elemente zu rendern.
- UI vereinfachen und komplexe Layouts vermeiden.
- Auf Alternativen wie CommunityToolkit Controls zurückgreifen, die teilweise besser optimiert sind.
Microsoft arbeitet aktiv an Verbesserungen, aber du solltest diese Schwäche einplanen, wenn deine App stark auf Listen und Datenvisualisierung setzt.
Beispiel für eine MAUI CollectionView:
Fazit
Wenn du nach einer Lösung suchst, um mobile Cross-Platform Apps effizient zu entwickeln, ist .NET MAUI aktuell eine der spannendsten Optionen. Es kombiniert native Performance, eine zentrale Codebasis und die Flexibilität von .NET.
Starte jetzt mit .NET MAUI und entwickle deine nächste App schneller, günstiger und zukunftssicher!