Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

In the beginning…

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

chameleonproject.org

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

It’s 2019 now!

Slide 11

Slide 11 text

It’s 2019 now!

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Demo

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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?

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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!

Slide 18

Slide 18 text

Thanks for watching! ✌ @TimOliverAU TimOliver