In an announcement posted to Apple's developer portal on Friday, the notified app makers that all Mac App Store submissions will soon be restricted from using garbage collection in favor of the Automatic Reference Counting (ARC) compiler feature.
The announcement calls for developers to migrate upcoming and existing Mac apps away from garbage collection memory management, which was deprecated with the release of OS X 10.8 Mountain Lion, to the more efficient ARC scheme by early May.
ARC is a compiler feature that provides automatic memory management of objects when using the Objective-C programming language, allowing developers an alternative to traditional retain and release code.
Developers are urged to use Xcode's migration assistant when transitioning, as the tool includes an automated conversion feature that, among other operations, removes retain and release calls from an app's code.
Apple notes that apps distributed through the Mac App Store may continue to use retain and release operations for manual memory management.
The new stipulation takes effect on May 1 and applies to both new Mac apps and update submissions.
76 Comments
How does this translate into an improvement for the app user? More efficient use of code, meaning a smoother experience for apps? Potentially fewer crashes?
If my understanding is correct, ARC works by inserting retain and release calls, so there is no way for Apple to tell from a compiled app whether you are using ARC or manually retaining/releasing. So developers do not have to use ARC at all, they just have to move away from garbage collection.
How does this translate into an improvement for the app user? More efficient use of code, meaning a smoother experience for apps? Potentially fewer crashes?
It means apps will use less maximum memory (lower "high water mark"). Garbage collection lets unused memory build up for a while and then cleans it all up in one go, whereas ARC cleans up as it goes.
I wonder if this means the garbage collector will be removed (as opposed to deprecated but still there) in OS X 10.11?
ARC? Guess we're gonna have a wet May.
I'm kind of amazed they didn't make this a requirement a year ago.