I left Omaha airport to in Denver on Saturday night. I took the rail car from the Denver airport to downtown Union Station.
I then walked to the Grand Hyatt Denver Hotel. Which was about 20 minutes.
Pre-Conference Lab
Generic Swift. It isn’t Supposed to Hurt
Taught by Rob Napier
http://robnapier.net/start-with-a-protocol
https://github.com/rnapier/generics
This was a live coding workshop using playgrounds. Opening statement
“Write the most concrete implementation before a protocol.”
Notes:
- Real Life Protocol
- Codeable gives me certain power
- Protocols don’t conform to itself like a class when inheriting.
- Type signature can be a parameter in func
- Retroactive Modeling
- When I use a class it is because I need a reference type not to do inheritance.
- Classes have a meaning.
- Any value type should have a equateable.
- SwiftUI uses data in background.
- You can turn any result into a throwing method.
- If you put a static method on a protocol then it is inherited by other protocols.
- Reference semantics
- Typing a name of a Protocol represents protocol.
- Single value containers
- Typealias
- phantom type.
- TypeEraser get ride of type information
Everything you know is about to change
https://github.com/jacobbullock/LootLogger
SwiftUI
- Declarative
- Automatic
- Compositional
- Consistent
- One framework for all devices. The views will need to change
- No matter InterfaceBuilder or AutoLayout
- Better ways to build programmatic views.
- SwiftUI will handle the Declarative View.
- Composition over Inheritance
- The views are collapsing down. A view returns only one.
- Font’s and colors return a view
- Property Wrappers
- All property values to be wrapped by various types.
- @State: is a property Wrapper. When state updates, the property redraws.
- A new view is a VStack
- Containers
- HStack
- Trailing Closure Syntax
- @ViewBuilder is a property wrapper.’
- Ten View Limitation is a complier errors when more than 10.
- Migrating from UIKit to SwiftUI
GIT
I did not attend this workshop, but found the slides fascinating.
Git merge is becoming Git switch & Git restore