Fermer

juin 14, 2018

WWDC 2018 Journal d'un développeur iOS


À propos de l'auteur

Lou Franco est l'éditeur mobile de Smashing Magazine et un ingénieur chez Atlassian travaillant sur Trello iOS. Il a développé pour les appareils mobiles depuis 2000 …
En savoir plus sur Lou

Depuis 1987, la Conférence mondiale des développeurs d'Apple (WWDC) se tient chaque année et garde les développeurs iOS sur leurs gardes. Lou Franco a assisté à l'événement de cette année et partage ses notes et références au cas où vous l'avez 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 iPhone. Même si le temps est frais et pluvieux cette semaine à New York, je suis dans une ambiance estivale et j'attends avec impatience le renouvellement de cet été et la promesse de la WWDC


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

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

Apple a publié Turi Create et Lobe a publié un nouveau ML intéressant Maquettiste le mois dernier. Dans l'espace Apple / ML, le créateur de Swift, Chris Lattner, adopte une approche différente avec Swift for TensorFlow . Mais de l'extérieur, Core ML semble surtout avoir une utilisation évidente: la classification des 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).

Une autre façon dont Apple utilise ML est à Siri, et plus tôt cette année, j'ai écrit sur SiriKit et a mentionné ses lacunes perçues et réelles par rapport à Alexa et Google. Une question que j'ai expliquée était comment l'accent de Siri sur les intentions prédéfinies limite sa portée mais n'a pas produit l'exactitude promise que vous pourriez obtenir d'un foyer limité.

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

Avec tout cela dans le dos de mon esprit, j'espérais personnellement entendre que Apple allait pour apporter des améliorations majeures dans 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 dans la création de modèles. Pour Siri, je voulais voir beaucoup plus d'intentions et éventuellement une indication que les intentions seraient une chose qui serait ajoutée toute l'année. C'était un long-shot, mais pour AR, la prochaine étape est un appareil. Mais en attendant, j'espérais une plus grande précision spatiale.

Enfin, j'adore les livres Xcode Playgrounds et iPad Playground, mais ils doivent être beaucoup plus rapides et stables, donc 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 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-équipées ou trop difficiles pour moi et j'espérais qu'Apple apporterait quelques améliorations.

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

Fin du Jour 1: Le Keynote et les Plateformes État de l'Union

Le premier jour de la WWDC est le keynote , qui est destiné à la consommation publique, et Platforms State of the Union 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 à suivre.

Des annonces de développeur non-iOS notables

WWDC n'est pas entièrement sur le développement iOS, donc 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.

  • façon, il n'y avait aucune annonce de matériel du tout . Aucun aperçu et aucune mise à jour sur le Mac Pro. Nous devrons attendre l'iPhone et les événements de suivi à l'automne.
  • iOS 12 a une nouvelle application Shortcuts qui semble être le résultat de leur acquisition de Workflow. C'est un moyen de "script" une série d'étapes par glisser-déposer . Vous pouvez également assigner le raccourci à un mot-clé Siri, que je couvrirai ci-dessous.
  • iOS va grouper automatiquement les notifications qui proviennent de la même application et vous permettent d'agir en groupe. 19659028] Les Animojis peuvent maintenant imiter votre langue, et les nouveaux Memojis sont des visages humains hautement configurables que vous pouvez personnaliser pour vous ressembler.
  • FaceTime supporte le chat vidéo en groupe
  • Il existe une nouvelle application Screen Time qui vous donne des rapports sur l'utilisation de votre téléphone et de votre application (pour vous aider à vous contrôler et à être moins distrait). C'est aussi la base de 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 de la Station spatiale internationale . Espace économiseur d'écran « />
    Apple TV Espace économiseur d'écran ( Grand aperçu )
    • The Watch a obtenu un mode de compétition pour défier les autres aux défis liés à l'entraînement. Il va également essayer de détecter automatiquement le début et la fin des séances d'entraînement au cas où vous oublieriez de les démarrer ou de les arrêter, et il a maintenant des séances d'entraînement de randonnée et de yoga.
    • Mode Talkie que vous pouvez activer pour les contacts de confiance.
    • Il y a plus de SDK audio qui sont natifs sur Watch et l'application Podcasts d'Apple est maintenant disponible. Je pense que les applications de podcast tierces profiteront également de ces nouveaux SDK.
    • Le Mac a obtenu le point d'ancrage de l'événement (ce qui, espérons-le, indique une attention renouvelée). Il s'appellera macOS Mojave et dispose d'un mode sombre .
    • Il y a de grandes mises à jour sur le Mac App Store, mais notamment le même traitement visuel et de contenu iOS App Store a obtenu l'année dernière. Il y a assez de changements dans le bac à sable que Panic a décidé de déplacer le Transit là-bas .
    • Quick Look dans le Finder contient maintenant quelques actions simples (19459036) que vous pouvez faire au fichier. rotation d'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 le framework Quick Time va disparaître. Il a apparemment été remplacé par quelques fonctionnalités de capture vidéo dans le système d'exploitation lui-même.
    • Apple a annoncé qu'il utilisait un port d'UIKit pour créer des applications Mac et affichait des ports de Stocks, News, Home et Mémos vocaux. Le nouveau cadre sera publié en 2019.

    Les annonces iOS pour développeurs sont les plus excitantes À propos de

    iOS Les développeurs ont également reçu de bonnes nouvelles. Ils ont touché les quatre domaines principaux que je voulais voir s'améliorer:

    • SiriKit a maintenant des intentions personnalisées ce qui ouvre beaucoup les possibilités.
    • Créer ML est une nouvelle façon d'utiliser Xcode Playgrounds pour former des modèles via transfert d'apprentissage qui vous permet augmenter les modèles existants avec vos propres données d'entraînement .
    • Les terrains de jeu Xcode vous permettent maintenant d'ajouter du code au bas de une page et lancez-la 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 le code 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é un support d'outillage. Il permettra aux utilisateurs et aux développeurs de stocker et de partager les ressources et les expériences d'AR. En outre, ARKit 2 permet à plusieurs périphériques d'être dans le même environnement AR et prend en charge la détection d'objets 3D.

    Nous n'avons pas eu de périphérique AR, mais il est certain que nous en aurons bientôt un. Et il doit provenir d'Apple (pas de tiers) car l'exécution d'ARKit nécessite un périphérique iOS.

    Configuration de votre machine

    Tout ce dont vous avez besoin est maintenant disponible dans le portail des développeurs . Pour utiliser le code dans l'article, vous avez besoin de la bêta Xcode 10. Je ne recommanderais pas encore d'utiliser iOS 12 Betas, mais si vous le souhaitez, allez sur le portail de 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 correctement dans le simulateur de Xcode 10. Dès la première bêta, la prise en charge de Siri Shortcut dans le simulateur est limitée, mais il y en a assez pour penser que cela sera corrigé dans les prochaines versions.

    Fin du jour 2: Jouer avec les intentions personnalisées de Siri

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

    Pour être clair, ceci est une première implémentation, donc pas aussi étendue qu'Alexa Les compétences pour le moment, mais cela ouvre un peu les possibilités de Siri. Comme je l'ai discuté dans l'article précédent, la principale limitation des intentions personnalisées est que le développeur doit faire toute la traduction. SiriKit contourne un peu cela 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 ont été construits sur les mêmes bases que les des 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) Support de raccourci Siri si vous l'avez déjà supporté Spotlight

    Si vous utilisez NSUserActivity pour indiquer des choses dans votre application que votre utilisateur peut initier via le transfert ou la recherche, il est alors trivial de les mettre à la disposition de Siri.

    Tout ce que vous devez faire est l'ajout de la ligne suivante à votre objet d'activité:

     activity.isEligibleForPrediction = true
    

    Cela fonctionnera uniquement pour les activités activées par Spotlight (où isEligibleForSearch est true ).

    Maintenant, lorsque les utilisateurs font cette activité, il est considéré comme un don à utiliser avec Siri. Siri recommandera des activités très courantes ou les utilisateurs peuvent les trouver dans l'application Raccourcis. Dans les deux cas, l'utilisateur pourra assigner sa propre phrase parlée afin de la démarrer. Votre support pour le démarrage de l'activité via Spotlight est suffisant pour le démarrer via un raccourci

    Dans List-o-Mat, nous pourrions mettre les listes individuelles à la disposition de Spotlight et Siri en construisant des objets d'activité et en les affectant à ListViewController . Les utilisateurs peuvent les ouvrir via Siri avec leur propre expression.

    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 ont maintenant ce mécanisme simple. Donc, si votre application a des activités qui ne sont pas supportées par les intentions prédéfinies de Siri (par exemple en lisant un podcast), vous pouvez simplement les rendre éligibles pour la prédiction et ne pas vous inquiéter des intentions personnalisées.

    Configurer SiriKit 19659026] Si vous devez utiliser une intention personnalisée, alors 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, ce qui est couvert en détail dans mon article SiriKit ici sur Smashing . Pour résumer:

    1. Vous ajoutez une extension, vous avez donc besoin d'un nouvel ID d'application et Siri a ajouté le profil d'approvisionnement et les droits d'accès de votre application.
    2. Vous avez probablement besoin d'un groupe d'applications (c'est la façon dont l'extension et l'application communiquent)
    3. Vous aurez besoin d'une extension Intents dans votre projet
    4. Il y a des clés spécifiques à Siri .plist et des droits de projet que vous devez mettre à jour.

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

    Ajouter une commande de liste de copie à List-o-Mat

    Les intentions personnalisées ne sont utilisées que il n'y a pas d'intention prédéfinie, et Siri offre en fait beaucoup de support de listes et de tâches dans son domaine Listes et Notes Siri.

    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 allons vouloir copier une liste existante et décocher tous ses éléments. Les intentions de liste intégrées ne supportent pas cette action.

    Premièrement, 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 listes de copie
    Copier une liste dans List-o-Mat

    Pour que ce comportement soit invocable par Siri, nous allons "donner une intention", ce qui signifie que nous allons dire à iOS chaque fois que vous faites cela. Ensuite, il finira par apprendre que le matin, vous aimez copier cette liste et l'offrir comme 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. Voici un nouveau modèle de fichier, donc:

    1. Choisissez Fichier → Nouveau fichier et choisissez "SiriKit Intent Definition File"
       Une capture d'écran de la boîte de dialogue New
      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 d'extension d'application et d'intention. Cela générera automatiquement des classes dans les deux cibles qui implémentent les protocoles d'intention mais votre comportement personnalisé sera implémenté.
    3. Ouvrez le fichier Définition .
    4. Utilisez le bouton + en bas à gauche pour ajouter une intention et nommez-la "CopyList".
    5. Définissez la catégorie sur "Create" et remplissez le titre et le sous-titre pour décrire l'intention:
       Capture d'écran de la description d'intention personnalisée
      Ajoutez une catégorie, un titre et un sous-titre intention ( Grand aperçu )
    6. Ajouter un paramètre String nommé "list".
       Capture d'écran de la section parameter
      Ajouter un paramètre String nommé "list" ( Grand aperçu )
    7. Ajouter un type de raccourci avec le paramètre list et lui donner un titre nommé "Copier la liste".
       Capture d'écran de la section type de raccourci
      Ajouter un type de raccourci "Copier liste" ( Large preview )

    Si vous regardez dans l'intention p liste, vous verrez que cette intention a déjà été configurée pour vous:


    Donner l'intention

    Quand nous faisons une interaction utilisateur dans notre application que nous voulons que Siri connaisse, 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 motif, il offrira 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 = "Copier  (listName)"
        permettez l'interaction = INInteraction (intention: copyListInteraction, réponse: nil)
        interaction.donate {[weak self] (erreur) dans
            self? .show (erreur: erreur)
        }
    }
    

    Cela crée simplement un objet de la classe CopyListIntent générée automatiquement et le donne à Siri. Normalement, iOS collecte ces informations et attend l'heure appropriée 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 Siri Shortcut.

    Remarque : A ce jour, avec les premiers bêtas, ce réglage 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 bêtas.


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

    Lorsque vous faites cela, votre raccourci donné apparaît dans Siri Suggestions in Spotlight


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

    Taper cela fera appel à votre extension Intent car nous autorisons l'exécution en arrière-plan.

    Gestion de l'intention personnalisée

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

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

    
    
    @available (iOS 12, *)
    class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling {
    
        func handle (intention: CopyListIntent, achèvement: @escaping (CopyListIntentResponse) -> Void) {
    
            // Trouver la liste
            var lists = loadLists ()
            garde
                let listName = intention.list? .lowercased (),
                let listIndex = lists.index (où: {$ 0.name.lowercased () == listName})
            autre {
                completion (CopyListIntentResponse (code: .failure, userActivity: nil))
                revenir
            }
    
            // Copie la liste en haut et réponds avec succès
            copyList (à partir de: & lists, atIndex: listIndex, toIndex: 0)
            enregistrer (listes: listes)
            let response = CopyListIntentResponse (code: .success, userActivity: nil)
            achèvement (réponse)
        }
    
    }
    

    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). Puisque la valeur par défaut confirm () renvoie le succès, nous allons simplement implémenter handle () qui doit rechercher la liste, la copier et laisser savoir à Siri si elle a réussi ou

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

     si #available (iOS 12, *) {
        si l'intention est CopyListIntent {
            return CopyListIntentHandler ()
        }
    }
    

    Vous pouvez maintenant appuyer sur cette suggestion de Siri et cela va le faire remonter:


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

    Et en tapant sur le bouton Créer, vous copiez la liste. Le bouton dit «Créer» à cause 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 caractéristique d'iOS 12 qui a une nouvelle surface de développement importante à explorer. De plus, comme il m'arrivait d'avoir un bon exemple Siri (et documenté) 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 regarderai principalement l'exemple de code d'Apple ou des projets beaucoup plus petits.

    Fin du Jour 3: Xcode Playgrounds

    ] Toute la journée précédente a été consacrée à la version bêta de Xcode 10, qui ne s'est pas arrêtée 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 est de les rendre 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 Playground qui avait été exécuté automatiquement (par défaut), chaque ligne de code reconstruisait réellement le fichier entier et l'a couru depuis le début. Si vous aviez construit n'importe quel état, il était perdu. Mais, le vrai problème était que c'était trop lent pour le développement itératif. Quand j'utilise Playgrounds, je les mets à fonctionner manuellement, mais même si c'est lent.

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

    Pour commencer, j'ai créé un terrain de jeu iOS (Fichier → Nouveau → Terrain de jeu) avec le modèle Vue unique. en faisant descendre le menu sous le bouton Play (le triangle dans le coin en bas à gauche). Cela met une bande verticale à gauche qui montre la position actuelle de la tête de lecture (sorte de points d'arrêt similaires).

    Vous pouvez appuyer sur n'importe quelle ligne, puis appuyer sur le bouton de lecture à sa gauche. Cela lancera le terrain de jeu jusqu'à ce point. Ensuite, vous pouvez aller plus loin en tapant des lignes plus bas dans le terrain de jeu. Critiquement, vous pouvez ajouter plus de lignes en bas et taper Shift + Entrer après chacune d'elles pour déplacer la tête de lecture jusqu'à ce point.

    Voici un GIF de moi qui change d'étiquette d'une vue sans avoir besoin de redémarrer le Playground. Après chaque ligne je tape Shift + Enter .

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

    Playgrounds aussi soutenir le rendu personnalisé de vos types maintenant, et Apple fait une grande poussée pour chaque cadre Swift pour inclure un terrain de jeu pour le documenter.


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

    Fin du Jour 4: Créer ML

    L'année dernière, Apple a fait un grand bond en avant pour la programmation de Machine Learning pour ses appareils. Il y avait un nouveau format de fichier de modèle ML et un support direct dans Xcode.

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

    Cela ne s'est pas entièrement matérialisé. Apple n'a pas ajouté au dépôt de modèles après WWDC, et bien qu'il y ait des dépôts de tiers, ils ont pour la plupart des modèles qui sont des variations sur les démos de classification d'image. ML est utilisé pour beaucoup plus que la classification d'image, mais une large sélection d'exemples n'apparaît pas.

    Ainsi, il est devenu évident que toute application réelle 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.

    À la WWDC 2018, Apple a fait quelques choses à Core ML:

    1. Ils ont étendu le traitement du langage naturel. ) partie de Core ML qui nous donne un nouveau domaine majeur d'exemples
    2. Ils ont ajouté le concept de Transfer Learning à Core ML, qui vous permet de ajouter des données d'entraînement à un modèle existant . Cela signifie que vous pouvez prendre des modèles de la bibliothèque et les personnaliser pour vos propres données (par exemple, qu'ils reconnaissent 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 faire glisser et déposer des données pour la formation et générer des extensions de modèle (en utilisant Transfer Learning).

    Ceci est une autre belle étape dans la démocratisation de 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: jouer avec les nouvelles démonstrations AR

    ARKit a été une autre grande addition l'année dernière et il semble encore plus clair qu'un Le périphérique 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 l'AR plus précis et plus rapide.

    Après cela, si vous avez installé une bêta, vous voudrez certainement télécharger la nouvelle application de démonstration SwiftShot ARKit . Cette application tire parti des nouvelles fonctionnalités de 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 jouer cela, vous avez besoin de deux appareils ou plus que vous êtes prêt à mettre sur l'iOS 12 bêta. J'attends la bêta publique pour faire cela parce que je n'ai qu'un seul appareil bêta-sécurisé.

    L'application AR la plus facile à utiliser est la nouvelle application Measure, qui vous permet de mesurer la longueur des objets réels que vous voyez dans Vue de la caméra AR. Il y a eu des applications tierces qui font cela, mais Apple est poli et pré-installé avec iOS 12.

    Donc, je suis impatient d'en faire plus avec Xcode 10 et iOS 12 cet été pendant que nous attendons les nouveaux téléphones et tous 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 nouvelle version bêta de Watch OS, et regarder ces vidéos WWDC quand nous avons une chance.

    Vous pouvez diffuser des vidéos WWDC 2018 sur Apple portail des développeurs. Il y a aussi ce Mac App non officiel pour visionner des vidéos WWDC .

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

    Pour commencer à jouer avec Xcode 10 et iOS 12:

     Smashing Editorial [19659161] (ra, il) </span data-recalc-dims=






Source link