Dec 5

Neljä nopeaa tapaa parantaa iOS-sovelluksen käyttökokemusta

Example image

Vaikka mobiilisovelluksen käyttökokemuksen parantaminen ei tapahdu yksittäisillä tempuilla, on olemassa vähän käytettyjä ominaisuuksia jotka sopivat lähes kaikkiin iOS-sovelluksiin ja helpottavat niiden käyttöä. Esittelen neljä sellaista ominaisuutta. Ominaisuudet ovat vaivattomia toteuttaa useimpiin olemassa oleviin sovelluksiin.

1. Salasanojen jakaminen sovelluksen ja verkkosivujen välillä (Shared Web Credentials)

Salasanojen kirjoittaminen puhelimen näppäimistöllä ei ole helppoa. Kirjautuminen Facebook- tai Google-tunnuksilla, tai Touch ID:n käyttö helpottaa ongelmaa, ja useat iOS-sovellukset yrittävät pitää käyttäjän kirjautuneena niin pitkään kuin mahdollista.

Joskus salasana on kuitenkin pakko kirjoittaa. Jos samaa palvelua voi käyttää selaimella, voi käyttäjätunnuksen ja salasanan syöttää automaattisesti Safarin avainnippuun tallennetuista salasanoista. Ominaisuuden nimi on Shared Web Credentials. Shared Web Credentials mahdollistaa Safariin tallennetun salasanan käytön sovelluksessa.

Ominaisuutta varten sovelluksen käyttämälle palvelimelle lisätään JSON-tiedosto joka kertoo ne sovellukset, jotka saavat käyttää osoitteeseen assosioituja salasanoja. Sovellus käy lukemassa tiedoston sisällön, ja sen perusteella näyttää tarjolla olevat käyttäjätunnus-salasanaparit.

Example image

IRCCloud on toteuttanut avainnipulla kirjautumisen

Shared Web Credentials

2. Sisällön lataaminen taustalla (Background fetch)

Taustalatauksen tarkoitus on ennakoida sovelluksen käynnistys ja valmistella tarvittava sisältö valmiiksi ennen sovelluksen varsinaista käynnistämistä, esimerkiksi lataamalla etusivun sisällön palvelimelta. Käynnistäessään sovelluksen, näkee käyttäjä valmiiksi ladatun etusivun sen sijaan että tyhjällä sivulla pyörisi yksinäinen latausspinneri.

Lataaminen käynnistetään iOS-käyttöjärjestelmän toimesta. iOS seuraa sovelluksen käyttöä, ja päättelee sen perusteella sopivia aikoja suorittaa taustalataus. Yleensä tämä tapahtuu silloin kun käyttäjä selaa koti-näkymässä sivulle jossa sovelluksen kuvake on. Applen dokumentaation mukaan taustalataamista kutsutaan useammin silloin kun käyttäjä on wifi-verkossa, laite on virtalähteessä tai laitetta käytetään aktiivisesti.

Teknisesti sisällön lataaminen toimii niin, että sovellukselle annetaan aikaa tehdä lataus ja sen jälkeen sovelluksen oletetaan vastaavan onnistuiko lataaminen ja löytyikö uutta sisältöä. Taustalataaminen on suoritettava 30 sekunnissa, mutta mahdollisimman nopeasti sillä käytetty aika vaikuttaa siihen kuinka usein sovellukselle annetaan mahdollisuus taustalataukseen.

iOS Developer Library: Background Execution

3. Sisällön näyttäminen Spotlightissa

Spotlight-haku iOSissa

Sovelluksen tietoja voi hakea Spotlightin kautta.

Spotlight vastaa iOS-laitteen hakutulosten näyttämisestä. Oletuksena se näyttää Applen omien sovellusten - kuten sähköpostien ja kalenterimerkintöjen - sisältöä hakutuloksissa, mutta Spotlightin tuloksiin voi lisätä omien sovellusten sisältöä. Esimerkiksi reseptisovellusten reseptit voisivat näkyä hakutuloksina.

Spotlightia voi hyödyntää kahdella tavalla - sovellus voi lisätä haettavia asioita yleiseen Spotlight-indeksiin, tai Spotlightin avulla sovelluksen sisältä voi hakea tietoja.

Hakua voi jatkaa sovelluksen sisällä.

Hakua voi jatkaa sovelluksen sisällä

Sovellusten metadatan lisääminen tapahtuu CoreSpotlight-kirjaston avulla. Jokainen uusi tietue lisätään itse. Lisätty tietue pysyy Spotlightin hakutuloksissa korkeintaan kaksi viikkoa, mutta eliniän voi määritellä itse.

iOS Developer Library: Core Spotlight Framework Reference

4. Asetusten ja sovelluksen tilan synkronointi usean laitteen välillä (iCloud Key-Value Storage)

iCloudin yli on helppoa synkronoida sisältöä usean laitteen välillä. Esimerkiksi e-kirjasovelluksen kirjanmerkit, pelin tallennukset tai sovelluskohtaiset asetukset voidaan tallentaa iCloudiin ja ladata kaikille laitteille. Näin käyttäjä voi jatkaa toisella laitteella siitä mihin jäi.

Käytännössä iCloudin avain-arvo-varasto toimii samalla tavalla kuin lokaali NSUserDefaults. Sieltä voi lukea, ja sinne voi kirjoittaa saman muotoisia tietotyyppejä kuin NSUserDefaults-luokkaan.

iCloudin key-value-varastoon mahtuu sovelluskohtaista sisältöä enintään megatavun verran, eli sinne ei kannata laittaa suuria NSData-olioita. Lukeminen ja tallentaminen tapahtuu kutsumalla NSUbiquitousKeyValueStore-luokan defaultStore()-metodin palauttamaa oliota. Sovelluksen tulee myös kuunnella varastossa tapahtuvista ulkopuolisista muutoksista kertovia notifikaatioita. Mahdollisten lokaalien ja globaalien arvojen väliset konfliktit ovat kuitenkin sovelluksen kehittäjän vastuulla.

Mac Developer Library: Designing for Key-Value Data in iCloud

iOS mobile development Swift

Arttu Ekholm