Scuttlebutt Regarding Apple’s Cross-Platform UI Project →
John Gruber:
I don’t have extensive details, but basically it sounds like a declarative control API. The general idea is that rather than writing classic procedural code to, say, make a button, then configure the button, then position the button inside a view, you instead declare the button and its attributes using some other form. HTML is probably the most easily understood example. In HTML you don’t procedurally create elements like paragraphs, images, and tables — you declare them with tags and attributes in markup. There’s an industry-wide trend toward declaration, perhaps best exemplified by React, that could be influencing Apple in this direction.
While it is a little disappointing that we will not be seeing this at WWDC 2018, I think this is great news.
As I outlined in my original link to Gurman’s Marzipan piece, a shared UI framework for iOS and macOS was either 1) bring UIKit as is to macOS and add in the necessary comments to run with a pointing device (safe, but boring) or 2) make a new ground-up UI framework that both platforms use (more difficult, but better long term). Gruber’s sources seem to indicate that Apple is doing the latter.
A silver lining to this being a 2019 thing instead of a 2018 thing is that it is more likely to be written in Swift instead of Objective-C, which would mean it would have a more modern API. Even though we have to wait a year longer than we thought, I am more excited about this project than I was before,