Apple Releases

Yes its the most important week of the year again for any apple developer. WWDC! And according to Apple’s Keynote now there are over 20 million of us!

Apple has announced a lot of stuff in their Keynote, i’m sure the whole internet is filled with coverage of that. Lets have a quick glance at whats actually important for developers:

  • macOS 10.14 and iOS 12 with new APIs. we are still digging through the developer documentation to figure out what actually changed under the hood and at an API-level, like i am sure many of you are doing right now too. this year its actually considerably harder to find out whats new because Apple has discontinued their old developer documentation which always contained super-handy release-notes documents and replaced it with a flashy all-new documentation thats actually quite useless. at this point we can say for certain that there have been few large changes in key frameworks like Foundation/AppKit (things kinda died down here around 10.6) and the focus has been on extending recently released frameworks like ARKit and Core ML as well as tvOS and CarPlay changes. Apart from that we got 4 new Frameworks to play with:
    • Natural Language‘ a framework for processing Natural Language, this fits nicely with Apple’s recent machine learning focus
    • iTunesLibrary‘ a framework for interacting with iTunes, which is quite welcome on macOS where the only way to interact with iTunes has always been the scripting bridge, which has barely been accepted on the Mac App Store. we’ve already filed a bug report about this framework
    • Network‘ an aptly named framework to implement low level TCP/UDP networking
    • AuthenticationServices‘, which if it will prevent iOS apps asking for passwords that only exist in the Keychain will be get all our thumbs up
  • a “brand new Mac App Store”. i am sure there is much excitement about that and the visual overhaul is certainly welcome for users and the addition of the SKStoreReviewController API is certainly welcome for developers but lets not forget 1.) it has taken Apple (a 950 billion dollar company) 7 years to deliver an update that looks like an intern could do in 2 months and 2.) the changes we really have been asking for have not even been mentioned although we developers have pledged over 600 apps to the cause
  • Xcode 10: finally they brought the cold-folding back and their new build system is enabled by default. I guess most Swift developers will be disappointed that this is based on Swift 4.2 and not on Swift 5.

Unless you’ve won the WWDC lottery, some information is still hard to come by, so we’ll post more as it becomes available.

 Tidbits: Apple Releases new OS betas, Xcode moves to clangd, Swift Tip: In-Place Map

Its random-tidbit thursday:

• Apple has released the second betas of macOS 10.13.5 and iOS 11.4, but the release notes are still extraordinarily boring. We are still waiting for a new Xcode beta with Swift 4.2.

• Apple seems to be moving Xcode from using libclang to clangd. What could this possibly mean for developers? One the one hand, Apple’s commitment to improving ‘clangd’ could mean improved ObjC&Swift support in other IDEs using clangd, like VisualStudio Code. One the other hand, if Xcode gets support for the Language Server Protocol, it could become easier to add support for other languages to Xcode.

• The Swift Tip Of The Week explains us the benefits of using mutation in general and in-place map in particular – check it out.

macOS 10.13.4 Released with eGPU Support

macOS 10.13.4 has been released after a lengthy-beta test. The user-facing release notes are here and the developer release notes are here.

There seem to be little changes of interest to developers (except bug fixes), with the notable exception being eGPU support. Apple’s apparent reversal of their complete disregard of everything that requires a GPU could be a game-changer for developers in the Gaming, Cryptocurrency, VR, 3D, Pro and Video sectors. Now if they’d just update their stone-age OpenGL drivers and start supporting the cross-platform industry standard Vulcan.

One other interesting thing is that ‘iMessage in the Cloud’ was again dropped again just before the final release. Originally scheduled for iOS 11/macOS 10.13, ‘iMessage in the Cloud’ has been present in every OS beta release for the better part of a year now, but was always dropped in any official release. Is this a sign of Apple’s rumoured push of software-quality instead of releasing beta-quality stuff or just a sign that they are even less able to get their act together with anything software-related than in the already poor past few years?

iOS 11.3 Released with ARKit 1.5

iOS 11.3 has been released with many changes including some headline useless stuff like ‘Animoji improvements’. Interesting changes for developers include:

  • Support for ‘ARKit 1.5’. While there has been a lot of hype regarding AR, we are still waiting for an AR-killer-app. Maybe AR really needs accompanying glasses for its breakthrough
  • Other notable changes include data privacy improvements, seemingly in preparation to comply with the EU’s General Data Protection Regulation. If you have a website or app you should take this as a call for action, so you don’t become liable come once the GDPR comes into effect on 25. May.

You can find more information in the developer-release notes but it seems there are mostly bug-fixes.

Xcode 9.3 Released with Swift 4.1

Xcode 9.3 has been released by Apple. Interesting changes from the release notes:

  • 32-bit support is dropped. This is about time, since macOS has only supported 64-bit Macs since 10.7 (2011), Apple hasn’t offered a 32-bit Mac since 2007 and there were only a handful of 32-bit Intel Macs ever sold to begin with. Makes one wonder why Apple ever bothered with 32-bit Intel anyway.
  • the new energy organizer shows information about your iOS apps using ‘too much’ energy for apps distributed on the (iOS) App Store and Testflight
  • The debugger on macOS now requires the entitlement to attach to apps. Apple seems to move in a direction where macOS is locked-down and you can’t debug random processes anymore. We foresee a lot of pain for low-level developers and security researchers.
  • Code-folding is still only working rudimentary, making the Xcode 9 series quite unusable
  • A lot of improvements for code coverage and new tool for parsing code coverage output, xccov.
  • Full Swift 4.1 support. We are detailing the Swift 4.1 changes in a separate post

Generally, Xcode 9.3 brings larger changes than Xcode 9.2 (release notes here) and 9.1 (release notes here) that mainly saw bug-fixes.