With the release of macOS High Sierra this week, Apple has completed its Fall software update cycle. In addition to packing a ton of tweaks and updates for users, High Sierra offers a lot developers should be aware of.
For example, the Photos app has expanded its extensions protocol, which lets users tap into a third-party photo editing app. Changes are saved to Photos, which dovetails into Apple’s new APFS file system (more about APFS here). If you’re working on an image editor, this is important.
As media goes, there are also some key changes. The new HEIF (High Efficiency Image Format) is now an option for iOS users, albeit one that reverts to JPG for non-Apple users. It’s meant to shrink the file size without compromising pixel density, and it does a great job. HEVC (H.265) is a new video format, offering better compression than the standard H.264; video files using HEVC can be up to 40 percent smaller than those leveraging H.264, but playback can be an issue. Some reviewers note devices with SoCs earlier than the A9 chipset struggle to play files back, and it’s untested outside of Apple’s ecosystem so far. Tread lightly.
Swift 4 is also out, having been released quietly alongside iOS 11. More stable and expressive, Swift 4 still doesn’t have ABI stability, something Apple says is coming next year with Swift 5.
High Sierra represents a graphical boost for the Mac. Metal, Apple’s software graphics engine, is now on version 2. Promising even more direct access to the GPU, Metal 2 now allows a system’s GPU to handle more rendering. It also brings in “deep support for GPU-accelerated machine learning” along with better debugging tools.
Metal Performance Shaders (MPS) is also available for the Mac in macOS High Sierra with Metal 2. Shaders adds machine learning primitives to Metal, which has some odd workarounds for the uninitiated. Apple says: “MPS expands its machine learning capabilities to enable new classes of algorithms, such as natural language processing, to execute on the GPU.” Apple’s documentation tells us why this is a smart move:
These data-parallel primitives are specially tuned to take advantage of the unique hardware characteristics of each GPU family to ensure optimal performance. Apps adopting the Metal Performance Shaders framework can be sure of achieving optimal performance without needing to update their own hand-written shaders for each new GPU family.
Apple also added support for external GPUs. An “External Graphics Development Kit” brings the ability to plug in an external GPU case to any Thunderbolt 3-enabled Mac. All of Apple’s latest Macs utilize Thunderbolt 3, and the new iMac Pro promises to red-line your computational prowess. The kit itself will cost $599, and comes with the following:
• Sonnet external GPU chassis with Thunderbolt 3 and 350W power supply
• AMD Radeon RX 580 8GB graphics card
• Belkin USB-C to 4-port USB-A hub
Developers who have experience with Final Cut Pro X, SteamVR, Epic Unreal 4 Editor and Unity Editor can now create Virtual Reality (VR) experiences on the Mac. Though Apple hasn’t deemed the HTC Vive its official dev kit for VR, it’s the only headset pictured on the site or mentioned in its documentation. That may be because the Oculus Rift requires a special command to activate the screen, which is only really possible via third-party software for Mac.
Touch Bar is still a thing, and Apple seems to be leaning into it for MacBooks long-term. It will require support, and Apple is still asking developers to make the commitment to it. It’s also promoting Force Touch for the trackpad, which handles much of the ‘peek and pop’ functionality that 3D Touch does on iOS. Again, dedicated support is required.
Overall, macOS is just a touch more ‘pro.’ The added benefit of external GPUs will make VR development possible for Mac, and further extensibility to Photos will help high-end apps gain or keep a foothold. APFS is untested, but all signs point to it being a solid replacement for HSF+. Notes is slightly better, adding tables and pinned items. All told, High Sierra adds just enough muscle for developers.