# ⠀ # ⠀ # ⠀ # ⠀⠀ #### Daniel Saidi · @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](/assets/talks/2020-05-28-devsum/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 * 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
# Let's Code
## UIKit * UI framework for iOS/ipadOS * AppKit for macOS * WatchKit for watchOS * UIKit for tvOS ¯\\\_(ツ)\_/¯ * Imperative frameworks
# Let's Code
## 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
# Let's Code
## 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 * danielsaidi.com * github.com/danielsaidi
# Questions?