iOS

Från ax till limpa

Dfind 2014-05-21

Daniel Saidi @danielsaidi

Syfte

Visa hur man utvecklar appar för iOS

Visa vilka program och tjänster man använder

Visa hur man distribuerar appar till testare och AppStore.

Vi kommer att prata om

iOS

Objective-C

XCode

Apple Developer Portal

iTunes Connect

TestFlight

...och sedan kommer vi att göra en app

Vem är jag?

35 år gammal, gift, tvåbarnsfar

Civilingenjör i Medieteknik, Linköpings Universitet

Webb sedan 1996

Mobila system sedan 2005

Systemutvecklare, tidigare konsult, nu anställd på eBay

Min iOS-resa

2010

Byggde en webbapp för iOS under ett Creative Hack

Geo-baserad bookmarking

Endast webbapplikation - ingen app

Min iOS-resa

2011

Lärde mig iOS (3.1) och portade appen till iOS

Fortfarande fokus på OSS och webbaserade-system

...men iOS var ju roligt

Min iOS-resa

2012

Föräldraledighet i mars = hårdplugg

iTunesU, böcker, bloggar etc.

Flera projekt med vänner och bekanta

Min iOS-resa

2013

eBay / Tradera

Appamini HB

...och inga nya sidoprojekt

...och hur har det gått?

Inga miljoner

Inga genombrott *

iOS är fortfarande roligt

(...och jag får åka på WWDC om två veckor!!!)

 

* Min största succé gjorde jag dock nyligen på tio minuter

Frågor?

Nu kör vi!

Upplägg

Genomgång av flera centrala begrepp

Vi går först igenom dem översiktligt

Därefter praktisk användning under demot

iOS

Apples operativsystem för mobila enheter

Introducerades av 2007 för iPhone

Körs idag på iPhone, iPad, iPod, Apple TV etc.

Relativt täta uppdateringar, drygt 1 major per år

iOS 7 var den största uppdateringen

iOS 8 kommer snart

Objective-C

Programmeringsspråk

Objektorienterat, meddelandebaserat lager över C

Utvecklat på tidigt 80-tal

Har färdats via NeXT (NeXTSTEP) till iOS och OS X

Syntaxen får utvecklare världen över att gråta

Ni kommer att få se lite kod när vi bygger appen

XCode

Apples IDE för utveckling till OS X och iOS

Gratis(!)

I princip ett krav utveckling till OS X och iOS *

Ger tillgång ett stort utbud av verktyg:

git, UI-verktyg, simulator, kodanalys, tester etc.

Används även för distribution till AppStore

 

* Alternativ finns, t.ex. AppCode

Apple Developer Portal

Används bl.a. för att hantera:

Certifikat - både för utveckling och distribution

Appar - och vilka tjänster de ska ha tillgång till

Enheter - vilka du får utveckla på och testa med

Provisioning - kopplar ihop certifikat, app och enhet

developer.apple.com

iTunes Connect

Används bl.a. för att hantera:

Appar - de du lagt upp på AppStore

Sales and Trends - hur försäljningen går

Contracts, Tax and Banking - dina avtal med Apple

Payment and Financial Reports - utbetalningsrapporter

itunesconnect.apple.com

TestFlight

Distribution av appar till testare

Statistik över hur appen används

Tillhandahåller även kraschrapporter

Stöd för iOS och (nyligen) Android...

...sedan köpte Apple upp TestFlight och tog bort stödet

testflightapp.com

Nu ska vi bygga en app!

Agenda

Skapa ett enkelt projekt

Bygga en fantastisk app

Köra appen på simulator

Köra appen på fysisk enhet

Distribuera appen till testare

Distribuera appen till AppStore...nästan

XCode

Test på fysisk enhet

Apple Developer Portal

Utveckling mot simulator är gratis

Utveckling mot fysisk enhet kostar

808 kr/år - mycket jämfört med Google och MS

Man måste registrera utvecklarenheter, max 100 per år

Man måste skapa ett utvecklingscertifikat

developer.apple.com

Demo av test på fysisk enhet

Distribution till testare

TestFlight

Testaren måste registrera sig och sina enheter

Man måste därefter bjuda in testaren till sitt team

När testaren går med, kan man se dess enheter

testflightapp.com

Apple Developer Portal

Man måste registrera alla externa testenheter

Man måste skapa ett distributionscertifikat

Man måste skapa en AdHoc-provisionsprofil

Profilen identifierar en app, ett certifikat och enheter

developer.apple.com

XCode

För att distribuera sin app, arkiverar man projektet

För att kunna arkivera, måste man ha en fysisk enhet

Arkivet måste signeras med en AdHoc-provisionsprofil

Arkivet sparas därefter som en IPA-fil på disk

IPA-filen måste slutligen laddas upp till TestFlight

testflightapp.com

Demo av distribution till testare

Distribution till AppStore

Apple Developer Portal

Wildcard (*) kan användas av flera enklare appar

Vissa funktioner (t.ex. push) kräver unikt app ID

Man kan använda samma distributionscertifikat

Man måste skapa en AppStore-provisionsprofil

Profilen identifierar endast en app och ett certifikat

developer.apple.com

iTunes Connect

För att distribuera sin app, måste man skapa en app i iTC

Man måste ange Bundle ID och SKU (Stock Keeping Unit)

Man måste ladda upp en ikon och information om appen

Man måste klassificera appen, för att fastställa åldersgräns

Man måste markera appen som "redo för binär"

itunesconnect.apple.com

XCode

För att distribuera sin app, arkiverar man projektet

För att kunna arkivera, måste man ha en fysisk enhet

Arkivet måste signeras med en AppStore-provisionsprofil

Arkivet sparas inte på disk, utan skickas direkt till AppStore

När filen har laddats upp och godkänts, är allting klart...

...eller...?

Apples Godkännandeprocess

Tar mer än en vecka för nya appar

Tar ca en vecka för uppdateringar

Min senaste uppdatering tog fem timmar

Godkännande är ett högst personligt beslut

Men oftast...

Slutet gott, allting gott

Lessons learned

Frågor?

Tack!