WWDC 2018 Journal d'un développeur iOS

Publié: 2022-03-10
Résumé rapide ↬ Depuis 1987, l'Apple Worldwide Developers Conference (WWDC) a lieu chaque année et tient les développeurs iOS sur leurs gardes. Lou Franco a regardé l'événement de cette année et partage ses notes et ses références au cas où vous l'auriez manqué.

Les frontières traditionnelles de l'été aux États-Unis sont Memorial et Labor Day, mais les développeurs iOS marquent l'été par la WWDC et la sortie de l'iPhone. Même si le temps est frais et pluvieux cette semaine à New York, je suis d'humeur estivale et j'attends avec impatience le renouvellement de cet été et de la promesse de la WWDC.

Photo devant le San Jose McEnery Convention Center
WWDC (Source de l'image) ( Grand aperçu )

C'est le matin du 4 juin et je passe en revue mes notes de la WWDC 2017. L'année dernière, j'ai écrit que ARKit et Core ML étaient deux des grands moments forts. C'était rafraîchissant de voir Apple se concentrer sur l'apprentissage automatique (ML), mais il n'y a pas eu beaucoup de suivi dans le reste de 2017. ARKit a suscité un certain intérêt, mais pas d'application qui tue (peut-être Pokemon Go, mais c'était populaire avant ARKit) . Apple n'a pas ajouté à sa bibliothèque initiale de modèles téléchargeables Core ML après l'annonce de Core ML.

Apple a publié Turi Create et Lobe a publié le mois dernier un nouveau créateur de modèles Core ML intéressant. Dans l'espace Apple/ML, le créateur de Swift, Chris Lattner, adopte une approche différente avec Swift pour TensorFlow. Mais de l'extérieur, Core ML semble surtout avoir une utilisation évidente : la classification d'images. Il ne semble pas y avoir beaucoup d'énergie autour de l'exploration d'applications extrêmement différentes (même si nous savons tous que le ML est au cœur des voitures autonomes et des démos whiz-bang comme Google Duplex).

Plus après saut! Continuez à lire ci-dessous ↓

Une autre façon dont Apple utilise ML est dans Siri, et plus tôt cette année, j'ai écrit sur SiriKit et mentionné ses lacunes perçues et réelles par rapport à Alexa et Google. Un problème que j'ai exploré était de savoir comment l'accent mis par Siri sur les intentions prédéfinies limite sa portée mais n'a pas produit la précision promise que vous pourriez obtenir à partir d'une mise au point limitée.

L'introduction de HomePod l'année dernière n'a fait que souligner les malheurs de Siri, et une enquête de satisfaction client largement diffusée a montré 98% de satisfaction avec l'iPhone X mais seulement 20% de satisfaction avec Siri.

Avec tout cela à l'esprit, j'espérais personnellement entendre qu'Apple allait apporter des améliorations majeures à AR, ML et Siri. Plus précisément, en tant que développeur iOS, je voulais voir beaucoup plus de modèles Core ML, couvrant plus que la simple classification d'images et plus d'aide pour créer des modèles. Pour Siri, je voulais voir beaucoup plus d'intentions et peut-être une indication que les intentions seraient une chose qui serait ajoutée toute l'année. C'était un long coup, mais pour AR, la prochaine étape est un appareil. Mais en attendant, j'espérais une précision spatiale accrue.

Enfin, j'adore les livres Xcode Playgrounds et iPad Playground, mais ils doivent être beaucoup plus rapides et stables, alors j'espérais quelque chose là-bas aussi.

Le matin de la WWDC, j'ai tweeté ceci :

Une image d'un tweet avec mes souhaits WWDC
Mon tweet décrivant ce que j'espérais de la WWDC 2018 ( Grand aperçu )

Ce n'était pas une prédiction. C'est juste une liste de choses que je voulais utiliser en 2017, mais je les ai trouvées sous-alimentées ou trop difficiles à démarrer, et j'espérais qu'Apple apporterait des améliorations.

Mon plan pour la journée est de regarder le discours d'ouverture en direct, puis de regarder l'état de l'Union des plates-formes. Ceux-ci donnent un bon aperçu de ce sur quoi se concentrer pour le reste de la semaine.

Fin de la 1ère journée : le discours d'ouverture et l'état de l'Union des plates-formes

Le premier jour de la WWDC est le discours d'ouverture, qui est destiné à la consommation publique, et l'état de l'Union des plates-formes, qui est un aperçu de l'ensemble de l'événement, avec quelques détails pour les développeurs afin qu'ils puissent choisir les sessions auxquelles assister.

Résumé des annonces notables des développeurs non iOS

La WWDC n'est pas entièrement consacrée au développement d'iOS, alors voici une liste rapide d'autres choses qui sont arrivées aux autres plates-formes ou qui ne sont pas très axées sur les développeurs.

  • Pour le mettre à l'écart, il n'y a eu aucune annonce de matériel . Pas d'aperçus et pas de mises à jour sur le Mac Pro. Nous devrons attendre l'iPhone et les événements de suivi à l'automne.
  • iOS 12 a une nouvelle application Raccourcis qui semble être le résultat de leur acquisition de Workflow. C'est un moyen de "scénariser" une série d'étapes par glisser-déposer . Vous pouvez également attribuer le raccourci à un mot-clé Siri, que je couvrirai ci-dessous.
  • iOS regroupera automatiquement les notifications provenant de la même application et vous permettra d'agir dessus en tant que groupe.
  • Les Animojis peuvent désormais vous imiter en tirant la langue, et les nouveaux Memojis sont des visages humains hautement configurables que vous pouvez personnaliser pour vous ressembler.
  • FaceTime prend en charge le chat vidéo de groupe jusqu'à 32 personnes.
  • Il existe une nouvelle application Screen Time qui vous donne des rapports sur l'utilisation de votre téléphone et de l'application (pour vous aider à vous contrôler et à être moins distrait). C'est aussi la base des nouveaux contrôles parentaux.
  • Apple TV a reçu une petite mise à jour : prise en charge de Dolby Atmos et de nouveaux économiseurs d'écran tirés de la Station spatiale internationale .
Photo du nouvel économiseur d'écran Apple TV Space
Économiseur d'écran Apple TV Space ( Grand aperçu )
  • La montre a un mode compétition pour défier les autres à des défis liés à l'entraînement. Il essaiera également de détecter automatiquement le début et la fin des entraînements au cas où vous oublieriez de les démarrer ou de les arrêter, et il propose désormais des entraînements de randonnée et de yoga.
  • La montre dispose également d'un nouveau mode talkie-walkie que vous pouvez activer pour les contacts de confiance.
  • Il existe davantage de SDK audio natifs sur la montre et l'application Podcasts d'Apple est désormais disponible. Je m'attends à ce que les applications de podcast tierces tirent également parti de ces nouveaux SDK.
  • Le Mac a obtenu la place d'ancrage de l'événement (ce qui, espérons-le, indique un regain d'attention). Il s'appellera macOS Mojave et proposera un mode sombre .
  • Il y a de grandes mises à jour du Mac App Store, mais notamment, il reçoit désormais le même traitement visuel et de contenu que l'iOS App Store l'année dernière. Il y a suffisamment de changements dans le bac à sable pour que Panic décide d'y déplacer Transit .
  • Quick Look dans le Finder propose désormais des actions simples que vous pouvez effectuer sur le fichier (par exemple, faire pivoter une image) et est personnalisable via Automator.
  • Mojave sera la dernière version de macOS à prendre en charge les applications et les frameworks 32 bits , ce qui signifie que Quick Time Framework va disparaître. Il a apparemment été remplacé par certaines fonctionnalités de capture vidéo dans le système d'exploitation lui-même.
  • Apple a annoncé qu'il utilisait en interne un port d'UIKit pour créer des applications Mac et a montré les ports de Stocks, News, Home et Voice Memos. Le nouveau cadre sera publié en 2019.

Les annonces des développeurs iOS qui me passionnent le plus

Les développeurs iOS ont également de bonnes nouvelles. Ils ont touché les quatre principaux domaines sur lesquels je voulais voir des améliorations :

  • SiriKit a maintenant des intentions personnalisées , ce qui ouvre un peu les possibilités.
  • Create ML est une nouvelle façon d'utiliser Xcode Playgrounds pour former des modèles via l'apprentissage par transfert , ce qui vous permet d' augmenter les modèles existants avec vos propres données de formation .
  • Les terrains de jeux Xcode vous permettent désormais d' ajouter du code au bas d'une page et de l'exécuter sans redémarrer . Il est difficile de savoir si Playgrounds sera plus stable jusqu'à ce que nous obtenions une vraie version en septembre, mais cela rendra l'essai de code beaucoup plus rapide.
  • ARKit 2 a été annoncé avec un nouveau format de fichier de réalité augmentée appelé USDZ , qui est ouvert et a été développé avec Adobe et Pixar. Adobe a déjà annoncé une prise en charge des outils. Il permettra aux utilisateurs et aux développeurs de stocker et de partager des actifs et des expériences AR. De plus, ARKit 2 permet à plusieurs appareils d'être dans le même environnement AR et prend en charge la détection d'objets 3D.

Nous n'avons pas obtenu d'appareil AR, mais il semble que nous en aurons bientôt un. Et cela doit provenir d'Apple (et non de tiers) car l'exécution d'ARKit nécessite un appareil iOS.

Configuration de votre appareil

Tout ce dont vous avez besoin est disponible dès maintenant sur le portail des développeurs. Pour utiliser le code de l'article, vous avez besoin de Xcode 10 Beta. Je ne recommanderais pas encore d'utiliser iOS 12 Betas, mais si vous le souhaitez vraiment, accédez au portail sur votre appareil et téléchargez le profil de configuration iOS 12 Beta.

La seule chose importante pour laquelle vous avez besoin d'un appareil avec la version bêta est ARKit 2. Tout le reste devrait fonctionner assez bien dans le simulateur de Xcode 10. Depuis la première version bêta, la prise en charge de Siri Shortcut dans le simulateur est limitée, mais il y en a suffisamment pour penser que cela sera corrigé dans les prochaines versions.

Fin de la deuxième journée : jouer avec les intentions personnalisées de Siri

L'année dernière, j'ai écrit comment vous deviez vous adapter à l'une des intentions prédéfinies d'Apple afin d'utiliser SiriKit dans votre application. Ce mécanisme a été introduit en 2016 et complété en 2017 et même entre les événements de la WWDC. Mais il était clair que l'approche d'Amazon en matière d'intentions personnalisées était supérieure pour obtenir le contrôle vocal dans des applications plus diverses, et Apple l'a ajouté à SiriKit la semaine dernière.

Pour être clair, il s'agit d'une première implémentation, donc ce n'est pas encore aussi étendu qu'Alexa Skills, mais cela ouvre un peu les possibilités de Siri. Comme je l'ai expliqué dans l'article précédent, la principale limitation des intentions personnalisées est que le développeur doit effectuer toute la traduction de la langue. SiriKit contourne un peu ce problème en demandant à l'utilisateur de fournir la phrase qu'il aimerait utiliser, mais il y a encore plus de traduction nécessaire pour les intentions personnalisées que pour les intentions prédéfinies.

Et ils sont construits sur la même base que les intentions prédéfinies, donc tout ce que j'ai couvert s'applique toujours. En fait, je vais vous montrer comment ajouter une nouvelle intention personnalisée à List-o-Mat, l'application que j'ai écrite pour l'article original de SiriKit.

(Gratuit) Prise en charge des raccourcis Siri si vous prenez déjà en charge Spotlight

Si vous utilisez NSUserActivity pour indiquer des éléments dans votre application que votre utilisateur peut initier via un transfert ou une recherche, il est alors trivial de les rendre également disponibles pour Siri.

Tout ce que vous avez à faire est d'ajouter la ligne suivante à votre objet d'activité :

 activity.isEligibleForPrediction = true

Cela ne fonctionnera que pour les activités compatibles Spotlight (où isEligibleForSearch est true ).

Désormais, lorsque les utilisateurs effectuent cette activité, elle est considérée comme un don pour une utilisation dans Siri. Siri recommandera des activités très courantes ou les utilisateurs pourront les trouver dans l'application Raccourcis. Dans les deux cas, l'utilisateur pourra attribuer sa propre phrase parlée afin de la démarrer. Votre prise en charge du démarrage de l'activité via Spotlight est suffisante pour prendre en charge son démarrage via un raccourci.

Dans List-o-Mat, nous pourrions rendre les listes individuelles disponibles pour Spotlight et Siri en construisant des objets d'activité et en les affectant au ListViewController . Les utilisateurs peuvent les ouvrir via Siri avec leur propre phrase.

C'est redondant dans notre cas car nous avions une intention prédéfinie pour ouvrir une liste, mais la plupart des applications n'ont pas cette chance et disposent désormais de ce mécanisme simple. Ainsi, si votre application comporte des activités qui ne sont pas prises en charge par les intentions prédéfinies de Siri (par exemple, la lecture d'un podcast), vous pouvez simplement les rendre éligibles à la prédiction et ne pas vous soucier des intentions personnalisées.

Configuration de SiriKit pour utiliser des intentions personnalisées

Si vous avez besoin d'utiliser une intention personnalisée, SiriKit doit être ajouté à votre application, ce qui nécessite un peu de configuration.

Toutes les étapes de configuration de SiriKit pour les intentions personnalisées sont les mêmes que pour les intentions prédéfinies, qui sont couvertes en détail dans mon article SiriKit ici sur Smashing. Résumer:

  1. Vous ajoutez une extension, vous avez donc besoin d'un nouvel ID d'application, d'un profil d'approvisionnement et les besoins en droits de votre application ont ajouté Siri.
  2. Vous avez probablement besoin d'un groupe d'applications (c'est ainsi que l'extension et l'application communiquent).
  3. Vous aurez besoin d'une extension Intents dans votre projet
  4. Il existe des clés .plist et des droits de projet spécifiques à Siri que vous devez mettre à jour.

Tous les détails peuvent être trouvés dans mon article SiriKit, donc je vais juste couvrir ce dont vous avez besoin pour prendre en charge une intention personnalisée dans List-o-Mat.

Ajout d'une commande de liste de copie à List-o-Mat

Les intentions personnalisées sont destinées à être utilisées uniquement lorsqu'il n'y a pas d'intention prédéfinie, et Siri offre en fait beaucoup de support de liste et de tâche dans son domaine Siri Listes et Notes.

Mais, une façon d'utiliser une liste est comme modèle pour une routine ou un processus répété. Pour ce faire, nous voudrons copier une liste existante et décocher tous ses éléments. Les intentions de liste intégrées ne prennent pas en charge cette action.

Tout d'abord, nous devons ajouter un moyen de le faire manuellement. Voici une démo de ce nouveau comportement dans List-o-Mat :

Un GIF animé avec une démo de copie de listes
Copier une liste dans List-o-Mat

Pour que ce comportement soit invocable par Siri, nous allons "faire don d'une intention", ce qui signifie que nous le dirons à iOS chaque fois que vous le ferez. Ensuite, il finira par apprendre que le matin, vous aimez copier cette liste et la proposer en raccourci. Les utilisateurs peuvent également rechercher des intentions données et attribuer des phrases manuellement.

Création de l'intention personnalisée

L'étape suivante consiste à créer l'intention personnalisée dans Xcode. Il y a un nouveau modèle de fichier, donc :

  1. Choisissez Fichier → Nouveau fichier et choisissez "Fichier de définition d'intention SiriKit".
    Une capture d'écran de la boîte de dialogue Nouveau fichier
    Choisissez d'ajouter un fichier de définition d'intention ( Grand aperçu )
  2. Nommez le fichier ListOMatCustomIntents.intentdefinition et choisissez de placer le fichier dans les cibles App et Intent Extension. Cela générera automatiquement des classes dans les deux cibles qui implémentent les protocoles d'intention mais implémentent votre comportement personnalisé.
  3. Ouvrez le fichier de définition .
  4. Utilisez le bouton + en bas à gauche pour ajouter une intention et nommez-la "CopyList".
  5. Définissez la catégorie sur "Créer" et remplissez le titre et le sous-titre pour décrire l'intention :
    Capture d'écran de la description de l'intent personnalisé
    Ajouter une catégorie, un titre et un sous-titre à l'intention ( Grand aperçu )
  6. Ajoutez un paramètre String nommé "list".
    Capture d'écran de la section des paramètres
    Ajouter un paramètre String nommé "list" ( Grand aperçu )
  7. Ajoutez un type de raccourci avec le paramètre de liste et donnez-lui un titre nommé "Copier la liste".
    Capture d'écran de la section Type de raccourci
    Ajouter un type de raccourci intitulé "Copier la liste" ( Grand aperçu )

Si vous regardez dans la liste des intentions, vous verrez que cette intention a déjà été configurée pour vous :

Donner l'intention

Lorsque nous effectuons une interaction utilisateur dans notre application dont nous voulons que Siri soit informé, nous la donnons à Siri. Siri garde une trace des informations contextuelles, comme l'heure, le jour de la semaine et même l'emplacement, et s'il remarque un modèle, il proposera le raccourci à l'utilisateur.

Lorsque nous tapons sur le menu Copier, ajoutez ce code :

 @available(iOS 12, *) func donateCopyListInteraction(listName: String) { let copyListInteraction = CopyListIntent() copyListInteraction.list = listName copyListInteraction.suggestedInvocationPhrase = "Copy \(listName)" let interaction = INInteraction(intent: copyListInteraction, response: nil) interaction.donate { [weak self] (error) in self?.show(error: error) } }

Cela crée simplement un objet de la classe CopyListIntent générée automatiquement et le donne à Siri. Normalement, iOS recueillerait ces informations et attendrait le moment approprié pour les afficher, mais pour le développement, vous pouvez ouvrir l'application Paramètres, accéder à la section Développeur et activer les paramètres de débogage du raccourci Siri.

Remarque : Au moment d'écrire ces lignes, avec les premières versions bêta, ce paramètre de débogage ne fonctionne que sur les appareils, et non sur le simulateur. Étant donné que le paramètre est là, je m'attends à ce qu'il commence à fonctionner dans d'autres versions bêta.

Capture d'écran des paramètres de débogage de Siri
Activer le débogage du raccourci Siri

Lorsque vous faites cela, votre raccourci donné apparaît dans les suggestions Siri dans Spotlight.

Capture d'écran du raccourci donné dans Siri
Vous pouvez déboguer votre raccourci donné dans la recherche

En tapant dessus, vous appellerez votre extension d'intention, car nous autorisons l'exécution en arrière-plan. Nous ajouterons le support pour cela ensuite.

Gestion de l'intention personnalisée

Nous avons déjà une extension Intents, et comme le fichier de définitions d'intentions personnalisées est déjà ajouté au fichier, il contient également les classes d'intentions générées. Tout ce que nous avons à faire est d'ajouter un gestionnaire.

La première étape consiste à ajouter une nouvelle classe, nommée CopyListIntentHandler à l'extension. Voici son code :

 import Intents @available(iOS 12, *) class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling { func handle(intent: CopyListIntent, completion: @escaping (CopyListIntentResponse) -> Void) { // Find the list var lists = loadLists() guard let listName = intent.list?.lowercased(), let listIndex = lists.index(where: { $0.name.lowercased() == listName}) else { completion(CopyListIntentResponse(code: .failure, userActivity: nil)) return } // Copy the list to the top, and respond with success copyList(from: &lists, atIndex: listIndex, toIndex: 0) save(lists: lists) let response = CopyListIntentResponse(code: .success, userActivity: nil) completion(response) } }

Les intentions personnalisées n'ont qu'une phase de confirmation et de traitement (la résolution personnalisée des paramètres n'est pas prise en charge). Étant donné que le confirm() par défaut renvoie le succès, nous allons simplement implémenter handle() , qui doit rechercher la liste, la copier et faire savoir à Siri si cela a réussi ou non.

Vous devez également envoyer à cette classe à partir du gestionnaire d'intention enregistré en ajoutant ce code :

 if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }

Maintenant, vous pouvez réellement appuyer sur cette suggestion de Siri et cela affichera ceci :

Capture d'écran du raccourci activé
Activer le raccourci ( Grand aperçu )

Et appuyez sur le bouton Créer pour copier la liste. Le bouton indique "Créer" en raison de la catégorie que nous avons choisie dans le fichier de définition d'intention.

Ouf, c'était beaucoup. Ces nouveaux raccourcis Siri sont la principale fonctionnalité d'iOS 12 qui a une nouvelle grande surface de développement à explorer. De plus, comme j'avais un bon exemple (et documenté) de Siri avec lequel travailler, il était raisonnable d'essayer d'y ajouter les nouvelles fonctionnalités cette semaine.

Vous pouvez voir la mise à jour List-o-Mat dans GitHub. Jusqu'à ce que Xcode 10 et iOS 12 soient publiés, c'est dans sa propre branche.

Les prochains jours, je vais surtout regarder des exemples de code Apple ou faire des projets beaucoup plus petits.

Fin de la troisième journée : Xcode Playgrounds

Toute la journée précédente a été passée dans la version bêta de Xcode 10, qui n'a pas planté une seule fois et semblait prête pour le développement. Alors maintenant, je voulais explorer les nouvelles fonctionnalités de Playgrounds.

La principale chose que je voulais des terrains de jeux, c'est qu'ils soient plus stables et beaucoup plus rapides. Pour les rendre plus rapides, Apple a ajouté une grande fonctionnalité - un mode REPL.

Avant Xcode 10, lorsque vous étiez dans un terrain de jeu qui s'exécutait automatiquement (ce qui est la valeur par défaut), chaque ligne de code reconstruisait en fait le fichier entier et l'exécutait depuis le début. Si vous aviez construit un état, il était perdu. Mais le vrai problème était que c'était beaucoup trop lent pour un développement itératif. Lorsque j'utilise Playgrounds, je les configure pour qu'ils s'exécutent manuellement, mais même cela est lent.

Dans Xcode 10, l'exécution manuelle est plus la norme, mais après l'avoir exécutée, vous pouvez ajouter plus de lignes au bas de la page et continuer l'exécution. Cela signifie que vous pouvez explorer les données et dessiner des vues de manière itérative sans constamment reconstruire et repartir de zéro.

Pour commencer, j'ai créé un terrain de jeu iOS (Fichier → Nouveau → Playground) avec le modèle Single View.

Activez le fonctionnement manuel en abaissant le menu sous le bouton Lecture (le triangle dans le coin inférieur gauche). Cela place une bande verticale à gauche qui montre la position actuelle de la tête de lecture (un peu comme des points d'arrêt).

Vous pouvez appuyer sur n'importe quelle ligne, puis appuyer sur le bouton de lecture à sa gauche. Cela exécutera le terrain de jeu jusqu'à ce point. Ensuite, vous pouvez aller plus loin en appuyant sur les lignes plus bas dans le Playground. De manière critique, vous pouvez ajouter plus de lignes en bas et taper Maj + Entrée après chacune pour déplacer la tête de lecture vers ce point.

Voici un GIF de moi changeant l'étiquette d'une vue sans avoir besoin de redémarrer le Playground. Après chaque ligne que je tape, j'appuie sur Shift + Enter .

GIF de Playground avec le mode REPL
Ajoutez plus de code et exécutez-le sans redémarrer

Les terrains de jeu prennent également en charge le rendu personnalisé de vos types maintenant, et Apple fait un gros effort pour que chaque framework Swift inclue un terrain de jeu pour le documenter.

Photo WWDC montrant une diapositive pour encourager plus de terrains de jeux
TJ Usiyan demande aux participants de la WWDC d'ajouter des Playgrounds à leurs projets. ( Grand aperçu )

Fin de la journée 4 : Créer le ML

L'année dernière, Apple a fait un grand pas en avant dans la programmation de l'apprentissage automatique pour ses appareils. Il y avait un nouveau format de fichier de modèle ML et sa prise en charge directe dans Xcode.

Le potentiel était qu'il y aurait une grande bibliothèque de ces fichiers modèles, qu'il y aurait des outils qui les créeraient, et que beaucoup plus de développeurs d'applications pourraient intégrer ML dans leurs projets sans avoir à savoir comment créer des modèles.

Cela ne s'est pas entièrement concrétisé. Apple n'a pas ajouté au référentiel de modèles après la WWDC, et bien qu'il existe des référentiels tiers, ils ont principalement des modèles qui sont des variantes des démos de classification d'images. ML est utilisé pour bien plus que la classification d'images, mais une large sélection d'exemples n'est pas apparue.

Ainsi, il est devenu clair que toute véritable application aurait besoin de ses développeurs pour former de nouveaux modèles. Apple a publié Turi Create à cet effet, mais c'est loin d'être simple.

Lors de la WWDC 2018, Apple a apporté quelques modifications à Core ML :

  1. Ils ont élargi la partie traitement du langage naturel (NLP) de Core ML , ce qui nous donne un nouveau domaine majeur d'exemples.
  2. Ils ont ajouté le concept de Transfer Learning to Core ML, qui permet d' ajouter des données d'apprentissage à un modèle existant . Cela signifie que vous pouvez prendre des modèles de la bibliothèque et les personnaliser selon vos propres données (par exemple, faites-leur reconnaître de nouveaux objets dans les images que vous fournissez).
  3. Ils ont publié Create ML qui est implémenté dans Xcode Playgrounds et vous permet de glisser-déposer des données pour la formation et de générer des extensions de modèle (à l'aide de Transfer Learning).

C'est une autre belle étape dans la démocratisation du ML. Il n'y a pas beaucoup de code à écrire ici. Pour étendre un classificateur d'images, il vous suffit de rassembler et d'étiqueter les images. Une fois que vous les avez, il vous suffit de les faire glisser dans Create ML. Vous pouvez voir la démo dans cette vidéo Create ML WWDC.

Fin de la semaine : jouez avec les nouvelles démos en réalité augmentée

ARKit était un autre ajout important l'année dernière et il semble encore plus clair qu'un appareil AR arrive.

Mon code ARKit de l'article de l'année dernière est toujours un bon moyen de commencer. La plupart des nouvelles fonctionnalités visent à rendre la réalité augmentée plus précise et plus rapide.

Après cela, si vous avez installé une version bêta, vous voudrez certainement télécharger la nouvelle application de démonstration SwiftShot ARKit. Cette application profite des nouvelles fonctionnalités d'ARKit, en particulier l'expérience multi-joueurs. Deux appareils ou plus sur le même réseau et au même endroit peuvent communiquer entre eux et voir la même expérience AR.

Bien sûr, pour y jouer, vous avez besoin de deux appareils ou plus que vous êtes prêt à mettre sur la version bêta d'iOS 12. J'attends la version bêta publique pour le faire car je n'ai qu'un seul appareil bêta-sûr.

L'application AR la plus facile à jouer est la nouvelle application Mesurer, qui vous permet de mesurer la longueur d'objets réels que vous voyez dans la vue de la caméra AR. Il y a eu des applications tierces qui font cela, mais celle d'Apple est peaufinée et préinstallée avec iOS 12.

Liens vers les vidéos WWDC et les exemples de code

Donc, j'ai hâte d'en faire plus avec Xcode 10 et iOS 12 cet été en attendant les nouveaux téléphones et les appareils qu'Apple pourrait sortir à la fin de l'été. En attendant, les développeurs iOS peuvent profiter du soleil, suivre nos randonnées avec notre nouveau Watch OS bêta et regarder ces vidéos WWDC lorsque nous en avons l'occasion.

Vous pouvez diffuser des vidéos WWDC 2018 à partir du portail des développeurs Apple. Il existe également cette application Mac non officielle pour visionner les vidéos de la WWDC.

Voici les vidéos référencées dans cet article :

  • Conférence WWDC 2018
  • WWDC 2018 Plates-formes État de l'Union
  • Introduction aux raccourcis Siri
  • Tirer le meilleur parti des terrains de jeux dans Xcode
  • Présentation de Create ML, et si vous voulez quelque chose de plus avancé, un guide de Turi Create

Pour commencer à jouer avec Xcode 10 et iOS 12 :

  • Télécharger les bêtas (visitez sur un appareil pour obtenir le profil bêta)
  • List-o-Mat avec les mises à jour du raccourci Siri
  • Swift Shot (le jeu multijoueur ARKit 2)