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 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.
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 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.
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.
Taustatiedostoon puolestaan määritetään napin painamisesta tapahtuva toimintalogiikka.
Käyttöliittymän yhdistäminen taustalla käytettäviin tietomalleihin tehdään binding-määritysten avulla.
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.
Tämän blogikirjoituksen on kirjoittanut asiantuntijamme Mikko Sallinen.
Haluatko kuulla lisää?
Ota yhteyttä!