SlideShare ist ein Scribd-Unternehmen logo
WWDC 2019 Recap
Mobile Development Karlsruhe
Kein Apple Monitor Stand Käufer
Philipp Wallrich
iOS Developer
2
999 $ + Display
3
4
30 ct + Display
Wenn du überlegen musst, ob du dir
den neuen Mac Pro kaufst, dann bist
du nicht die Zielgruppe
5
Some random podcast dude
• iOS
• iPadOS
• watchOS
• Swift 5.1
• SwiftUI
• Catalyst
• Combine
• Siri Shortcuts
• Create ML
• Sign in with Apple
• Diffable Data Sources
• …?
6
iOS 13
› Neue Standortberechtigung „allow Once“
› Dark mode (Semantic Colors, e.g. .secondaryLabel, .systemRed)
› ColorSet assets
› Fotos Verwaltung smarter
› Swipe Tastatur
› Sign in With Apple
› System Icons (>1500 Icons)
› „Low Data“ mode
› Sprache pro App einstellbar
› …?
WWDC 2019
iOS 13
8
iPadOs
› Stand jetzt: normales iOS+
› Multi Window innerhalb einer App
› Sidecar
› Safari smarte Ansicht zwischen Responsive und Normal
› USB Sticks
› Copy, cut, paste Gesten
› …?
WWDC 2019
iPadOS
10
watchOS
› eigenständige Apps
› App Store auf Watch
› Geräuschpegelmessung usw.
› …?
WWDC 2019
watchOS
12
Swift 5.1
› Module Stability
› Egal mit welcher Compilerversion gebaut
› Abi Stability + Module Stability => Binary Packages
› DSL
› Opaque Return Types,
› No Type Erasue
› keyword „some“
› No more: „Protocol xyz' can only be used as a generic constraint because it has Self
or associated type requirements.“
WWDC 2019
Swift 5.1
14
› Embedded DSL über Function Builder
WWDC2019
Swift 5.1
https://www.swiftbysundell.com/posts/the-swift-51-features-that-power-swiftuis-api15
› Embedded DSL
WWDC2019
Swift 5.1
16
› PropertyWrapper
› Before:
WWDC 2019
Swift 5.1
https://www.avanderlee.com/swift/property-wrappers/17
› PropertyWrapper:
WWDC 2019
Swift 5.1
https://www.avanderlee.com/swift/property-wrappers/18
› PropertyWrapper:
› Usage:
WWDC 2019
Swift 5.1
https://www.avanderlee.com/swift/property-wrappers/19
› Implicit returns für Funktionen z.B:
› func square(_ number: Int) -> Int { number * number }
› Struct Init benutzt automatisch Default Values
› Evtl. Kritisch: Swift UI (DSL) von Apple ohne Community
Beteiligung Entwickelt?
› …?
WWDC 2019
Swift 5.1
https://www.swiftbysundell.com/posts/the-swift-51-features-that-power-swiftuis-api20
Swift UI
› Declarative UI
› Live Preview
› View Protocol
› Keine Vererbung mehr nötig
› Structs
› @State für mutable attribute
› SwiftUI managed die View Updates
› Wenn Änderung werden die benötigten Views upgedated
› Erfolgt über Bindings
› Beispiel
› …?
WWDC 2019
SwiftUI
22
Catalyst
› iPad Apps auch als native macOS Apps
› Gleiche Codebase für alle Plattformen
› Im Idealfall mit einem Click
› Beta 1 kann noch keine SwiftUI
› …?
WWDC 2019
Catalyst
24
Combine
› „The Combine framework provides a declarative Swift
API for processing values over time“
› FRP (RxSwift)
› Publisher und subscriber <> Observable und Observer
› Backpressure
› Subsciber returned wieviel Items er verarbeiten kann
WWDC 2019
Combine
26
› „Interestingly Combine does not depend on Foundation
types, in fact, it lies at a lower level than Foundation.
Talking with Apple Engineers, it really sounds like they
have optimized the hell out of this framework. Quoting an
Apple engineer: “The memory models of RxSwift and
Combine are very different. Combine is really made for
performance.”“
WWDC 2019
Combine vs RxSwift
27
Stream mit 5 Millionen Items:
WWDC 2019
Combine vs RxSwift
https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d8928
Stream mit 5 Millionen Items:
WWDC 2019
Combine vs RxSwift
https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d8929
Siri Shortcuts
› Shortcuts können jetzt auch Parameter verarbeiten
› Siri kann auch weitere Parameter nachfragen
› Beispiel Soup App
WWDC 2019
Siri Shortcuts
31
Create ML
› Create ML App
› Relativ einfach Classifier zu bauen
› Wie gut?
› …?
WWDC 2019
Create ML
33
Sign in with apple
› SSO von Apple
› Datenschutz im Vordergrund
› Email Adresse kann verschleiert werden
› Proxy Email pro Service erzeugbar
› Wenn Service nicht mehr gewünscht, Email löschen
› Pflicht, wenn andere SSO eingebunden sind
› Soll auch für Android und Javascript released werden
› …?
WWDC 2019
Sign in with Apple
35
Diffable Datasources
› Nicht mehr collectionView.reloadData()
› Daten werden über snapshots verwaltet
› CollectionView Updated nur die diffs, die anderen Zellen
werden nicht neu geladen
› …?
WWDC 2019
Diffable Data Sources
37
Vielen Dank
Philipp Wallrich
pwallrich@inovex.de

Weitere ähnliche Inhalte

Ähnlich wie WWDC 2019 Recap

2006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.02006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.0
Daniel Fisher
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
André Krämer
 
Spiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDKSpiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDK
IndieOutpost
 
Webinar - ABAP Development Tools
Webinar - ABAP Development ToolsWebinar - ABAP Development Tools
Webinar - ABAP Development Tools
Cadaxo GmbH
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
Digicomp Academy AG
 
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
Christian Heindel
 
iPad im Businesseinsatz
iPad im BusinesseinsatziPad im Businesseinsatz
iPad im BusinesseinsatzRalph Belfiore
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
LeanIX GmbH
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdf
DNUG e.V.
 
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDKFMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
Verein FM Konferenz
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
Markus Eiglsperger
 
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus Schneider
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus SchneiderFMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus Schneider
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus SchneiderVerein FM Konferenz
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009
greenrobot
 
Lohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder SoftwareLohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder Software
Christian Güdemann
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
OPEN KNOWLEDGE GmbH
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft AG
 
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert KaiserFMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
Verein FM Konferenz
 
Microservice-Architektur in der Praxis
Microservice-Architektur in der PraxisMicroservice-Architektur in der Praxis
Microservice-Architektur in der Praxis
gedoplan
 
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrierenDNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
Andreas Rosen
 
20150611 track4 2_ae21_salesforce and ibm software
20150611 track4 2_ae21_salesforce and ibm software20150611 track4 2_ae21_salesforce and ibm software
20150611 track4 2_ae21_salesforce and ibm software
DNUG e.V.
 

Ähnlich wie WWDC 2019 Recap (20)

2006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.02006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.0
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
Spiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDKSpiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDK
 
Webinar - ABAP Development Tools
Webinar - ABAP Development ToolsWebinar - ABAP Development Tools
Webinar - ABAP Development Tools
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
 
iPad im Businesseinsatz
iPad im BusinesseinsatziPad im Businesseinsatz
iPad im Businesseinsatz
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdf
 
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDKFMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
 
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus Schneider
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus SchneiderFMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus Schneider
FMK 2013, Eigene Apps für iOS mit FileMaker Go, Markus Schneider
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009
 
Lohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder SoftwareLohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder Software
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus Entwicklersicht
 
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert KaiserFMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
 
Microservice-Architektur in der Praxis
Microservice-Architektur in der PraxisMicroservice-Architektur in der Praxis
Microservice-Architektur in der Praxis
 
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrierenDNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
DNUG - Andreas Rosen - IBM Software und Salesforce sinnvoll integrieren
 
20150611 track4 2_ae21_salesforce and ibm software
20150611 track4 2_ae21_salesforce and ibm software20150611 track4 2_ae21_salesforce and ibm software
20150611 track4 2_ae21_salesforce and ibm software
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
inovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
inovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
inovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
inovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
inovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
inovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
inovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
inovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
inovex GmbH
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
inovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
inovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
inovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
inovex GmbH
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
inovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
inovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
inovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
inovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
inovex GmbH
 
Remote First – Der Arbeitsplatz in der Cloud
Remote First – Der Arbeitsplatz in der CloudRemote First – Der Arbeitsplatz in der Cloud
Remote First – Der Arbeitsplatz in der Cloud
inovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 
Remote First – Der Arbeitsplatz in der Cloud
Remote First – Der Arbeitsplatz in der CloudRemote First – Der Arbeitsplatz in der Cloud
Remote First – Der Arbeitsplatz in der Cloud
 

WWDC 2019 Recap

  • 1. WWDC 2019 Recap Mobile Development Karlsruhe
  • 2. Kein Apple Monitor Stand Käufer Philipp Wallrich iOS Developer 2
  • 3. 999 $ + Display 3
  • 4. 4 30 ct + Display
  • 5. Wenn du überlegen musst, ob du dir den neuen Mac Pro kaufst, dann bist du nicht die Zielgruppe 5 Some random podcast dude
  • 6. • iOS • iPadOS • watchOS • Swift 5.1 • SwiftUI • Catalyst • Combine • Siri Shortcuts • Create ML • Sign in with Apple • Diffable Data Sources • …? 6
  • 8. › Neue Standortberechtigung „allow Once“ › Dark mode (Semantic Colors, e.g. .secondaryLabel, .systemRed) › ColorSet assets › Fotos Verwaltung smarter › Swipe Tastatur › Sign in With Apple › System Icons (>1500 Icons) › „Low Data“ mode › Sprache pro App einstellbar › …? WWDC 2019 iOS 13 8
  • 10. › Stand jetzt: normales iOS+ › Multi Window innerhalb einer App › Sidecar › Safari smarte Ansicht zwischen Responsive und Normal › USB Sticks › Copy, cut, paste Gesten › …? WWDC 2019 iPadOS 10
  • 12. › eigenständige Apps › App Store auf Watch › Geräuschpegelmessung usw. › …? WWDC 2019 watchOS 12
  • 14. › Module Stability › Egal mit welcher Compilerversion gebaut › Abi Stability + Module Stability => Binary Packages › DSL › Opaque Return Types, › No Type Erasue › keyword „some“ › No more: „Protocol xyz' can only be used as a generic constraint because it has Self or associated type requirements.“ WWDC 2019 Swift 5.1 14
  • 15. › Embedded DSL über Function Builder WWDC2019 Swift 5.1 https://www.swiftbysundell.com/posts/the-swift-51-features-that-power-swiftuis-api15
  • 17. › PropertyWrapper › Before: WWDC 2019 Swift 5.1 https://www.avanderlee.com/swift/property-wrappers/17
  • 18. › PropertyWrapper: WWDC 2019 Swift 5.1 https://www.avanderlee.com/swift/property-wrappers/18
  • 19. › PropertyWrapper: › Usage: WWDC 2019 Swift 5.1 https://www.avanderlee.com/swift/property-wrappers/19
  • 20. › Implicit returns für Funktionen z.B: › func square(_ number: Int) -> Int { number * number } › Struct Init benutzt automatisch Default Values › Evtl. Kritisch: Swift UI (DSL) von Apple ohne Community Beteiligung Entwickelt? › …? WWDC 2019 Swift 5.1 https://www.swiftbysundell.com/posts/the-swift-51-features-that-power-swiftuis-api20
  • 22. › Declarative UI › Live Preview › View Protocol › Keine Vererbung mehr nötig › Structs › @State für mutable attribute › SwiftUI managed die View Updates › Wenn Änderung werden die benötigten Views upgedated › Erfolgt über Bindings › Beispiel › …? WWDC 2019 SwiftUI 22
  • 24. › iPad Apps auch als native macOS Apps › Gleiche Codebase für alle Plattformen › Im Idealfall mit einem Click › Beta 1 kann noch keine SwiftUI › …? WWDC 2019 Catalyst 24
  • 26. › „The Combine framework provides a declarative Swift API for processing values over time“ › FRP (RxSwift) › Publisher und subscriber <> Observable und Observer › Backpressure › Subsciber returned wieviel Items er verarbeiten kann WWDC 2019 Combine 26
  • 27. › „Interestingly Combine does not depend on Foundation types, in fact, it lies at a lower level than Foundation. Talking with Apple Engineers, it really sounds like they have optimized the hell out of this framework. Quoting an Apple engineer: “The memory models of RxSwift and Combine are very different. Combine is really made for performance.”“ WWDC 2019 Combine vs RxSwift 27
  • 28. Stream mit 5 Millionen Items: WWDC 2019 Combine vs RxSwift https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d8928
  • 29. Stream mit 5 Millionen Items: WWDC 2019 Combine vs RxSwift https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d8929
  • 31. › Shortcuts können jetzt auch Parameter verarbeiten › Siri kann auch weitere Parameter nachfragen › Beispiel Soup App WWDC 2019 Siri Shortcuts 31
  • 33. › Create ML App › Relativ einfach Classifier zu bauen › Wie gut? › …? WWDC 2019 Create ML 33
  • 34. Sign in with apple
  • 35. › SSO von Apple › Datenschutz im Vordergrund › Email Adresse kann verschleiert werden › Proxy Email pro Service erzeugbar › Wenn Service nicht mehr gewünscht, Email löschen › Pflicht, wenn andere SSO eingebunden sind › Soll auch für Android und Javascript released werden › …? WWDC 2019 Sign in with Apple 35
  • 37. › Nicht mehr collectionView.reloadData() › Daten werden über snapshots verwaltet › CollectionView Updated nur die diffs, die anderen Zellen werden nicht neu geladen › …? WWDC 2019 Diffable Data Sources 37