Mobiiliverkkokauppasovelluksen toteuttaminen monialustaisella teknologialla
Närhi, Matti (2021)
Lataukset:
Närhi, Matti
2021
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-2021111720417
https://urn.fi/URN:NBN:fi:amk-2021111720417
Tiivistelmä
Sovellusten kehittämiseen mobiililaitteille käytetään yleensä laitteiden käyttöjärjestelmien natiiveja teknologioita. Androidilla natiivina teknologiana käytetään yleensä Java-ohjelmointikieltä, kun taas iOS:llä teknologiana on yleensä Objective-C-ohjelmointikieli. Vaihtoehtona sovelluksen kehittämiselle natiivin teknologian avulla toimivat monialustaiset teknologiat, joita ovat muun muassa React Native ja Dart Flutter. React Native on Facebookin vuonna 2015 julkaisema sovelluskehys, joka perustuu Facebookin React-nimiseen JavaScript-kirjastoon. Dart Flutter puolestaan on Googlen vuonna 2018 julkaisema sovelluskehys, jonka taustalla toimii oliopohjainen Dart-ohjelmointikieli. React Nativea ja Dart Flutteria yhdistää se, että yhden lähdekoodin pohjalta saadaan toteutettua sovellus sekä Android- että iOS-alustalle.
Tässä insinöörityössä tutkittiin React Nativen ja Dart Flutterin toimintaperiaatteita sekä verrattiin näiden teknologioiden etuja ja rajoitteita natiiveihin teknologioihin nähden. React Nativen ja Dart Flutterin eduksi natiiveihin teknologioihin nähden osoittautui yhden lähdekoodin käyttö sovelluksen toteuttamiseen Android- ja iOS-alustoille. Tällöin ohjelmakoodin ylläpito on helpompaa, sillä ohjelmakoodista ei tarvitse alustojen vuoksi olla useampaa eri versiota. Lisäksi sovelluksen saa todennäköisesti julkaistua kummallekin alustalle nopeammalla aikataululla. React Nativen ja Dart Flutterin rajoitteena natiiveihin teknologioihin nähden on rajoitettu pääsy alustojen natiiveihin ominaisuuksiin ja palveluihin. Tällöin sovellus ei välttämättä ole yhteensopiva jonkin tietyn alustan natiivin ominaisuuden tai palvelun kanssa. Insinöörityössä verrattiin myös React Nativen ja Dart Flutterin eroavaisuuksia sekä näiden etuja ja rajoitteita. Dart Flutterin eduksi osoittautui parempi suorituskyky Material- ja Cupertino-kirjastojen käytön ansiosta. Dart Flutterin rajoitteena on puolestaan se, että se ei tällä hetkellä tue 3D-grafiikkaa käyttöliittymässä.
Insinöörityön aikana kehitettiin Dart Flutterilla verkkokauppasovellus, jolla pyrittiin havainnollistamaan Dart Flutterin ominaisuuksia sekä tarvittavan alustariippuvaisen määrittelyn määrä. Kaikki sovelluksen ominaisuudet saatiin toteutettua ilman alustariippuvaista koodia. Alustariippuvainen määrittely rajoittui tarvittavien käyttöoikeuksien määrittämiseen kameran ja tiedostojärjestelmän käyttöä varten.
Tässä insinöörityössä tutkittiin React Nativen ja Dart Flutterin toimintaperiaatteita sekä verrattiin näiden teknologioiden etuja ja rajoitteita natiiveihin teknologioihin nähden. React Nativen ja Dart Flutterin eduksi natiiveihin teknologioihin nähden osoittautui yhden lähdekoodin käyttö sovelluksen toteuttamiseen Android- ja iOS-alustoille. Tällöin ohjelmakoodin ylläpito on helpompaa, sillä ohjelmakoodista ei tarvitse alustojen vuoksi olla useampaa eri versiota. Lisäksi sovelluksen saa todennäköisesti julkaistua kummallekin alustalle nopeammalla aikataululla. React Nativen ja Dart Flutterin rajoitteena natiiveihin teknologioihin nähden on rajoitettu pääsy alustojen natiiveihin ominaisuuksiin ja palveluihin. Tällöin sovellus ei välttämättä ole yhteensopiva jonkin tietyn alustan natiivin ominaisuuden tai palvelun kanssa. Insinöörityössä verrattiin myös React Nativen ja Dart Flutterin eroavaisuuksia sekä näiden etuja ja rajoitteita. Dart Flutterin eduksi osoittautui parempi suorituskyky Material- ja Cupertino-kirjastojen käytön ansiosta. Dart Flutterin rajoitteena on puolestaan se, että se ei tällä hetkellä tue 3D-grafiikkaa käyttöliittymässä.
Insinöörityön aikana kehitettiin Dart Flutterilla verkkokauppasovellus, jolla pyrittiin havainnollistamaan Dart Flutterin ominaisuuksia sekä tarvittavan alustariippuvaisen määrittelyn määrä. Kaikki sovelluksen ominaisuudet saatiin toteutettua ilman alustariippuvaista koodia. Alustariippuvainen määrittely rajoittui tarvittavien käyttöoikeuksien määrittämiseen kameran ja tiedostojärjestelmän käyttöä varten.