• Ei tuloksia

Google Play Instant pelialan näkökulmasta

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Google Play Instant pelialan näkökulmasta"

Copied!
26
0
0

Kokoteksti

(1)

Lappeenrannan–Lahden teknillinen yliopisto LUT School of Engineering Science

Tietotekniikan koulutusohjelma

Kandidaatintyö

Frans Paasonen

GOOGLE PLAY INSTANT PELIALAN NÄKÖKULMASTA

Työn tarkastaja(t): Apulaisprofessori Ari Happonen

Työn ohjaaja(t): Apulaisprofessori Ari Happonen

(2)

ii

TIIVISTELMÄ

Lappeenrannan–Lahden teknillinen yliopisto LUT School of Engineering Science

Tietotekniikan koulutusohjelma

Frans Paasonen

Google play instant pelialan näkökulmasta

Kandidaatintyö

2021

26 sivua, 7 kuvaa, 1 liite

Työn tarkastajat: Apulaisprofessori Ari Happonen

Hakusanat: Android, Google Play Instant, mobiilipelit Keywords: Android, Google Play Instant, mobile games

Työn tavoitteena oli tutkia Google Play Instant sovelluksia pelialan näkökulmasta. Työssä selvitettiin lyhyesti GPI teknologian toiminnasta sekä syvennyttiin eri mahdollisuuksiin tuottaa GPI pelejä, sivuten myös hieman kaupallisen puolen mahdollisuuksia. Työssä opittiin eri teknologioista, joilla voidaan tuottaa GPI pelejä ja niistä on annettu esimerkkejä sekä esitelty ominaisuuksia, joilla ne eroavat toisistaan. Näistä teknologioista Unity ja Cocos Creator pelimottoreille on tehty liitännäiset, jotka helpottavat GPI pelien tekoa, mutta pelejä voi tehdä myös muilla teknologioilla, kuten Apache Cordovalla. Työn pohjalta voidaan myös todeta, että GPI pelien tekemisestä on tehty erittäin helppoa ja jokaisen pelikehittäjän kannattaisi miettiä GPI version tekemistä, sillä ne antavat paljon hyötyä pienellä vaivalla.

(3)

iii

ABSTRACT

Lappeenranta–Lahti University of Technology LUT School of Engineering Science

Degree Program in Computer Science

Frans Paasonen

Google play instant from gaming industry point of view

Bachelor’s Thesis

26 pages, 7 figures, 1 appendices

Examiners: Associate professor Ari Happonen

Keywords: Android, Google Play Instant, mobile games,

The goal of this thesis was to research Google Play Instant apps from gaming industry point of view. This thesis describes shortly the GPI technology, and the different ways of producing GPI games is explained in detail, with some research to marketing possibilities.

This thesis provided information and examples about different technologies that can be use make GPI games and how they differ from each other. From these technologies Unity and Cocos Creator game engines have plugins, which help in making GPI games, but these games can also be done with other technologies such as Apache Cordova. Based on the thesis we can conclude that it has been made really easy to develop GPI games and every game developer should consider making a GPI version of their game.

(4)

iv

ALKUSANAT

Haluaisin kiittää ohjaajaani Ari Happosta, joka on ollut erittäin avulias ja kärsivällinen kirjoitusprosessin aikana.

(5)

1

SISÄLLYSLUETTELO

1 JOHDANTO ... 3

1.1 TAVOITTEET JA RAJAUKSET ... 4

1.2 TYÖN RAKENNE ... 4

2 GOOGLE PLAY INSTANT ... 5

2.1 TEKNILLINEN OSUUS ... 5

2.2 KAUPALLINEN PUOLI ... 7

2.3 HYÖDYT, HAITAT JA MAHDOLLISUUDET SOVELLUSKEHITTÄJILLE ... 8

3 PELIALAN NÄKÖKULMA ... 9

3.1 GPI PELIEN KEHITYSALUSTAT... 9

3.1.1 Unity ... 9

3.1.2 Cocos Creator ... 12

3.1.3 Apache Cordova ... 14

3.2 GPI PELIEN KAUPALLINEN POTENTIAALI ... 15

3.3 VERTAUS GPI SOVELLUKSIIN ... 15

4 YHTEENVETO ... 17

LÄHTEET ... 19

(6)

2

SYMBOLI- JA LYHENNELUETTELO

AAB Android App Bundle

API Application Programming Interface APK Android Application Package GPI Google Play Instant

GPID Google Play Instant Development SDK Software Development Kit

(7)

3

1 JOHDANTO

Mobiililaitteita käytetään nykypäivänä todella paljon ja teknologioita niiden ympärille on kehittynyt kovaa tahtia viime vuosina. Teknologian kehittyminen on tuonut mukanaan paljon uusia mahdollisuuksia luoda mitä monimutkaisempia sovellusratkaisuita, kuten mm.

paikkatietoon liittyviä sovelluksia [1][2], kiihtyvyys sensoreita hyödyntäviä ratkaisuita [3]

ja erilaisia kamerateknologin kautta rakennettuja uusia sovelluksia, kuten kasvontunnistus, pin koodin sijasta [4]

Googlen älypuhelimille, tablettitietokoneille ja älytelevisioille suunniteltu ohjelmistopino Android on käytetyin käyttöjärjestelmä mobiililaitteille ja se kattaa jopa 74 % kaikista mobiililaitteista vuonna 2020 tammikuussa [5]. Kyseinen luku oli vuonna 2010, 5 % ja 2015, 60 % [5]. Google on siis suuressa roolissa ajamassa uusia teknologioita mobiililaitteille ja onkin onnistunut siinä mainiosti. Tämä voidaan todeta suuresta Androidin suosiosta vuosi toisensa jälkeen.

Google paljasti suunnittelevansa uutta teknologiaa Google Play Instant (jatkossa GPI), keväällä 2016 Google I/O-kehittäjätapahtumassa. 2017 Googlelta ei tullut juurikaan päivityksiä kyseiseen teknologiaan liittyen. Keväällä 2018 Google julkaisi palvelun virallisesti ja siitä lähtien sovellusten kehittäjät ovat voineet tätä palvelua hyödyntää. GPI mahdollistaa sovellusten ”testaamisen” Google Play Storesta, ilman että sovellusta tarvitsisi asentaa omalle puhelimelle. Tämä tietysti on mahdollistettu Googlen tarjoaman ohjelmointirajapinnan (engl. Software Development Kit, SDK) avulla, jota kehittäjät voivat hyödyntää sovelluksia tehdessä. Vuoden 2018 aikana Google lisäsi GPI teknologiaan myös suoran tuen peleille, julkaisemalla Unity-pelimoottorille oman ohjelmointirajapinnan.

GPI sovellukset ja pelit tuottavat paljon hyötyä ja niiden tekeminen ei ole kovinkaan vaikeaa, joten sovellusten/pelienkehittäjien tulisi miettiä GPI palvelun hyödyntämistä.

Pelien kohdalla GPI versioiden tekemistä on helpotettu Googlen tekemillä liitännäisillä

(8)

4

Unitylle ja Cocos Creatorille. Vaikka Google ei suoraan tue muita pelimoottoreita, on mahdollista tehdä GPI pelejä muillakin teknologioilla kuin Unityllä tai Cocos Creatorilla, kuten esimerkiksi Apache Cordovalla tai Defold pelimoottorilla.

1.1 Tavoitteet ja rajaukset

Tämän kandidaatintyön tavoitteena on käsitellä GPI sovelluksia. Työssä tutkitaan mitä GPI sovellukset ovat, miten niitä voidaan tuottaa, minkälainen on toteutusprosessi ja mitä hyötyjä kyseisestä teknologiasta saadaan. Työ perustuu omaan kokemukseen ja kirjallisuuteen.

Työ on rajattu tutkimaan GPI teknologiaa pelialan näkökulmasta, mutta työssä myös mainitaan yleisiä asioita kyseisestä teknologiasta vertailun vuoksi. Näin saadaan hyvä kuva siitä, miten GPI:n käyttö pelialalla eroaa teknillisesti ja kaupallisesti normaaleiden sovellusten GPI:n käytöstä. Työssä käytetään esimerkkinä kirjoittajan aikaisemmin tekemien GPI pelien toteutusprosesseja ja niistä syntyneitä ajatuksia.

1.2 Työn rakenne

Työn ensimmäisessä osiossa keskitytään tutkimaan GPI teknologiaa yleisesti ja hahmottamaan lukijalle minkälaisesta palvelusta on kyse. Tässä osiossa pohditaan myös palvelun hyviä ja huonoja puolia kehittäjien ja palvelua käyttävien yrityksien näkökulmasta, ottaen huomioon työajan käytön toteutuksessa, palvelun rajoitteet sekä mahdollisen kaupallisen hyödyn. Toisessa osissa keskitytään työn näkökulman kannalta olennaisimpaan eli GPI:n käyttöön pelialla. Tässä osiossa mainitaan eri tapoja tuottaa GPI pelejä ja myös vertaillaan teknillisiä ja kaupallisia ominaisuuksia muihin GPI sovelluksiin nähden.

(9)

5

2 GOOGLE PLAY INSTANT

Android laitteille tarjotut sovellukset ovat jo vuosia käyttäneet Android Application Package (jatkossa APK) julkaisumuotoa ja siitä on tullut standardi Android maailmassa.

APK paketin maksimikoko on 100MB mutta Google tarjoaa myös mahdollisuuden liittää jopa kaksi lisäpakettia, joiden maksimikoko on 2GB [6]. Muutama vuosi GPI julkaisun jälkeen Google esitteli uuden julkaisumuodon sovelluksille, Android App Bundle (jatkossa AAB). Vuoden 2021 puolivälin jälkeen kaikki uudet sovellukset vaativat AAB:n käyttöä.

AAB tulee siis korvaamaan APK julkaisumuodon. Käyttämällä AAB julkaisumuotoa, kehittäjät jättävät paketin muodostamisen Google Play:n vastuulle. AAB:sta voidaan luoda optimoituja paketteja, joiden avulla sovelluksista voidaan tehdä mahdollisimman optimoituja kyseiselle laitteelle [7]. AAB:n maksimikoko, 150MB on suurempi kuin APK:lla, mutta AAB:n kanssa ei voida käyttää erillisiä lisäpaketteja.

GPI sovellukset perustuvat edellä mainitun AAB:n käyttöön ja eroavat normaaleista mobiilisovelluksista siten, että ne tarjoavat mahdollisuuden käyttäjille testata sovelluksia ennen asennusta. Google Play Storesta sovelluksia voi testata ”Try now” napista painamalla, jos sovellus on tehty tukemaan GPI teknologiaa. Google Play Store tarjoaa myös pelejä Google Play Games sovelluksen kautta. Nämä pelit ovat käytettävissä täysin ilman asennusta ja niitä kutsutaan ”Instant play” peleiksi.

2.1 Teknillinen osuus

Kuten edellä mainittiin GPI sovellukset perustuvat AAB:n toimintaan. Sovellukset pilkotaan moduuleihin, joista voidaan tehdä omia paketteja ja näitä paketteja voidaan käyttää irrallaan sekä yhdessä saman sovelluksen kautta. Tämä mahdollistaa tietyn osion sovelluksista testattavaksi ilman asennusta. Sovelluksen voi tehdä myös täysin ajettavaksi ilman asennusta.

(10)

6

Vaikka AAB:n käyttö mahdollistaa sovellukselle 150MB kokorajoituksen on GPI sovelluksille tehty huomattavasti pienempi kokorajoitus, vain 15MB. Kokorajoitus oli GPI teknologian alussa 4MB [8], josta se on vuosien saatossa kasvanut edellä mainittuun 15MB rajaan. Kokorajoitus koskee vain GPI kattavaa osuutta sovelluksesta eli sitä osiota mitä käyttäjä voi ajaa esimerkiksi ”try now” nappulan kautta Google Play Storesta. Mitä pienempi koko sovelluksella on, sitä parempi kokemus käyttäjällä tulee olemaan, mutta nykyaikaisella netillä ei pitäisi olla ongelmia käyttää GPI sovelluksia.

Aikaisemmin mainittua ohjelmointirajapintaa GPI sovelluksille kutsutaan Google Play Instant Development (jatkossa, GPID) SDK:si. Sitä käyttämällä kehittäjät pääsevät käsiksi ominaisuuksiin, joita GPI tarjoaa [9]. Näihin ominaisuuksiin kuuluu esimerkiksi mahdollisuus asentaa koko sovellus GPI sovelluksen sisältä (engl, Install Prompt) ja Cookie API, jonka avulla voidaan tallentaa tietoa GPI sovelluksesta, johon varsinaisella sovelluksella on pääsy asennuksen jälkeen.

GPI SDK:sta löytyvä InstantApps luokka tarjoaa funktion ”showInstallPrompt()”, jonka avulla voidaan näyttää käyttäjälle ikkuna koko sovelluksen asentamiselle.

Kuva 1 Esimerkki "showInstallPrompt" funktion käytöstä (Android developers)

Cookie API:n käyttö on hieman monimutkaisempaa, onneksi Google on julkaissut esimerkkejä molempien ominaisuuksien käyttämiseen. Esimerkit ovat löydettävissä app- bundle-samples github sivun InstantApps kansiosta [10].

(11)

7

GPI sovellusten tekeminen ei ole kovin monimutkaista ja siihen löytyy nopealla etsinnällä useita erilaisia ohjeita, joiden avulla lähteä rakentamaan sovellusta. Google tarjoaa virallisen ohjeen [11], miten aloittaa GPI sovelluksen tekeminen ja mitä kaikkea täytyy ottaa huomioon. Riippuen sovelluksen monimutkaisuudesta ja ominaisuuksista, vaikein osio GPI sovelluksen tekemisessä saattaa olla paketin koon pitäminen 15MB rajan alla.

Sovelluksen muuttaminen GPI sovellukseksi seuraa samoja ohjeita kuin uuden GPI sovelluksen aloittaminen. Jos sovellus sisältää useita ominaisuuspaketteja (engl. feature modules), voidaan sellainen muuttaa ”Instant-enabled” versioksi. Tämä tarkoittaa sitä, että kyseisestä ominaisuuspaketista tehdään käyttäjien testattava/käytettävä ”Try now” napin kautta. Jostain syystä tämmöisessä tilanteessa Google on päättänyt laittaa pienemmän rajoituksen paketin koolle, perusominaisuus paketti ja ”Instant-enabled” paketti täytyy olla yhteensä alle 10MB. [12]

2.2 Kaupallinen puoli

GPI sovellukset ovat nopeasti ihmisten käytettävissä, eivätkä ne vaadi sovelluksen asentamista. Tämä tarkoittaa sitä, että sovellusten testaaminen ja yksittäiset käytöt voidaan hoitaa nopeasti ja helposti, mikä pienentää käyttäjän kynnystä tehdä kyseiset asiat. Mitä helpompaa ja nopeampaa käyttökokemuksesta tehdään käyttäjälle, sitä parempi mieli sovelluksen käytöstä jää. GPI sovelluksen kautta on myös helppo markkinoida jotain tiettyä ominaisuutta, joka saattaisi muuten vaatia käyttäjältä aikaa löytää/päästä käsiksi.

Googlen Instant markkinointi sivulla [13] on kehittäjien tarinoita siitä, kuinka GPI sovellukset ovat parantaneet heidän sovellusten suosiota ja käyttökokemusta. Suurin osa näistä tarinoista on pelien tiimoilta, näihin palataan myöhemmin. Esimerkkinä normaaleista sovelluksista Vimeo, joka tarjoaa videoita katseltavaksi, on GPI sovelluksen julkaisun jälkeen nähnyt sessioiden pituuden jopa tuplaantuneen parissa kuukaudessa ja koko sovelluksen käyttäjämäärien nousseen 20 % joka kuukausi [13].

(12)

8

2.3 Hyödyt, haitat ja mahdollisuudet sovelluskehittäjille

Kuten edellä jo mainittiin, GPI sovellusten tekeminen ei vaadi paljoa aikaa/vaivaa ja niistä koituva kaupallinen hyöty saattaa olla todella suuri. GPI sovellukset tekevät sovellusten testaamisesta tai lyhyestä käyttötarkoituksesta helppoa sekä nopeaa, pienentäen käyttäjien kynnystä käyttää sovellusta. Näin ollen GPI sovellusten tekeminen on yleensä positiivinen asia, jota jokaisen sovelluskehittäjän kannattaisi miettiä. On tietysti olemassa tilanteita, jossa GPI sovelluksen tekeminen ei ole välttämättä kovin helppoa tai mahdollista.

Esimerkiksi jos alkuperäinen sovellus on todella monimutkainen ja sen muuttaminen GPI sovellukseksi ei ole rajoitteiden puitteissa mahdollista.

GPI sovelluksille on monta eri käyttötarkoitusta. Sovellusta tehdessä voi päättää mitä ominaisuutta haluaa esitellä tai haluaako jopa tehdä koko sovelluksesta GPI sovelluksen.

Sovelluksen voi myös suunnitella niin että sen pääkäyttötarkoitus on tarjota sovelluksen käyttöä selainpohjaisen toiminnan sijasta. Esimerkiksi uutissovellukset voivat tehdä sovelluksesta sellaisen, että linkkiä klikkaamalla se ohjaa valitsemaan haluaako käyttää

”Instant”-sovellusta vai jatkaa selaimessa.

(13)

9

3 PELIALAN NÄKÖKULMA

Mobiilipelejä voidaan tehdä monella eri työkalulla, jokainen työkalu sisältää omat hyvät ja huonot puolet, ja onkin tärkeää ottaa ne huomioon, kun valitsee teknologioita mobiilipelin tekoa varten. Useimmat pelien GPI versiot ovat tehty samalla teknologialla kuin millä itse peli, varsinkin jos kyseessä on Unity tai Cocos Creator. Kyseisille pelimoottoreille on julkaistu Googlen toimesta liitännäiset (engl. Plugin), jolla GPI pelien tekeminen on tehty mahdollisimman helpoksi.

3.1 GPI pelien kehitysalustat

Kuten edellä mainittiin, Google on julkaissut suosituimmille pelimoottoreille mobiilipelimarkkinoilla, Cocos Creator sekä Unity, liitännäiset, joilla GPI pelejä voidaan tehdä helposti ja vaivattomasti [14]. Liitännäiset integroituvat pelimoottoriin ja tarjoavat erilaisia apuvälineitä GPI pelien tekoon, suoraan pelimoottorin sisällä. GPI pelejä voi myös tehdä muilla työkaluilla hyödyntäen suoraan GPID ohjelmointirajapintaa. Rajapinnan avulla voidaan käyttää kaikkia GPI:n tarjoamia ominaisuuksia, mutta niiden käyttäminen ei ole aivan niin suoraviivaista ja helppoa kuin Unitylle ja Cocos Creatorille tarjotuilla liitännäisillä.

3.1.1 Unity

Google julkaisi toukokuussa 2018 ohjelmointirajapinnan Unity-pelimoottorille. Tämä rajapinta mahdollistaa GPI pelien tekemisen kyseisellä pelimoottorilla [15]. Kyseisen ohjelmointirajapinnan kehitys jatkui aika maltillisesti ja se pysyikin ”beta” vaiheessa toukokuuhun 2020 asti. Toukokuussa 2020 Google julkaisi Google Play Unity Plugins github sivun, joka sisältää kaikki Googlen tekemät liittännäiset Unitylle [16].

(14)

10

Google Play Unity Plugins github sivu sisältää erilaisia liitännäisiä sovellusten tekoa varten. Esimerkiksi Play In-App Review, Play Billing ja Android App Bundle liitännäiset.

Tämän työn kannalta tärkein on kuitenkin Play Instant liitännäinen, joka tarjoaa työkaluja GPIA-sovelluksen tekemiseen. Kyseiset liitännäiset voidaan asentaa Unityyn lataamalla edellä mainitulta github sivulta uusin julkaisu ja lisäämällä se Unityyn [17].

Play Instant liitännäinen tarjoaa Unitylle pari asetusvalikkoa, Build Settings ja Player Settings. Build Settings valikko tarjoaa mahdollisuuden vaihtaa GPI version ja normaalin sovelluksen välillä, kun taas Player Settings tarjoaa erilaisia suosituksia asetuksille, jotta sovelluksesta saataisiin mahdollisimman optimaalinen Instant App kokemus.

Kuva 2 Player Settings valikko (GPIA Unity dokumentaatiosta)

(15)

11

Liitännäisen avulla saadaan pelin julkaisuunkin helpotusta käyttäen Quick Deployta. Quick Deploylla osa sovelluksesta pakataan AssetBundleen ja vain Unityn pelimoottori ja latausruutu lisätään itse sovellukseen. Sovelluksen käynnistyessä ladataan loput sovelluksesta latausruudun aikana. [17] Kaupallisuuden kannalta ehkä tärkeimpänä ominaisuutena Play Instant liitännäinen tarjoaa c# rajapinnan GPID SDK:n käytölle. Eli sovellus voi käyttää aikaisemmin manittua Cookie API rajapintaa sekä

”showInstallPrompt()” funktiota. Play Instant liitännäisen ansiosta näiden rajapintojen käyttö on helpompaa kuin suoraan GPID SDK:n kautta.

Kuva 3 "showInstallPrompt()" funktion kutsuminen (GPIA Unity dokumentaatiosta)

Kuva 4 Cookie:n asettaminen Cookie API:n avulla (GPIA Unity dokumentaatiosta)

(16)

12

Kuva 5 Cookien lukeminen Cookie API:n avulla (GPIA Unity dokumentaatiosta)

3.1.2 Cocos Creator

Versiosta 2.0.4 alkaen Cocos Creator pelimoottori tukee GPI sovellusten tekemisen. GPI sovelluksena julkaiseminen on tehty erittäin helpoks, Cocos Creator sisältää valmiiksi ominaisuudet GPI sovelluksen tekoon, eli kehittäjän ei tarvitse asennella erillisiä lisäosia, toisin kuin edellä mainitulla Unityllä. Jos koko peli on GPI rajoitteiden puitteissa, kehittäjän ei tarvitse kuin valita ”Build” valikosta ”Android Instant” alustaksi ja muut tarvittavat muutokset hoidetaan automaattisesti.

Kuten Unityllä, GPID SDK on abstraktoitu kehittäjälle helposti käytettäväksi, jopa helpommaksi kuin mitä Unityllä. Tarvittavat funktiot on tarjottu ”cc.androidInstant” API:n kautta ja ne vaativat minimaalisen määrän parametrejä. Esimerkiksi ”showInstallPrompt()”

funktio ei vaadi ollenkaan parametrejä, vaan toimii ihan sellaisenaan. Cookien asettaminen vaati parametrinä vain datan, joka halutaan tallettaa [18]. Esimerkki projekti näiden funktioiden käytöstä on tarjolla cocos-creator github sivuilla [19].

Cocos Creatorin erottava GPI sovellukseen liittyvä ominaisuus on Refactor. Sen avulla voidaan pelata peliä halutun flown mukaan ja tallentaa mitä kaikkia resursseja on käytetty pelauksen aikana. Tämä mahdollistaa GPI paketin sisällön valitsemisen peliä pelaamalla.

Refactor ikkunasta nähdään hyvin tarkasti mitä resursseja on käytetty ja kuinka paljon ne vievät tilaa. [18]

(17)

13

Kuva 6 Refactor ikkuna (Cocos Creator Instant App ohje)

On myös mahdollista lisätä/poistaa manuaalisesti resursseja paketista Refactor ikkunan kautta. Tällöin voidaan määrittää erittäin tarkasti mitä kaikkea pakettiin tulee.

Kuva 7 Manuallinen resurssin lisäys/poisto Refactor ikkunassa (Cocos Creator Instant App ohje)

(18)

14 3.1.3 Apache Cordova

Apache Cordova on open-source mobiilikehitys ympäristö. Sen avulla voidaan rakentaa sovelluksia käyttäen web teknologioita. Cordova rakentaa oikeanlaiset paketit halutuille alustoille ja antaa pääsyn laitteiden ominaisuuksiin erilaisten liitännäisten avulla. Cordovan liitännäiset tarjoavat laiteominaisuuksille API:n jota voidaan käyttää suoraan webbi puolelta. [20]

Cordova tarjoaa listan liitännäisiä, joita he itse ylläpitävät ja ne kuuluvat ”Core Plugins”

kategoriaan. Nämä liitännäiset ovat hyvin yleisessä käytössä ja tarjoavat perusominaisuuksia käyttäjille, kuten akuntason, kameran tai pääsyn laitteen tallennustilaan. [21] Kaikki Cordovan liitännäiset ovat asennettavissa npm pakettien hallinnan [22] kautta ja käyttäjät voivat itse kehittää omia liitännäisiä helposti omiin tarpeisiinsa, esimerkkinä ”Google Firebase Cloud Messaging Cordova Push Plugin” [23], joka tarjoaa notifikaatioita Google Firebase eventeistä. Tämän työn kohdalla tärkein liitännäinen Cordovalle on GPID SDK:n toiminnallisuuksien lisääminen. Tällä hetkellä Cordovalle ei ole tehty liitännäistä, joka tuottaisi halutut toiminnallisuudet, mutta onneksi sen tekeminen ei ole kovin vaikeaa. Liitännäisen tekemiseen löytyy ohjeet Cordovan omilta sivuilta [24]. Liitteessä 1 on esimerkki varsinaisesta java tiedostosta liitännäistä varten.

Koska Cordovalla voidaan tuottaa GPI sovellus käyttämällä web teknologioita, antaa se mahdollisuuden käyttää pelattavaa mainosta pohjana GPI sovellukselle. Pelattavan mainoksen muuttaminen GPI muotoon on todella yksinkertaista. Mainos voidaan sellaisenaan paketoida Cordovalla ja edellä mainitulla liitännäisellä lisätä GPID SDK:n toiminnallisuus.

(19)

15 3.2 GPI pelien kaupallinen potentiaali

GPI mahdollistaa useamman pelin testaamisen ja löytämisen, nopean käynnistyksen ja asennuksettoman luonteen takia ja Googlen I/O 18 [23] videolla mainitaan, että kun jokin asia muuttuu nopeaksi, niin käyttäjämäärät nousevat. Tämä on nähtävissä GPI pelien käyttäjämäärien kasvussa. Pelit, jotka ovat julkaisseet GPI version ovat saaneet jopa 20 % nousun käyttäjien hankinnassa kuukauden sisällä [25].

GPI pelit eivät ole kaikki suunniteltu samalla tavalla, pelien GPI version käyttötarkoitukset saattavat olla erilaiset ja yleensä ne jakautuvat kahteen eri kategoriaan. Ensimmäinen on käytännössä pelin tutoriaalin tuonti GPI muotoon ja edistymisen jatkuminen asennuksen jälkeen. Toinen tapa on luoda versio, joka esittää pelin päämekaniikat ja päätoiminnallisuuden, eli käytännössä mitä peliltä voidaan odottaa asennuksen jälkeen.

Valinta näiden välillä saattaa olla vaikeaa, mutta kuten edellä mainittiin, GPI:n vaikutus käyttäjämääriin ja pelin julkisuuteen on todella positiivinen.

3.3 Vertaus GPI sovelluksiin

GPI pelit eroavat normaaleista GPI sovelluksista siten että ne on tehty eri teknologioilla ja niiden tavoitteet eroavat hieman. Normaalit GPI sovellukset ovat yleensä tarkoitettu luomaan helppo kanava käyttäjälle testata jotain ominaisuutta, kun taas GPI pelit on tarkoitettu saamaan käyttäjän huomio ja luoda käyttäjälle addiktiivinen ympäristö, jotta käyttäjä jäisi koukkuun ja asentaisi varsinaisen sovelluksen. Google Play Storesta on myös saatavilla täysin ”Instant enabled” pelejä, jotka ovat siis käyttäjien pelattavissa täysin ilman asennusta.

Vaikka GPI pelit eroavat teknologian osalta GPI sovelluksista, on GPID SDK:n käyttö kuitenkin molemmilla samantyylinen. Tosin kuten edellä mainittiin, Unity ja Cocos Creatoreille julkaistut liitännäiset helpottavat GPID SDK:n asennusta ja käyttöä peliteknologioilla. Kehittäjien käyttämä aika GPI pelin tai sovelluksen tuottamiseen ei

(20)

16

myöskään eroa näiden kahden välillä kovinkaan paljoa, mutta se mihin sen ajan aikana keskitytään saattaa erota huomattavasti. GPI sovelluksilla useimmiten aikaa vievin osa on koko rajoitusten puitteissa pysyminen, kun taas pelien kohdalla aikaa saattaa kulua eniten GPI osion suunnitteluun ja ”flown” muotoilemiseen. Cocos Creatorin Refactor ominaisuus ja Cordovan pelattavasta mainoksesta GPI pelin tekeminen helpottavat pelien kannalta koko rajoituksissa pysymistä, jotta aikaa voitaisiin käyttää edellä mainittuihin asioihin.

(21)

17

4 YHTEENVETO

Google esitteli uuden teknologian Android sovelluksille nimeltään Google Play Instant, 2016 kevään Google I/O tapahtumassa. Tämä teknologia mahdollistaa sovellusten ajamisen ilman. Parantamaan GPI sovellusten toimintaa, Google kehitti uuden julkaisumuodon Android sovelluksille, AAB. Tämä julkaisumuoto esiteltiin ensimmäistä kertaa vuoden 2018 Google I/O tapahtumassa. Se korvaa pitkään toimineen APK julkaisumuodon ja tulee olemaan pakollinen kaikille 2021 puolivälin jälkeen julkaistuille sovelluksille [7].

GPI sovelluksien tekeminen on suhteellisen helppoa, sillä se ei vaadi kuin GPID SDK:n lisäämistä projektiin ja kyseisen SDK:n ominaisuuksien käyttö oikeissa kohdissa. Ainut vaikeus GPI sovelluksien teossa on pitää sovelluksen koko alle rajoituksien. Tätä työtä kirjoittaessa kyseinen raja on 15MB. Tämä raja saattaa kasvaa vielä lähiaikoina, sillä teknologian julkaisun aikaan kyseinen raja oli 4MB [8]. GPI sovellukset ovat tuoneet julkaisijoille hyvinkin paljon kaupallista hyöty. GPI sovellukset ovat erittäin hyviä markkinoinnin kannalta, sillä ne vähentävät kynnystä käyttää sovellusta, olemalla täysin toimivia ilman asennusta sekä nopealla käynnistysajalla. Hyvänä esimerkkinä GPI:n kaupallisesta hyödystä on Vimeo, jonka sessioiden pituus on tuplaantunut ja sovelluksen käyttäjämäärät nousseet jopa 20 %, GPI sovelluksen julkaisun jälkeen [13].

Tämä työ keskittyi tarkastelemaan GPI teknologiaa pelialan näkökulmasta. Erityisesti etsittiin erilaisia keinoja tuottaa GPI pelejä, ja mitä eri ominaisuuksia pelimoottorit tuovat GPI sovellusten tuottamiseen. Google on luonut suosituimmille pelimoottoreille mobiilipelimarkkinoilla, Unitylle ja Cocos Creatorille omat liitännäiset. Näillä liitännäisillä saadaan pääsy GPI SDK:n käyttöön ja näin ollen voidaan tehdä erittäin helposti GPI peli.

Cocos Creatorille liitännäinen on rakennettu suoraan pelimoottoriin sisään, joten se ei vaadi erillistä asennusta. Cocos Creator tarjoaa myös Refactor ominaisuuden. Sen avulla voidaan pelata peliä halutun flown mukaan ja tallentaa mitä kaikkia resursseja on käytetty pelauksen aikana. Tämä mahdollistaa GPI paketin sisällön valitsemisen peliä pelaamalla.

Refactor ikkunasta nähdään myös hyvin tarkasti mitä resursseja on käytetty ja kuinka

(22)

18 paljon ne vievät tilaa Kuva 7. [18]

GPI pelejä voidaan myös tehdä muillakin teknologioilla kuin Unityllä tai Cocos Creatorilla. Esimerkiksi Defold pelimoottori tarjoaa tuen GPI SDK:lle mahdollistaen GPI pelien tekemisen. Apache Cordova on toinen esimerkki teknologiasta, jonka avulla voidaan GPI sovellus. Se ei kuitenkaan ole yhtä helppoa kuin aikaisemmin mainituilla pelimoottoreilla, sillä Cordovalle täytyy kirjoittaa liitännäinen, jonka avulla saadaan pääsy GPI SDK:n käyttöön. Onneksi tämän liitännäisen tekeminen ei ole kovin vaikeaa ja siihen edellä onkin mainittu simppeli esimerkki liitännäisestä.

(23)

LÄHTEET

1. Lehtinen, M., Happonen, A., Ikonen, J. (2008), Accuracy and Time to First Fix Using Consumer-grade GPS Receivers, In 16th International Conference on Software, Telecommunications and Computer Networks, Split, Croatia, pp. 334- 340, doi: 10.1109/SOFTCOM.2008.4669506

2. Jahkola, O, Happonen, A., Knutas, A., Ikonen, J. (2017), What should application developers understand about mobile phone position data, In CompSysTech'17, ACM, pp. 171-178, doi: 10.1145/3134302.3134346

3. G. Liu, "Design and Implementation of Pedometer Based On G-Sensor," 2018 3rd International Conference on Smart City and Systems Engineering (ICSCSE), 2018, pp. 436-438, doi: 10.1109/ICSCSE.2018.00093.

4. Kunda, D., Chishimba, M. A Survey of Android Mobile Phone Authentication Schemes. Mobile Netw Appl (2018). [online] Available at:

https://doi.org/10.1007/s11036-018-1099-7

5. StatCounter Global Stats, Operating system market share [online] Available at:

https://gs.statcounter.com/os-market-share/mobile/worldwide. [Accessed 2020-12- 20]

6. Android developers, APK expansion files, [online] Available at:

https://developer.android.com/google/play/expansion-files. [Accessed 2021-03-21]

7. Android developers, App bundles, [online] Available at:

https://developer.android.com/guide/app-bundle. [Accessed 2021-03-21]

8. Android developers blog, Best practices for managing download size. [online]

Available at: https://android-developers.googleblog.com/2017/08/android-instant- apps-best-practices-for.html. [Accessed 2021-07-19]

9. Android developers, Instant App SDK refence, [online] Available at:

https://developers.google.com/android/reference/com/google/android/gms/instantap ps/InstantApps.html. [Accessed 2021-05-24]

10. Github, app-bundle-samples, [online] Available at: https://github.com/android/app- bundle-samples/tree/main/InstantApps. [Accessed 2021-05-24]

(24)

11. Android developers, Creating an instant app, [online] Available at:

https://developer.android.com/topic/google-play-instant/getting-started/instant- enabled-app-bundle. [Accessed 2021-05-27]

12. Android developers, Configure Instant delivery, [online] Available at:

https://developer.android.com/guide/playcore/feature-delivery/instant. [Accessed:

2021-05-27]

13. Android developers, Developer stories, [online] Available at:

https://developer.android.com/stories/instant-apps. [Accessed 2021-05-27]

14. Android developers, Google Play Instant overview site, [online] Available at:

https://developer.android.com/topic/google-play-instant. [Accessed 2020-12-20]

15. Github, Google Play Instant Unity plugin, [online] Available at:

https://github.com/google/play-instant-unity-plugin. [Accessed 2020-09-09]

16. Github, Google Play Unity plugins, [online] Available at:

https://github.com/google/play-unity-plugins. [Accessed 2020-09-09]

17. Android developers, Documentation for using the Google Play Instant with Unity, [online] Available at: https://developer.android.com/topic/google-play- instant/getting-started/game-unity-plugin. [Accessed 2021-05-24]

18. Cocos documentation, Cocos Creator guide to Instant Apps, [online] Available at:

https://docs.cocos.com/creator/manual/en/publish/publish-android-instant.html.

[Accessed 2021-05-27]

19. Github, Example project to use Android Instant API in Cocos Creator, [online]

Available at: https://github.com/cocos-creator/AndroidInstantCookieDemo.

[Accessed 2021-05-27]

20. Cordova documentation, Apache Cordova documentation, [online] Available at:

https://cordova.apache.org/docs/en/latest/guide/overview/index.html. [Accessed 2021-05-27]

21. Cordova documentation, Cordova core plugin support, [online] Available at:

https://cordova.apache.org/docs/en/latest/guide/support/index.html#core-plugin- apis. [Accessed 2021-07-19]

22. Npm, [online] Available at: https://www.npmjs.com/. [Accessed 2021-05-27]

(25)

23. Github, Google Firebase Cordova Push Plugin, [online] Available at:

https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated.

[Accessed 2021-05-27]

24. Cordova documentation, Cordova plugin development guide, [online] Available at:

https://cordova.apache.org/docs/en/10.x/guide/hybrid/plugins/index.html.

[Accessed 2021-08-26]

25. Youtube, Google I/O 18, video on game portion of Google Play Instant, [online]

Available at: https://www.youtube.com/watch?v=LN1YQeo6yNk. [Accessed 2021- 05-27]

(26)

LIITE 1

package org.test.instantlink;

import android.content.ComponentName;

import android.content.Intent;

import android.content.pm.PackageManager;

import com.google.android.gms.instantapps.InstantApps;

import com.google.android.gms.instantapps.PackageManagerCompat;

import org.apache.cordova.CordovaPlugin;

import org.apache.cordova.CallbackContext;

import org.json.JSONArray;

import org.json.JSONException;

import java.nio.charset.Charset;

/**

* This class executes showInstallPrompt */

public class instantlink extends CordovaPlugin {

// TODO: exec -

> public static boolean showInstallPrompt(Activity activity, Intent postInstallIntent, int requestCode, String ref errer)

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("showInstallPrompt")) {

String message = args.getString(0);

this.setCookie(message);

this.showInstallPrompt(message, callbackContext);

return true;

}

return false;

}

private void setCookie(String message) {

if (message != null && message.length() > 0) {

PackageManagerCompat manager = InstantApps.getPackageManagerCompat(cordova.getContext());

byte[] cookiebytes = message.getBytes(Charset.forName("UTF-8"));

if (cookiebytes.length < manager.getInstantAppCookieMaxSize()) { manager.setInstantAppCookie(cookiebytes);

} } }

private void showInstallPrompt(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) {

Intent postInstallIntent = new Intent();

postInstallIntent.setComponent(new ComponentName("<package name>", "<MainActivity path>"));

InstantApps.showInstallPrompt(cordova.getActivity(), postInstallIntent, 123, "test");

callbackContext.success(message);

} else {

callbackContext.error("Expected one non-empty string argument.");

} } }

Viittaukset

LIITTYVÄT TIEDOSTOT

Siinä paneudutaan myös koirasovelluksiin, joita on mahdollista ladata kolmesta suu- rimmasta sovelluskaupasta, joita ovat Google Play, Applen App Store sekä Windows

Tämä kysymys nousi esille jokin aika sitten pohtiessamme työelämän muutostrendejä. Vapaa-ajalla emme odota, että joku päättää asioita puo- lestamme tai antaa erityisen luvan

Alla sovellukset (Google Hangouts, Skype ja Skype for business), jotka ovat siirtymäajan jälkeen jäämässä pois / sulautumassa osaksi jotakin toista sovellusta..

Kuluvan vuoden aikana on kuitenkin tullut selväksi, että google haluaa vaikuttaa myös politiikkaan.. Yritys on tuke- nut

The thesis deals with the process of developing a mobile game, publishing a game in the Google Play store, and analyzing user data from the Google Play developer console.. The aim

Google Maps vaatii Google Play services SDK:n joka ladataan Android SDK:n kautta, jonka jälkeen Google play services lisätään projektiin.. Android Studiossa on myös

Googlian pystyy tämän jälkeen varastamaan käyttäjän tilin, asentamaan sovelluksia ja arvostelemaan ne Google Play - sovelluskaupassa sekä asentamaan mainossovelluksia ja

Vuonna 2012 Google ilmoitti, että he olivat ottaneet käyttöön uuden järjestelmän nimeltään Bouncer, jonka tarkoituksena on käydä läpi Googlen Play-kauppaan (tällöin