Att utveckla för iOS är relativt enkelt, men det finns några få saker som gör det svårare än vad det behöver vara. Här nedan listar jag några punkter som skulle göra livet lite enklare för iOS-utvecklare.
Betatesta applikationer
Att testa applikationer i iOS har alltid varit komplicerat om man jämför med Android. I Android har man kunnat bygga applikationen och sedan skicka ut .apk-filen till testare. Google gjorde detta ännu enklare under senaste Google I/O. Nu kan Android-utvecklare rulla ut nya funktioner stegvis till användare och även skicka ut speciella versioner till en viss procent av användarna.
iOS-utvecklare måste istället använda sig utav tjänster som TestFlight, men det är fortfarande onödigt komplicerat. Du måste få tag i UUID på din betatestares enhet, för att sedan lägga in det en speciell certifikatfil. Applikationen måste sedan byggas med denna fil, och till sist, på något sätt, ska appen skickas till alla testare.
Hur skulle Apple kunna lösa detta då?
Eftersom all utveckling sker i Xcode skulle det också passa bra om ett betatestningssystem fanns inbyggt direkt i Xcode. Önskvärt vore om et skulle kunna gå att lägga till en testare genom att endast ange dennes Apple ID. Ett mejl eller en push-notis skickas till användaren som väljer om denne vill acceptera. Om så sker visas detta i Xcode och genom några få knapptryck kan en betaversion av applikationen skickas ut.
Det vore enligt mig drömscenariot.
Förbättrad bakgrundskörning
Bakgrundskörningen i iOS fungerar bra för vissa typer av applikationer, men det finns fortfarande några bitar som går att förbättra. Ett exempel på detta är synkronisering av data i bakgrunden. Om en applikation skulle få möjligheten att vakna upp några gånger per timme hade utvecklare sluppit ta omvägar som att använda geofence-funktionaliteten för uppdatering av data. Användarupplevelsen hade också blivit bättre eftersom färsk data skulle finnas där när en app startas.
I avsnitt #16 av Accidental Tech Podcast tar Marco Arment upp just detta. Hans förslag för att bakgrundskörning inte skall missbrukas är möjligheten att väcka en applikation via push-notiser. Eftersom utvecklaren då är tvungen att ha en server som skickar ut notiserna skulle detta ha en viss ekonomisk påverkan, vilket i sin tur skulle begränsa bakgrundskörningen till lite mer avancerade och seriösa applikationer.
Bättre kommunikation mellan applikationer
Denna punkten är klurig, eftersom det finns mer eller mindre avancerade vägar för Apple att gå. En applikation skulle för det första behöva definiera ett antal filtyper ( Bilder, videoklipp, länkar, etc ) som denna kan hantera, det skulle i så fall göras i Xcode precis som man kan göra med vägbeskrivningar idag. Se bild nedan.
Hur kommunkationen mellan applikationer sedan skall fungera är upp till Apple. Likt Android skulle Apple kunna låta användare skicka data till applikationer i bakgrunden som sedan gör något smart, exempelvis laddar upp en bild till Dropbox och returnerar svaret till applikationen som initierade bakgrundskörningen.
Ett annat alternativ är möjligheten för applikationer att visas över en annan. Detta finns redan i iOS 6 och kallas XPC – dock är det ett privat ramverk som inte får användas av tredjepartsutvecklare. Det går att läsa mer om detta här.
Byta ut standardapplikationerna
Ett av de största klagomålen på iOS är att det inte går att byta ut de förvalta standardapplikationerna – Chrome istället för Safari, Mailbox istället för Mail osv. Det finns egentligen inget att tillägga här förutom att det hade varit kul att se en förändring angående detta. Tim Cook hintade om något sådant under hans intervju på AllThingsD häromdagen, men om det kommer i iOS 7 eller inte, det återstår att se.
I övrigt skulle jag kunna nämna att synkroniseringen över iCloud är “trasig”, men eftersom jag inte har någon direkt erfarenhet av detta utelämnar jag det så länge. Andra utvecklare har dock klagat länge över iCloud-synkroniseringen.
Jag tror att denna listan ser ungefär likadan ut hos många utvecklare –eller rättare sagt, jag hoppas det. Några utav dessa funktioner kommer förhoppningsvis att leta sig in i iOS nu när ledningen är utbytt och de kan starta om på en ny kula.