The revamped UI, dynamic type, new multitasking modes, and 64-bit support point to new classes of apps -- and devices
More bang for the bits
iOS 7 is the first 64-bit mobile OS. Arithmetic operations, pointers, and addressing instructions all use 64 bits. Not surprisingly, Xcode 5 can generate 64-bit code to support this capability. In most cases, the wider data lanes can improve application performance; however, those larger values and pointers can also increase memory consumption. Even though there are advantages to migrating your app to 64 bits, it must be done carefully; otherwise, due to memory pressure, your app may actually execute slower.
iOS 7 supports both 32- and 64-bit execution modes so that older apps continue to run. My old iOS climate control app published on iTunes continues to work on iOS 7, although there was a blank area at the top that was an artifact due to the view not using the now-available status bar area. Going forward, developers should build their apps as a "combined binary" that contains 32- and 64-bit versions of the code. This allows the app to execute on platforms not running iOS 7.
The combined binary mechanism should work well, because Apple has done this migration trick before. When Macintosh computers switched from Power Architecture to Intel CPUs, the Xcode tools could make "universal binaries" that contained both Power Architecture and Intel code images. If you've been in the business a long time, you might even recall when the Macs moved from 68K to Power Architecture CPUs, and developers made "fat binaries" that could run on both platforms.
A significant advance
iOS 7 is a great leap forward in many ways. The new UI offers the developer more screen room to play with, even on small devices. The smarter text layout will enable a new category of publication and reader apps, I have no doubt. The 64-bit OS offers better computational throughput. This allows developers to use more powerful algorithms for speech and signal processing, and it will enable new apps to be published that until now were too computationally demanding for a mobile platform. In short, Apple has covered its existing consumer base with a top-notch software release.
This brings me back to the yin and yang of iOS 7 and Xcode 5. Apple touts iOS 7 as a desktop-caliber OS, and when you consider the advanced typography system and greater processing power, you might concede the point. Still, you have to wonder where the company is going with iOS.
Here are some clues we can follow. Apple has been pushing the auto layout features supported in Xcode 5 hard, so you have to figure there will be "iDevices" with different screen sizes. Might there be bigger tablets or even iOS-based laptops? Or "iDocks" that allow iPhones and iPads to use Apple's full-sized monitors and keyboards? iOS and OS X do seem to be on a collision course, so all three possibilities may eventually come to pass.
For the near future, however, I think iOS 7 enables Apple to enter specialized vertical markets or perhaps make a few new ones. In short, the yin and yang of iOS 7 and Xcode are poised to expand the mobile platform's reach beyond the competitive consumer market. The rest will be up to developers.
This article, "New in iOS 7: What developers need to know," was originally published at InfoWorld.com. Follow the latest developments in application development and mobile technology at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
You may still be better off sticking with Win7 or Win8.1, given the wide range of ongoing Win10...
Microsoft buried a Get Windows 10 ad generator inside this month's Internet Explorer security patch for...
Here’s the best of the best for Windows 10. Sometimes good things come in free packages
The creator of Linux talks in depth about the kernel, community, and how computing will change in the...
The latest additions to Google's mobile OS should give you plenty to chew on
The open source operating system celebrates its 25th anniversary this month
Google's gRPC aims to oust JSON for exchanging data between HTTP-connected services