The CommonsBlog


The Lessons from Android Things

Android Things was:

  • Announced in December 2016
  • Released as a 1.0 in May 2018
  • Killed off (to a large extent) in February 2019

In principle, “OEM partners” can still use Android Things… for whoever Google decides it wants to have as a partner.

Given Google’s propensity for killing off stuff, this development is not a major shock. However, it is undoubtedly a death knell for many projects in the pipeline that relied upon Android Things, particularly projects from smaller organizations.

So, what can we learn from this? Here are two key lessons:

Lesson #1: The Future Is Murky

You never know when the environment around you is going to change. What the world is like today (“Android Things is awesome! Everyone should use it!”) may not be what the world is like tomorrow (“Android Things is OK, if you’re big, you’re working on particular products, and Google likes you!”).

For example, while Fuchsia might be a thing someday, even after it is released, there is the potential that Google might pull the plug on it. Conversely, if Fuchsia is released, it’s entirely possible that Google quickly pulls the plug on Android and starts scaling back its support and services. We just have no way to know what may transpire.

Lesson #2: Build In Business Redundancy

The “thing” that worried me most about the Android Things plan is how dependent firms would become on Google. If Google is the one that is distributing firmware updates to Things, what happens when Google decides that it does not want to do that anymore?

I guess some people are going to find out.

The more you rely on particular suppliers or service providers, the greater your risk. Should somebody that you depend upon become undependable, you and your customers may suffer.

In the case of IoT, if you use a managed firmware update service like Google offered, what is your plan if that service goes away? How will you distribute firmware updates without them? Is it even possible for you to distribute firmware updates, or do they hold signing keys or other credentials that block you or anyone else from updating the firmware?

For Android app developers:

  • Have more than one app distribution channel. Do not assume that your users will always be able to get your app through one particular channel, in case that channel stops liking you. And while you may think that your app is immune to such problems… so did the developers of many apps that have subsequently been banned.

  • A side effect of the above: always sign the app yourself. You are what you sign. If you rely on Google to sign the app (as is the case with App Bundles), will you be able to sign it yourself if Google elects to stop distribution of your app? If not, even if you have another distribution channel, will existing users be able to get updates through that channel?

  • Have more than one means of accepting payments. This is one of the big risks with in-app purchases: if your channel stops distributing your app, you also lose your revenue. Ideally, organize your app and business such that there are legitimate reasons to purchase outside of the app (e.g., to be able to use your Web app), so you can support both channel-based payments and payments via other payment processors.

Note that while I am using Google as an example here, they are far from the only source of these type of disasters. Apple, PayPal, Facebook, and countless other companies view you as a source of revenue at most. Don’t depend upon them. Use them, but make sure that you have alternatives, either live (e.g., supporting multiple payment processors) or at least tested (e.g., self-distribution of the app).

In the 1960’s, it was “don’t trust anybody over 30”. In the 21 Century, perhaps it is “don’t trust any firm with over $1 billion valuation”.

Feb 16, 2019


"Exploring Android" Version 0.4 Released... Again

Any subscribers who already downloaded Version 0.4 of Exploring Android should download a fresh copy from your Warescription page. I had some flawed instructions in Tutorial 2 about where and how to get the starter project. That is now fixed in the corrected books.

I apologize for the screwup!

Feb 14, 2019


"Exploring Android" Version 0.4 Released

Subscribers now have access to an update to Exploring Android, known as Version 0.4, in PDF, EPUB, and MOBI/Kindle formats. Just log into your Warescription page and download away, or set up an account and subscribe!

I am rebooting this book as a second-generation title, so the tutorials will use Kotlin and the Jetpack libraries. Version 0.4 therefore is a bit of step backwards, as 11 tutorials’ worth of changes have been applied. The rest of the tutorials — or their equivalents — will be added in the coming months.

Due to the extensive number of changes, changebars were turned off for this update.

Also, there is a bug in my full-text search support, where this book is not showing up. I will fix that in the coming days. However, the online reader does work, so subscribers can read the book that way in addition to downloading the book.

Feb 12, 2019


Full-Text Searching the CommonsWare Books

In addition to ending an era yesterday, I also updated the CommonsWare sites to offer full-text searching. The navbar contains a “Search the Books” field — filling in a search expression and clicking the magnifying glass will search the CommonsWare library of books.

Searching is available both from the public sites (i.e., this one) and the Warescription site. Anyone can search, but reading the books requires a Warescription.

All of the books are in the search index except Exploring Android, which will be added in its next update, due out very soon.

If you run into any problems with the full-text search capability, let me know!

Feb 11, 2019


The Busy Coder's Guide to Android Development Final Version Released

Subscribers now have access to the final version of The Busy Coder’s Guide to Android Development, in PDF, EPUB, MOBI/Kindle, and APK formats. Just log into your Warescription page and download away, or set up an account and subscribe!

I am in the process of wrapping up my books that focused on the first generation of Android app development (Java and the Android Support Library), in favor of books focusing on the second generation (Kotlin and Jetpack/AndroidX). The third of the original books to be marked “FINAL” is The Busy Coder’s Guide to Android Development.

This book is unchanged from Version 8.13, other than a few errata fixes. Simply put, this book is too huge to try to move forward into second-generation techniques. I would wind up with a book that is partly second-generation and partly first-generation for a very long time, and that will be confusing to readers.

Note that all of the “FINAL” books will not show changebars or other notations for what sections changed from their previous one. That is one of the reasons why I am not making significant changes to these final editions.

The only first-generation book that is not “FINAL” is Exploring Android. I am in the process of rewriting that book to be second-generation; the first update for that will be available soon.

If you have questions or concerns regarding this transition from first-generation to second-generation books, please reach out!.

Feb 10, 2019


Older Posts