.NET Multi-platform App UI (MAUI) mobiilisovellusten kehityksessä

Useasti asiakkaiden tarpeissa on tullut vastaan mobiiliversion toteuttaminen sovelluksesta. Web sovelluksissa mobiiliversion voi toteuttaa helposti käyttämällä responsiivista käyttöliittymää. Tämä ei kuitenkaan ole riittävä toteutustapa kaikissa tapauksissa, jolloin ainoaksi vaihtoehdoksi jää natiivin mobiilisovelluksen toteuttaminen. Sovelluksesta on kuitenkin tehtävä omat versionsa eri alustoille, joka kasvattaa työmäärää merkittävästi.

.NET MAUI arkkitehtuuri

Microsoft tarjoaa ratkaisuna tähän ongelmaa .NET MAUI (Multi-platform App User Interface) ohjelmistoympäristöä, jonka avulla voi luoda helposti ”cross-platform” sovelluksia. Avoimen lähdekoodin .NET MAUI perustuu aikaisempaan Xamarin Forms tekniikkaan, jolla .NET sovelluksia on voinut toteuttaa usealla eri alustalle. Hyötynä .NET MAUI:n käyttämisessä on, että saman lähdekoodin voi julkaista eri alustoille ja jokaista alustaa varten ei tarvitse tehdä erillisiä versioita. Samalla on myös mahdollista toteuttaa yhtenäinen käyttöliittymä, niin käyttöliittymän asettelun kuin muotoilun osalta.

.NET Multi-platform App UI (MAUI)

.NET MAUI:n käytön aloittaminen

Sovelluksen toteuttamisessa voidaan käyttää Microsoft-kehitysmaailmasta tuttuja tekniikoita, joiden taustalla on käytössä yksi .NET MAUI rajapinta, jonka kautta sovellus toimii eri alustoilla. Tämän lisäksi jokaista alustaa varten on .NET Framework kirjastot, joiden avulla saadaan määritettyä esim. käyttöliittymä tarkemmin alustakohtaisesti.

.NET kehityksessä käyttävässä Visual Studio (versiosta 2017 eteenpäin) ohjelmointityökalussa on valmiina .NET MAUI tuki kehitysympäristölle. iOS/macOS ympäristöä varten on oltava myös viimeisin Xcode versio asennettuna. Tämän lisäksi tarvitaan myös itse laite sovelluksen ajamista varten sekä Apple ID/Apple Developer tili. Android ympäristöä varten voidaan käyttää sisäänrakennettua emulaattoria ja varsinaista Android laitetta ei tarvitse olla kehityksen aloittamista varten.

.NET Multi-platform App UI

Sovelluksen pohjan luonti

Sovelluksen pohja luodaan Visual Studiolla valitsemalla projektin tyypiksi .NET MAUI sovellus. Muutoin sovelluksen luonti noudattaa samoja vaiheita kuin minkä tahansa muun tyyppisen sovelluksen luonti.

.NET MAUI sovellus on suunniteltu ajettavaksi usealla eri alustalla. Tämän vuoksi haluttu alusta on valittava ennen sovelluksen käynnistämistä. Android alustaa varten on käytettävissä emulaattori, jolloin ei ole tarvetta varsinaiselle Android laitteelle.

.NET Multi-platform App UI

.NET MAUI sovelluksen rakenne

Visual Studio luo projektipohjan rakenteen automaattisesti. Seuraavassa on lyhyesti kuvattu projektipohjan tiedostot ja niiden käyttötarkoitus.

  • cs
    • ”Bootstrap” tiedosto, joka määrittelee sovelluksen latautumisen.
  • xaml / App.xaml.cs
    • Xaml-tiedosto sisältää käyttöliittymän pohjan sovellukselle, kuten värien ja tyylien määritykset.
  • xaml / AppShell.xaml.cs
    • Tiedosto määrittää sovelluksen visuaalisen hierarkian kuten sovelluksessa käytettävät sivut.
  • xaml / MainPage.xaml.cs
    • Sisältää sovelluksen käyttöliittymän pääsivun.

.NET Multi-platform App UI

Sivuston rakenne ja yhdistäminen dataan

Kaikki sovelluksen sivut koostuvat xaml-tiedostoista, joilla on myös C# koodia sisältävä taustatiedosto. Xaml-tiedostoon määritetään näytettävä käyttöliittymä ja taustatiedostoon toimintalogiikka. Sovelluksen kehittäminen on hyvinkin suoraviivaista ja eikä vaadi paljon opiskelua.

Alla esimerkiksi xaml-tiedostoon määritetystä napista.

.NET Multi-platform App UI

Taustatiedostoon puolestaan määritetään napin painamisesta tapahtuva toimintalogiikka.

.NET Multi-platform App UI

Käyttöliittymän yhdistäminen taustalla käytettäviin tietomalleihin tehdään binding-määritysten avulla.

.NET Multi-platform App UI

 

Hyödyt ja haitat .NET MAUI:n käyttämisessä

Suurimmat hyödyt .NET MAUI:n käyttämisessä ovat yhtenäinen kehitysympäristö sekä saman koodipohjan käyttäminen eri ympäristöissä. Alla on listattu vielä yhteenvetona muutamia tärkeimpiä hyötyä .NET MAUI käyttämisestä.

  • Yksi toteutus sovelluksesta voidaan julkaista kaikkiin ympäristöihin.
  • Sovellusta varten tarvitaan vain yksi kehitysympäristö.
  • Yhtenäinen ulkoasu eri alustojen välillä.
  • ”Hot reload”, jonka avulla tehdyt muutokset tulevat heti käyttöön.

Vaikka .NET MAUI helpottaa merkittävästi mobiilisovellusten kehittämistä, niin siihen sisältää myös muutamia haittoja verrattuna natiiveihin mobiilisovelluksiin.

  • Rajoitukset käyttävissä olevissa alustakohtaisissa ominaisuuksissa.
  • Yhtenäinen ulkoasu eri alustojen välillä.
    • Kaikkia alustan ominaisuuksia ei voida hyödyntää tehokkaasti.

 

Lisätietoa .NET MAUI sovellusten kehityksen aloittamiseen löytyy Microsoftin dokumentaatiosta.

 

Mikko Sallinen

Tämän blogikirjoituksen on kirjoittanut asiantuntijamme Mikko Sallinen.

 

Haluatko kuulla lisää?

Ota yhteyttä!