Angular-sovelluksen tilanhallinta NgRx-kirjastolla
Haapavaara, Ville (2018)
Haapavaara, Ville
Tampereen ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018120119393
https://urn.fi/URN:NBN:fi:amk-2018120119393
Tiivistelmä
Opinnäytetyössä käsitellään Angular-sovellusten tilanhallintaa NgRx-kirjastolla. Opinnäytetyön toimeksiantaja oli tamperelainen DiCode Oy. DiCoden projekteissa oli ollut haasteita sovelluksen tilanhallinnassa. Eri puolilla sovellusta esitettävän saman tilan tuli olla käyttäjän toimista riippumatta aina ajan tasalla. Tämän lisäksi tilanhallinnan tuli olla mahdollisimman optimoitua. Ratkaisuksi tällaisiin haasteisiin mietittiin tilanhallintakirjastoa.
Tilanhallintakirjastojen käytöstä oli kuultu paljon hyvää. Tämän vuoksi opinnäytetyössä haluttiin selvittää, pitävätkö nämä huhut paikkansa ja millaisia ratkaisuja kirjasto tarjosi sovellusten tilan hallitsemiseksi. Koska DiCodella kehitettyjen sovellusten käyttöliittymät oli toteutettu Angular-kehyksellä, päädyttiin selvitystyössä tutkimaan Angular-sovelluksille suunnattua NgRx-tilanhallintakirjastoa. Tavoitteena oli löytää ratkaisuja sovelluksen tilanhallinnallisiin haasteisiin nimenomaan NgRx-kirjastoa hyödyntämällä.
NgRx-kirjaston tarpeellisuuden ja toimivuuden selvittämiseksi ohjelmoitiin pieni esimerkkisovellus. Esimerkkisovelluksen tilanhallinta toteutettiin käyttämällä NgRx-kirjastoa. Sovelluksessa käytettiin NgRx:n tehtäviä, vähentäjiä, varastoa ja valitsimia. Tilanhallinnan toteuttaminen NgRx:llä vaatii yleisen käsityksen mukaan paljon pohjakoodia, mutta sen määrää ei opinnäytetyön edetessä pidetty kuitenkaan liiallisena. Lisäksi esimerkkisovelluksen kehittämisen aikana miellyttiin ajatukseen, jossa sovelluksen tilaa hallitaan sovelluksessa lähetettävien tehtävien kautta.
NgRx on monipuolinen kirjasto Angular-sovelluksen tilanhallintaan. Sen avulla voidaan sovelluksen tilanhallinta eriyttää helposti omaksi sovellusosakseen. NgRx myös tukee Angularin moduuliajattelua, ja sen käyttäminen ohjaa yleisesti hyvänä pidettyyn Angular-sovelluksen sovellusarkkitehtuuriin. NgRx:n käyttäminen edellyttää kuitenkin erinomaista RxJS-kirjaston tuntemusta. Selvitystyöhön tehty esimerkkisovellus on pieni sovellus. Tämän vuoksi tarkka kuva NgRx:n tarpeellisuudesta ja toimivuudesta saadaan, kun kirjasto otetaan käyttöön monimutkaisessa sovelluksessa.
Tilanhallintakirjastojen käytöstä oli kuultu paljon hyvää. Tämän vuoksi opinnäytetyössä haluttiin selvittää, pitävätkö nämä huhut paikkansa ja millaisia ratkaisuja kirjasto tarjosi sovellusten tilan hallitsemiseksi. Koska DiCodella kehitettyjen sovellusten käyttöliittymät oli toteutettu Angular-kehyksellä, päädyttiin selvitystyössä tutkimaan Angular-sovelluksille suunnattua NgRx-tilanhallintakirjastoa. Tavoitteena oli löytää ratkaisuja sovelluksen tilanhallinnallisiin haasteisiin nimenomaan NgRx-kirjastoa hyödyntämällä.
NgRx-kirjaston tarpeellisuuden ja toimivuuden selvittämiseksi ohjelmoitiin pieni esimerkkisovellus. Esimerkkisovelluksen tilanhallinta toteutettiin käyttämällä NgRx-kirjastoa. Sovelluksessa käytettiin NgRx:n tehtäviä, vähentäjiä, varastoa ja valitsimia. Tilanhallinnan toteuttaminen NgRx:llä vaatii yleisen käsityksen mukaan paljon pohjakoodia, mutta sen määrää ei opinnäytetyön edetessä pidetty kuitenkaan liiallisena. Lisäksi esimerkkisovelluksen kehittämisen aikana miellyttiin ajatukseen, jossa sovelluksen tilaa hallitaan sovelluksessa lähetettävien tehtävien kautta.
NgRx on monipuolinen kirjasto Angular-sovelluksen tilanhallintaan. Sen avulla voidaan sovelluksen tilanhallinta eriyttää helposti omaksi sovellusosakseen. NgRx myös tukee Angularin moduuliajattelua, ja sen käyttäminen ohjaa yleisesti hyvänä pidettyyn Angular-sovelluksen sovellusarkkitehtuuriin. NgRx:n käyttäminen edellyttää kuitenkin erinomaista RxJS-kirjaston tuntemusta. Selvitystyöhön tehty esimerkkisovellus on pieni sovellus. Tämän vuoksi tarkka kuva NgRx:n tarpeellisuudesta ja toimivuudesta saadaan, kun kirjasto otetaan käyttöön monimutkaisessa sovelluksessa.