Diving into Android ‘M’ Doze

Users a pretty excited Android’s new “doze” feature. Developers may have more mixed feelings on the subject. Either way, it’s good for us to take a deeper look at how this feature works.

Android ‘M’ Permissions and Legacy Applications

Android has finally introduced a runtime-granted permissions model. It will be some time before most applications are updated to take advantage of the new system, so how will this new system affect your application on user’s devices before you’ve had a chance to update it?

AOSP Source in the IDE

We get asked a lot about the proper way to integrate the AOSP sources into an integrated development environment (IDE). This tutorial shows you how to use the integrated IDEGen scripts to do the job.

Building A RecyclerView LayoutManager – Redux

This post is the capstone in our series. Here are links to Part 1, Part 2, and Part 3 as well.

While writing what was intended to be the final post of this series, a discussion of predictive animations, I ran into a number of interesting challenges that I thought warranted their own discussion. This series began as an investigation into whether RecyclerView could easily handle a layout structure that could scroll in both the horizontal and vertical axes, and how difficult it would be for the developer to build their own LayoutManager. I chose a basic grid of uniform items as the structure, thinking it would be the most straightforward to implement.


Building a RecyclerView LayoutManager – Part 3

This article is Part 3 in our series. Here are links to Part 1 and Part 2 as well.

In the previous post, we discussed adding proper support for data set changes and targeted scrolling. In this installment of the series, we will focus on properly supporting animations in your fancy new LayoutManager.

In case you’ve forgotten, the code samples are on GitHub.


Keeping Styles in Scope

Styles and Themes are a great thing. They allow us to abstract common view properties into a single location, making the look and feel of our application UI more consistent and easier to maintain. If you look at Google’s UI guide for Styles and Themes, it mentions the motivation behind this as a separation between design logic and content.

However, as with any abstraction API, it can be easy to take things a bit too far. Android does not restrict which attributes one can abstract into a style. Any attribute you can put on a view element, you can place in a style. But just because you can put something in a style doesn’t mean you should.


Building a RecyclerView LayoutManager – Part 2

This article is Part 2 in our series. Here are links to Part 1 and Part 3 as well.

In the last post,  we walked through the core functionality necessary for building a RecyclerView LayoutManager. In this post, we are going to add support for a few additional features that the average adapter-based view is expected to have.

A reminder that the entire sample application can be found here on GitHub.


Building a RecyclerView LayoutManager – Part 1

This article is Part 1 in our series. Here are links to Part 2 and Part 3 as well.

By now, if you’re an Android developer paying any attention, you’ve at least heard of RecyclerView; a new component that will be added to the support library to facilitate custom implementations of high-performance view collections by facilitating view recycling. Others have already done a remarkable job describing the basics of how to use RecyclerView with the built-in pieces already provided, including item animations. So rather than dive into all that again, here are some resources to get you up to speed:

In this series of posts, we will be focused on the low-level details involved in building your own LayoutManager implementation, to do something a bit more complex than a simple vertical or horizontal scrolling list.


Accessory Developers, Meet iOS 8

WWDC 2014 was packed with new features for developers to take advantage of in iOS 8.

Among them were technologies that present new opportunities for accessory manufacturers, but often the technical side of that development doesn’t get the coverage it deserves. What follows is a discussion of what accessory manufacturers should be excited about (we certainly are!) as we look forward to the iOS 8 release.

Effects of Android Application Termination

Digging into ActivityManagerService reveals a bit about how applications are killed.

Between process management of the system at large and user behavior, there are a handful of methods through which your Android application process may terminate. The additional effects on your application code (based on the method) may have consequences for you as a developer.