Bitcode – The New Apple Technology No One Is Talking About
Bitcode – the new Apple technology no one is talking about
There were so many interesting new products presented at WWDC 2015 that many developers missed one of the biggest innovations presented by Apple – Bitcode.
Bitcode will allow apps in the App Store to be optimized for different devices before being downloaded by users. Existing applications in App Store will be able to take advantage of the new processor without any action from the developers. No updates or republishing will be necessary.
If Apple suddenly changes the architecture of the processor in their devices, developers will no longer need to update their apps to support the new architecture. Thanks to the App Store automatically recompiling the apps. Applications will be able to work with the new processors immediately, regardless of whether the developers even heard about them or not.
What is Bitcode?
This is a good question. For starters, you should understand Low Level Virtual Machine (LLVM), a generic transformation system for converting existing code into machine code for a variety of architectures.
LLVM consists of two parts: the “frontend” and the “backend”. The first is the high-level programming language in which you write your application. For example, Objective-C, Swift, Python or Ruby. The second part serves to compile that application into machine code. Converting commands to a processor that the individual processor understands. With this architecture, Bitcode is a layer or intermediate language that can recompile the application into machine code. Bitcode can convert the code into an executable application based on the required instruction set.
Apple is not afraid of changing processor architectures.
As history shows, Apple is not afraid to change its processor architecture. Apple is one of the few companies that has successfully survived the architecture change in its products. The most significant change was from PowerPC to Intel architecture in 2005. Apple abandoned its outdated hardware platform, giving developers new capabilities.
A recent change was the move to 64-bit architecture on the iPhone two years ago. Back then developers had to recompile their applications to add support for the iPhone 5s 64-bit processor. With Bitcode, developers will no longer need to re-compile their applications even after significant changes to the computing architecture. If Apple suddenly switches to a new architecture, such as the iPad Pro, then thanks to Bitcode developers’ apps will support the new device as soon as it is released.
But things aren’t so colorful; developer opinions vary. iOS developer Caleb Davenport believes Bitcode has both pros and cons. Apple no longer has to wait for developers to introduce updated tools to support new devices.
“What scares me is that my app might be compiled in configurations that I won’t be able to test, which in turn will lead to bugs that I won’t be able to reproduce.”
Caleb Davenport waited until 64-bit devices became available to test his application on “real” hardware, and only after testing did he add the appropriate support. In the case of Bitcode, which automatically compiles apps for new devices without any developer involvement, it may take weeks before a developer buys a new device for testing, while users use his app and encounter possible bugs.
Other developers think otherwise. e.g., Sjörd Jenssen is positive about Apple’s innovations because they will reduce the amount of work it has to do to support new devices. He believes that if Apple suddenly switched to Intel processors in the new iPhones, no action would be required on his part to provide support for the devices on release day. The rest of the developers are taking Bitcode with mixed feelings so far. The technology seems amazing, but it has yet to be figured out.
The problem is that Apple doesn’t provide developers with detailed information about the technology. Despite its great importance, Bitcode was mentioned very cautiously at WWDC and was even excluded from some sessions (Bitcode was in the description of the 404 session of WWDC, but then disappeared). In applications where closed-source libraries are used (CocoaPods), the use of Bitcode is undesirable because it can cause errors.
More information about Bitcode may appear closer to the release of iOS 9 and watchOS 2, but it is strange that Apple did not pay much attention to Bitcode at WWDC.
A Medium user nicknamed Inertial Lemon thinks these changes signal something more. Bitcode is mandatory in apps for the Apple Watch, but only recommended for iOS. For the Apple Watch, this means that the next generation of watches may use completely different processors, but it won’t matter to developers – the App Store will automatically prepare existing apps for the new devices.
In addition, Bitcode could mean that the architecture of Mac processors could change in the near future as well. Bob Mansfield, who has been quietly removed from senior executive management to head up “special projects,” is one candidate to work on this. Apple already makes processors for the iPhone, so the Mac’s move to in-house-made processors doesn’t seem all that unusual.
For now, Bitcode is not supported in OS X applications. But that’s only “for now.” The person who presented this technology at WWDC is on the OS X development team. Such a change means that Apple could move the Mac from Intel architecture to ARM without adapting the base of existing applications. In this way, Apple can get rid of its dependence on Intel processors. Bitcode can make Apple more flexible to make radical changes to the hardware of its devices. Also in future, the company will not have to notify the developers about the changes, which will allow it to keep information about the new devices in secret until the presentation.
As a result, developers will have less work to adapt applications during big updates. Theoretically, they won’t have to do anything at all, although many suspect that the transition process won’t be that easy.
Bitcode needs to reach critical mass before changing the architecture becomes a simple process. But Apple is taking its time and giving developers time to get used to and prepare for the coming changes.
Read Also: Best Cell Phone Tracking Apps In Market