Dub-dub 2019: nouvelles de la WWDC et mes impressions

Salut Je m'appelle Azat Zulkarnyaev, je développe des applications iOS chez Badoo. Traditionnellement, chaque année, nous passons une semaine avec des collègues de la WWDC. Dans l'article, je partage mes impressions de la conférence: sous la coupe non seulement des mises à jour importantes et un examen des sessions, mais aussi quelques émotions personnelles d'être dans une foule heureuse qui chante «Dub-dub! DC! " et rêve de serrer la main de Tim Cook.



Un peu sur la conférence


Chaque année, Apple organise une conférence WWDC pour les développeurs de ses plateformes et pas seulement pour eux. Traditionnellement, les événements organisés par l'entreprise font grand bruit. Les principales innovations, qui concernent principalement les produits logiciels, sont annoncées le premier jour de la conférence. Les sessions suivantes sont conçues par des employés d'Apple pour aider les développeurs tiers à appliquer ces innovations. Dans l'article, je vais essayer de parler non seulement des innovations techniques de la conférence, mais aussi des impressions générales de celle-ci.

Impressions


Je pense que tous les développeurs de la plate-forme Apple veulent accéder à la WWDC au moins une fois. Et la question n'est pas seulement dans les séances de laboratoire, où vous pouvez parler en personne de vos problèmes et souhaits, mais aussi sous le signe de l'événement.

La conférence ne commence généralement pas par la première présentation, qui s'appelle Keynote, mais par l'inscription, ou plutôt, la file d'attente pour celle-ci. En général, les files d'attente font partie intégrante de la conférence, ce qui est logique, car il y a des milliers de participants, tous les événements ont lieu au même endroit. La position au début de la file d'attente donne parfois des avantages agréables. Par exemple, Tim Cook a personnellement salué les premières personnes à s'inscrire.

Après l'inscription, le participant reçoit une veste d'entreprise et des badges avec les symboles de la conférence ou de l'entreprise.



L'idée de distribuer une veste est tout simplement excellente, car de nombreux participants, trompés par le temps ensoleillé, arrivent à San Jose sans vêtements chauds. Mais le temps en Californie est variable et le soir il fait assez froid. De plus, la climatisation refroidit sans pitié l'air à l'intérieur des bâtiments.

Les badges deviennent immédiatement un objectif pour les collectionneurs: les gens essaient de compléter leur ensemble avec les badges souhaités, et ils sont constamment chassés.

Keynote: Nouveau


Les files d'attente à Keynote commencent à prendre les participants bien avant l'ouverture des portes. Le fait est que cette présentation présente d'importants nouveaux produits de cette année: elle est plus probable non pas pour les développeurs, mais pour un cercle beaucoup plus large de personnes qui regardent la diffusion. Le sommet de l'entreprise apparaît sur la scène, et en général c'est l'une des présentations les plus importantes dans le monde du développement mobile.

Un de mes collègues a décidé cette fois de monter au premier rang et a pris la ligne 10 heures avant l'ouverture. Mais, malheureusement, cette année, il y a eu un accroc: les premières personnes ont été admises à partir d'un autre bloc de la ligne, et les meilleures places ont déjà été prises. En général, les premières places dans la file d'attente ne garantissent pas les meilleures places dans la salle.

D'une manière générale, l'ambiance de l'événement ressemble à un jour férié: les organisateurs félicitent le participant de son arrivée, scandant «Dub-dub! DC! », Les fans d'Apple sont à la recherche de nouveaux badges, tout est assez dynamique et intéressant. Il est agréable de réaliser que les choses les plus importantes dans le développement iOS / MacOS se produisent ici et maintenant, c'est-à-dire que l'impression de regarder une vidéo à la maison ou au travail est très différente de la présence réelle dans la salle. C'est très inspirant, inspirant d'essayer toutes les innovations et de les intégrer dans vos produits. Le court brainstorming avec des collègues de Badoo lors de la conférence s'est transformé en une grande liste de choses que nous aimerions mettre en œuvre dans nos applications.

Comme toujours, bien avant la conférence, des rumeurs ont commencé à apparaître sur les futures mises à jour. Cette année, la WWDC attendait l'annonce d'une nouvelle version d'iOS, d'outils de développement multiplateforme pour iOS et MacOS, Sunset iTunes, le nouveau Mac Pro. Il y a même eu des spéculations sur les lunettes de réalité augmentée.

Beaucoup de ces rumeurs ont été confirmées. Mais tout d'abord.

Apple TV


Tout d'abord sur tvOS. UI tvOS a subi une refonte forte.

Apple fait activement la promotion de sa plate-forme de télévision TV +, et en conséquence, nous avons vu la bande-annonce de la série à la WWDC. Malgré les efforts consentis, Apple reste ici dans le rôle du rattrapage. Les plateformes comme Netflix sont encore meilleures en termes d'UX et de contenu.

L'innovation la plus agréable pour la plupart des AppleTV est peut-être la prise en charge des joysticks Xbox et PlayStation.

iPadOS


Visuellement, ce n'est pas très différent d'iOS. Le but est peut-être de rapprocher l'iPad du Mac. En conséquence, les développeurs ont la possibilité de porter facilement des applications iPad sur MacOS. Les tablettes d'Apple sont devenues plus fonctionnelles: par exemple, elles peuvent désormais être utilisées comme deuxième moniteur et y connecter un lecteur USB. Ce dernier est possible grâce à l'application Fichiers mise à jour pour travailler avec le système de fichiers.

Safari devrait maintenant fonctionner de manière plus adéquate, donnant une disposition pour la version de bureau du site au lieu du mobile.

La fonction de division de l'écran en parties s'est améliorée. Désormais, chaque application peut afficher simultanément plusieurs fenêtres à l'écran. Par exemple, vous pouvez travailler simultanément avec deux ou plusieurs documents dans une même application.



Regarder OS


Maintenant, pour installer l'application sur l'Apple Watch, il n'est pas nécessaire de le faire sur l'iPhone connecté. Comme suite logique, l'application AppStore pour l'Apple Watch est apparue. Tout cela signifie que vous pouvez désormais rechercher et installer des applications directement depuis l'horloge. On ne sait pas dans quelle mesure cela sera utile pour les utilisateurs, car la commodité de cette méthode d'installation est discutable. Un bon bonus est les nouvelles options de conception de l'écran principal de la montre.

Mac OS


Le nom de la nouvelle version est MacOS Catalina en l'honneur de l'île près de Los Angeles. Cette fois, peu de nouveaux produits ont été annoncés. Du mémorable on peut seulement mentionner que l'application iTunes ne sera plus, et ses parties existeront en tant qu'applications distinctes.

Apple Music, Podcasts et TV, qui faisaient partie d'iTunes, ont été introduits avec une certaine ironie. Il sera possible de travailler avec des appareils connectés via le Finder.

iOS 13


Peut-être que les principaux changements ont affecté iOS. De nombreuses mises à jour ont été présentées, attardons-nous sur l'essentiel.

Amélioration des performances: les applications ont commencé à s'exécuter plus rapidement - apparemment, notamment en raison du fait que Swift Runtime est déjà intégré au système. La taille du fichier binaire téléchargé lors de l'installation et de la mise à jour des applications a également légèrement diminué. Je suis heureux qu'Apple continue de travailler à l'optimisation de ses produits, il sera curieux de comparer les valeurs réelles des améliorations annoncées lors de la présentation.

La principale innovation visuelle que beaucoup attendent depuis longtemps est un sujet sombre. Les applications système sont très belles dans un nouveau contexte.

Beaucoup de battage médiatique a surgi autour de la possibilité d'enregistrement / autorisation dans les applications utilisant Apple ID. Ce qui a été présenté lors de la présentation évoque le respect de l'entreprise: enfin, un moyen simple est apparu pour se connecter rapidement à des services tiers sans fournir vos vraies données. Ce sera peut-être un casse-tête pour certaines applications, car Apple est configuré pour rendre ce type d'autorisation obligatoire pour toutes les applications utilisant OAuth.

Par ailleurs, je voudrais mentionner l'amélioration du système de l'application Find My Mac. Maintenant, même si l'ordinateur portable est en mode veille et / ou n'a pas accès au réseau, il peut échanger des messages via Bluetooth avec des appareils Apple à proximité, qui à leur tour enverront des informations sur l'emplacement de l'ordinateur Apple. Une idée simple mais très utile et efficace qui serait très difficile à faire pour une autre entreprise en raison du manque de confiance et d'un protocole de communication unique entre smartphones et ordinateurs.

Il est également impossible de ne pas mentionner que le clavier du système iOS prend désormais en charge la saisie par balayage entre les lettres, ce qui signifie que les fans de cette méthode de saisie n'ont plus besoin d'installer de claviers tiers. Enfin, le bouton bascule du clavier emoji est séparé du bouton bascule de la langue.

Parmi les autres nouveaux produits, nous pouvons mentionner les efforts d'Apple pour rattraper Google Maps, en introduisant un analogue du mode Google Streets dans son application Maps, un tri et un regroupement intelligents des photos, des packs d'autocollants personnalisés basés sur Animoji. Sont également présentées quelques améliorations peu importantes apportées aux applications standard.

Mac pro


Le principal et unique produit non logiciel introduit a été le nouveau Mac Pro. Je ne donnerai pas de sources d'inspiration possibles pour le concepteur de l'apparence de l'appareil: un premier coup d'œil à l'avant de l'unité centrale a provoqué un petit rire involontaire, ce qui est rare pour les produits de cette société.

En général, les concepteurs ont préféré l'aspect pratique de l'élégance. La nouvelle génération de l'ordinateur est très différente de la précédente, qui a été comparée à un autre élément ménager. Il y a eu un certain retour aux sources, et le nouveau Mac Pro est à bien des égards similaire en apparence à sa première génération.



Cependant, à l'intérieur, c'est une toute nouvelle voiture. La puissance possible de l'ordinateur et du moniteur présenté est vraiment impressionnante, mais le prix vous fait penser à la nécessité de ces merveilleux appareils. Apparemment, afin de ne pas effrayer le public, le prix n'a été présenté que pour la configuration la plus élémentaire de l'unité centrale, qui est de 6 000 $. Le nouveau moniteur XDR 6K de 31,6 pouces coûtera au moins 4 999 dollars. Eh bien, ici, vous devez ajouter 999 $ pour le stand. En effet, ne pas s'appuyer contre le mur.

Interface utilisateur rapide


L'annonce la plus importante pour les développeurs. Apple a toujours publié un nouveau cadre déclaratif pour développer l'interface utilisateur sur Swift. Les conséquences d'un changement de concept sont difficilement surestimables: la première impression de la présentation a été comme un symbole de la conférence sur la façade du bâtiment.



Les orateurs n'ont pas cité leurs sources d'inspiration. Habituellement, tout est présenté comme nouveau comme des innovations, en évitant avec tact la mention de solutions similaires. En général, les gens familiers avec d'autres cadres pour une manière déclarative de développer une interface reconnaissent les principes familiers. On devine l'influence des idées de React et peut-être même de Flutter. Mais tout cela reste de la spéculation. Il y a des mentions sur Twitter que les travaux sur ce cadre durent depuis au moins 3 ans, ce qui n'est pas surprenant étant donné les changements.

Un changement dans le concept de développement d'une interface se transforme souvent en un changement dans l'approche du travail avec les données, car une approche dans laquelle au lieu d'assignations explicites une dépendance fonctionnelle entre les valeurs est déclarée est très bien combinée avec une interface déclarative.

Le cadre le plus courant pour implémenter ce concept pour iOS est peut-être RxSwift. Apple a présenté un nouveau cadre alternatif, Combine . À première vue, les classes de ce cadre sont similaires à celles de Java.

Sessions de la WWDC


La partie principale de la conférence est une série de sessions où les employés d'Apple parlent des nouvelles technologies et expliquent comment les utiliser correctement. Chaque session contient une présentation des changements et leur démonstration à l'aide d'un exemple.
Pendant une semaine, le Conventional Center de San Jose se transforme en mini-université pour les développeurs et plus encore. Plus d'une centaine de présentations, des milliers de participants, des discussions actives pendant les pauses.

Ci-dessous, je liste la description de certaines sessions intéressantes, à mon avis, avec la WWDC.

Interface utilisateur rapide


Au cours de ces sessions, ils ont fourni des informations de base sur Swift UI, ont parlé des idées, des objectifs que les développeurs de framework essaient d'atteindre et ont montré des cas d'utilisation simples. Les exemples sont vraiment impressionnants: parfois, on a même l'impression que c'est trop beau pour être vrai.

Avec les nouvelles fonctionnalités du langage, la description de la hiérarchie des éléments devient très expressive et déclarative. À tel point qu'il n'est plus nécessaire que les fichiers XML Xib génèrent des aperçus basés sur du code.

Les principales caractéristiques du cadre sont le type de valeur de l'affichage, la construction automatique de la différence entre les deux états des données affichées et le fait que la hiérarchie des objets décrite par le code ne coïncide pas nécessairement avec la véritable hiérarchie des éléments de vue rendus.

Les objets de type valeur vous permettent de créer et de supprimer rapidement des objets de la mémoire. La façon dont le rendu des mappages et le composant qui génère la différence entre les états sont implémentés n'est pas encore claire: Apple ouvre rarement le code source des outils créés.

Lors des premières sessions, des exemples simples ont été présentés; plus près de la fin, des cas complexes ont été présentés avec un rendu complexe d'une grande quantité de données. Il est très agréable que les éléments non interactifs qui nécessitent une grande quantité de ressources pour le rendu puissent être commutés en mode de rendu via Metal avec une seule ligne, et la productivité augmente considérablement.

Combiner


Ici, les téléspectateurs ont été introduits au nouveau cadre de flux de données. Pour ceux qui ont travaillé avec Rx ou des outils similaires, peu de choses sembleront nouvelles; d'autres développeurs lors de la présentation ont été impressionnés par l'expressivité de la nouvelle approche. La présentation a montré des exemples assez standard de cadres réactifs. Un cas avec un champ de recherche et l'envoi d'une demande au serveur avec le texte saisi est déjà devenu un manuel. En général, la bibliothèque n'est pas si grande et la familiarisation avec la documentation est déjà suffisante.

Combine, comme Swift UI, utilise activement les types de valeur pour de meilleures performances. Cependant, il reste difficile de savoir comment les ressources sont libérées après l'appel de désabonnement. Je recommande l' article de Michael Long sur ce sujet: il décrit les problèmes possibles que vous pouvez rencontrer lors de l'utilisation du framework.

En plus de Combine, Apple a conçu des extensions de composants Foundation pour convertir facilement le flux de données standard en réactif.

Gestionnaire de paquets Swift


Apple a finalement décidé de compléter son outil de dépendance. Maintenant, il est entièrement pris en charge par Xcode 11 , l'intégration avec GitHub et d'autres services populaires pour les référentiels a été mise en œuvre. Les sessions décrivent comment travailler avec SPM dans Xcode (ce qui est assez simple) et comment les conflits de dépendance sont résolus.

Travailler avec des collections


Pour ceux qui ne prévoient pas de passer à Swift UI, Apple a introduit de nouveaux outils pour faciliter le travail avec les listes d'interface utilisateur (Collection Collection, Table View) dans UIKit. Une nouvelle source de données pour les collections sur différentes plates-formes facilitera la mise à jour de l'affichage des listes sans craindre de tomber sur une erreur d'exécution en raison de l'état instable de la liste. À travers de nombreux rapports, l'idée d'une source unique de vérité a été un fil conducteur, et de nouveaux composants implémentent ce concept pour les listes d'interface utilisateur.

La vue Collection introduit une nouvelle vue de mise en page . En utilisant le nouveau concept de groupe, il est possible de décrire une disposition complètement différente des éléments dans une section. Ainsi, au sein d'une même collection, différentes sections peuvent avoir des directions de défilement différentes. À mon avis, c'est l'une des innovations les plus utiles, qui simplifiera grandement la création de listes composites.

Rapide


Dans la nouvelle version de Swift, vous pouvez utiliser les soi-disant wrappers de propriétés. En substance, ce sont des classes génériques qui ajoutent un certain comportement à la propriété d'un objet. Cela semble très abstrait, mais c'est un changement de langage très puissant qui ajoute un analogue d'annotations aux propriétés des objets dans Swift.

Il est également maintenant assez facile de créer votre propre DSL typé. A en juger par le conférencier lors de la session, l'un des développeurs d'Apple a réalisé une DSL pour les balises HTML en quelques heures. La fonction est toujours en version bêta, et peut-être au cours de l'évolution, elle deviendra encore plus intéressante.

Pour éviter les problèmes lors de l'utilisation de protocoles avec un type associé ou une exigence Self, des types opaques sont dérivés. L'ajout du mot-clé some devant le type permet d'utiliser le type de tels protocoles non seulement comme restriction générique.
Toutes ces innovations sont activement utilisées dans SwiftUI, je vous recommande donc de vous familiariser avec les principes des nouvelles fonctionnalités du langage.

Fondation


La Fondation a proposé de belles choses comme un formateur d'heure concernant une certaine date, la localisation du contenu de la collection, dont les éléments, à leur tour, peuvent être affichés dans un format localisé.

Modifications IOS


Il y a beaucoup de changements ici, donc je ne mentionnerai que les principaux.
Si vous prenez en charge l'autorisation dans votre système via des services tiers tels que Google ou Facebook, Apple aura bientôt besoin d'une assistance pour l' autorisation via Apple ID . Dans certains cas, il s'agira peut-être d'un cas spécial d'autorisation, alors ne retardez pas l'intégration de cette fonctionnalité.

Un nouveau type de géodonnées fournies par l' utilisateur est désormais disponible. L'utilisateur a désormais la possibilité de donner accès à son emplacement uniquement pendant la session en cours de l'application. Les transitions de l'état d'autorisation ne sont pas si évidentes, donc la vidéo doit être regardée.

De nombreuses applications utilisent le travail en arrière-plan, donc peut-être une session sur les modifications de l'API pour travailler avec les tâches en arrière-plan sera pertinente. Si brièvement, vous pouvez maintenant reporter la tâche avant que l'utilisateur ne connecte l'appareil à une source d'alimentation. Et oui, maintenant, il ne fonctionnera plus d'utiliser les notifications push VoIP pour réveiller l'application sans utiliser CallKit. Je vous conseille également de vérifier que le serveur enverra les paramètres nécessaires dans le contenu de la notification push avec les valeurs nécessaires mentionnées dans la vidéo.

Le thème sombre qui est disponible dans iOS 13 peut également être un défi pour de nombreuses applications. Si une application tierce ignore le style spécifié par le système, cela peut conduire les utilisateurs à être insatisfaits de l'application dans son ensemble. Par conséquent, il serait bon de conserver un style dynamique dans votre application, si cela est acceptable en termes de conception.

Les ressources telles que les couleurs ou les images peuvent être dynamiques et leur signification spécifique dépend du contexte. Les informations de style sont stockées dans les collections de traits et en fonction de sa valeur actuelle, la même couleur dynamique peut avoir des valeurs différentes. Vous pouvez facilement rendre vos couleurs ou ressources dynamiques via le répertoire des ressources dans Xcode ou par programme en acceptant une collection de traits comme paramètre d'initialisation.

La modification du thème peut être obtenue dans la méthode traitCollectionDidChange, mais gardez à l'esprit que maintenant UIView est immédiatement créé avec la collection donnée. Autrement dit, avant même d'ajouter à la hiérarchie des mappages, UIKit lui-même attribue la future collection la plus probable à l'objet.

Vous pouvez en savoir plus sur le sujet sombre dans cette vidéo .

Apprentissage automatique


La principale innovation - vous pouvez maintenant ajuster les modèles formés pour un utilisateur spécifique, produisant une formation directement sur l'appareil. Pour ce faire, vous devez collecter des données pour la formation en fonction des actions de l'utilisateur et exécuter la formation, qui peut utiliser des adaptateurs graphiques pour les calculs. , .

Apple API , , .

WWDC? Oui!


, , . , .

Apple . , .

, Apple , , . , , , . , WWDC : , , - .

Source: https://habr.com/ru/post/fr456028/


All Articles