Reto Meier, developer relations tech lead at Google, took the stage today at Android Developer Conference, giving a keynote detailing the changes in Android 4.4 KitKat. In it, he discussed many of the new APIs designed to ease development work.
(AnDevCon is produced by BZ Media, the parent company of SD Times.)
The many new APIs in Android 4.4, said Meier, fall into three categories: those that help with design, those that help with efficiency, and those that help with innovation. Under the design category, he discussed the new immersive full-screen experience.
Invoked with the new View.SYSTEM_UI_FLAG_IMMERSIVE command, this feature allows developers to hide all of the Android OS items, such as the status bar and clock. An additional form of the command with STICKY appended to the end allows this experience to be extended even further, blocking out the rest of the Android experience unless the user explicitly asks to leave the application.
The result will be that e-book readers, videogames and video players can now take over the entire screen, allowing for a much more immersive experience.
Moving between screens in those applications will be much prettier, said Meier, thanks to the new Transitions API. The new Scenes and Transitions API, said Meier, “is going to help you create dynamic, high-quality animations in your application. It’s pretty common to use animations to shift user focus on the screen, and the new transitions framework lets you define scenes. You’re able to have the system do smooth transitions from one scene to another scene.” Provided that the layout elements in the two scenes use the same IDs, he said, “the system will figure out how to” animate transitions automatically.
Deaf users will be able to use a system-wide closed-captioning API. Aside from allowing applications to use closed captions, it also eases the implementation of closed-captioning systems into things like video players and games. Existing applications will be able to easily pass a VTT-formatted closed-captioning file into their data stream.
Other APIs allow developers to have access to new capabilities within Android. The new Storage Access Framework provides a unified windowing system for both browsing files within Android and within an application, such as when opening a document with an application.
Meier said that developers will also be able to use the new storage API to add external storage systems to their applications. That means developers can define access to a cloud storage system, and then allow users to treat that remote storage as if it were attached to the device like a network share or an external storage medium. He said that defining such an external storage system requires only four overrides in the code.
Hardware and memory changes
On the hardware side of things, a new SMS provider will make it easier for developers to read incoming SMS messaging, while also restricting the sending of those messages to a single default application. This will allow developers to integrate polling for incoming SMS messages into their applications.
KitKat also includes the ability to batch sensor data rather than receiving a constantly updating stream. The result is that applications can now check sensor data every 30 seconds or minute, saving power and processing time by no longer requiring a constant connection to the sensors to read data.
KitKat will also include support for detecting and using infrared ports on phones and tablets, as well the ability to read and emulate NFC cards.
But despite these new APIs, one of the biggest changes to Android 4.4 doesn’t involve a new API at all. Instead, a major focus for it has been slimming down memory usage by the OS. The project, codenamed “Svelte,” has resulted in the compression of Android’s memory usage to a level that can function on devices with only 512MB of RAM.
Of course, said Meier, the Google team couldn’t optimize all that RAM usage without adding memory usage-monitoring tools. In addition to a new memory-profiling tool that will be integrated under the developer options in new phones like the Nexus 5, there is an added ability to check RAM usage within a running application. This means developers can poll the device their application is running on, and upon finding that it has a restrictive amount of memory, can turn off specific functionality.
A word of advice
In his closing remarks, Meier admonished developers to take the time to tackle those difficult tasks they tend to put off. He said that the way to make money and gain a following in the Play Store is to innovate, be first to support new features, and to take the extra time to polish your application.
As a developer, Meier said he tends to see two kinds of tasks in his schedule: those tasks that take less than 30 minutes, and those that take “forever.” But he went on to state that those “forever” tasks are where the big changes and innovative features for your application tend to live. Instead of tackling those bigger problems, however, he said developers love to push those to the bottom of the list in favor of finishing lots of smaller, simpler tasks.
“We end up with a list of things we know are going to take a small amount of time, and other things we know are going to take longer,” Meier said. “We push the longer ones to the bottom of the list. This happens on every software project. That breaks down over a long time line because those big radical changes never happen. It’ll only take five minute to work around it, and I don’t have time to spend to refactor the whole codebase.”
But it is these larger tasks that allow developers to differentiate their products and move them forward. He said that such work does entail more risk, but that the results will allow you to be a first-mover, and to gain the attention available to those who create something unique.
“Know that most of your competitors aren’t willing to take that time. They’re going to take that list of things they can do quickly, and focus on them,” he said. “Our opportunity is to focus on the longer-term elements, and to provide a great user experience or a more efficient application that will run on every device.”