{"id":655,"date":"2019-11-02T11:53:56","date_gmt":"2019-11-02T09:53:56","guid":{"rendered":"http:\/\/localhost:8888\/wordpress\/?p=655"},"modified":"2019-12-31T16:20:32","modified_gmt":"2019-12-31T14:20:32","slug":"mobiilisovelluksen-yllapidosta","status":"publish","type":"post","link":"https:\/\/www.pilvikoodari.net\/?p=655","title":{"rendered":"Mobiilisovelluksen yll\u00e4pidosta"},"content":{"rendered":"\n<p>T\u00e4ll\u00e4 kertaa turistaan mobiilikehitykseen liittyvi\u00e4 asioita.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Sovellus-ekosysteemien kehitys<\/p>\n\n\n\n<p>Mobiilikehityksen maailmassa asiat menev\u00e4t eteenp\u00e4in melkoista vauhtia, vaikka se ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 tavalliselle sovellusten k\u00e4ytt\u00e4j\u00e4lle niin erityisesti n\u00e4kyisik\u00e4\u00e4n. Sovelluskehitt\u00e4j\u00e4n on oltava jatkuvasti ajan tasalla, sill\u00e4 Google ja Apple tuovat omalta osaltaan jatkuvasti uusia vaatimuksia ja toisaalta my\u00f6s mahdollisuuksia sovelluskehitt\u00e4jille. Esimerkkein\u00e4 viime vuosilta mainittakoon mm.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Androidin <a rel=\"noreferrer noopener\" aria-label=\"Google Playn kautta teht\u00e4v\u00e4 sovelluspaketin allekirjoittaminen (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/developer.android.com\/studio\/publish\/app-signing#app-signing-google-play\" target=\"_blank\">Google Playn kautta teht\u00e4v\u00e4 sovelluspaketin allekirjoittaminen<\/a><\/li><li>Android <a rel=\"noreferrer noopener\" aria-label=\"64 bittisen paketin vaatimus sovelluskaupan julkaisuille (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/android-developers.googleblog.com\/2019\/01\/get-your-apps-ready-for-64-bit.html\" target=\"_blank\">64 bittisen paketin vaatimus sovelluskaupan julkaisuille<\/a><\/li><li>Androidin sovelluspaketin <a rel=\"noreferrer noopener\" aria-label=\"uusi bundle formaatti .apk formaatin tilalle (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/developer.android.com\/guide\/app-bundle\" target=\"_blank\">uusi bundle formaatti .apk formaatin tilalle<\/a><\/li><li>Apple on tiukentanut katselmointik\u00e4yt\u00e4nt\u00f6j\u00e4. Esimerkiksi pelkk\u00e4 videoesittely sovelluksesta ei en\u00e4\u00e4n riit\u00e4, vaikka viel\u00e4 muuutama vuosi se katsottiin riitt\u00e4v\u00e4ksi. On pakko antaa Applelle tunnukset sovellukseen kirjautumiseen, jotta Apple voi tutustua sovellukseen ennen julkaisua<\/li><li>Sovellusten k\u00e4ytt\u00f6oikeuksiin liittyv\u00e4t k\u00e4yt\u00e4nn\u00f6t el\u00e4v\u00e4t koko ajan. Androidilla k\u00e4ytt\u00f6oikeuksien tarkastelu riippuu osittain Andoid-versiosta, Apple vaatii silloin t\u00e4ll\u00f6in uusia selitetekstej\u00e4 erilaisille k\u00e4ytt\u00f6oikeuksille.<\/li><li>Tietyt k\u00e4yt\u00e4nn\u00f6t ja tekniikat vanhentuvat ja ne pit\u00e4\u00e4 poistaa k\u00e4yt\u00f6st\u00e4 ja korvata uusilla. Vanhentuneen k\u00e4yt\u00e4nn\u00f6n tai komponentin k\u00e4ytt\u00e4j\u00e4 saattaa yll\u00e4tty\u00e4 siit\u00e4, ett\u00e4 sovellukselle ei voikaan en\u00e4\u00e4n julkaista uutta versiota jos k\u00e4ytt\u00e4\u00e4 vanhentunutta k\u00e4yt\u00e4nt\u00f6\u00e4 tai teknologiaa.  Esimerkiksi iOS -puolella WebView komponentin k\u00e4ytt\u00f6 on vanhentumassa l\u00e4hiaikoina ja se on korvattava sovelluksessa <a rel=\"noreferrer noopener\" aria-label=\"UIWebView komponentilla (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uiwebview\" target=\"_blank\">UIWebView komponentilla<\/a> <\/li><li>Google <a href=\"https:\/\/support.google.com\/firebase\/answer\/9167112?hl=en\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"lopetti suoran Google Analytics -yhteyden tukemisen mobiilista 31.10.2019 (avautuu uudessa v\u00e4lilehdess\u00e4)\">lopetti suoran Google Analytics -yhteyden tukemisen mobiilista 31.10.2019<\/a>. Sen j\u00e4lkeen sovellus, joka kirjaa analytiikkaa Google Analytics -integraatiolla, ei en\u00e4\u00e4 ker\u00e4\u00e4 analytiikkaa vaan sovelluksen on siirrytt\u00e4v\u00e4 k\u00e4ytt\u00e4m\u00e4\u00e4n esim. Googlen Firebase -integraatiota analytiikan l\u00e4hett\u00e4miseen.<\/li><\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Mobiililaitteiden k\u00e4ytt\u00f6j\u00e4rjestelmien kehitys<\/p>\n\n\n\n<p>Mobiilik\u00e4ytt\u00f6j\u00e4rjestelm\u00e4t itsess\u00e4\u00e4n p\u00e4ivittyv\u00e4t s\u00e4\u00e4nn\u00f6llisesti ja uudet versiot tuovat uudenlaisia ominaisuuksia, joista kehitt\u00e4j\u00e4n on hyv\u00e4 olla ajan tasalla. Sovelluksen kehitt\u00e4j\u00e4n pit\u00e4\u00e4 tehd\u00e4 p\u00e4\u00e4t\u00f6s, kuinka vanhoja k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n versioita sovellus tukee. Esimerkiksi Android 4.0 k\u00e4ytt\u00e4j\u00e4t alkavat olla jo niin harvinaisia ett\u00e4 tuen voi pudottaa pois mutta Android 5.0 k\u00e4ytt\u00e4ji\u00e4 puolestaan on viel\u00e4 jonkin verran.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Laitteiden kehittyminen<\/p>\n\n\n\n<p>My\u00f6s laitteiden fyysiset ominaisuudet kehittyv\u00e4t. Kukapa olisi vuosia sitten voinut aavistaa, ett\u00e4 joskus puhelimen n\u00e4yt\u00f6n yl\u00e4osassa voisi olla ns. <a rel=\"noreferrer noopener\" aria-label=\"notch (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/www.pcworld.idg.com.au\/article\/656506\/smartphone-notches-explained\/\" target=\"_blank\">notch<\/a>, joka peitt\u00e4\u00e4 osan n\u00e4yt\u00f6st\u00e4. N\u00e4ytt\u00f6jen koot ovat kasvaneet. Kehitt\u00e4j\u00e4n teht\u00e4v\u00e4 on varmistaa, ett\u00e4 sovellus n\u00e4ytt\u00e4\u00e4 hyv\u00e4lt\u00e4 kaikilla laitteilla. <\/p>\n\n\n\n<p class=\"has-medium-font-size\">S\u00e4\u00e4ntely ja lains\u00e4\u00e4d\u00e4nt\u00f6<\/p>\n\n\n\n<p>Omat haasteensa sovelluksen elinkaareen tuovat varsinkin erilaiset maksamiseen liittyv\u00e4t s\u00e4\u00e4ntelyn muutokset. Esimerkiksi <a rel=\"noreferrer noopener\" aria-label=\"TUPAS -pankkikirjautuminen vanhentui periaatteessa 1.10.2019 (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/www.kyberturvallisuuskeskus.fi\/fi\/vahva-pankkitunnistus-asiointipalveluissa-muuttuu-viimeistaan-1102019\" target=\"_blank\">TUPAS -pankkikirjautuminen vanhentui periaatteessa 1.10.2019<\/a> ja se pit\u00e4\u00e4 korvata uudella tunnistautumisratkaisulla. PSD2 standardi puolestaan vaatii, ett\u00e4 jatkossa <a rel=\"noreferrer noopener\" aria-label=\"mobiilisovellus ei en\u00e4\u00e4 voi tehd\u00e4 veloituksia luottokortilta ilman ett\u00e4 vahva tunnistautuminen on tuettuna (avautuu uudessa v\u00e4lilehdess\u00e4)\" href=\"https:\/\/www.crasman.fi\/blogi\/nain-psd2-direktiivi-vaikuttaa-verkkokauppoihin\" target=\"_blank\">mobiilisovellus ei en\u00e4\u00e4 voi tehd\u00e4 veloituksia luottokortilta ilman ett\u00e4 vahva tunnistautuminen on tuettuna<\/a>.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Tekninen kehitys ohjelmointiymp\u00e4rist\u00f6iss\u00e4<\/p>\n\n\n\n<p>My\u00f6s itse ohjelmointiymp\u00e4rist\u00f6t kehittyv\u00e4t koko ajan. Sovelluksen yll\u00e4pitoon liittyy oleellisena osana sovelluksen koodipohjan pit\u00e4minen riitt\u00e4v\u00e4n tuoreena my\u00f6s silt\u00e4 osin.<\/p>\n\n\n\n<p>React Native -hydridisovelluksen p\u00e4ivitt\u00e4misess\u00e4 on joskus haasteena l\u00f6yt\u00e4\u00e4 oikea yhdistelm\u00e4 sovelluksen komponenteista, jotka toimivat hyvin yhteen. Kunkin komponentin osalta on varmistettava erikseen, toimiiko se varmasti juuri t\u00e4m\u00e4n React Native -version kanssa, jota sovelluksessa k\u00e4ytet\u00e4\u00e4n. K\u00e4yt\u00e4nn\u00f6ss\u00e4 siis React Native -version nosto tarkoittaa sit\u00e4 ett\u00e4 sovellus on testattava kokonaisuutena huolellisesti ennen p\u00e4ivitysversion julkaisua.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Muuta<\/p>\n\n\n\n<p>Toimintaymp\u00e4rist\u00f6ss\u00e4 saattaa tapahtua my\u00f6s jotain odottamatonta, johon sovelluksen kehitt\u00e4j\u00e4 joutuu reagoimaan.<\/p>\n\n\n\n<p>Onpa t\u00e4n\u00e4 vuonna 2019 ollut ilmassa sellaistakin, ett\u00e4 Huawei-merkkisiin Android-puhelimiin ei voisikaan en\u00e4\u00e4 jatkossa jaella sovellusta Googlen sovelluskaupan kautta. Sovelluksen julkaisija joutuu siis pohtimaan, haluaako n\u00e4hd\u00e4 vaivaa ja julkaista sovelluksensa my\u00f6s Huawein omassa sovelluskaupassa.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Yhteenveto<\/p>\n\n\n\n<p>Kaikki edell\u00e4 mainitut asiat vaikuttavat siten, ett\u00e4 mobiilisovelluksen yll\u00e4pidossa on pysytt\u00e4v\u00e4 hereill\u00e4. Mit\u00e4 kauemmin antaa teknist\u00e4 velkaa synty\u00e4, sit\u00e4 haastavampia p\u00e4ivityksi\u00e4 voi joutua tekem\u00e4\u00e4n ja joskus tiukallakin aikataululla.<\/p>\n\n\n\n<p>P\u00e4ivitykset voivat olla haastaviakin. Esimerkiksi PSD2-tuen eli maksamisen vahvan tunnistamisen toteuttaminen sovellukseen voi tarkoittaa sovelluksen maksamisen uudistamista ihan t\u00e4ysin.<\/p>\n\n\n\n<p>Yhteenvetona voidaan todeta, ett\u00e4 mobiilikehitt\u00e4j\u00e4n on seurattava tarkasti Android- ja iOS-k\u00e4ytt\u00f6j\u00e4rjestelmien ymp\u00e4rill\u00e4 tapahtuvaa teknist\u00e4 kehityst\u00e4: kansallisen maksus\u00e4\u00e4ntelyn, mobiililaitteiden, mobiilik\u00e4ytt\u00f6j\u00e4rjestelmien ja koko mobiiliekosysteemin tapahtumista on syyt\u00e4 olla perill\u00e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ll\u00e4 kertaa turistaan mobiilikehitykseen liittyvi\u00e4 asioita. Sovellus-ekosysteemien kehitys Mobiilikehityksen maailmassa asiat menev\u00e4t eteenp\u00e4in melkoista vauhtia, vaikka se ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 tavalliselle sovellusten k\u00e4ytt\u00e4j\u00e4lle niin erityisesti n\u00e4kyisik\u00e4\u00e4n. Sovelluskehitt\u00e4j\u00e4n on oltava jatkuvasti ajan tasalla, sill\u00e4 Google ja Apple tuovat omalta osaltaan jatkuvasti uusia vaatimuksia ja toisaalta my\u00f6s mahdollisuuksia sovelluskehitt\u00e4jille. Esimerkkein\u00e4 viime vuosilta mainittakoon mm. Androidin Google Playn kautta &#8230; <a title=\"Mobiilisovelluksen yll\u00e4pidosta\" class=\"read-more\" href=\"https:\/\/www.pilvikoodari.net\/?p=655\" aria-label=\"Lue lis\u00e4\u00e4 aiheesta Mobiilisovelluksen yll\u00e4pidosta\">Lue lis\u00e4\u00e4<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-655","post","type-post","status-publish","format-standard","hentry","category-mobiili"],"_links":{"self":[{"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/posts\/655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=655"}],"version-history":[{"count":16,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/posts\/655\/revisions"}],"predecessor-version":[{"id":684,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=\/wp\/v2\/posts\/655\/revisions\/684"}],"wp:attachment":[{"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pilvikoodari.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}