Vad är nytt i Xcode 8

Under WWDC ger Apple traditionellt utvecklare en snygg titt på nästa stora release av dess IDE, Xcode. Med varje större release förbättrar företaget sina utvecklingsverktyg och lägger till ett antal övertygande nya funktioner. Och i år var det inte annorlunda.

1. Snabb 2 och 3

Fram till Xcode 8 var varje version av Xcode knuten till en specifik version av Swift programmeringsspråket. Det är inte längre sant från Xcode 8. Swift 3 introducerar en rad förändringar och ett stort antal av dessa förändringar bryts.

Projekt skapade med Xcode 8 använder Swift 3 som standard. Lyckligtvis innehåller Xcode 8 en bygginställning som ger utvecklare möjlighet att hålla fast vid Swift 2, Swift 2.3 för att vara exakt.

Detta innebär att du kan välja när du vill migrera ett projekt till Swift 3. För att konfigurera ett mål för Swift 2.3, öppna målets byggnadsinställningar och ställ in Använd Legacy Swift Language Version till Ja.

Xcode 8 innehåller också ett migreringsverktyg som hjälper dig att migrera ett projekt till Swift 3. Jag har haft blandade resultat med migreringsverktyget för Xcode 7. Swift 3 introducerar många, många förändringar och jag hoppas att migreringsverktyget har förbättrats väsentligt när Xcode 8 är redo för frisläppande.

2. Källeditorutvidgningar

En av de mest överraskande funktionerna var introduktionen av källredigeringsutvidgningar. Utvecklare har frågat efter en inbyggd pluginarkitektur i många år. Källedirektörstillägg är ett första bra steg i den riktningen.

Det finns mycket att tycka om förlängningar för Xcode, men Apple betonar att tillägg för närvarande är inriktade på att manipulera och navigera innehållet i källredigeraren, följaktligen, källredigeringsutvidgningar. Xcode 8 innehåller även en mall som hjälper dig att få fart.

Vad jag särskilt tycker om förlängningsarkitekturen är att varje förlängning går i en separat process. Det betyder att en kraschförlängning inte orsakar att Xcode slutar oväntat. Detta orsakade ofta problem med homegrown plugins, särskilt om Apple skickade en ny stor release av Xcode.

En annan förmånstillägg har över plugins är säkerhet. Du kan underteckna och distribuera tillägg med ditt utvecklarkonto. Apple nämnde också att du kan använda Mac App Store för att distribuera tillägg. Det här är ett bra alternativ om du är intresserad av att tjäna pengar med de tillägg du gör.

Jag är väldigt exalterad om källredaktörstillägg. Medan jag är ett stort fan av Alcatraz, verkar Apples inhemska implementering av förlängningar vägen framåt. Jag kan inte vänta med att se vilken typ av tillägg utvecklare ska bygga. Det finns redan ett fåtal tillgängliga på GitHub.

3. Felsökning

Även de bästa utvecklarna spenderar en stor del av sin tidsfelsökning och Apple förstår behovet av bättre verktyg för att göra denna uppgift enklare. Xcode 8 introducerar ett antal signifikanta förbättringar relaterade till felsökning.

Visa debugging

Visa felsökning är mycket kraftfullare i Xcode 8. Tillförlitligheten har förbättrats och felsökning av tvetydiga eller osatisfiabla layouter är mycket enklare tack vare en förbättrad synfel som visar runtime-problem.

Runtime problem? Det är rätt. Xcode 8 introducerar runtime-problem utöver byggproblem. Om du får problem med automatisk layout vid körning visar Xcode problemet som ett runtime-problem i Issues Navigator till vänster. Detta är ett mycket välkommet tillägg.

Minnesfelsökning

Xcode 8 spelar också en ganska imponerande minnesfelsökning för att spåra ner minnesläckor och behålla cykler. Jag är inte säker på hur bra det kommer att vara i praktiken, men det ser väldigt fint ut.

4. Kodsignering

Kodsignering är ett nödvändigt ont för utvecklare intresserade av Apples plattformar. Lyckligtvis begraver Apple inte sitt huvud i sanden. Det förstår smärttillverkarna har. Även veteraner kämpar med kodsigneringsproblem från tid till annan. Under årets plattforms unionsstat gjorde Apple till och med roligt av sig själv Fix Problem knapp som sällan fixade problemet och ibland gjorde sakerna ännu värre.

Kodsigneringsproblem bör vara en sak i det förflutna med Xcode 8. För varje mål kan du kolla en kryssruta som berättar för Xcode att hantera kodsignering på dina vägnar. Detta alternativ är aktiverat som standard för nya projekt. När du kontrollerar hanterar Xcode certifikat, provisioning profiler och programidentifierare för dig.

Jag hoppas att Apple fick det rätt den här gången. Och med mig tiotusentals andra utvecklare.

5. Övriga förbättringar och förbättringar

San Francisco Mono

Om du gillar att arbeta med vackert utformad programvara, kan du njuta av Apples nya San Francisco Mono-teckensnitt som skickas med Xcode 8. Det är en monospaced-variant av San Francisco och blandar sig snyggt med systemfonten av macOS.

Line Highlighting

Visste du att den nuvarande raden är markerad i ovanstående skärmdump? Det är en annan välkommen förbättring som Apple lade till Xcode 8. Jag använder för närvarande Backlight for Xcode för att uppnå samma effekt i Xcode 7. Jag antar att jag inte längre behöver det plugin i Xcode 8.

Kod Komplettering för bilder

När jag talar om att plugga in tredje part använder jag för närvarande Kent Sutherlands utmärkta KSImageNamed-plugin för att möjliggöra kodfärdigande för bilder i Xcode. Jag kommer inte behöva det plugin när jag växlar till Xcode 8 eftersom den här funktionen nu är inbyggd i Xcode.

6. Dokumentation

Utvecklare spenderar en oerhörd mängd tid på att surfa och läsa dokumentation. Bra dokumentation går långt och Apples dokumentation är utmärkt. Bläddra i dokumentationen är en annan historia.

Denna smärta är nu löst i Xcode 8. Det nya dokumentationsformatet ser vackert ut och dokumentationsbläddraren är snabb och enkel att använda. Apple konsoliderade också dokumentationen för sina plattformar, vilket resulterade i ett mycket mindre minnesfotavtryck.

Och ja, dokumentationen kan se vacker ut. Ta en titt på dessa skärmdumpar om du inte tror på mig.

Slutsats

Det är självklart att jag bara täckte en delmängd av det som är nytt i Xcode 8. Nästa stora versionen av Xcode är alltid något jag ser fram emot. Utvecklare spenderar så mycket tid i kodredigeraren och det är därför förståeligt att de bryr sig om sin utveckling, både bra och dåligt. Vad är din favoritfunktion i Xcode 8? Dela det i kommentarerna.