Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Project Catalyst: UIKit on the Mac is finally here!

Project Catalyst: UIKit on the Mac is finally here!

We held a WWDC Recap event at my company's office where several of the attendees to WWDC presented on what they learned while they were over in America.

I presented on Project Catalyst, Apple's new initiative to bring iPad apps to macOS. I explained how we got to this point, and what some of its current limitations and work arounds are.


Tim Oliver

June 13, 2019

More Decks by Tim Oliver

Other Decks in Technology


  1. Project Catalyst: UIKit on the Mac is finally here! Tim

    Oliver iOS Product Engineer (JP)
  2. In the beginning…

  3. None
  4. None
  5. Darwin (Kernel) libSystem Foundation Core Graphics Core Animation AppKit UIKit

  6. AppKit (1994) UIKit (2005) • 2 completely separate eras in

    Apple’s life • UIKit improved upon what was in AppKit • The concepts can be remarkably different • It’s not easy to share code between platforms • It’s not easy for UIKit engineers to transition to AppKit • macOS misses out on a lot of great software
  7. chameleonproject.org

  8. None
  9. None
  10. It’s 2019 now!

  11. It’s 2019 now!

  12. None
  13. Demo

  14. Key Takeaways • Still just an iOS app. Adjusts for

    macOS. • Resizable windows means ANY screen size. • Provides hooks into AppKit. No direct access. • Scaled down to 77% screen size for parity. • All elements look like iOS by default. • Precompiled binaries need to be recompiled for `UIKitForMacOS`.
  15. Provides hooks into AppKit. 
 No direct access? • Can

    use UIKit scenes to create copies of UIKit windows. • No way to create NSWindow objects officially. • Is it possible to make a UIKit/AppKit hybrid?
  16. Using AppKit Bundles! Beyond the Checkbox with Catalyst and AppKit

    Steve Troughton-Smith - highcaffeinecontent.com
  17. Summary • Check ‘Mac’ in Xcode to begin! • Change

    view settings for native macOS appearance. • Re-consider design of elements that do not look native. • Consider using NSWindow when necessary. • Make some great apps!
  18. Thanks for watching! ✌ @TimOliverAU TimOliver