Android-sovelluksen migraatio näkymäpohjaisesta mallista Compose-komponenteiksi
Kosonen, Sirja (2024)
Kosonen, Sirja
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024051311092
https://urn.fi/URN:NBN:fi:amk-2024051311092
Tiivistelmä
Insinöörityön tavoitteena oli perehtyä syvemmin Android-sovelluskehitykseen ja toteuttaa Android-sovellukselle migraatio näkymäpohjaisesta mallista Jetpack Composea hyödyntävään tekniikkaan. Tarkoituksena oli tutustua Android-sovelluskehityksen ohjelmointikieliin ja yleisimpiin kehitystekniikoihin sekä niiden eroihin, jotta ymmärrettäisiin paremmin, miksi natiivi Android-sovelluskehitys on siirtymässä Javasta Kotliniin ja näkymäpohjaisesta käyttöliittymästä deklaratiiviseen Jetpack Composeen. Lisäksi työssä perehdyttiin siihen, mitä deklaratiivinen ohjelmointi tarkoittaa, ja mitä ohjelmointiparadigmat ovat.
Selvitystyössä kävi ilmi, että Kotlin on Javaa helppolukuisempaa, tarjoaa Javaa nykyaikaisempia ominaisuuksia ja tiiviimmän syntaksin. Yksi Kotlinin parhaimmista ominaisuuksista on kielen suoja tyhjiin muuttujiin, mikä vastaavasti on yksi Javan suurimmista heikkouksista. Lisäksi Kotlin on täysin yhteensopiva Javan kanssa. Kotlinilla kirjoitetusta toimintalogiikasta voidaan kutsua Java-koodia ja päinvastoin. Samaan tapaan Jetpack Compose on täysin yhteensopiva näkymäpohjaisen sovelluksen kanssa, mikä mahdollistaa sovelluksen migraation Jetpack Composeen pala palalta.
Selvitystyön avulla perehdyttiin Android-sovelluksen migraatioon perinteisestä näkymäpohjaisesta mallista Jetpack Composea hyödyntävään tekniikkaan. Tämä niin kutsuttu migraatioprosessi oli määrä suorittaa näkymäpohjaiselle Android-sovellukselle, mutta käytännön migraatiolle varattu aika täyttyi jo hieman ennen täyden migraation saavuttamista. Migraation kohdesovelluksen kaikkien fragmenttien sisältö ja valtaosa aktiviteeteista saatiin muutettua Jetpack Composen komposiiteiksi. Migraation ulkopuolelle jäi kaksi aktiviteettia, sovelluksen navigaatio ja migraatio SharedPreferences-tekniikasta DataStoreen. Työn keskeneräisyydestä huolimatta havaittiin, että Jetpack Composen käyttö vähensi kohdesovelluksen koodirivien määrää alkuperäisestä 3 300 rivistä 3 025 riviin eli yhteensä 275 rivillä. Lisäksi koodista saatiin migraation myötä luettavampaa ja erityisesti listojen tekninen toteutus yksinkertaistui huomattavasti.
Selvitystyössä kävi ilmi, että Kotlin on Javaa helppolukuisempaa, tarjoaa Javaa nykyaikaisempia ominaisuuksia ja tiiviimmän syntaksin. Yksi Kotlinin parhaimmista ominaisuuksista on kielen suoja tyhjiin muuttujiin, mikä vastaavasti on yksi Javan suurimmista heikkouksista. Lisäksi Kotlin on täysin yhteensopiva Javan kanssa. Kotlinilla kirjoitetusta toimintalogiikasta voidaan kutsua Java-koodia ja päinvastoin. Samaan tapaan Jetpack Compose on täysin yhteensopiva näkymäpohjaisen sovelluksen kanssa, mikä mahdollistaa sovelluksen migraation Jetpack Composeen pala palalta.
Selvitystyön avulla perehdyttiin Android-sovelluksen migraatioon perinteisestä näkymäpohjaisesta mallista Jetpack Composea hyödyntävään tekniikkaan. Tämä niin kutsuttu migraatioprosessi oli määrä suorittaa näkymäpohjaiselle Android-sovellukselle, mutta käytännön migraatiolle varattu aika täyttyi jo hieman ennen täyden migraation saavuttamista. Migraation kohdesovelluksen kaikkien fragmenttien sisältö ja valtaosa aktiviteeteista saatiin muutettua Jetpack Composen komposiiteiksi. Migraation ulkopuolelle jäi kaksi aktiviteettia, sovelluksen navigaatio ja migraatio SharedPreferences-tekniikasta DataStoreen. Työn keskeneräisyydestä huolimatta havaittiin, että Jetpack Composen käyttö vähensi kohdesovelluksen koodirivien määrää alkuperäisestä 3 300 rivistä 3 025 riviin eli yhteensä 275 rivillä. Lisäksi koodista saatiin migraation myötä luettavampaa ja erityisesti listojen tekninen toteutus yksinkertaistui huomattavasti.