# ⠀
# ⠀
# ⠀
# ⠀⠀
Daniel Saidi · [@danielsaidi](https://twitter.com/danielsaidi)
# In this talk
History of Swift
Syntax
UIKit
SwiftUI
Tools
# Daniel Saidi
iOS since 2011
Swift since 2014
iOS Lead at BookBeat
iOS, ipadOS, watchOS, CarPlay etc.
Mobile architecture, API design, UI/UX
Accessibility
# Before Swift
Objective-C
![Objective-C](/assets/talks/200528/objc.png "Objective-C")
# Objective-C
Introduced in early 80s
Message-based layer on top of C
Main language at NeXT for NeXTSTEP
Later used by Apple for macOS/iOS
Still heavily used
# Swift
Introduced by Apple in 2014
General-purpose language
Apps, command-line, backend
macOS, Windows, Linux
More accessible
# Swift
## A Great First Language
Strong typing, clean syntax
Less true for each version
CLI tools
iPad app - Swift Playgrounds
Xcode Playgrounds
# Swift Syntax
Properties & Types
Functions
Protocols
Extensions
...and more
# UIKit
UI framework for iOS/ipadOS
AppKit for macOS
WatchKit for watchOS
UIKit for tvOS ¯\\\_(ツ)\_/¯
Imperative frameworks
# Conclusions
A lot of code
Hard to learn
BUT very powerful
Powers all iOS apps
Industry standard
# SwiftUI
Introduced in 2019
UI framework for iOS/ipadOS
...and macOS
...and watchOS
...and tvOS
# SwiftUI
Declarative framework
Tell it want you want...
...not how you want it done
Great data bindings
Requires iOS 13
# Conclusions
Just 1 year old
Many bugs
Many breaking changes
Many missing features
...but it's the future
# Tools
SwiftLint
SwiftGen
Swift Package Manager
# Conclusion
Swift is fun and pretty easy
...but has some complicated parts
UIKit is the past and present
SwiftUI is the future
Apple development has never been so fun
# Thank you!
## Questions?
Daniel Saidi · [@danielsaidi](https://twitter.com/danielsaidi)