I'm blogging because I'm not seeing resources that covers the things I've been asked; or that I've worked out myself (like an upcoming post about maintaining Object Encapsulation).
I also blog so I can google my brain later for myself or to provide my thoughts to others in a shareable repeatable form.
There's not enough examples of Software as a Craft practices, in general, with Android especially lacking. I find that examples and tutorials for Android generaly tend to be abysmal; though there's been improvements over the years.
It's not improving enough.
I want to be able to provide a good resource for people to develop apps in a best practices and maintainable form. I want to help other people be Gardners. I want the world of code to be a beautiful place I'm happy to walk through. :)
As I'm exploring topics and having conversations at work... I need to get involved with some user groups around here... I'm finding that there's definitely an absence of the Craftsperson approach in general; and it seems even worse for mobile development.
What efforts can I do to improve that space?
Blogging is limited. It's ... just not the same. Blog posts are "code snippets" about things. They're not often, and for me not intended to be, a reference guide. Posts are solutions to specific problems; not guides for how to do something big(ger).
I use books for reference material to accomplish larger tasks; not solve immediate/specific problems. Books are references on how to approach things. Theory, practice, anecdotes all mized together.
I have zero books about writing an Android app using TDD or XP practices. For those that know me... know I generally spend a lot on technical books. I recently tallied it for taxes, and last near I nearly spent $2K in tech books (which depending, might be only a few books). I enjoy reading and considering a lot of things.
I go through a lot of books; and have found zero android books which pass my bar for being informative on how to test android... SIGH
I'll mention that this was BEFORE I took the Fred George boot camp; before I've accepted the XP Practices as guiding principles.
All the books I have that are on, or talk about, testing android tend to use Robolectric or Espresso to do the tests.
Espresso for automated UI testing; Awesome!
Robolectric for testing legacy code; Run with it!
To do TDD; these are /not/ the correct tools. These are tools for UI testing; for accouting for code that's tightly coupled with the OS; or for legacy code that's not worth refactoring.
I consider Robolectric a crutch for badly designed code. It helps you get along, but enables bad practices to continue to infect the code. Spreading their rot and smell.
I want to do more to share my drive, passion, and philosophy about how to build a great app. To help promote the practices in an ecosystem and culture that could benefit from a resource like that. The things I learn while driving the practices on myself; I want to share those and enable others to avoid the pain points I've managed solutions for!
While I don't see blog posts as the type of resource that I would like to use for this; I think it needs to exist.
To that purpose; I'm working on outlining a long series of posts; some of which touch on topics I'll have covered already; to provide a "whole flow" experience of what I find the best practices of developing and android application is.