1. It’s no more obvious than AppKit/UIKit.
The most immediate effect of this is that it’s hard to tell whether something is broken in the beta or if you’re doing it wrong.
e.g. How do you turn off animations when reloading a List?
The documentation tends to list all the methods from `View` first—making it hard to find the APIs that define the type.
e.g. The actual `Button` APIs are the *last* 5-10% of this page: developer.apple.com/documentation/…
Most WWDC demos focused on building 1-2 views. This seems much more doable because the containers and abilities you need are missing, incomplete, or buggy.
e.g. `HSplitView`/`NavigationView` have been pretty iffy so far
UIs on macOS are more complex than UIs on iOS or watchOS, so more is required. That additional functionality seems to be mostly missing right now.
e.g. On macOS, a window with a SwiftUI root view defaults to a (0, 0) size.
IMO Swift’s excellent integration with Obj-C has been key for quick adoption. SwiftUI does the same with AppKit/UIKit.
e.g. I wrapped `NSSearchField` in SwiftUI in ~60 lines of simple code. Hosting SwiftUI is even easier.
SwiftUI relies heavily on two-way bindings. The reference semantics make this much more complex than React or Elm, but you do get some things “for free”.
e.g. `@ObjectBinding` is used heavily, but `@State` is “free”.