Mobiilisovellus halutaan usein toteuttaa useammalle kuin yhdelle alustalle. Parasta mahdollista käyttökokemusta haettaessa kehitys joudutaan tekemään kaikille alustoille erikseen, sillä kolmella suurimmalla alustalla on kaikilla oma ohjelmointikielensä. Tämä on aikaavievää ja kallista.

Tällaisessa tilanteessa budjettia lupaa hillitä Xamarin-niminen teknologia.

 Xamarin on Microsoftin omistuksessa oleva yhtiö, jonka ratkaisulla voidaan toteuttaa sovelluksia kaikille kolmelle alustalle. Sen hyötynä on se, että ohjelmistokehitys tapahtuu käyttämällä kaikille yhteistä ohjelmointialustaa. Tämä mahdollistaa osan ohjelmakoodin uudelleenkäytön mobiilialustojen välillä. Ideana on se, että kehityksen suoraviivaistuessa myös siihen käytettävä työaika vähenee.

Kuinka paljon Xamarinin avulla voidaan sitten todella kierrättää muiden alustojen koodia? Säästääkö se rahaa kaikissa tilanteissa?

 Tutkimme uudelleenkäyttöprosenttia yhdessä toteuttamassamme isommassa sovelluksessa, jonka olemme tuottaneet Xamarin-alustan avulle kahdelle eri mobiilialustalle. Luvut ovat tuotettu laskemalla kooditiedostojen rivimäärät. Uudelleenkäytettävyysaste on laskettu kaavalla:

Xamarinin uudelleenkäytettävyyskaava

Projektissa yhteistä koodia 8 268 riviä.

  • Alusta 1, 10 018 riviä / 45% uudelleenkäytettävyysaste
  • Alusta 2, 17 267 riviä / 32% uudelleenkäytettävyysaste

Se, mikä lopulta mahdollistaa nopean tuotantoprosessin, laajennettavuuden ja uudelleenkäytön on tietysti tapauskohtaista. Kokemuksemme mukaan asiaan vaikuttavia tekijöitä ovat ainakin seuraavat asiat:

  • Kehittäjän alustatuntemus
  • Hyvät kehitystyökalut
  • Ilmaisuvoimainen ohjelmointikieli ja paradigmat
  • Työskentelytavat – ”workflow”
  • Ohjelmiston arkkitehtuurisuunnittelu
  • Ohjelmistokehitysperiaatteet (esim. tilan minimointi/eristäminen)
  • Alustan stabiilius ominaisuus- ja toimintamielessä

Listan kohdista erityisen tärkeä on saatavilla olevan työvoiman alustatuntemus. On ihan se ja sama, miten hyvä käytettävä teknologia on jos sitä ei osaa käyttää. Sama toimii käänteisesti: huonommalla teknologialla saa asioita nopeammin aikaiseksi jos ja kun tietää mitä tekee.

On ihan se ja sama, miten hyvä käytettävä teknologia on jos sitä ei osaa käyttää. Sama toimii käänteisesti: huonommalla teknologialla saa asioita nopeammin aikaiseksi jos ja kun tietää mitä tekee.

Onko Xamarin tai jokin muu alustariippumaton teknologia siis aina kustannustehokas vaihtoehto useamman alustan toteutukseen, mikäli kehitystiimisi vain tuntee työkalunsa tarpeeksi hyvin? Ei ihan niinkään. Päätökseen käyttää Xamarinia liittyy myös tiettyjä rajoitteita, jotka on syytä ottaa huomioon: Xamarinin kanssa tehtävien sovellusten pitkän aikavälin päivitys saattaa olla normaalia haastavampaa, sillä kolmannen osapuolen kirjastojen alustayhteensopivuus saattaa osoittautua ongelmalliseksi.

Edelleen nyrkkisääntönä kuitenkin voidaan pitää ”minkä taakseen jättää sen edestään löytää” – sanontaa. Sovelluksen alustariippumattoman koodin tekeminen on suunnittelun ja toteutuksen puolesta vaativaa. Mitä aikaisemmassa vaiheessa osataan ottaa huomioon sovelluksen erityiset vaatimukset (esimerkiksi offline-tuki) sitä paremmin tämä osa voidaan suunnitella.

Tiivistäen: Xamarin on hyvä vastaus monialustakehitykseen ja sen mahdollisuudet kannattaa selvittää uutta projektia aloittaessa. Oleellista soveltuvan teknologian löytymisen lisäksi on löytää tekijätiimi, jolla on jo ennestään kokemusta eri alustoista, joille sovellus tullaan toteuttamaan.

Voisit olla kiinnostunut myös näistä: