Where Things Go From Here

This week, I released two new books, focused on “second-generation” Android app development techniques: Jetpack/AndroidX, particularly using Kotlin.

The other four books in the Warescription, at present, cover “first-generation” techniques: the Android Support Library, particularly using Java.

Of course, the material in those books is not obsolete at this time. Only some developers have moved over to AndroidX, for example, in part because those libraries only shipped in a 1.0.0 state a couple of months ago. “Jetpack” is a brand, and I have been covering most of the Jetpack pieces for quite some time. But, inevitably, the material in those four books needs to get upgraded to second-generation approaches, before it actually does become obsolete.

Beyond continuing my work on the two new books in the Elements series, my top upgrade priority is Exploring Android. I started that book this year as a replacement set of hands-on tutorials. I got through most of what I wanted… but then Jetpack/AndroidX were released. Plus, I wrote those tutorials in Java. So, starting early next year, I will work on rewriting Exploring Android as a second-generation book.

The “odd duck” of my first-generation books is Android and GraphQL. I wrote this book as the Architecture Components were rolling out, but I incorporated little of them in the book. So, this book is further behind than is Exploring Android. Also, it is more of a niche title, as GraphQL has its fans but is not dominating the Web service space. But, it has the advantage of being a small self-contained book. Eventually, I will rewrite this as a second-generation book, but it is not a priority.

This leaves Android’s Architecture Components, and, of course, The Busy Coder’s Guide to Android Development.

The problems with The Busy Coder’s Guide to Android Development are its size and age. It will take me a few years to upgrade everything in that book to second-generation approaches, in part because I cannot only do that — I need to cover new material as well. The transition from second-generation material back to the first-generation stuff would be fairly jarring in one (large) book. For example, ListView is not that critical anymore, having been supplanted by RecyclerView, but a lot of my older examples still use ListView. So while the early chapters of a revised book could skip ListView, I would still need it somewhere, just so people have the material to understand all those other samples. Compounding the problem is that I should be blending in parts of the Architecture Components into new introductory material, rather than having it all be in a separate book.

This is why I started the Elements series, particularly Elements of Android Jetpack. And it is why, in early 2019, I will be publishing one final update to The Busy Coder’s Guide to Android Development and Android’s Architecture Components, to correct some errata. Beyond that, I will not be updating those titles, and they will remain first-generation books.

The Android material, though, will get rewritten, so long as there is interest in my work. It just will go into Elements of Android Jetpack or other second-generation titles. So, rather than try to monkey-patch these two first-generation books, I will replace them with newer, better books. Similarly, coverage of new Android versions, new tools versions, and new library versions will go into second-generation books.

This is one of the reasons why I want to offer full-text searching across all of the books. That way, it is easier for you to tap into the knowledge base in The Busy Coder’s Guide to Android Development for particular topics, while I progressively offer updated material on those topics.

This is a major change, and one that I take with quite a bit of trepidation. I think it is the best answer for my subscribers, and I can only hope that I am correct in my assessment. If you have concerns about this plan, please let me know.

I mentioned “so long as there is interest in my work”. Tomorrow, in my final post of this series, I will explain a bit more what I mean and how you (yes, you!) can help.

Find out about new posts on the CommonsBlog via the Atom feed, or follow @CommonsWare on Twitter!