Apr 6

Progressive Web App ja iOS

iPhone

“Voitaisiinko me tehdä natiiviappin sijaan sellainen Progressive Web App, jonka voisi ladata meidän sivuilta?”

PWA:lle ei ole tarkkaa määritelmää, mutta yleensä siitä puhuttaessa tarkoitetaan webbisivua, jonka voi ladata puhelimen työpöydälle. Lataamisen jälkeen sen pitäisi näyttää ja käyttäytyä niin kuin minkä tahansa natiivisovelluksen. PWA:n pitäisi olla alustariippumaton, eli se toimisi yhtä hyvin sekä Android- että iOS-laitteelle.

PWA-applikaatioita on ollut tavallaan olemassa iOS-alustalle hyvin kauan – ennen App Storen julkaisua vuonna 2007 ainoa tapa ladata ja ajaa kolmannen osapuolen sovelluksia oli ladata webbisivuja iPhonen työpöydälle. Apple kutsui niitä silloin Web Appeiksi. Ne olivat hitaita, rajoittuneita, eikä niillä ollut pääsyä puhelimen kaikkiin ominaisuuksiin – kuten kiihtyvyyssensoriin tai käyttäjän valokuva-albumiin. App Storen ja natiivisovellusten julkaisun myötä Web Appit unohdettiin, eikä kukaan jäänyt ikävöimään niitä.

Keskustelu PWA-applikaatioiden tekemisestä iOS-alustalle heräsi henkiin kehittäjäpiireissä loppuvuonna 2017, kun Safari-selaimen moottorina toimivaan WebKitiin lisättiin Service Worker API. API mahdollistaa koodin ajamisen taustalla sekä kattavan offline-tuen, eli PWA-applikaatio voisi olla jotain muutakin kuin yksinkertainen pieruappi.

iOS-alustalla PWA-applikaatioissa on muutamia etuja sekä puutteita natiiviapplikaatioihin verrattuna. Olen listannut alle mielestäni tärkeimmät asiat jotka olisi syytä huomioda uuden iOS-applikaation toteutustapaa valitessa. Huomaathan, että ao. asiat koskevat vain iOS-alustaa – Android-puolella tilanne PWA:n suhteen on hyvin erilainen.

PWA:lla voi tehdä asioita, joihin natiiviapplikaatio ei pysty

  • PWA-applikaatiot jaetaan App Storen ulkopuolella. Applikaation sisäisiin maksuihin ei voi käyttää Applen in-app -maksupalvelua, vaan kehittäjä joutuu toteuttamaan itse kaiken maksamiseen liittyvän logiikan.
  • Apple Pay on tuettu PWA:ssa, ja sen voi integroida esim. Stripeen.
  • PWA-applikaation paketin sisäiset asetukset on säädettävissä asentaessa. Referral-linkit tai sovelluksen ulkoasun muuttaminen lataustilanteen mukaan onnistuu PWA-applikaatioissa, muttei vieläkään natiiveissa iOS-sovelluksissa.

PWA-applikaatiosta puuttuvia asioita

  • Push-viestejä ei ole tuettu, mutta Service Worker -APIn lisäämisen myötä push-viestien vastaanottaminen ehkä tulee tuetuksi.
  • Tausta-ajoa ei ole mahdollista toteuttaa. Natiiviappeissakaan ei ole täydellistä tausta-ajoa, mutta mm. äänettömillä push-viesteillä sai applikaation ajamaan koodia taustalla tarvittaessa.
  • PWA-appit sammuvat mennessään taustalle ja käynnistyvät taas uudestaan käyttäjän avatessa applikaation. Rajoitusta voi kiertää tallentamalla ja lataamalla applikaation tilan, mutta sovelluksen uudelleenkäynnistymisestä seuraavaa valkoista ruutua ei saa naamioitua.

2018 – The year of PWA for iOS?

PWA ei tällä hetkellä ole natiiviapplikaation täydellinen korvike. Mielestäni ainoa syy harkita mobiiliapplikaation toteuttamista PWA-applikaationa on oman maksujärjestelmän käyttö – ja Applen 30% komission välttäminen – applikaatiossa Applen In-App -ostopalvelun käytön sijaan. PWA tulee kuitenkin kehittymään.

Kunhan PWA rupeaa tukemaan sekä push-viestejä, että toimivaa tausta- ja moniajoa, on kyseessä sellainen kokonaisuus joka riittäisi hyvin monen iOS-mobiilisovelluksen tekemiseen PWA-applikaationa.

Ei vielä, mutta ehkä vuoden kuluttua.

Lisää luettavaa

Esimerkkejä PWA-applikaatioista

WebKit

PWAs are coming to iOS 11.3: Cupertino, we have a problem

iOS mobile development web PWA

Arttu Ekholm