What’s New in the macOS SDK

Learn about the key technologies and capabilities available in the macOS SDK, the toolkit used to build apps for Mac. For detailed information on API changes in the latest released versions, including each beta release, see the macOS Release Notes.

macOS 10.14

With the macOS Mojave 10.14 SDK, apps can take advantage of Dark Mode, Create ML, Ratings and Reviews API for the Mac App Store, notarized apps, the new Network framework, Natural Langauge framework, and more.

Dark Mode

With macOS 10.14, users can now switch to Dark Mode to transform macOS to a darkened color scheme, putting the focus on your work while controls recede into the background. Users can toggle between a light and dark appearance for the entire system in System Preferences.

For information about incorporating Dark Mode into your apps, see Supporting Dark Mode in Your Interface and the AppKit developer documentation. For design guidance, see the Human Interface Guidelines.

Create ML

Create ML is a new technology for creating and training custom machine learning models on your Mac. Create ML works with familiar tools like Swift and macOS playgrounds to make it easier to train your own models.

For information about getting started with Create ML, see the Create ML developer documentation.

Mac App Store

The redesigned Mac App Store includes a new Ratings and Reviews API for Mac apps built using the macOS 10.14 SDK.

For information about how to ask your users for ratings and reviews from within your app, see the SKStoreReviewController developer documentation and the Human Interface Guidelines.

Notarized Apps

You can submit your apps to Apple to be notarized before distribution. When users on macOS Mojave first open a notarized app, they’ll see a more streamlined Gatekeeper dialog and have confidence that the app is not known malware. Notarized apps are signed with a Developer ID certificate and include a ticket from Apple.

For details on getting your apps notarized, see Upload a macOS app to be notarized.

Network Framework

The new Network framework makes it easier to create network connections to send and receive data using transport and security protocols.

Use this framework when you need direct access to protocols like TLS, TCP, and UDP for your custom application protocols. Continue to use URLSession, which is built upon this framework, for loading HTTP- and URL-based resources.

For information about the Network framework and how you can use it to replace calls to low-level socket APIs in your apps, see the Network framework developer documentation.

Natural Language

The Natural Language framework is a new framework you use to analyze natural language text and deduce its language-specific metadata. You can use this framework with Create ML to train and deploy custom NLP models.

For more information about how your apps can process and understand natural language text, see the Natural Language framework documentation.

Deprecations

Periodically, Apple adds deprecation macros to APIs to indicate that those APIs should no longer be used in active development. When a deprecation occurs, it’s not an immediate end of life for the specified API. Instead, it is the beginning of a grace period for transitioning from that API and to newer and more modern replacements. Deprecated APIs typically remain present and usable in the system for a reasonable time past the release in which they were deprecated. However, active development on them ceases, and the APIs receive only minor changes to accommodate security patches or to fix other critical bugs. Deprecated APIs may be removed entirely from a future version of the operating system.

As a developer, avoid using deprecated APIs in your code as soon as possible. At a minimum, new code you write should never use deprecated APIs. And if your existing code uses deprecated APIs, update that code as soon as possible.

Deprecation of OpenGL and OpenCL

Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders.

Metal is designed from the ground up to provide the best access to the modern GPUs on iOS, macOS, and tvOS devices. Metal avoids the overhead inherent in legacy technologies and exposes the latest graphics processing functionality. Unified support for graphics and compute in Metal lets your apps efficiently utilize the latest rendering techniques. For information about developing apps and games using Metal, see the developer documentation for Metal, Metal Performance Shaders, and MetalKit. For information about migrating OpenGL code to Metal, see Mixing Metal and OpenGL Rendering in a View.