Tar 4 minuter att läsa
Krönikor

Behöver vi ha möjlighet att köra program i bakgrunden?

Sedan Apple släppte sin SDK för Iphone har snacket gått runt om på nätet om viljan av att kunna köra program i bakgrunden. Det hävdas att det är en nackdel att Apple inte tillåter det. Men är det verkligen en så viktig fråga?

Det är framför allt tjänster som IM-program där det hävdas att behovet finns. Alltså att man ska kunna få ett meddelande på Ichat trots att man har en annan app aktiv just när meddelandet kommer.

Adium och Twitter tittar fram bakom en Iphone

Redan när Apple presenterade SDK:n så introducerade man också en push-tjänst som skulle bli tillgänglig för utvecklare att använda sig av. Tyvärr släpptes aldrig API:erna för den, och många började tro att Apple helt enkelt inte brydde sig om just den delen av Iphoneutvecklingen.

Nu visade det sig att det gjorde man visst. Det hade varit stora problem att sjösätta tjänsten, och man hade befarat att den skulle brista under det massiva trycket av miljoner användare. Så man gjorde det som Apple brukar göra; släpper inget som man vet är halvdant. (Det här kommer jag nog att utveckla mer i en annan krönika.)

Se fram emot tre punkt noll

I och med släppet av tredje inkarnationen av Iphone OS kommer även push-tjänsten att finnas tillgänglig, har Apple nu lovat. Vi får lita på att det stämmer.

Och som jag ser det eliminerar det nästan helt behovet av bakgrundsprocesser. Det allra största behovet av att ha program igång hela tiden är hos de program och tjänster som har någon typ av interaktion med andra. Exempelvis chattprogram. Och att ha något annat behov än push i det läget är bara overkill. I princip allt behov av meddelanden till användaren är därmed täckt av push.

En annan kategori av program i bakgrunden skulle kunna vara de som använder sig av hårdvara i telefonen kontinuerligt, och som man inte vill ska avbrytas när det ringer eller när man vill byta låt. Det kan vara ruttprogram som mäter hur långt du gått, sprungit eller åkt via en avläsning av GPS:en med jämna mellanrum. Kanske man kan tänka sig program som använder mikrofonen eller kameran hela tiden.

What to do?

Här ryktas det lite om att man från Apples sida kommer att avsätta en eller två »heta program« som ska kunna köras kontinuerligt utan att avbrytas av exempelvis ett samtal eller att man går in i ett annat program. Klassisk multitasking alltså.

Det här skulle kunna lösa både problemet med behovet av kontinuerlig access till hårdvaran, samtidigt som man maximerar batteritiden. Välj ett program som kan vara igång hela tiden, men bara ett. Övriga beter sig precis som idag. Förmodligen kommer man heller inte att kunna välja vilket program som helst att agera bakgrundsprocess.

Naturligtvis kommer godkännandeprocessen att vara extra hård från Apple för att man ska tillåta ett program att vara igång hela tiden. Antagligen kommer det att vara stora restriktionen för vad man får göra. Kanske att man inte får polla GPS:en oftare än – säg – var tionde sekund, att inga data får strömmas via nätet kontinuerligt utan att man kanske bara får hämta en viss mängd data under en viss tidsperiod. Och så vidare.

En möjlig lösning

Om Apple skulle göra något liknande det så tror jag att man faktiskt löst efterfrågan på program i bakgrunden en gång för alla. Bara program som verkligen har behovet kommer att godkännas för det, övriga är hänvisade till push. Batteritiden maximeras, användarna har knappast behov av fler än en eller kanske ett par bakgrundsprocesser åt gången, och frågan är ur världen.

Förutom en sak: Hur löser Apple användargränssnittet? Det här är den springande punkten för att få funktionen begriplig för icke-tekniker.

Hoppa högst upp på sidan