Vad är nytt i Xcode 9?

Vad du ska skapa

Årets WWDC-meddelanden fokuserade på de spännande nya SDK: erna, som ARKit, och förändringarna till iOS 11. Men Apple har också gjort betydande förbättringar av Xcode med Xcode 9. För att inte skryta av de andra meddelandena, den nya versionen av Xcode är ett steg framåt för kodare. Utvecklare är säker på att vara lyckliga!

Ingår i årets förbättringar:

  • uppdaterat stöd för Swift 4, inklusive parallellt stöd för Swift 4.0 och 3.2
  • superladdade hastighetsförbättringar till Xcode Project Navigator och Editor, från indexering till refactoringverktyg
  • en helt nybyggd källkodshantering (SCM) -komponent, med sömlös Git och GitHub-integration
  • förmåga att köra flera samtidiga simulatorer, samt trådlöst felsöka på fysiska enheter som iPhone och Apple TV
  • ett nytt verktyg för huvudgängningskontroll för att säkerställa överensstämmelse med UIKit och AppKit
  • förbättrad Interface Builder-återgivning av användargränssnittskomponenter.

Visst är detta en mycket spännande lista över förändringar, så låt oss gå dem en efter en, som börjar med Swift 4.

Stöd för Swift 4

Swift utvecklas stadigt år över år, och i år stöder Xcode den senaste stora Swift-utgåvan, Swift 4. Medan den senaste open-source-iterationen inte är lika stor ett hopp som tidigare versioner, har Xcode 9 gjort processen jämn mer bekvämt. 

Till att börja med stöder Xcode 9 nu möjligheten att kompilera både Swift 4.0 och Swift 3.2 mål samtidigt, vilket innebär att du som utvecklare kan välja att migrera ditt projekt gradvis snarare än allt samtidigt, och du kan få dina projektmål skrivna i antingen den senaste eller tidigare språkversionen.

Xcode 9s kompilator förstår båda versionerna, och via Xcode Migration Assistant kommer nu att be användare att körsbärspeka vilka mål att migrera till version 4.0. 

Faktum är att Xcode 9 utvärderar din kod och ger insikter i din modernisering av överensstämmelse status och bästa praxis genom projektet Redaktör> Bekräfta menyalternativ. 

Projekt Navigator och Redaktör Förbättringar

Därefter får Xcode 9 några nödvändiga förbättringar av IDE själv-i synnerhet till Project Navigator och Source Editor-komponenter, som börjar med en snabbare indexeringsmotor som överbelastar din förmåga att söka och returnera resultat snabbare. 

Utvecklare kan söka en stor kodbas och få resultat direkt, eftersom indexeringsmotorn nu även indexerar filer som de sammanställs, medan tidigare filer i kompileringstillstånd inte var föremål för indexering. Detta ger utvecklare möjligheten att snabbt hoppa mellan och söka efter filer från länkade projekt och biblioteken sömlöst, en välkomstförmån, särskilt när du arbetar med CocoaPods och flerprojekt arbetsytor. 

Redaktören själv har också blivit ombyggd, vilket möjliggör - som Apple säger - en "snabb strukturbaserad redaktör som låter dig intelligent markera och navigera i din kod". Vad det här betyder är en ny framhävningsmotor som känner igen logiskt grupperade block bättre, och det ger dig smarta verktyg för att navigera mellan relaterade delar av din kodbas.

refactoring

Förutom att låta utvecklare navigera enkelt från klass till klass, eller från metod till metod, ger Xcode också en helt ny refaktorfunktion. Refactoring-verktyget ger en modal editor-ruta för att jämföra alla möjliga förändringar när du extraherar och refactor Swift-metoder. Detta gör refactoring enkelt, även mellan Swift och Objective-C metoder. 

Du kan nu uppdatera symboler, ändra getters och setters, syntetisera iVars och automatiskt fylla obligatoriska protokollmetoder för överensstämmelse, alla med ett enda klick. 

Markdown Editing

Andra mindre förbättringar inkluderar inbyggt stöd för Markdown-filer (gjorda med Markdown stylings) i redigeraren. Denna förbättring är meningsfull med tanke på Xcodes djupare integration med GitHub, och det är användbart att kunna komma åt README.md filer mer visuellt i redigeraren. 

Swift Playgrounds

Xcode 9 ger också nya iOS Playground-mallar som du faktiskt kan testa ut inte bara i Xcode utan även på Swift Playgrounds för iPad!

Andra småredigeringsförbättringar

Det är också en liten förbättring, men redaktören låter användarna öka eller minska redigeringsstorleken med hjälp av MacOS-conforming eller genvägar. 

En annan liten förbättring är att skapa, byta namn och radera grupper i Project Navigator. Att göra ändringar i en grupp kommer nu att återspeglas i den tillhörande mappen, vilket garanterar namngivande konsekvens och eliminerar störning som många utvecklare hade med hur Xcode fungerar med filsystemmappar. 

Slutligen lägger förbättringar i Xcodes Asset Catalog stöd till den nya HEIF-bildens öppna standard som ingår i IOS 11.

Förbättringar av källkontrollhanteringen 

En av de mest anmärkningsvärda förbättringarna i Xcode har varit med den integrerade källkontrollhanteringen, som hittills hade försummat. I stället för den tidigare semi-bakade SCM som aldrig verkligen kände sig som en del av Xcode, innehåller Xcode 9 nu en helt nyskapad SCM-integration.

Från en ny SCM-navigator som är mer sömlöst integrerad får du också mer kraftfulla sätt att arbeta med grenar och taggar. Inte bara det, men Xcode har nu en djup integration med GitHub som låter dig hantera ditt konto direkt från Xcode-inställningar, skapa GitHub-arkiv med ett enda klick och bläddra bland offentliga repos från redaktören. 

För en närmare titt på nya SCM-funktioner i Xcode 9, kolla in vårt inlägg Vad är nytt med Git Support i Xcode 9.

Felsökningar och simulatorförbättringar

För att inte lämnas kvar fick Debugging mycket uppmärksamhet i Xcode 9 också. Vi börjar med att titta på vad som är nytt i Xcode Simulator.

Xcode Simulator

Tidigare, när du startade Xcode Simulator, kan du bara starta en simulator åt gången. Så, om du var tvungen att testa på flera enhetstyper, skulle du behöva springa i tur och ordning. Detta gjorde testen långsammare, vare sig manuell eller automatisk testning.

Detta har ändrats i Xcode 9. Utvecklare kan för första gången köra flera simulatorer samtidigt, med automatiserade testverktyg som nu kan köra test parallellt. 

Det finns några andra mindre men användbara tweaks till Simulator som Apple har introducerat. En är att du kan hålla ner alternativknappen för att stänga simulatorfönstret men ändå hålla det i bakgrunden. Du kan också starta Simulator från kommandoraden, vilket är användbart för automatiserade test- och leveransverktyg. 

Utvecklare kan också spela in videor av simulatorer, förutom att ta skärmdumpar, vilket är användbart för publicering av App Store. 

Sist men inte minst behöver utvecklare som examinerar från Simulator till testning på riktiga enheter inte längre plugga in sina enheter fysiskt. Apple låter nu utvecklare klippa sladden och felsöka iOS och Apple TV-enheter trådlöst, med en funktion som heter Network Debugging.

Huvudrådscheckare

Ett nytt fristående felsökningsverktyg Apple har infört tillsammans med Xcode 9, Main Thread Checker kan upptäcka icke-kompatibel användning av framstående SDK-filer som AppKit och UIKit från en bakgrundsgänga. Till exempel kan utvecklare använda UITableView åtgärder i bakgrundsgängan, vilket kan resultera i konstiga visuella effekter och felaktiga uppdateringar. Main Thread Checker är aktiverat som standard och kan konfigureras via Scheme Editor. 

Inbyggd Xcode Server

Xcode 9 har nu inbyggda Xcode Server-robotar och standard, vilket eliminerar behovet av att utvecklare ska ha en installation av MacOS Server. Detta innebär att utvecklare kan köra Xcode Server-robotar på vilken maskin som helst och utnyttja kontinuerliga integrations bästa praxis. 

Interface Builder Förbättringar

Utvecklare har genom åren upplevt gradvisa förändringar och förbättringar av Interface Builder (IB), med pågående förbättringar av skärmbilden. Xcode 9 fortsätter att förfina IB genom att göra UI-komponenter på duken mer exakt. Förbättrade komponenter inkluderar Navigation, Tab och verktygsfält. 

En annan ny egenskap är att Xcode och IB nu kommer att varna utvecklare när visningsbegränsningar potentiellt kan orsaka lokaliseringsproblem. Du kommer till exempel att varnas när en ändring i en vy kan orsaka ord på ett annat språk, som tyska, för att styras eller klippas. Det kommer säkert att spara mycket tid för utvecklare som stöder flera språk. 

Med tanke på layouter stöder Interface Builder nu även säkerhetsguider för Auto Layout, vilka är tips som hjälper utvecklare att organisera användargränssnitt. Detta avlägsnar de övre och nedre layoutguiderna i tidigare versioner av Xcode.

Slutsats

Den senaste delen av Xcode ger en mängd nya funktioner som förbättrar utvecklarens produktivitet. Tillsammans med meddelandet om Swift 4 gör Xcode migration från Swift 3.2 till den senaste versionen mycket mer välsmakande tack vare stöd för gradvis migrering. Xcode har också fått snabba och märkbara hastighetsförbättringar för att söka indexering och en helt ombyggd redaktör som är mer kontextuellt medveten, med nytt stöd för refactoring. 

SCM har nu blivit en förstklassig medborgare, vilket innebär att utvecklare inte längre behöver växla mellan Xcode och en tredje part SCM-redaktör för sina git-management behov. Simulatorn har gynnats av några av de mest anmärkningsvärda förbättringarna, med förmågan att köra flera samtidiga simulatorer för att testa över flera enheter snabbare, såväl som bekvämligheten att kunna skära ledningen och felsöka på fysiska enheter trådlöst. 

Medan iOS 11 har uppmuntrat utvecklingssamhället tack vare sina spännande nya SDK-funktioner, ger Xcode 9 det perfekta utvecklingsverktyget för att leverera innovation till sina användare. Håll dig klar för några praktiska handledning om hur du använder de nya iOS-SDK: erna. Och kolla in några av våra andra inlägg på IOS App Development!