What’s New in macOS

macOS 10.14

This article summarizes the key developer-related features introduced in macOS 10.14 and highlights the developer documentation that describes new features in more detail.

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 Human Interface Guidelines > macOS > Dark Mode.

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 Human Interface Guidelines > macOS > Ratings and Reviews.

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 and Removed APIs

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.