.NET MAUI - Multi-platform App UI

Squeeds Julkalender | 2021-12-17 | Mattias Brodén
På vår interna årliga heldagskonferens, SqueedBrew Tech, höll jag härom veckan en presentation om .NET MAUI. Detta är en kort sammanfattning av vad jag pratade om.

Inledning

MAUI står för Multi-platform App UI, och är precis som det låter, ett ramverk för att bygga appar för många olika platformar, både för mobil och desktop.

Från en och samma kodbas, där man använder C# och XAML, kan man kompilera appar för iOS, Android, macOS och Windows.

Tanken var att .NET MAUI skulle släppas som en del av .NET 6 i höstas, men tyvärr blev det försenat, och finns än så länge bara tillgängligt som preview.

Översikt

Man kan se .NET MAUI som en fortsättning på Xamarin.Forms, med den stora skillnaden att man nu även kan bygga appar för macOS och Windows.

Olika plattformars API:er ser såklart olika ut, och .NET 6 kommer att innehålla olika ramverk för dessa: .NET for Android, .NET for iOS, .NET for macOS och WinUI 3.

Det går att skriva sin app direkt mot dessa API:er, men då måste man skriva om den för respektive platform. Man kan visserligen återanvända gemensam kod för datahantering och logik eftersom den är skriven i C#, men bygger man sin app mot .NET MAUI kan man dela all kod.

Med .NET MAUI skriver du din app i XAML och C# mot en gemensam uppsättning användargränssnittskomponenter. MAUI innehåller sedan handlers, som är anpassade för de olika platformarna, och du som utvecklare behöver inte tänka på plattformarnas olikheter.

Installera preview

Vill du testa .NET MAUI idag är det enklast att göra det i Windows, med senaste Visual Studio Preview. Då kan du bygga appar för Windows, Android och (om du också har en mac med Xcode 13) för iOS.


Tyvärr måste du installera Preview-versionen av Visual Studio 2022 eftersom MAUI fortfarande bara finns som preview.

Välj Mobile development with .NET och kolla att .NET MAUI (Preview) är ikryssat.

Starta Visual Studio och skapa en MAUI app.

Multiplatform

Om man tidigare utvecklat appar med Xamarin är det första som slår en den nya projektstrukturen. Nu ligger allt i samma projekt, med kataloger för det platformsspecifika, istället för att ligga i separata projekt.

Att MAUI är en fortsättning på Xamarin.Forms ser man i XAML-koden som är väldigt snarlik.

XAML-koden ovan är från appen som skapas när man skapar ett nytt MAUI-projekt. Och om man kör den, utan några ändringar, på Android, iOS och Windows, ser det ut så här:

Avslutning

Det känns kostnadseffektivt att bara behöva implementera appen en gång, för alla platformar.

Jag tycker också att en fördel finns i just kombinationen XAML och C#, som inbjuder till en bra struktur och design av appen.

.NET MAUI är fortfarande bara en preview, och det märks. Ska man påbörja något nytt projekt är det fortfarande Xamarin.Forms som gäller. Men, det har utlovats bra möjligheter för att porta appar från Xamarin.Forms till .NET MAUI.

Just nu är planerad release Q2 2022.

 

Läs mer:

https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui