Ääni vapaudelle mobiilisovellus
Syksyllä 2018 joukko aktiivisia kansalaisia lähti ajamaan muutosta suomalaiseen politiikkaan. Tavoitteena oli toteuttaa uudenlainen kampanjointimuoto, jossa yksilöiden kanssa käydyt keskustelut olivat pääosassa. Keskusteluiden tarkoituksena oli sitouttaa kansalaisia mukaan kampanjaan ja käyttämään äänioikeutensa.
Kampanjoinnin johtamisjärjestelmäksi valittiin NationBuilder. Se mahdollistaa suoran viestinnän rekisterissä oleville henkilöille, aktivoivien verkkosivujen toteutuksen sekä tukijoiden tekojen seurannan. Järjestelmä kuitenkin puuttuu mahdollisuus liittyä mukaan kansanliikkeeseen mobiililaitteen avulla.

Oddy Tech ehdotti mobiilisovellusta
Oddy Tech ehdotti tarpeeseen ratkaisuksi mobiilisovellusta. Sovelluksen kautta olisi mahdollista viestiä suoraan käyttäjien kanssa, käyttäjät pystyisivät tekemään tukijahankintaa ja kaikki kampanjan tiedot voitaisiin koota johtamisjärjestelmään. Saadun tiedon avulla Vapaiden valtakunta -kampanjaa pystyttäisiin johtamaan suunnitellusti ja tavoitteellisesti. Lopputuloksena oli Android- ja iOs-järjestelmille luotu Ääni vapaudelle -sovellus.
”Yhteydenpito Oddy Tech:n kanssa oli toimivaa ja ripeää. Lopputuloksesta voimme olla kaikki ylpeitä – kyseessä on historian ensimmäinen suomalainen kampanjasovellus, joka toiminnallaan tukee vahvasti käytössä olevaa järjestämisen toimintamallia.”
– Antti Mäki, Työväen Sivistysliitto TSL ry:n digitaalisten palvelujen vastaava
Ääni vapaudelle -sovellus toimi kentällä erinomaisesti ja palaute oli positiivista. Kun aiemmin on totuttu pyörittämään papereita, voidaan nyt todeta, että kampanjointia tuotiin aimo harppauksella nykyaikaan. Kampanjan aktiivit haastoivat yhteisöissään tukijoita mukaan kampanjaan ja sovelluksen kautta tiedot rekisteröityvät vaivatta käyttämäämme henkilörekisteriin.

Toteutuksen kulku ja tekninen kuvaus
Mobiilisovellus suunniteltiin ja toteutettiin Oddy Techin prosessien mukaisesti. Sovelluksella vastattiin kampanjan tarpeeseen, joten toteutuksen aikataulu oli tiukka. Tämän ei kuitenkaan annettu vesittää toteutuksen kestävää kehitysmallia, ketteriä menetelmiä eikä tietoturvallisuutta.
Asiakkaan puolelta hankkeeseen sitoutettiin projektivastaava, jolta saimme nopeasti vastauksia projektin edetessä. Alkuvalmisteluiden jälkeen sovellusta päästiin toteuttamaan ketterästi ja tehokkaasti, asiakkaan aktiivisen otteen ansiosta.
1. Toiminnallisuuksien kartoitus (Määrittelypalaveri)
Hanke aloitettiin määrittelypalaverilla, johon osallistui projektijohto molemmilta osapuolilta. Siinä määriteltiin tarvittavat ominaisuudet sekä niiden tarkoitukset. Käytämme määrittelypalavereissa hyväksi havaittua runkoa, jotta pääsemme samalle aaltopituudelle mahdollisimman tehokkaasti.
2. MVP vaatimusmäärittely (Palvelukuvaus)
Määrittelypalaverin jälkeen jokaisesta ominaisuudesta tehtiin palvelukuvaus, mistä kävi ilmi mitä tekniikoita tullaan käyttämään ja miten ominaisuudet tullaan toteuttamaan. Asiakas voi vapaasti vielä muuttaa tai lisätä MVP toteutukseen ominaisuuksia.
Toteutamme projektit aina ketterillä ohjelmistokehityksen menetelmillä. Tämä mahdollistaa ominaisuuksien ja toiminnallisuuksien lisäämisen myös projektin edetessä. Heti ensimmäisen virallisen julkaisun jälkeen saimme arvokasta käyttäjäpalautetta ja niihin pystyttiin reagoimaan nopeasti, keskeyttämättä sovittujen ominaisuuksien kehitystä.
3. Prototyyppi (Visuaalinen proto)
Mobiilisovelluksesta tehtiin palvelukuvauksen mukainen prototyyppi, joka toimi demottavana alustana asiakkaalle. Prototyyppi ei sisällä lopullisia toiminnallisuuksia, mutta kertoo mitä mistäkin nappulasta tapahtuu.
Prototyyppi tarjoaa molemmille osapuolille vielä paremman kuvan siitä, mitä ollaan tekemässä. Samalla päästään poistamaan mahdolliset väärinymmärrykset.
Ylläolevat vaiheet on kuvattu prosessissamme.

4. Tekninen toteutus
Prototyyppi hyväksyttiin ja käytiin vielä asiakkaan ja kehitystiimin kanssa yhteisesti läpi. Tämän jälkeen alkoi tekninen toteutus eli varsinainen koodaus.
5. Julkaisu
Ketterän ohjelmistokehityksen ansiosta kaikkia lopullisia ominaisuuksia ei ensimmäiseen 1.0 versioon edes haaveiltu. Ensimmäisessä versiossa sovelluskauppoihin julkaistiin vain tärkeimmät ja tarvittavat ominaisuudet. Muiden ominaisuuksien toteutusta jatkettiin taustalla. Mobiilisovellus liittyi kampanjaan, joten oli erittäin tärkeää saada ensimmäinen versio mahdollisimman nopeasti käyttöön.
Mobiilisovelluksesta tehtiin yhteensä 3 virallista versiojulkaisua, joista ensimmäinen tapahtui 6.5 viikkoa projektin kehitystyön aloituksesta.


Tekninen kuvaus ratkaisusta
Prototyypin pohjalta alettiin alustamaan rinnakkain mobiilisovellusta sekä rajapintasiltaa.
Projekti toteutettiin hybridi mobiilisovelluksena. Tällöin yhdellä työllä (koodikannalla) saatiin sekä iOS (esim iPhone, iPad) versiot että Android versiot. Sovellus julkaistiin Googlen Play Store ja Applen App Store sovelluskauppoissa.
Hybridisovellus toteutettiin käyttäen React Native -ohjelmistokehystä, jolloin molemmat versiot saatiin toteutettua yhdellä koodilla. Toki näissä on aina omat haasteensa, sillä molemmat käyttöjärjestelmät ovat täysin erilaisia ja vaativat erilaiset asetukset sekä käytänteet.
Mobiilisovellus sisälsi mm. seuraavat ominaisuudet:
- Rekisteröityminen
- Tukijaksi liittyminen
- Kirjautuminen ja salasanan palautus
- Aikajana, johon kampanjan viestit tulivat
- Sovellusviestit (push -viestit)
- Tukijoiden kerääminen työpaikalla tai tapahtumassa
- Yksittäisen tukijan lisääminen
- Työelämäkysely
- Soitto ominaisuus
- Omien tietojen ja salasanan vaihto
Kuulostaako yksinkertaiselta? Sitähän se ei aivan ollut. Avasimme mitä kaikkea näiden ominaisuuksien tekeminen vaati.
Tietoturva oli erittäin tärkeä, kun käsiteltiin henkilötietoja. Henkilötietojen keräys toteutettiin nykyisen tietosuojalain mukaisesti. GDPR otettiin alusta asti huomioon, kuten kaikissa hankkeissamme. Perusidea on että tieto kulkee salattuna paikasta A paikkaan B ja tarvittaessa takaisin paikkaan A.
Uskallammekin avata teknisen ratkaisun hieman laajemmin kuin yleisesti, koska luotamme omiin ja käyttämiemme sovellusten tietoturvaratkaisuihin.
Itse kehityksen lisäksi projektiin kuului myös projektinhallintaa, testausta niin natiivilaitteilla kuin koneellisesti sekä sovellusten julkaisun sovelluskauppoihin. Lisäksi, kaikkia sovelluksia rakennettaessa niihin liittyy aina tietty määrä kuvankäsittelyä.
Rajapinnat
Nation Builder
Vapaiden valtakunta -kampanjan verkkosivusto rakennettiin Nation Builder -sovelluksen päälle. Nation Builder tarjoaa valmiit ominaisuudet hallita suuria kampanjoita sekä tietoa. Sovelluksesta löytyy myös yksinkertainen julkaisujärjestelmä, jolla voidaan tehdä kampanjasivustoja nopeastikin.
Rakensimme ensimmäistä kertaa rajapinnan mobiilisovelluksen ja Nation Builderin välille. Mobiilisovelluksessa kerätyt tiedot kulkivat kaksisuuntaisesti näiden välillä. Kirjautunut henkilö pystyi päivittämään tietojaan joko Nation Builderin tarjoamassa käyttöliittymässä tai suoraan mobiilisovelluksessa.
Kampanjasta kerätty tieto vietiin tietoturvallisesti rakentamamme rajapintasillan kautta Nation Builder -sovellukseen, missä se jatkokäsiteltiin ja kampanjan stuktuuri pysyi näin hallinnassa.
Facebook-rajapinta rakennettiin hakemaan Vapaiden valtakunta -kampanjan Facebook sivun postaukset. Facebookista haetut viestit näytettiin sovelluksen aikajananäkymässä sekä jokaisesta uudesta viestistä lähettiin sovelluksen käyttäjälle push -viesti (sovellusviesti).
Nexmo
Käytimme Nexmon tarjoamaa Voice API rajapintaa mobiilisovelluksessa tarjottavaan soitto ominaisuuteen. Soitto ominaisuus oli rajattu tietylle käyttäjäryhmälle. Soittaminen kampanjan tukijoille tapahtui rajapinnan ansioista täysin anonyymisti.
Google Firebase Cloud Messaging, FCM
Google Firebase tarjosi nopean tavan lähettää push-viestit (sovellusviestit) eri laittelle. Mobiilisovelluksessa oli tuki sekä iOS että Android puhelimien sovellusviesteille.
Rajapintasilta
Kaikki ylläolevat rajapinnat integroitiin rajapintasillan avulla mobiilisovellukseen. Silta hoito kaiken tiedonkäsittelyn ja lähetti sen tarvittaviin palveluihin. Rajapintasilta toimi kaksisuuntaisesti.
Käytetyt teknologiat
Tietokannat
- MariaDB
Ohjelmistokehykset ja kirjastot
- Laravel
- React
- React Native
Käytetyt ohjelmisto- ja scriptikielet
- PHP
- JavaScript / TypeScript
- HTML5, SCSS
Palvelimet
- Google Compute Platform
Statistiikkaa
Projektiin osallistujien määrä Oddy Tech:ltä: 5 henkilöä.
Mobiilisovelluksen kehitykseen käytetty määrä projektista: 50%
Rajapintasillan kehitykseen käytetty määrä projektista: 30%
Muuhun hankkeeseen liittyviin toimiin käytetty määrä projektista: 20%
Ota meihin rohkeasti yhteyttä!

Laura Nevasalo
Kasvu ja asiakkuudet
COO
laura.nevasalo@oddy.fi
050 553 1111

Jukka Leino
Kasvu ja asiakkuudet
CEO
Varaa etätapaaminen!
jukka.leino@oddy.fi
040 516 7612