PWA-sovellukset modernissa ohjelmistotuotannossa - Lahtinen, Lauri (My University, 2024)
Mobiilisovelluskehitys on pitkään keskittynyt natiivisovelluskehitykseen, jossa sovellus kehitetään kohdealustan kanssa yhteensopivaksi alustan ohjelmointikieliä ja työkaluja käyttäen. Tämän takia eri käyttäjäkuntien saavuttamiseksi natiivisovellukset on tullut kehittää useampaan kertaan eri alustoja varten. Alustariippumattomat, selainpohjaiset web-sovellukset saavuttavat kaikki mobiilikäyttäjien laitteet yhden ja saman koodipohjan kanssa. Niiltä kuitenkin puuttuu natiivisovellukselle tyypilliset ominaisuudet, kuten asennettavuus tai kyky toimia ilman verkkoyhteyttä. Web-teknologioiden kehittymisen seurauksena on kehittynyt uudenlainen sovellustyyppi, joka pystyy tarjoamaan nämä natiivisovelluksen kanssa tunnetut ominaisuudet: progressiivinen web-sovellus, eli PWA. PWA pyrkii yhdistämään natiivisovelluksen ja tavallisen web-sovelluksen parhaat ominaisuudet, mikä tekee siitä mahdollisen kilpailijan niiden rinnalle. Tässä tutkielmassa tarkastellaan progressiivisia web-sovelluksia sekä niiden eroja tavallisiin web-sovelluksiin ja natiivisovelluksiin mobiilisovelluskehityksen näkökulmasta. Tutkielman ensimmäisenä tavoitteena on kuvailla progressiivisen web-sovelluksen keskeisimmät kyvyt ja sen tekniset ominaisuudet sekä selvittää, mikä erottaa sen tavallisista web-sovelluksista. Toisena tavoitteena on löytää progressiivisen web-sovelluksen ja natiivisovelluksen merkittävimmät eroavaisuudet ja niistä mahdollisesti aiheutuvat hyödyt ja haitat niin sovelluskehittäjän että käyttäjän näkökulmasta. Tutkielma on toteutettu kirjallisuuskatsauksena. Selville saadaan kaksi web-teknologiaa, jotka erottavat tavalliset web-sovellukset progressiivisista web-sovelluksista. Tulokset myös osoittavat, että PWA mobiilisovellustyyppinä on varteenotettava vaihtoehto natiivisovelluksen korvaajaksi, vaikka sen kyvyissä ja hakukoneyhteensopivuudessa on vielä joitakin selkeitä puutteita.
Keywords: progressiivinen web-sovellus, PWA, web-sovellus, natiivisovellus, ohjelmistotuotanto