Wat is er nieuw voor ontwikkelaars in iOS 12 en Xcode 10?

Wat je gaat creëren

Temidden van alle fanfare van een andere WWDC, introduceerde Apple ons bij iOS 12. Dit is een van de meest gerichte releases voor zowel consumenten als ontwikkelaars, met de nadruk op prestatie-optimalisatie. Naast deze focus op prestaties en optimalisatie, brengt iOS ook een aantal functie-iteraties naar veel van de bibliotheken die we kennen en waar we van houden. Dit omvat de evolutie van emoji's (met memoji's), Siri-snelkoppelingen, augmented reality en machine learning. 

Voor ontwikkelaars heeft Apple zich gericht op het bieden van een overvloed aan nieuwe hulpprogramma's en SDK's aan de community om de volgende generatie iOS-apps van stroom te voorzien. Ontwikkelaars krijgen ook veel verbeteringen in Xcode en de nieuwste frameworks van Apple - ARKit, Core ML en SiriKit - hebben belangrijke functie-upgrades ontvangen.

Machine Learning is snel geëvolueerd sinds het voor het eerst werd geïntroduceerd in 2017, met Core ML 2 waardoor het voor mainstreamontwikkelaars eenvoudig is om modellen te ontwerpen, te trainen en te testen. ARKit 2, Apples tweede iteratie van zijn augmented reality-bibliotheek, is een andere bibliotheek die dit jaar duidelijk is verbeterd dankzij drie prominente nieuwe functies: 

  • gedeelde ervaringen AR-ervaringen voor meerdere spelers mogelijk maken
  • aanhoudende ervaringen die zorgen voor het opslaan en herstellen van staten
  • Detectie van 3D-objecten naast het volgen van 2D-bewegend beeld. 

Apple heeft ook meldingen verbeterd door de mogelijkheid toe te voegen om meldingen op een contextuele manier te groeperen en prioriteiten te stellen, en het heeft het nieuwe wachtwoord automatisch invullen-framework gecreëerd voor het integreren van apps voor wachtwoordbeheer van derden. 

Siri Shortcuts is de toevoeging van Apple aan SiriKit, waarmee externe ontwikkelaars op maat gemaakte intelligente snelkoppelingen kunnen integreren in zoeklicht en vergrendeld scherm, en hun stem kunnen gebruiken om die aangepaste actie op te roepen en uit te voeren. 

Xcode 10 introduceert ook een geheel nieuw scala aan verbeteringen, van donkere modus tot bewerk met meerdere cursors, nieuwe broncontrolefoto's in de broncodebewerker en een volledig nieuw buildsysteem. Xcode 10 ondersteunt ook parallelle tests, waardoor de tijd voor het voltooien van tests drastisch wordt verkort.

Doelstellingen van dit artikel 

In dit artikel leert u alles over de nieuwe wijzigingen die iOS 12 voor ontwikkelaars aanbrengt. We zullen het volgende behandelen:

  • machine learning met Core ML 2 en Natural Language-raamwerk
  • augmented reality met ARKit 2
  • interactieve meldingen
  • Siri-snelkoppelingen met SiriKit
  • Verificatieservices en wachtwoord Automatisch aanvullen
  • Xcode 10
  • andere wijzigingen

Machine Learning

Machinaal leren, geïntroduceerd in iOS 11, is dit jaar niet alleen geëvolueerd, maar heeft ook massale vooruitgang geboekt bij het mainstream maken van machine learning. De volgende iteratie van Core ML, versie 2, in overeenstemming met het thema van prestaties en snelheid, is nu 30% sneller, met AI-modelgroottes verminderd met maximaal 75%. Belangrijker is dat Apple de bibliotheken en hulpmiddelen drastisch heeft vereenvoudigd om het voor iedereen gemakkelijker te maken om zonder voorafgaande wiskundige of machine-leerachtergronden in te voeren. 

Core ML toonde veel potentieel toen het voor het eerst werd geïntroduceerd, maar het werd niet omarmd door de bredere iOS-ontwikkelaarsgemeenschap. Echter, met de introductie van Create ML dit jaar (een macOS-framework), kan iedereen Core ML-modellen maken voor gebruik in hun apps met groter gemak. Dit nieuwe framework kan worden geïntegreerd met speeltuinen in de nieuwe Xcode, zodat u in realtime visueel kunt communiceren met uw workflows voor het maken van modellen, door slechts een paar regels Swift-code toe te voegen. 

Naast ondersteuning voor uitgebreid diepgaand leren met meer dan 30 laagsoorten, ondersteunt het ook standaardmodellen zoals boomensembles, SVM's en gegeneraliseerde lineaire modellen .... Omdat Core ML op de top van low-level technologieën zoals Metal en Accelerate is gebouwd, maakt het naadloos gebruik van de CPU en GPU voor maximale prestaties en efficiëntie. (WWDC)

Veel van Apple's producten hebben al gebruik gemaakt van Core ML 2, inclusief Siri en Camera, door middel van de computervisie en het gloednieuwe Natural Language-framework. Het Natural Language-framework, nieuw voor iOS 12, ondersteunt de analyse van natuurlijke taaltekst om specifieke metadata af te leiden en wordt naast Create ML gebruikt bij het trainen en implementeren van aangepaste natuurlijke taalverwerkingsmodellen. Raadpleeg de volgende twee Apple-referentiedocumenten voor meer informatie over het maken en uitvoeren van Core ML-modellen: 

  • Meer informatie over het bouwen van Core ML-modellen
  • Meer informatie over het uitvoeren van Core ML-modellen

ARKit 2

ARKit, ook vorig jaar voor het eerst aangekondigd, werd dit jaar prominent aanwezig op het podium tijdens de WWDC, met ARKit 2 meteen dankzij drie opvallende nieuwe functies: de verbeelding van consumenten en ingenieurs.

  • gedeelde AR-ervaringen
  • aanhoudende AR-ervaringen 
  • 3D-objectdetectiemogelijkheden

Dit jaar live op het podium gedemonstreerd tijdens de WWDC-keynote, kunt u met gedeelde AR-ervaringen gelijktijdig meerdere toepassingen in de augmented reality-ervaring opnemen. Met andere woorden, je kunt nu snel multiplayer augmented reality-ervaringen maken, waarbij je niet alleen meerdere gebruikers kunt laten spelen, maar zelfs omstanders van derde personen die dezelfde ervaringen beleven. 

Persistente AR-ervaringen stellen ontwikkelaars in staat functionaliteit te implementeren om sessies in een bepaalde staat te bewaren, om later te worden hervat. Dat wil zeggen, als u een virtueel legobeeldhouwwerk bouwt, kunt u de staat opslaan en hervatten, en de virtuele objecten zouden in dezelfde ruimte en tijd blijven bestaan ​​zonder opnieuw te hoeven beginnen. 

Ten slotte zijn de detectie- en trackingmogelijkheden van 3D-objecten verbeterd sinds ARKit 1.5, met de mogelijkheid om 2D-afbeeldingen nu volledig te volgen, inclusief verplaatsbare objecten zoals postkaarten, kranten of tijdschriften. U kunt bijvoorbeeld een ansichtkaart van een locatie vasthouden en de kaart verplaatsen, terwijl ARKit uw object voortdurend bijhoudt en herkent. Met ARKit 2 kun je ook bekende 3D-objecten uit de echte wereld ontdekken, zoals televisies, meubels of sculpturen. 

Groepsmeldingen

Meldingen zijn aanzienlijk verbeterd in iOS 12, met de mogelijkheid om berichten te prioriteren en te groeperen, een functie waar gebruikers en ontwikkelaars al lang op hebben geanticipeerd. 

De mogelijkheid om meldingen contextueel te groeperen, geeft eindgebruikers een meer beknopte gebruikerservaring, een ervaring die al vele jaren beschikbaar is voor Android-gebruikers. Gebruikers kunnen bijvoorbeeld de meldingsgroepen gebruiken, zodat een gespreksdraad in app- of spelmeldingen deel uitmaakt van één groepspakket in plaats van individuele meldingen die het volledige scherm beslaan. In plaats daarvan kunnen gebruikers met één veeg een groep contextuele meldingen afwijzen.

Meldingen krijgen ook prioriteit door belangrijkheid zodat essentiële meldingen zoals berichten, e-mails of een agendamelding boven meldingen van sociale media worden weergegeven. Externe ontwikkelaars kunnen een melding ook classificeren als een waarschuwing met prioriteitsstelling, met goedkeuring van het Apple-beoordelingsteam.

SiriKit & Intents

SiriKit heeft ook enige aandacht gekregen op deze WWDC met de toevoeging van Siri Shortcuts. Deze functie stelt op een intelligente manier snelkoppelingen voor wanneer ze nodig zijn, door routines en gedrag van gebruikers te koppelen en te voorspellen. Via de nieuwe Shortcuts API kunnen gebruikers snel en gemakkelijk taken op het vergrendelingsscherm of zoekscherm uitvoeren met behulp van deze snelkoppelingen visueel, of via Siri spraaksnelkoppelingen, evenals hun eigen snelkoppelingen maken. 

Een voorbeeld zou zijn dat een melding voor een koffieshop op het vergrendelscherm verschijnt als gevolg van het gedrag van de gebruiker om 's morgens buiten te lopen en een mint mojito-drankje te bestellen. Naast de visuele suggestie zou de gebruiker ook in staat zijn om Siri te gebruiken en "Bestel mijn favoriete koffiedrank van Philz" te zeggen, of een aangepaste snelkoppeling maken die die actie triggert. 

Verificatieservices

Apple heeft een geheel nieuwe AuthenticationServices-bibliotheek geïntroduceerd die wachtwoordmanagers zoals LastPass of 1Password integreert met de wachtwoord-automatisch aanvullen van het besturingssysteem. Eerder hadden gebruikers alleen toegang tot inloggegevens die waren opgeslagen in de iCloud-sleutelhanger en toegang tot wachtwoorden van derden die zijn opgeslagen in apps zoals 1Password, betekende dat gebruikers moesten schakelen tussen beide apps om de gebruikersnaam en het wachtwoord te verkrijgen.

Binnen de QuickType-balk hebben gebruikers toegang tot hun inloggegevens via de apps voor wachtwoordbeheer van derden. Ontwikkelaars hebben ook de mogelijkheid, door de implementatie van het nieuwe ASWebAuthenticationSession klasse, om aanmeldingsgegevens te delen tussen een actieve sessie in Safari en uw app. Dit werkt als een soort overdracht van het wachtwoord. 

Xcode 10

Apple heeft ontwikkelaars ook meer macht gegeven dan nieuwe SDK's en frameworks, met opmerkelijke verbeteringen aan Xcode en de Xcode-buildtoolchain. De broneditor heeft bijvoorbeeld geweldige verbeteringen voor het verbeteren van de refactoring bereikt, waaronder bewerking met meerdere cursors, zodat u snel meerdere coderegels (dus verschillende methoden) tegelijkertijd kunt bewerken.

Xcode 9 introduceerde voor het eerst integratie met GitHub, van het maken en openen van GitHub-repos vanuit de IDE tot meer interactie met code. Xcode 10 gaat verder dan GitHub en werkt samen met twee andere populaire repository-leveranciers, GitLab en Bitbucket. 

Aan de zijde van de broneditor worden wijzigingen in de lokale repository of stroomopwaarts nu gemarkeerd in de linkerkolom, zodat u snel wijzigingen in uw code kunt zien, evenals wijzigingen die nog niet zijn gepusht, stroomopwaartse wijzigingen die anderen hebben aangebracht en mogelijke conflicten die nodig zijn om te worden geadresseerd voor commits. Ten slotte genereert Xcode 10 indien nodig SSH-sleutels voor u en uploadt deze naar uw bronbeheer-repository voor u. 

In de toolchain introduceert Xcode 10 een geheel nieuw build-systeem voor ontwikkelaars, en in overeenstemming met het thema van de conferentie, krijgt het prestaties en snelheidsverbeteringen. Ontwikkelaars die bijvoorbeeld hun apps in Simulator testen, kunnen nu gebruikmaken van testparallellisatie, de mogelijkheid om meerdere tests tegelijk uit te voeren. 

Naast eenheidstests kunnen ontwikkelaars nu doorlopende integratietests uitvoeren op veel verschillende gesimuleerde apparaattypen, spawnende klonen van een enkel gesimuleerd apparaat, resulterend in tests die in een fractie van de tijd Xcode 9 zouden voltooien. Ontwikkelaars kunnen ervoor kiezen om te profiteren van de CPU van hun Mac om de tests parallel uit te voeren of een andere Mac toe te wijzen aan de Xbox-server voor het hosten van het netwerk om het samenstellen en testen parallel te automatiseren. 

Apple is nu verouderd afdrukken() uitspraken ten gunste van het nieuwe OSLog wegwijzerverklaringen, die zorgen voor een veel grotere foutopsporingssnelheid vergeleken met afdrukken(). Ontwikkelaars kunnen ook aangepaste instrumenten implementeren om significante punten in de code te markeren, die vervolgens worden gevolgd via wegwijzers in instrumenten, naast andere analyse-evenementen (zoals CPU, geheugen of netwerk), waardoor ontwikkelaars nog meer inzicht krijgen in het oplossen van hun apps. 

Xcode 10 bevat ook aangepaste sjablonen om ontwikkelaars te helpen hun eigen instrumenten te bouwen met aangepaste visualisatie en gegevensanalyse, die kan worden hergebruikt en gedeeld met andere teamleden, of kan worden gepubliceerd met uw frameworks. Er zijn enkele andere kleine wijzigingen in de pictogrammen, waaronder het verplaatsen van de bibliotheekinhoud naar een nieuw overlayvenster in plaats van de onderkant van het infovenster. Er zijn ook andere kleine wijzigingen in de Interface Builder-pictogrammen en in de lay-out.

Andere wijzigingen

iTunes Connect is op passende wijze omgedoopt tot App Store Connect, samen met enkele verbeteringen om de gebruikersinterface efficiënter en toch gebruiksvriendelijker te maken. Via de nieuwe webinterface kunnen ontwikkelaars productpagina's maken met schermafbeeldingen en voorbeelden, in-app aankopen schakelen en abonnementen, pre-orders en introductieprijzen instellen.

Ten slotte heeft TestFlight een opvallende verbetering ontvangen met een nieuwe functie, TestFlight Public Link genaamd, die het uitnodigen van mensen om uw app een stuk eenvoudiger te maken, maakt. Waar de ontwikkelaar voorheen gebruikers handmatig moest uitnodigen met gebruik van hun e-mailadressen in een omslachtig proces, kunnen ontwikkelaars nu een "open uitnodiging" maken via een openbare URL. 

Conclusie

iOS 12 is een zeer gerichte release voor zowel consumenten als ontwikkelaars, met de nadruk op prestatie-optimalisatie. Voor ontwikkelaars zijn Xcode en de build- en testtools geoptimaliseerd met de nadruk op snelheid in de voorhoede en hebben de nieuwste frameworks van Apple zoals ARKit, Core ML en SiriKit belangrijke functie-upgrades ontvangen. 

In twee jaar tijd beginnen we Apple's zoektocht naar machine learning te zien evolueren en volwassen worden, waarbij voordelen overgaan in hun andere technologische frameworks, zoals SiriKit, ARKit en Photos, waardoor ontwikkelaars slimmere gebruikerservaringen kunnen creëren. Wat nog belangrijker is, is dat machine learning is veranderd van een nichebibliotheek naar een bibliotheek waar elke ontwikkelaar - ongeacht de machine-leerervaring - modellen kan trainen en implementeren.. 

Met WWDC als een opmaat voor de hardware-aankondigingen van Apple in september, zal het interessant zijn om te zien hoe de ontwikkelaarsgemeenschap ARKit omarmt in zijn tweede iteratie, in de ruimte van multiplayer-gaming.