Komme opp til fart med Xcode 6

Hver utgave av Xcode presenterer utviklere med forbedrede verktøy for å bidra til å bygge opp sine apper. Årets utgivelse, Xcode 6, introduserer nye måter for utviklere å designe og bygge sin programvare. I denne opplæringen skisserer jeg de nye og forbedrede funksjonene i Xcode 6 og ser på hvordan du kan bruke dem.

1. Lekeplasser

I løpet av årets WWDC introduserte Apple Swift, et nytt programmeringsspråk for utvikling av programvare for sine enheter. I tråd med dette kommer Xcode 6 med en ny funksjon som heter Playgrounds som gir et interaktivt arbeidsområde hvor utviklere kan skrive Swift-kode og få live tilbakemelding uten å måtte kjøre koden på en enhet eller simulator. Dette er et fint tillegg til Xcode som du nå kan eksperimentere med kode og få raske resultater i sanntid før du integrerer det i hovedkoden din.

2. Grensesnittbygger

Et stort tema på årets WWDC var å bygge adaptive applikasjoner. I stedet for å bygge applikasjoner som retter seg mot bestemte skjermstørrelser, oppfordres utviklere til å utvikle programmer som tilpasser seg enheten de kjører på, uavhengig av skjermstørrelsen.

Dette er et trekk som startet et par utgivelser med introduksjonen av Auto Layout i iOS 6, slik at utviklere kan lage programmer som fungerer på både 3,5 og 4,0-skjermene. Det er nå blitt ytterligere forbedret slik at iOS-utviklere kan bygge programmer som kjører på alle støttede iPhones, inkludert den nye 4,7 "iPhone 6 og 5,5" iPhone 6 Plus, og iPads bruker samme kodebase.

Interface Builder har gjennomgått store endringer som gjør det mulig å utvikle slike adaptive apps. Nye funksjoner er også lagt til som forbedrer brukergrensesnittets designprosess. Vi vil se på disse nye endringene neste.

Størrelsesklasser

Størrelsesklasser definerer lerretstørrelsen som brukes i oppsett. De lar deg angi hvordan programmets brukergrensesnitt endres når den tilgjengelige størrelsen på visningskontrolleren endres. Dette gjør det mulig å ha et samlet storyboard når man bygger en universell applikasjon. Tidligere måtte du designe to separate storyboards, en til iPad og en til iPhone.

En størrelsesklasse identifiserer en relativ mengde visningsplass for høyden (vertikal dimensjon) og bredde (horisontal dimensjon). Det er for tiden to størrelsesklasser, kompakt og regelmessig. For eksempel vil en iPhone i portrett ha en kompakt bredde og vanlig høyde. En iPad vil ha en vanlig bredde og høyde i både stående og liggende retninger.

Men du bør merke seg at en størrelsesklasse ikke nødvendigvis kartlegger en enhet i en retning. For eksempel kan en iPad ha en visning med et iPhone-stiloppsett (en kompakt horisontal og en vanlig vertikal størrelsesklasse) når den presenteres på en mindre plass på enheten, og en iPad-stiloppsett (en vanlig horisontal og en vanlig vertikal størrelsesklasse ) når ledig plass er større.

Du endrer størrelsesklasser ved å bruke Størrelsesklasser kontroll i nærheten av layoutverktøylinjen nederst på Interface Builder-lerretet. Interface Builder starter deg ut i noen bredde og noen høyde klasse hvor du kan legge ut vanlige brukergrensesnitt komponenter og begrensninger for de forskjellige skjermstørrelser og orienteringer. Du oppdaterer deretter delene som må endres når den tilgjengelige skjermstørrelsen endres ved å gjøre endringer i brukergrensesnittet i de forskjellige størrelsesklassene.

Adaptive Segustyper

Xcode 6 introduserer adaptive segustyper som er mer egnet for de nye adaptive layoutene, siden de presenterer visninger annerledes i henhold til miljøet de kjøres inn. For eksempel bruker Vis detaljer med en delt visning på en iPad vil erstatte detaljene, men på en iPhone kommer den til å skyve detaljet til side på masteren. Noen av de gamle seglene, som push og modal, er nå avskrevet.

Live Rendering

Interface Builder-lerretet er mer interaktivt enn noensinne. Tidligere måtte du kjøre appen din for å se endringer relatert til egendefinerte objekter, egendefinerte skrifter og lokalisering. Nå kan du velge egendefinerte skrifter fra grensesnittbyggerens skrifttype og få dem til å vises i grensesnittet Builder-lerretet.

Du kan til og med lage egendefinerte objekter og få dem til å gjengis på Interface Builder-lerretet. Du gjør dette ved å opprette et egendefinert rammeverk, legge til din egendefinerte klasse for det målet, og markere den klassen med @IBDesignable flagg (IB_DESIGNABLE i mål-C). Dette lar Interface Builder vite at en klasse kan vise tilpasset innhold på lerretet.

Annet enn å kunne vise egendefinerte objekter i Interface Builder, kan du også merke egenskaper med @IBInspectable flagg og få dem til å vises i menyen Interface Builder inspector, der de kan redigeres akkurat som alle andre egenskaper på dine synspunkter. Det er ikke et krav at en klasse skal merkes designbar for at den skal ha inspiserbare egenskaper.

Du kan også spesifisere designtidens eneste kode. Du kan for eksempel bruke dette for å pre-populere visningen med eksempeldata for å få en mer nøyaktig følelse for grensesnittet. Du gjør dette ved å overstyre prepareForInterfaceBuilder metode. Annet enn det, kan du bruke #if TARGET_INTERFACE_BUILDER å velge kode inn eller ut av å bli kjørt i den endelige grensesnittbyggerens gjengivelse.

Forhåndsvisningsredigerer

Forhåndsvisningseditoren lar deg nå vise flere forhåndsvisninger av forskjellige simulerte enheter side ved side. Ikke bare kan du se hvordan appen din ser på forskjellige enheter, men du kan også angi at hver av enhetene skal være i enten stående eller liggende modus. Dette gir en rask måte å forhåndsvise appens brukergrensesnitt på forskjellige enheter og orienteringer uten å først kjøre den.

3. Game Development

Apple la til nye spillteknologier til Xcode 6 og iOS 8, nemlig SceneKit og Metal. SceneKit, som tidligere var tilgjengelig på OS X, er en 3D-sceneregner. Metal er et rammeverk som kan brukes til å skape høyt optimert grafisk rendering og beregningsoppgaver takket være den lave overhead tilgangen til A7 og A8 GPU.

SpriteKit har også blitt forbedret med fysikk okklusjon per fysikk, fysikkfelt, universell kinematikk og begrensninger, shaders, lightings og skygger.

En annen viktig ny funksjon i SpriteKit er SpriteKit Level Editor som lar deg visuelt samle scener. Akkurat som du kan opprette brukergrensesnittet i Interface Builder uten å skrive noen kode, kan du gjøre det samme når du er i et SpriteKit-spill med SpriteKit Level Editor.

4. OS X Development

Storyboards

Storyboards er nå blitt introdusert for OS X-utvikling. På samme måte som i iOS-utviklingen, lar de deg konfigurere visningslayoutene og trådvisningene sammen med forskjellige segue animasjoner. På tidspunktet for skrivingen er noen funksjoner, inkludert storyboards, fortsatt deaktivert i Xcode (6.0.1) for OS X-utvikling i avventning av OS X Yosemite-utgivelsen.

Gestegenkjenninger

Gjenkjennere er nå tilgjengelig i AppKit. Disse brukes ganske mye på samme måte som i IOS-utvikling. Du kan se tilgjengelige bevegelser i Objektbibliotek i grensesnittbygger.

5. Lokalisering

Lokalisering gjøres annerledes i Xcode 6 enn det var tidligere. Du kan nå eksportere alt ditt lokaliserbare innhold til XLIFF, som er bransjestandarden som forstås av mange oversettelsestjenester. Når du får oversettelsene tilbake, importerer du dem og Xcode vil fusjonere det nye innholdet i prosjektet ditt. Du bør ha en XLIFF-fil for hvert språk du støtter i appen din.

Du kan nå forhåndsvise lokalisert innhold uten å endre enhetens eller simulatorens språk i innstillinger. For å gjøre dette, velg Produkt> Ordning> Rediger skjema, velg deretter Løpe og klikk på alternativer fane. Du kan velge ditt valg språk fra Applikasjonsspråk Meny. Xcode kommer med Double Length Pseudolanguage som du kan teste med hvis du ikke har lagt til noe annet språk. Når du kjører appen, bør du se det lokaliserte innholdet.

Du kan også se lokalisert innhold uten å kjøre appen din. For å gjøre dette bruker du Forhåndsvisningsredigerer å bytte mellom de forskjellige språkene som appen støtter. Standardspråket vises i nederste høyre hjørne av redigeringsprogrammet, og når du klikker på det, presenteres du med en liste over tilgjengelige språk. For å teste det uten å legge til et språk, kan du bruke Double Length Pseudolanguage.

6. IOS Simulator

Navngitte enheter

Xcode 6 presenterer nå navngitte simulatorer som samsvarer med bestemte enheter, for eksempel iPhone 5s, i stedet for de tidligere generiske navnene, for eksempel 64-biters iPhone Retina.

Resizable Simulator

Blant de enhetene du kan velge mellom, er den resizable iPhone og resizable iPad. Disse lar deg spesifisere bredden, høyden og størrelsesklassene til simulatoren. Med dette kan du teste adaptiviteten til appen din på alle Apples eksisterende enheter, samt eventuelle fremtidige enheter uten å måtte laste ned en simulator for hver enhet.

Simulator Tilpassede konfigurasjoner

Med den nye iOS-simulatoren kan du holde data- og konfigurasjonsinnstillingene gruppert sammen. Kjør en konfigurasjon for en versjon av en app med egne data og en annen konfigurasjon for en annen appversjon. Dette betyr at du kan simulere å ha flere brukere på maskinen din. Hver bruker vil ha sine egne data og konfigurasjoner.

7. HomeKit Tilbehørssimulator

HomeKit-rammen lar appen kommunisere med og kontrollere tilkoblet tilbehør i en brukeres hjem. I beta-versjonene av Xcode 6 kom HomeKit Accessory Simulator som en del av Xcode, men det er nå en del av Maskinvare I / O-verktøy for Xcode. Du kan laste den ned på iOS Dev Center.

8. Feilsøking

Se feilsøking

Xcode 6 gjør det enklere å feilsøke appens brukergrensesnitt med feilsøkingsfunksjonen for levende visning. Du er nå i stand til å pause din kjørerapp og dissekere det stoppede brukergrensesnittet i en 3D-visning. Visningsdefiguratoren viser deg visningshierarkiet og begrensningene for automatisk oppsett. Hvis du velger en visning, kan du inspisere egenskapene i inspektøren eller hoppe til den aktuelle koden i assistenteditoren. Med dette kan du kontrollere problemer som problemer med automatisk oppsett, se hvorfor en visning er skjult eller klippet osv.

For å starte feilsøkingsprogrammet for levende visning, start programmet og klikk på Feilsøkingshierarki knappen på feilsøkingsverktøylinjen.

Appen din pauser og du presenteres med en 3D-visualisering av brukergrensesnittet. Du kan dra hvor som helst på lerretet for å rotere visningen.

Du kan bytte mellom ulike visningstilstander med knappene under lerretet.

Fra venstre til høyre:

  • Vis klippet innhold: Dette alternativet skjuler eller viser innhold som blir klippet i en valgt visning.
  • Vis begrensninger: Den viser begrensningene for automatisk oppsett av en valgt visning.
  • Tilbakestill visningsområde: Dette tilbakestiller lerretet til standardstatus.
  • Juster visningsmodus: Denne modusen lar deg velge hvordan du vil se visningene dine. Det er et alternativ å se det som en wireframe, visningens innhold, eller begge deler.
  • Zoome ut, Faktisk størrelse, Zoom inn: Dette lar deg sette visningsskalaen.

Rask kikk

Quick Look ble introdusert i Xcode 5, og det gir deg mulighet til å se innholdet på en gjenstand ved feilsøking. Quick Look støtter vanlige objekter som bilder, besarlige baner, kartposisjoner osv.

I Xcode 6 har dette blitt forbedret for å støtte to nye objekttyper, visninger (UIView og NSView) og egendefinerte objekter. For å aktivere Quick Look for tilpassede objekter, implementerer du debugQuickLookObject metode i tilpasset klasse.

Forbedret kø feilsøking

Feilsøkingsnavigatoren registrerer og viser nylig utførte blokker i tillegg til enqueued blokker. Du kan bruke den til å se hvor de enqueued blokkene dine er, og å undersøke detaljene for hva som er satt opp for å utføre. Du kan aktivere blokk feilsøking ved å velge Feilsøking> Feilsøkingsflyt> Vis alltid ventende blokker i køer menyalternativ.

Feilsøkingsmålere

Feilsøkingsmålere gir informasjon om appens ressursbruk mens feilsøking. Xcode 6 har oppdaterte målere, som inkluderer grafikkprofilering for den nye metallrammen og iCloud-støtte for dokumenter i Cloud og CloudKit-funksjonene.

Foruten disse forbedringene introduserer Xcode 6 to nye feilsøkingsmålere, nettverk og diskaktivitet.

Nettverksaktivitet viser hvor mye data appen din sender og mottar, samt en liste over åpne forbindelser. Du kan vise en historikk tidslinje for å overvåke nettverksbruk, hjelpe deg å trene når og hvorfor pigger i nettverksbruk eller nettverksfeil skjedde.

Diskaktivitet viser sanntidsinformasjon om appens leser og skriver til disk. Den gir også informasjon om alle åpne filer. Det er en historikk tidslinje for denne disken I / O-aktiviteten for deg å overvåke.

9. Eiendomskatalog

Assetkataloger støtter nå størrelsesklasser. Dette betyr at du nå enkelt kan tilpasse brukergrensesnittet for kompakt og vanlig høyde eller bredde ved å gi forskjellige bilder for hver størrelsesklasse.

Tidligere har eiendoms kataloger kun støttet PNG-bilder, men i Xcode 6 er det lagt til støtte for JPEG- og PDF-vektorbilder.

10. Start bilder

Du kan bruke en XIB eller storyboard som programmets startbilde. Operativsystemet genererer nødvendige lanseringsbilder for appen din. Med dette trenger du ikke å gi individuelle eiendeler til lanseringsbilder, og du kan designe det i Interface Builder.

For å angi en XIB eller storyboard som appens lanseringsbilde, velg prosjektet i Prosjektnavigator og velg et mål fra listen over mål. Under Generell fanen, finn delen Appikoner og start bilder og velg riktig fil fra menyen merket Start skjermfilen.

11. Testing

Asynkron Testing

Nye APIer er lagt til i XCTest-rammeverk som gjør det mulig å teste asynkron kode. Dette gjøres gjennom forventningsobjekter, XCTestExpectation, som beskriver forventede hendelser. XCTestCase har en ny API som venter på forventningen til å oppfylle og setter en timeout på den. En ferdigstillingshåndterer kalles enten når alle hendelsene er oppfylt eller når timeout det treffes. Det kan vente på flere asynkrone hendelser på samme tid. Du kan nå enkelt teste for systeminteraksjoner som utføres asynkront, for eksempel fil I / O, nettverksforespørsler, etc..

Prestasjonsmåling

Den forbedrede XCTest-rammen kan nå kvantifisere ytelsen til hver del av en app. Xcode kjører ytelsestestene dine, og lar deg definere en baseline ytelsesstatistikk. Hver etterfølgende testkjøring sammenligner ytelse, viser endringen over tid, og ved å markere problemområdet - varsler deg om plutselige regresjoner som en kodeforetak kunne introdusere. Hvis gjennomsnittlig ytelsesmåling avviker betydelig fra basislinjen, vil testen mislykkes. Dette er en fin måte å oppdage ytelsesregressjoner i appen din på.

Test Profiling

Med introduksjonen av ytelsestesting kommer muligheten til å profilere tester i Instrumenter. Du kan velge en test- eller testpakke til profil og gjøre ytterligere undersøkelser og analyser i Instrumenter for å finne ut hvorfor testen feilet og finne årsaken til regresjonen.

12. Instrumenter

Instrumenter har et oppdatert brukergrensesnitt. Med den nye malvelgeren kan du velge enhet og mål, samt utgangspunktet for profileringsøkten.

Det er en ny tellere mal som har blitt kombinert med arrangementer å gi et kraftig syn på individuelle CPU-hendelser. Du kan til og med spesifisere formler for å måle hendelsesaggregater, forhold og mer.

I Xcode 6, leveres også Instruments med støtte for Swift, og du kan også bruke den til å profilere apputvidelser. Det er også støtte for simulator konfigurasjoner. Simulatorkonfigurasjonene behandles som enheter av Instruments, noe som gjør det enkelt å starte eller legge til prosesser i simulatoren.

Konklusjon

Apple fortsetter å forbedre utviklerverktøyene, og dette ses i alle store utgaver av Xcode. Xcode 6 forbedrer sine forgjengere for å gi utviklere verktøy som vil forbedre arbeidsflyten og gjøre hele utviklingsprosessen betydelig bedre.