Monitehtäväisyys on iOS:n ominaisuus, joka mahdollistaa useiden sovellusten suorittamisen ja tehtävien suorittamisen samanaikaisesti. Se on käytettävissä iOS 4:ssä tai uudemmissa versioissa.

Monitoiminto julkaistiin ensimmäisen kerran kesäkuussa 2010 iOS 4.0:n julkaisun yhteydessä. Vain iPhone 4, iPhone 3GS ja iPod Touch 3. sukupolvi pystyivät käyttämään moniajoa. iPad sai moniajon vasta iOS 4.2:n julkaisussa marraskuussa 2010. Monitasking on tällä hetkellä tuettu iPhone 3GS:ssä tai uudemmissa, iPod Touchissa 3. sukupolvessa tai uudemmissa ja kaikissa iPad-malleissa.

 

Mitä moniajo tarkoittaa?

Moniajo (engl. multitasking) tarkoittaa, että iOS-laite voi pitää useita sovelluksia "elossa" samanaikaisesti tai suorittaa niille taustatehtäviä ilman, että käyttäjän tarvitsee pitää niitä näkyvillä. Käytännössä tämä mahdollistaa esimerkiksi musiikin kuuntelun taustalla, sijaintipalvelun käytön navigoinnissa tai viestien vastaanottamisen push-ilmoituksilla, vaikka käyttäjä vaihtaa toiselle sovellukselle.

Keskeinen toiminta ja rajoitukset

iOS käyttää aggressiivista resurssienhallintaa akun ja suorituskyvyn säästämiseksi. Kun sovellus siirtyy taustalle, järjestelmä voi:

  • asettaa sovelluksen tilan tallennettavaksi ja keskeyttää sen suorituksen (suspension),
  • antaa sovellukselle pienen määrän taustatyöaikaa viimeistellä tehtäviä (beginBackgroundTask),
  • sallia tiettyjä taustatoimintoja jatkuvasti, jos sovellus käyttää hyväksyttyä taustatilaa (esim. ääni, VoIP, sijainti),
  • terminoida sovelluksen, jos järjestelmä tarvitsee lisää muistia tai akkua säästääkseen.

Tämän takia kehittäjien tulee suunnitella taustatehtävät lyhyiksi ja tehokkaiksi; pitkät tai jatkuvat taustaprosessit ovat yleensä rajoitettuja tai kiellettyjä ilman erityistä taustaoikeutta.

Moniajon pääominaisuudet

  • Nopea sovellusvaihto: käyttäjä voi vaihtaa nopeasti edelliseen sovellukseen. Aluksi tämä tapahtui kotinäppäimen kaksoisnäpäytyksellä, myöhemmin eleillä laitteista riippuen.
  • Taustatoiminnot (Background Modes): iOS antaa sovelluksille rajatun määrän taustaoikeuksia, kuten audio, voip, location, fetch, remote-notification, Bluetooth- ja ulkoisten lisälaitteiden tuki.
  • Background App Refresh: järjestelmä voi antaa sovellukselle ajoittain mahdollisuuden hakea uusia tietoja taustalla optimoidun aikataulun mukaisesti (käyttäjän asetuksista riippuen).
  • Picture-in-Picture (PiP): videoiden katselu pienenä ikkunana toisten sovellusten päälle (alkuperäisesti iPadissä, myöhemmin myös iPhonessa iOS-versioiden myötä).
  • Multitehtävä-näkymät ja jakaminen iPadilla: iPad tukee rinnakkaista ikkunoiden käyttöä (Split View) ja Slide Over -toimintoja, joiden avulla voi käyttää kahta sovellusta samanaikaisesti.
  • Taustatehtävien ajoitus (BackgroundTasks): uudemmat iOS-versiot tarjoavat rajatun tavan ajoittaa pidempiä taustatehtäviä järjestelmän optimoidessa suoritusajankohtaa (esim. BGTaskScheduler API).

Historia – tärkeät etapit

  • Kesäkuu 2010: iOS 4 toi moniajon iPhoneen ja iPod Touchiin.
  • Marraskuu 2010: iPad sai moniajon iOS 4.2 -päivityksellä.
  • iOS 7: moniajon käyttöliittymä ja Background App Refresh -periaatteet kehittyivät (taustapäivitysten hallinta).
  • iOS 9: iPadille lisättiin Split View, Slide Over ja Picture-in-Picture -ominaisuuksia, laajentaen todellista samanaikaista käyttöä.
  • Uudemmat iOS-versiot ovat tuoneet parempia API-rajapintoja taustaprosessien ajoitukseen ja energiatehokkuuteen (esim. BackgroundTasks -kehykset).

Miten kehittäjän kannattaa toimia

  • Valitse oikea taustatila vain tarpeen mukaan ja ilmoita se Info.plistissä (UIBackgroundModes).
  • Käytä Background App Refresh ja push-ilmoituksia tiedon synkronointiin sen sijaan, että yrittäisit pitää sovellusta jatkuvasti käynnissä.
  • Rajoita taustatehtävien kestoa ja reagoi järjestelmän aikakatkaisuihin (expiration handlers).
  • Hyödynnä BGTaskScheduleria pidempikestoisiin, mutta järjestelmän ajoittamiin taustatöihin (iOS 13+).
  • Testaa taustatoimintoja aina oikealla laitteella, sillä simulaattori ei aina vastaa laitteen resurssirajoituksia.

Rajoitukset käyttäjälle

Käyttäjä voi hallita moniajoon liittyviä asetuksia: esimerkiksi Taustapäivitys voidaan kytkeä pois päältä säästääkseen akkua tai datapakettia. Lisäksi paikannuksen jatkuva käyttö pyytää käyttäjältä erillisen luvan (esim. "sallia aina" vs. "vain käytön aikana"). iOS voi myös sulkea tai pysäyttää taustalla olevia sovelluksia, jos laitteella on vähän muistia tai akku on vähissä.

Yhteenveto

iOS-moniajo mahdollistaa joustavan ja käyttäjäystävällisen sovelluskokemuksen, mutta se perustuu järjestelmän tiukkaan resurssienhallintaan. Sovelluskehittäjän kannattaa hyödyntää iOS:n tarjoamia hyväksyttyjä taustatoimintoja ja optimoida taustaprosessit akkukeston ja suorituskyvyn säilyttämiseksi. Käyttäjän näkökulmasta moniajo tarjoaa sujuvan tavan käyttää useita sovelluksia samanaikaisesti, kunhan laitteesta huolehditaan ja asetukset ovat sopivat.