Dub-Dub 2019: WWDC-Nachrichten und meine Eindrücke

Hallo! Mein Name ist Azat Zulkarnyaev, ich entwickle iOS-Anwendungen bei Badoo. Traditionell verbringen wir jedes Jahr eine Woche mit Kollegen bei WWDC. In dem Artikel teile ich meine Eindrücke von der Konferenz: Unter dem Schnitt nicht nur wichtige Updates und ein Rückblick auf die Sitzungen, sondern auch ein paar persönliche Emotionen aus einer glücklichen Menge, die „Dub-Dub! DC! " und träumt davon, Tim Cook die Hand zu geben.



Ein bisschen über die Konferenz


Jedes Jahr veranstaltet Apple eine WWDC-Konferenz für Entwickler für seine Plattformen und nicht nur für sie. Traditionell sorgen vom Unternehmen organisierte Veranstaltungen für großes Aufsehen. Die wichtigsten Innovationen, die sich hauptsächlich auf Softwareprodukte beziehen, werden am ersten Tag der Konferenz bekannt gegeben. Im Folgenden finden Sie Sitzungen von Apple-Mitarbeitern, die Drittentwicklern helfen sollen, diese Innovationen anzuwenden. In dem Artikel werde ich versuchen, nicht nur über die technischen Neuerungen der Konferenz, sondern auch über die allgemeinen Eindrücke davon zu berichten.

Impressionen


Ich denke, jeder Entwickler für die Apple-Plattform möchte mindestens einmal zur WWDC. Und die Angelegenheit ist nicht nur in Laborsitzungen, in denen Sie persönlich über Ihre Probleme und Wünsche sprechen können, sondern auch im Zeichen der Veranstaltung.

Die Konferenz beginnt normalerweise nicht mit der ersten Präsentation, die als Keynote bezeichnet wird, sondern mit der Registrierung bzw. der Warteschlange dafür. Im Allgemeinen sind Warteschlangen ein wesentlicher Bestandteil der Konferenz, was logisch ist, da es Tausende von Teilnehmern gibt und alle Veranstaltungen an einem Ort stattfinden. Die Position am Anfang der Warteschlange bietet manchmal angenehme Vorteile. Zum Beispiel begrüßte Tim Cook persönlich die ersten Personen, die sich registriert hatten.

Nach der Registrierung erhält der Teilnehmer eine Firmenjacke und Abzeichen mit den Symbolen der Konferenz oder Firma.



Die Idee, eine Jacke auszugeben, ist einfach hervorragend, da viele Teilnehmer, die vom sonnigen Wetter getäuscht werden, ohne warme Kleidung nach San Jose kommen. Aber das Wetter in Kalifornien ist wechselhaft und abends wird es kalt genug. Darüber hinaus kühlt die Klimaanlage die Luft in Gebäuden gnadenlos.

Abzeichen werden sofort zu einem Ziel für Sammler: Menschen versuchen, ihr Set mit den gewünschten Abzeichen zu ergänzen, und sie werden ständig gejagt.

Keynote: Neu


Die Warteschlangen bei Keynote beginnen die Teilnehmer lange bevor sich die Türen öffnen. Tatsache ist, dass diese Präsentation wichtige neue Produkte dieses Jahres präsentiert: Es ist eher nicht für Entwickler, sondern für einen viel größeren Kreis von Menschen, die die Sendung sehen. Die Spitze des Unternehmens erscheint auf der Bühne, und im Allgemeinen ist dies eine der bedeutendsten Präsentationen in der Welt der mobilen Entwicklung.

Einer meiner Kollegen entschied sich diesmal für die erste Reihe und nahm die Linie 10 Stunden vor der Eröffnung. Aber leider gab es dieses Jahr ein Problem: Die ersten Leute wurden von einem anderen Block der Linie hereingelassen, und die besten Plätze wurden bereits vergeben. Im Allgemeinen garantieren die ersten Plätze in der Warteschlange nicht die besten Plätze in der Halle.

Im Allgemeinen ähnelt die Atmosphäre der Veranstaltung einem Feiertag: Die Organisatoren gratulieren dem Teilnehmer zu seiner Ankunft und singen „Dub-Dub! DC! “, Apple-Fans suchen nach neuen Abzeichen, alles ist ziemlich dynamisch und interessant. Es ist schön zu erkennen, dass die wichtigsten Dinge in der iOS / MacOS-Entwicklung hier und jetzt geschehen, dh der Eindruck, ein Video zu Hause oder bei der Arbeit zu sehen, unterscheidet sich stark von der tatsächlichen Präsenz in der Halle. Es ist sehr inspirierend, alle Innovationen auszuprobieren und in Ihre Produkte zu integrieren. Das kurze Brainstorming mit Kollegen von Badoo auf der Konferenz wurde zu einer großen Liste von Dingen, die wir in unseren Anwendungen implementieren möchten.

Wie immer, lange vor der Konferenz, tauchten Gerüchte über zukünftige Updates auf. In diesem Jahr erwartete WWDC die Ankündigung einer neuen Version von iOS, Tools für die plattformübergreifende Entwicklung für iOS und MacOS, Sunset iTunes, den neuen Mac Pro. Es gab sogar Spekulationen über Augmented-Reality-Brillen.

Viele dieser Gerüchte wurden bestätigt. Aber das Wichtigste zuerst.

Apple TV


Zuerst über tvOS. UI tvOS wurde stark überarbeitet.

Apple bewirbt aktiv seine Fernsehplattform TV + und als Ergebnis haben wir den Serien-Trailer auf der WWDC gesehen. Trotz der unternommenen Anstrengungen bleibt Apple hier in der Rolle des Aufholens. Plattformen wie Netflix sind sowohl in Bezug auf UX als auch in Bezug auf den Inhalt immer noch besser.

Die vielleicht angenehmste Innovation für die meisten AppleTV ist die Unterstützung der Xbox- und PlayStation-Joysticks.

iPadOS


Optisch unterscheidet es sich nicht wesentlich von iOS. Das Ziel ist vielleicht, das iPad näher an den Mac heranzuführen. Dadurch können Entwickler iPad-Anwendungen problemlos auf MacOS portieren. Apples Tablets sind funktionsfähiger geworden: Jetzt können sie beispielsweise als zweiter Monitor verwendet und ein USB-Laufwerk an sie angeschlossen werden. Letzteres ist aufgrund der aktualisierten Dateianwendung für die Arbeit mit dem Dateisystem möglich.

Safari sollte jetzt angemessener funktionieren und das Layout für die Desktop-Version der Site anstelle von Mobilgeräten bereitstellen.

Die Funktion zum Teilen des Bildschirms in Teile wurde verbessert. Jetzt können für jede Anwendung mehrere Fenster gleichzeitig auf dem Bildschirm angezeigt werden. Sie können beispielsweise gleichzeitig mit zwei oder mehr Dokumenten in einer einzigen Anwendung arbeiten.



Betriebssystem ansehen


Um die Anwendung auf der Apple Watch zu installieren, ist dies nicht auf dem angeschlossenen iPhone erforderlich. Als logische Fortsetzung erschien die AppStore-Anwendung für die Apple Watch. All dies bedeutet, dass Sie jetzt Anwendungen direkt von der Uhr aus suchen und installieren können. Es ist unklar, wie nützlich dies für Benutzer sein wird, da die Bequemlichkeit dieser Installationsmethode fraglich ist. Ein schöner Bonus sind die neuen Designoptionen für den Hauptbildschirm der Uhr.

Mac OS


Der Name der neuen Version ist MacOS Catalina zu Ehren der Insel in der Nähe von Los Angeles. Diesmal wurden nicht so viele neue Produkte angekündigt. Aus dem denkwürdigen kann man nur erwähnen, dass die iTunes-Anwendung nicht mehr sein wird und ihre Teile als separate Anwendungen existieren werden.

Apple Music, Podcasts und TV, die früher Teil von iTunes waren, wurden mit einiger Ironie eingeführt. Über den Finder kann mit angeschlossenen Geräten gearbeitet werden.

iOS 13


Möglicherweise haben sich die wichtigsten Änderungen auf iOS ausgewirkt. Es wurden viele Updates vorgestellt. Lassen Sie uns auf die Hauptsache eingehen.

Leistungsverbesserung: Anwendungen wurden schneller ausgeführt - anscheinend nicht zuletzt aufgrund der Tatsache, dass Swift Runtime bereits in das System eingenäht ist. Die Größe der Binärdatei, die während der Installation und Aktualisierung von Anwendungen heruntergeladen wurde, hat sich ebenfalls geringfügig verringert. Ich bin froh, dass Apple weiterhin an der Optimierung seiner Produkte arbeitet. Es wird neugierig sein, die tatsächlichen Werte der auf der Präsentation angekündigten Verbesserungen zu vergleichen.

Die wichtigste visuelle Innovation, auf die viele lange gewartet haben, ist ein dunkles Thema. Systemanwendungen sehen in einem neuen Kontext sehr gut aus.

Es ist viel Hype um die Möglichkeit der Registrierung / Autorisierung in Anwendungen mit Apple Id aufgetreten. Was bei der Präsentation vorgestellt wurde, ruft Respekt für das Unternehmen hervor: Schließlich hat sich eine einfache Möglichkeit herausgestellt, sich schnell bei Diensten von Drittanbietern anzumelden, ohne Ihre realen Daten bereitzustellen. Möglicherweise bereitet dies einigen Anwendungen Kopfschmerzen, da Apple so konfiguriert ist, dass diese Art der Autorisierung für alle Anwendungen, die OAuth verwenden, obligatorisch ist.

Separat möchte ich die Verbesserung des Systems der Find My Mac-Anwendung erwähnen. Selbst wenn sich der Laptop im Ruhemodus befindet und / oder keinen Netzwerkzugriff hat, kann er jetzt Nachrichten über Bluetooth mit Apple-Geräten in der Nähe austauschen, die wiederum Informationen über den Standort des Apple-Computers senden. Eine einfache, aber sehr nützliche und effektive Idee, die für ein anderes Unternehmen aufgrund des Mangels an Vertrauen und eines einzigen Kommunikationsprotokolls zwischen Smartphones und Computern sehr schwierig zu realisieren wäre.

Es ist auch nicht zu erwähnen, dass die iOS-Systemtastatur weiterhin das Streichen zwischen Buchstaben unterstützt, was bedeutet, dass Fans dieser Schreibmethode keine Tastaturen von Drittanbietern mehr installieren müssen. Schließlich wird die Emoji-Tastatur-Umschalttaste von der Sprachumschalttaste getrennt.

Von den anderen neuen Produkten können wir die Bemühungen von Apple erwähnen, mit Google Maps Schritt zu halten, indem wir ein Analogon zum Google Streets-Modus in die Maps-Anwendung einführen, Fotos intelligent sortieren und gruppieren sowie benutzerdefinierte Aufkleberpakete basierend auf Animoji. Außerdem werden einige nicht sehr signifikante Verbesserungen an Standardanwendungen vorgestellt.

Mac Pro


Das wichtigste und einzige Nicht-Software-Produkt, das eingeführt wurde, war der neue Mac Pro. Ich werde dem Designer keine möglichen Inspirationsquellen für das Erscheinungsbild des Geräts geben: Ein erster Blick auf die Vorderseite der Systemeinheit verursachte ein unwillkürliches Kichern, was bei den Produkten dieser Firma selten vorkommt.

Im Allgemeinen bevorzugten Designer die Praktikabilität von Eleganz. Die neue Generation des Computers unterscheidet sich stark von der vorherigen, die mit einem anderen Haushaltsgegenstand verglichen wurde. Die Wurzeln sind zurückgekehrt, und der neue Mac Pro ähnelt in vielerlei Hinsicht dem Aussehen seiner ersten Generation.



Im Inneren befindet sich jedoch ein völlig neues Auto. Die mögliche Leistung des Computers und des vorgestellten Monitors sind wirklich beeindruckend, aber der Preis lässt Sie über die Notwendigkeit solch wunderbarer Geräte nachdenken. Um das Publikum nicht zu erschrecken, wurde der Preis offenbar nur für die grundlegendste Konfiguration der Systemeinheit angegeben, nämlich 6.000 US-Dollar. Der neue 31,6-Zoll-XDR-6K-Monitor kostet mindestens 4.999 US-Dollar. Nun, hier müssen Sie 999 $ für den Stand hinzufügen. In der Tat, nicht an die Wand zu lehnen.

Schnelle UI


Die wichtigste Ankündigung für Entwickler. Apple hat immer noch ein neues deklaratives Framework für die Entwicklung der Benutzeroberfläche auf Swift veröffentlicht. Die Folgen einer Änderung des Konzepts sind kaum zu überschätzen: Der erste Eindruck der Präsentation war wie ein Symbol der Konferenz an der Fassade des Gebäudes.



Die Redner nannten ihre Inspirationsquellen nicht. Normalerweise wird alles so neu wie Innovationen präsentiert, wobei die Erwähnung ähnlicher Lösungen taktvoll vermieden wird. Im Allgemeinen erkannten Personen, die mit anderen Frameworks für eine deklarative Methode zur Entwicklung einer Schnittstelle vertraut sind, vertraute Prinzipien. Der Einfluss der Ideen von React und vielleicht sogar Flutter wird vermutet. Aber das alles bleibt Spekulation. Es gibt Erwähnungen auf Twitter, dass die Arbeit an diesem Framework seit mindestens 3 Jahren läuft, was angesichts der Veränderungen nicht überraschend ist.

Eine Änderung des Konzepts der Entwicklung einer Schnittstelle führt häufig zu einer Änderung des Ansatzes für die Arbeit mit Daten, da ein Ansatz, bei dem anstelle expliziter Zuweisungen eine funktionale Abhängigkeit zwischen Werten deklariert wird, sehr gut mit einer deklarativen Schnittstelle kombiniert wird.

Das vielleicht häufigste Framework für die Implementierung dieses Konzepts für iOS ist RxSwift. Apple hat mit Combine ein alternatives, neues Framework eingeführt. Auf den ersten Blick ähneln die Klassen in diesem Framework denen in Java.

WWDC-Sitzungen


Der Hauptteil der Konferenz besteht aus einer Reihe von Sitzungen, in denen Apple-Mitarbeiter über neue Technologien sprechen und deren korrekte Verwendung erläutern. Jede Sitzung enthält eine Präsentation der Änderungen und deren Demonstration anhand eines Beispiels.
Für eine Woche verwandelt sich das Conventional Center in San Jose in eine Mini-Universität für Entwickler und mehr. Mehr als hundert Präsentationen, Tausende von Teilnehmern, aktive Diskussionen in den Pausen.

Im Folgenden liste ich die Beschreibung einiger meiner Meinung nach interessanter Sitzungen mit WWDC auf.

Schnelle UI


In diesen Sitzungen lieferten sie grundlegende Informationen zur Swift-Benutzeroberfläche, sprachen über Ideen, Ziele, die Framework-Entwickler erreichen möchten, und zeigten einfache Anwendungsfälle. Die Beispiele sind wirklich beeindruckend: Manchmal fühlt es sich sogar so an, als wäre es zu schön, um wahr zu sein.

Mit den neuen Funktionen der Sprache wird die Beschreibung der Hierarchie der Elemente sehr ausdrucksstark und deklarativ. So sehr, dass XML Xib-Dateien nicht mehr benötigt werden, um codebasierte Vorschauen zu generieren.

Die Hauptmerkmale des Frameworks sind der Wertetyp der Anzeige, die automatische Konstruktion der Differenz zwischen den beiden Zuständen der angezeigten Daten und die Tatsache, dass die durch den Code beschriebene Hierarchie der Objekte nicht unbedingt mit der tatsächlichen Hierarchie der gerenderten Ansichtselemente übereinstimmt.

Mit Objekten vom Typ Wert können Sie schnell Objekte erstellen und aus dem Speicher löschen. Wie der Renderer von Zuordnungen und die Komponente, die den Unterschied zwischen Zuständen erzeugt, implementiert sind, ist noch nicht klar: Apple öffnet selten den Quellcode der erstellten Tools.

In den ersten Sitzungen wurden einfache Beispiele vorgestellt, und am Ende wurden komplexe Fälle mit komplexer Wiedergabe einer großen Datenmenge gezeigt. Es ist sehr erfreulich, dass nicht interaktive Elemente, die eine große Menge an Ressourcen für das Rendern erfordern, über Metal mit einer Zeile in den Rendering-Modus geschaltet werden können und die Produktivität erheblich steigt.

Kombinieren


Hier wurden die Betrachter in das neue Datenfluss-Framework eingeführt. Für diejenigen, die mit Rx oder ähnlichen Tools gearbeitet haben, wird wenig neu erscheinen; Andere Entwickler der Präsentation waren von der Ausdruckskraft des neuen Ansatzes beeindruckt. Die Präsentation zeigte Standardbeispiele für reaktive Gerüste. Ein Fall mit einem Suchfeld und dem Senden einer Anfrage an den Server mit dem eingegebenen Text ist bereits zu einem Lehrbuch geworden. Im Allgemeinen ist die Bibliothek nicht so groß, und es reicht bereits aus, sich mit der Dokumentation vertraut zu machen.

Combine verwendet wie Swift UI aktiv Werttypen für eine höhere Leistung. Es bleibt jedoch unklar, wie Ressourcen nach dem Abmelden freigegeben werden. Ich empfehle den Artikel von Michael Long zu diesem Thema: Er beschreibt die möglichen Probleme, die bei der Verwendung des Frameworks auftreten können.

Zusätzlich zu Combine hat Apple Foundation-Komponentenerweiterungen vorgenommen, um den Standarddatenfluss bequem in reaktive Daten umzuwandeln.

Schneller Paketmanager


Apple hat beschlossen, sein Abhängigkeitstool endgültig zu vervollständigen. Jetzt wird es vollständig von Xcode 11 unterstützt. Die Integration mit GitHub und anderen beliebten Diensten für Repositorys wurde implementiert. In den Sitzungen wird beschrieben, wie Sie mit SPM in Xcode arbeiten (was ziemlich einfach ist) und wie Abhängigkeitskonflikte gelöst werden.

Arbeiten Sie mit Sammlungen


Für diejenigen, die nicht auf Swift UI umsteigen möchten, hat Apple neue Tools eingeführt , um die Arbeit mit UI-Listen (Sammlungsansicht, Tabellenansicht) in UIKit zu erleichtern. Eine neue Datenquelle für Sammlungen auf verschiedenen Plattformen erleichtert die Aktualisierung der Anzeige von Listen, ohne befürchten zu müssen, dass aufgrund des instabilen Status der Liste ein Laufzeitfehler auftritt. In vielen Berichten war die Idee einer einzigen Quelle der Wahrheit ein roter Faden, und neue Komponenten implementieren dieses Konzept für UI-Listen.

Die Sammlungsansicht führt eine neue Layoutansicht ein . Mit dem neuen Konzept einer Gruppe ist es möglich, eine völlig andere Anordnung von Elementen innerhalb eines Abschnitts zu beschreiben. Daher können innerhalb derselben Sammlung unterschiedliche Abschnitte unterschiedliche Bildlaufrichtungen haben. Meiner Meinung nach ist dies eine der nützlichsten Neuerungen, die die Erstellung zusammengesetzter Listen erheblich vereinfachen wird.

Schnell


In der neuen Version von Swift können Sie die sogenannten Property Wrapper ausführen. Im Wesentlichen handelt es sich hierbei um generische Klassen, die der Eigenschaft eines Objekts ein gewisses Verhalten hinzufügen. Es klingt sehr abstrakt, aber es ist eine sehr mächtige Sprachänderung, die den Eigenschaften von Objekten in Swift ein Analogon von Anmerkungen hinzufügt.

Es ist jetzt auch einfach genug, Ihr eigenes getipptes DSL zu erstellen. Dem Sprecher der Sitzung nach zu urteilen, hat einer der Entwickler von Apple in wenigen Stunden ein DSL für HTML-Tags erstellt. Die Funktion befindet sich noch in der Beta-Phase und wird möglicherweise während der Evolution noch interessanter.

Um Probleme bei der Verwendung von Protokollen mit einem zugeordneten Typ oder einer Selbstanforderung zu vermeiden, werden undurchsichtige Typen abgeleitet. Wenn Sie das Schlüsselwort einige vor dem Typ hinzufügen, können Sie den Typ solcher Protokolle nicht nur als allgemeine Einschränkung verwenden.
All diese Innovationen werden in SwiftUI aktiv genutzt. Ich empfehle daher, dass Sie sich mit den Prinzipien der neuen Sprachfunktionen vertraut machen.

Stiftung


Die Stiftung hat sich nette Dinge ausgedacht, wie einen Zeitformatierer bezüglich eines bestimmten Datums, die Lokalisierung des Inhalts der Sammlung, dessen Elemente wiederum in einem lokalisierten Format angezeigt werden können.

IOS ändert sich


Es gibt hier viele Änderungen, daher werde ich nur die wichtigsten erwähnen.
Wenn Sie die Autorisierung in Ihrem System über Dienste von Drittanbietern wie Google oder Facebook unterstützen, wird Apple in Kürze Unterstützung für die Autorisierung über Apple ID benötigen. In einigen Fällen handelt es sich möglicherweise um einen Sonderfall der Autorisierung. Verzögern Sie daher nicht die Integration dieser Funktionalität.

Eine neue Art von vom Benutzer bereitgestellten Geodaten ist jetzt verfügbar. Jetzt hat der Benutzer die Möglichkeit, nur während der aktuellen Sitzung der Anwendung Zugriff auf seinen Standort zu gewähren. Übergänge des Autorisierungsstatus sind nicht so offensichtlich, daher muss das Video angesehen werden.

Viele Anwendungen verwenden die Arbeit im Hintergrund. Daher ist möglicherweise eine Sitzung über Änderungen in der API für die Arbeit mit Hintergrundaufgaben relevant. Wenn dies kurz ist, können Sie die Aufgabe jetzt verschieben, bevor der Benutzer das Gerät an eine Stromquelle anschließt. Und ja, jetzt funktioniert es nicht mehr, VoIP-Push-Benachrichtigungen zu verwenden, um die Anwendung ohne Verwendung von CallKit zu aktivieren. Ich empfehle Ihnen auch zu überprüfen, ob der Server die erforderlichen Parameter im Inhalt der Push-Benachrichtigung mit den im Video genannten erforderlichen Werten sendet.

Das dunkle Thema, das in iOS 13 verfügbar ist, kann auch für viele Anwendungen eine Herausforderung sein. Wenn eine Drittanbieteranwendung den vom System angegebenen Stil ignoriert, kann dies dazu führen, dass Benutzer mit der gesamten Anwendung unzufrieden sind. Daher wäre es schön, einen dynamischen Stil in Ihrer Anwendung beizubehalten, wenn dies im Hinblick auf das Design akzeptabel ist.

Ressourcen wie Farben oder Bilder können dynamisch sein und ihre spezifische Bedeutung hängt vom Kontext ab. Stilinformationen werden in Traits Collections gespeichert und basierend auf ihrem aktuellen Wert kann dieselbe dynamische Farbe unterschiedliche Werte haben. Sie können Ihre Farben oder Ressourcen einfach über das Asset-Verzeichnis in Xcode oder programmgesteuert dynamisch gestalten, indem Sie eine Trait-Sammlung als Initialisierungsparameter akzeptieren.

Das Ändern des Themas kann in der Methode traitCollectionDidChange abgerufen werden. Beachten Sie jedoch, dass die UIView jetzt sofort mit der angegebenen Sammlung erstellt wird. Das heißt, UIKit selbst weist dem Objekt selbst vor dem Hinzufügen zur Zuordnungshierarchie die wahrscheinlichste zukünftige Sammlung zu.

In diesem Video erfahren Sie mehr über das dunkle Thema.

Maschinelles Lernen


Die Hauptinnovation : Jetzt können Sie die trainierten Modelle für einen bestimmten Benutzer anpassen und Schulungen direkt auf dem Gerät erstellen. Dazu müssen Sie Daten für Schulungen basierend auf Benutzeraktionen sammeln und Schulungen ausführen, bei denen Grafikadapter für Berechnungen verwendet werden können. Bei neuronalen Netzen ist es besser, dies im Hintergrund und beim Laden des Geräts zu tun.

Apple API , , .

WWDC? Ja!


, , . , .

Apple . , .

, Apple , , . , , , . , WWDC Studentenprogramm : Es ist nicht so schwierig, wie es scheint, und in diesem Jahr war der Anteil der Studenten ziemlich groß.

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


All Articles