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
Tweet

More Decks by Tim Oliver

Other Decks in Technology

Transcript

  1. Project Catalyst:
    UIKit on the Mac is finally here!
    Tim Oliver
    iOS Product Engineer (JP)

    View Slide

  2. In the beginning…

    View Slide

  3. View Slide

  4. View Slide

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

    View Slide

  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

    View Slide

  7. chameleonproject.org

    View Slide

  8. View Slide

  9. View Slide

  10. It’s 2019 now!

    View Slide

  11. It’s 2019 now!

    View Slide

  12. View Slide

  13. Demo

    View Slide

  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`.

    View Slide

  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?

    View Slide

  16. Using AppKit Bundles!
    Beyond the Checkbox with Catalyst and AppKit
    Steve Troughton-Smith - highcaffeinecontent.com

    View Slide

  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!

    View Slide

  18. Thanks for watching! ✌
    @TimOliverAU TimOliver

    View Slide