Første titt iOS 5 SDK

iOS 5 har blitt offisielt utgitt, og iOS-utviklere er ivrige etter å begynne å benytte seg av de mange nye funksjonene som er tilgjengelige i iOS 5 SDK. I denne artikkelen reflekterer bransjeguruene Brandon Trebitowski og Collin Ruffenach om mulighetene, effektivitetene og de mest spennende funksjonene i den nyeste SDK. Dette innlegget er et must leses for alle iOS SDK-utviklere!

iOS 5 Oversikt

Med utgivelsen av iOS 5 SDK har iOS utviklingsplattform nådd et nytt nivå av modenhet. Det er tydelig med denne SDK-utgivelsen at Apple virkelig lytter til utviklingssamfunnets behov og ønsker. Ikke bare har Apple anerkjent de felles målene og smertepunktene som ble uttrykt av IOS-utviklere, men de har også søkt å gi verktøy på SDK-nivå som vil løse mange av de vanlige problemene vi står overfor, og helt lindre noen av de mest frustrerende fallgruvene.

Med den nyeste SDK-en er det sikkert: det har aldri vært mer spennende å være en iOS-utvikler! Denne artikkelen gir deg en grunnleggende oversikt over de forbedringene vi finner mest spennende.

iCloud Storage APIs

iCloud-lagring er en stor ny funksjon i iOS 5. Det gjør at utviklere kan synkronisere applikasjonsdata på tvers av plattformer automatisk. Det er to former som dette kan ta: nøkkelverdi og dokumentbutikk.

Mens nøkkelverdi vil gi en fin sky versjon av NSUserDefaults, er det veldig plass begrenset. Maksimal mengde data som kan lagres, er 64 KB. I så fall foreslår Apple bare å bruke denne lagringsmekanismen for små mengder metainformasjon, for eksempel det siste sidenummeret som leses i et leserprogram. Et annet problem med nøkkelverdig skylagring er at utvikleren ikke har kontroll over konfliktløsning. Når en konflikt oppstår, brukes nøkkelverdien med den siste tidsstempel alltid. I en ekteverdenapplikasjon kan dette eller ikke være det riktige valget.

Etter min mening vil dokumentbutikken bli den store funksjonen her. Det er min forståelse at du vil kunne synkronisere hvilket som helst dokument du velger i skyen. Dette vil gjøre det mye enklere å lage ting som notater og gjøremålsprogrammer med vedvarende, distribuerte data. Dette kan lett oppnås ved å si å velge å synkronisere din SQL-database eller Core Data-butikken. I motsetning til synkroniseringsmetoden med nøkkelverdier, vil dokumentutviklerne kunne definere sin egen konfliktoppløsningsordning.

Jeg føler at Apple har ting nesten rett med iCloud-implementeringen. Den lave hengende frukten jeg tror de mangler, er evnen til brukerinteraksjon mellom dataene sine. Hvis de skulle gi slike mekanismer, kunne nettbaserte spill bli fullstendig tilrettelagt gjennom iCloud.

Offisiell Twitter Support

iOS 5 markerer begynnelsen på hva som synes å være et ganske seriøst forhold til Twitter. De er ikke "Facebook-offisielle" eller noe, men de kommer til å se mye av hverandre i løpet av de neste utgivelsene. Apple har hatt problemer med å slå på ledningen på det sosiale markedet. Ping synes å være litt av en glipp, og det ser ut til at Apple er klar til å spille ball med Twitter i stedet for å komme inn i spillet selv. Dette vil bli velkommen nyheter til mange utviklere. Etter OAuthcalypse ble Twitter-integrasjonen for et gitt søknad blitt mye mer komplisert. Med denne SDK-utgivelsen, administrerer iOS i hovedsak Twitter-autentisering på dine vegne, med brukere som kan aktivere eller deaktivere appens Twitter-godkjenning i iOS-systemvalg. Apple tilbyr nå en felles visningskontroller for å lage Tweets også.

Innen adresseboken har Apple tatt med en ny funksjon for å skrape Twitter for kontaktprofilbildene dine. Det fungerer ganske bra og snakker til andre typer integrasjon vi kan se fra app-utviklere. Alt dette skjer også på hælene av Twitter-bildeopplastingsintegrasjon, noe som også forenkles av den nye Twitter.framework. Samlet gjør dette lesing og skriving til Twitter eksponentielt lettere og ser ut til å være noe vi vil se enda mer fra i kommende utgivelser.

Storyboards

Med begynnelsen av Xcode 4.0 ble Interface Builder (IB) en mye mer integrert del av utviklingsopplevelsen, da den nå er en komponent av Xcode i stedet for en separat applikasjon. Denne trenden fortsetter med forbedringen av Interface Builder Interface og introduksjonen av Storyboarding.

Når det gjelder endringer i selve IB-grensesnittet, forsøker Xcode 4.2 å fremme en strammere sammenheng mellom koden som representerer IBOutlets og IBActions og deres visuelle representasjon i Xcode. Dette betyr at du faktisk kan koble IBAction metoden deklarasjoner til knappene som vil brann dem og IBOutlet erklæringer til den faktiske UI-komponenten de refererer til.

Bortsett fra dette, vil du også se GUI-representasjoner for ting som UIGestureRecognizers, GLKit Views og Controllers, og den nye UIStepper.

Storyboarding er den andre store nye historien når det gjelder IB. Enkelt sagt, å arbeide med story boards betyr aldri å måtte ringe pushViewController: animert eller popViewController: animert en gang til. All strømmen av bevegelige visningskontrollere til og fra av en navigasjonsstyring, samt presentasjon av visninger modelt, kan gjøres visuelt gjennom Storyboarding.

Samlet gir dette en visualisering av alle mulige skjermflyt i søknaden din, kuttes ned på kode, og viktigst av alt tillater ikke-utviklere å bidra med sine innspill i en brukbar form. Mange ganger blir konverteringen fra konsept / kreativ til implementering / kode tapt i oversettelse. Med den nye storyboard-tilnærmingen kan designere lage strømningsrepresentasjoner som faktisk vil kutte ned på mengden arbeid som kreves av utviklerne av prosjektet.

Automatisk referansetelling (ARC)

Siden den første versjonen av IOS har minnehåndtering vært et stort smertepunkt for utviklere. Jeg vil si at flertallet av søknadskrasj skyldes mangel på minne. ARC har til hensikt å løse dette ved å helt fjerne referansen fra utviklere. Alle minne relaterte metoder (utgivelse, beholde, autoutgivelses, etc.) har nå blitt avskrevet for å dra full nytte av ARC.

Det er noen store fordeler med å bruke ARC. For det første reduserer det barrieren for nyere utviklere på iOS-plattformen, spesielt utviklere som kommer fra plattformer som Android som bruker Garbage Collection. Det vil også redusere antallet linjer med kodeutviklere må skrive som du ikke lenger trenger minnesamtaler for å endre beholdningsantallet. Min eneste bekymring med ARC er at utviklere kanskje nå aldri lærer betydningen av riktig minnehåndtering. Dette kan føre til dovne programmeringspraksis og kan muligens skape en økning i hukommende applikasjoner.

The Core Image Framework

Core Image, et rammeverk som har vært tilgjengelig for OS X-utviklere for en stund nå, er endelig tilgjengelig som en del av iOS 5 SDK. Det gjør det mulig for utviklere å enkelt bruke et stort bibliotek med bilde- og videomanipuleringsfiltre, og det gir også et enkelt språk for å lage egne filtre. Det er nå utrolig enkelt å utføre slike oppgaver som flislegging, maskering, blanding og sammensetning av flere bilder.

Jeg var veldig interessert i å se at filterspråket ser ut som grunnleggende C og lastes på kjøretid. Gitt denne overførbarheten, ville jeg ikke bli overrasket om vi ser en tredjeparts nettsted / butikk som selger disse filtrene i nær fremtid.

For et eksempel på Core Image filter strøm, sjekk ut dette filteret som legger til en krystallisert effekt:

Ordninger og Git-integrasjon

Med utgivelsen av iOS 5 offentlig, vil Xcode også få en oppgradering til 4,2. Xcode 4.2 har mange forbedringer fra Xcode 4.1, hovedsakelig relatert til de nye SDK- og iOS 5-funksjonene. En ikke-SDK-basert forbedring er forbedringen til Schemes og GIT-integrasjon. GIT har blitt den fremste kildekontrollteknologien blant iPhone-utviklere, og det er gøy å ha Xcode dra nytte av alle de flotte tingene GIT har å tilby. Ordninger er det nye stedet du beholder prosjektkonfigurasjonstype ting. Dette dekker hvilken utgivelse du bygger for, sammenhengende rammer, bygningsskript, etc. Ordninger kan deles og gjør det vanligvis enklere å teste og dele prosjekt mellom lagene.

Jo større nyheter her er den dype GIT og SVN-integrasjonen. Apple har tatt alle evner av kildekontrollprogramvare og bygget visualiseringer av hvordan de jobber inn i Xcode. Filene er hele tiden merket med oppdateringer om deres status (Lagt til / Modifisert). Hver fil kan vises i historisk visning. I historisk visning får du to rutene med en tidslinje i sentrum hvor du kan navigere bakover i tid for filen. Det er komplett blame visninger, forplikte og presse grensesnitt, og selv gren og konflikt oppløsning viser. Integrasjon med GITHub er også rettferdig. Alt i alt er dette en stor forbedring. Pass på at du tar en titt på dette dokumentet fra Apple, som fremhever alle funksjonene i detalj.

NewsStand Support

NewsStand er enda et eksempel på modningen av IOS-plattformen. Gjennom de siste utgivelsene har Apple begynt å skape tilbud for å behandle felles utvikler smertepunkter i "sandbox" miljøet de har gjort. Game Center og iCloud er noen generiske eksempler på dette, men NewsStand representerer en investering fra Apple for å lette spesielle behov for en bestemt type applikasjon.

NewsStand-rammeverket lar utviklere gjøre to ting. For det første kan utviklere sende et trykkvarsel til sine applikasjoner som vil starte dem i bakgrunnen og laste ned det siste problemet. For det andre kan utviklere sette spesielle ikoner for å representere søknaden deres i NewsStand-visningen. NewsStand-applikasjoner vil alle ligge i en spesiell NewsStand-mappe, og dette vil opprette en felles innfødt objektrepresentasjon for "Library" av problemer på enheten.

Det som fortsatt er uklart her er hva, hvis noen, type sertifisering vil bli pålagt å være et NewsStand-program. Vil Engadget kunne lage et NewStand-type program? Jeg er sikker på at mange blogger vil ha muligheten til å distribuere innhold og få det nedlastet i bakgrunnen for deres iOS 5+ brukere. Det ser ut til å være en begrensning at bare en nedlasting av push push varsling er tillatt per 24 timer, det vil være interessant å se om noen av de eneste internettforetakene utnytter denne nye rammen.

Tilpasset utseende for UIKit-kontroller

Hvis du noensinne har sett på et designdokument, sammenlignet med det som følger med Apple UIKit-standardene, og da måtte fullstendig rulle din egen implementering for å matche designernes intensjoner, vil du være begeistret for innføring av tilpassede UIKit-kontroller! Alle de store kontrollene lar nå deres bakgrunnsbilde, fargetonefarge og tittelposisjonsegenskaper enkelt tilpasses. Jeg er spesielt spent på muligheten til å angi bakgrunnsbildeegenskapen. Jeg har tilbrakt timer å gjenopprette en UISwitch bare for å få det til å se litt annerledes ut.

Dette er et flott skritt fremover når det gjelder tilpassing av applikasjoner. Jeg er sikker på at vi vil begynne å se en mye mer smart integrasjon av Apple UI-komponenter. Langs de samme linjene, vil vi også se at noen mennesker helt gjør Apples vakre komponenter ser heslige ut.

Hederlig omtale

Som du kan fortelle, er iOS 5 en stor utgave. Den har dype forbedringer til både SDK og IDE vi alle utvikler med. Mens vi gjorde vårt beste for å treffe de store poengene i denne artikkelen, er det TONS av andre funksjoner som vi ikke har snakket om. Her er en rask brannliste over noen ekstra bemerkelsesverdige endringer:

  • Ny JSON-parser: Dessverre ser det ut til at første tester viser at det er fortsatt tregere enn JSONKit. Den nye parseren har imidlertid streaming JSON-funksjonalitet!
  • Bluetooth-tilgang på lavt nivå: Du kan til slutt være i stand til å gjøre det kule Arduino-prosjektet du har tenkt på!
  • Game Kit, turn-based state storage: nå trenger du ikke å bekymre deg om lagring av et spills turbaserte data, noe som gjør disse spillene mye enklere å lage! Dette er som en hjelp til iCloud, optimalisert for turnbasert spilling.
  • Bakgrunnsprosessforbedringer: Eksternt tilbehør kan fortsette å fungere i bakgrunnen, noe som muliggjør mange tilleggsutstyr som tidligere ikke var mulig.
  • Kjerne Data Bestilling: Du forholder deg enten til denne eller ikke.
  • Offisiell vCard-støtte: Fint å ha et lettere format å jobbe med.
  • UIAlertViews med UITextFields: Og ja, de støtter passord nå også!
  • Airplay speiling: Det er vanskelig å fortelle om Apple TV noensinne vil få en solid markedsfødning, men det er definitivt kult å egentlig ha en andre skjerm for å presentere et iOS-grensesnitt på.

Så, hva venter du på? Gå til iOS 5 og dra nytte av alle disse nye funksjonene!

Stem på flere iOS 5 opplæringsprogrammer

I løpet av de neste ukene vil Mobiletuts + gi grundige opplæringsprogrammer om mange av de nye iOS 5 SDK-funksjonene, inkludert Storyboarding, Twitter Framework, Core Image Framework, NewsStand Support og mer!

Fortell oss hva du skal skrive om ved å stemme nedenfor for de emnene du er mest interessert i å lære om:


Om forfatterne

Brandon Trebitowski

Brandon Trebitowski er en programvareutvikler og forfatter fra Albuquerque, New Mexico. Brandon har en bachelor i datavitenskap fra University of New Mexico og har utviklet programvare for de siste 10 årene. I august 2008 startet han iCodeBlog.com for å lære utviklende utviklere hvordan man skriver programvare til iPhone. Etter at bloggen ble kjøpt av ELC Technologies i desember 2008, begynte han å jobbe heltid for dem som utviklet mobil programvare.

Brandon har siden medforfattet en iOS-utviklingsbok kalt iOS 4 In Action, og har blitt Lead Mobile Applications Developer på ELC Technologies. Han har en sterk lidenskap for programmering og elsker å dele den med andre.

Du kan følge Brandons innlegg på sin Twitter @brandontreb.

Vil du få den mest oppdaterte veiledningen på IOS SDK? Ta tak i iOS 4 i aksjon, som Brandon bidro til.

Collin Ruffenach

Collin Ruffenach er en iOS-utvikler med ELC Technologies basert i Portland, OR. Collin tjente en B.S. I Computer Systems Engineering og en M.S. i datavitenskap i 2010 fra Arizona State University. Hans forskning dreide seg om iOS-utvikling i hjemmautomatiseringsbaserte scenarier.

Siden 2008 har Collin bidratt til iCodeBlog, hvor han har lagt ut både artikler og screencasts på ulike iOS programmeringsemner siden iOS SDK ble først utgitt. Collin bidro nylig til en ny bok som heter Mål-C Fundamentals med Manning Publishing.

Du kan følge Collins innlegg på sin twitter: @cruffenach.

Vil du forfine disse mål-C ferdighetene? Sjekk ut mål-C-grunnleggende, som Collin bidro til.

Takk for at du leste!