# ⠀
# ⠀
# ⠀
# ⠀⠀
Daniel Saidi · [@danielsaidi](https://twitter.com/danielsaidi)
## In this talk
* History
* 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
* 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
* A more accessible alternative
* General-purpose language
* Apps, command-line, backend
* macOS, Windows, Linux
## 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
## UIKit 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 what to do
* Great data bindings
* Requires iOS 13
## SwiftUI Conclusions
* Just 1 year old
* Many bugs
* Many breaking changes
* Many missing features
* ...but it's the future
## Tools
* SwiftLint
* SwiftGen
* Swift Package Manager
## Wrap-up
* 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
## Reach out
* [@danielsaidi](https://twitter.com/danielsaidi)
* [danielsaidi.com](https://danielsaidi.com)
* [github.com/danielsaidi](https://github.com/danielsaidi)