Why I'm Unironically Carrying This Small, Older Android Phone Feb 19, 2015

I thoroughly enjoyed my last night in Berlin a little over a week ago; so much that I didn’t notice my phone was missing until the end of the night. Shake your head and say it couldn’t happen to you. I thought the same thing until it did. Normally, I keep my phone in one of my front pockets, but I was wearing a coat that covered the pocket, making it a bit more difficult to grab my phone quickly to check Google Maps. Since my coat has a side access pocket in the chest, I stowed my phone there while walking around. I’m guessing a skillful thief at the last bar spotted my phone in that side pocket and was able to slide it out without me knowing. I was in a crowded room and often looking to one side as I talked to different people. Self-shaming thoughts aside, sometimes it happens.

...
MCE Conference 2015 - Automated Testing for Modern Android Applications Feb 08, 2015

It was an honor to speak at and attend MCE Conference in Warsaw last week. I participated in a workshop where I learned about prototyping with Android and Arduinos. I attended talks about Groovy, Kotlin, Proguard, design, scaling apps for emerging markets, and some handy new libraries.

That alone easily makes MCE one of the best conferences I’ve been to. On top of all that, the networking with fellow speakers and attendees was a personal highlight. To everyone I met, I hope to stay in touch until our paths cross again. And I hope you caught up on your sleep!

...
Running Shell Commands with Gradle and a Better Way to Delombok Jan 22, 2015

A few months ago, I posted about how to use Gradle tasks to “delombok” code using Lombok annotations before generating Javadocs. My solution for running the delombok task used Ant and was based on what I found after the requisite Google & StackOverflow searching. This worked just fine until Android Studio 1.0 and the associated Gradle build tools were released at the end of the year.

The crux of the problem appeared to be a change in the way dependencies are merged during compilation. Countless “package does not exist errors” were causing the delombok task to fail. I first attempted to solve this by changing the way the classpath was built in the task. While I was able to reduce the number of errors, I didn’t succeed in completely fixing the problem. All the while, running the delombok task directly from the command line with java -jar build-libs/lombok.jar delombok src -d build/src-delomboked ran successfully.

...
Top 10 Albums of 2014 Dec 26, 2014

The end of another year means it’s time for the annual Top 10 Favorite Albums list.

  1. Ty Segall - Manipulator While not the leader in sheer track plays via my Google Play Music account, this album is perfect all the way through. It certainly spent a lot of time on my turntable as well.
  2. Nothing - Guilty of Everything A wonderful example of the specific brand of rock music I love. Heavily MBV influenced wall of sound guitars. They were almost deafeningly loud when I saw them at Fitzgerald’s over the summer.
  3. Whirr - Sway One of the members of Nothing also founded Whirr. As you might expect, they have a similar sound. Similarly awesome.
  4. Sturgill Simpson - Metamodern Sounds in Country Music Like a modern day Waylon Jennings. While I’m not a big country fan, I can appreciate honest, heartfelt songs. These are.
  5. Spoon - They Want My Soul Such a consistent band. Their sound evolves slightly with each album, yet they always sound like Spoon.
  6. Meatbodies - Meatbodies Ty Segall’s Fuzz band mate Chad Ubovich also helms Meatbodies. Psych rock, fuzz, reverb, etc. Thee Oh Sees/Ty Segall type rock n’ roll.
  7. Parquet Courts - Sunbathing Animal Their slacker rock sound reminds me a bit of Pavement. Simple yet catchy songs.
  8. Cheatahs - Cheatahs On par with the Nothing and Whirr albums on the list, more fuzzy droning shoegaze-y goodness.
  9. Schoolboy Q - Oxymoron I continued exploring hip-hop this year and this album led the pack. “Los Awesome” is like a modern day “California Love”. “Collard Greens” features Kendrick Lamar and name checks Houston. And more. What else do you need?
  10. Vince Staples - Hell Can Wait Vince Staples has collaborated with Earl Sweatshirt (whose “Doris” album was on my list last year) and toured this year with Schoolboy Q. Apparently my ear is also finely tuned for a specific style of hip-hop. Whatever the case, this album will get your head nodding if you’re into that sort of thing.

I made a YouTube playlist with one of my favorite songs from each album. Enjoy!

...
Music Library 3.0 - Material Design Update Nov 02, 2014 Music Library I started developing [Music Library](https://play.google.com/store/apps/details?id=com.dandydev.medialibrary) about four years ago when I wanted an app for organizing my record collection. Armed with my Nexus One, Eclipse, and a copy of Apress' [Pro Android](http://www.amazon.com/gp/product/1430246804/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1430246804&linkCode=as2&tag=slacod-20&linkId=FMLK73AOGDPPJEM3), I spent my nights and weekends learning the inner workings of my now-favorite mobile OS.

Over the years, Music Library has been a playground of sorts for exploring various open source libraries, patterns, and best practices. While there is still a fair amount of code I would write differently today (I’m looking at you, ContentProvider), the app has been and continues to be an enjoyable side project.

...
BABBQ5 - Automated Testing for Modern Android Applications Oct 17, 2014

This is my third year to attend and present at the Big Android BBQ. My talk this year showed how to prepare an Android app for automated testing using mocking, dependency injection, and Google’s super fast Espresso test runner. You can find the presentation on Speaker Deck and the sample code on GitHub.

Hosting Android Dependencies on GitHub Oct 05, 2014

As I mentioned in my last post, I’m developing an SDK at work. The libraries I use most frequently in my apps are all included as Maven dependencies. Adding a line to my build.gradle file is much preferred to downloading a JAR file. To make the SDK as easy as possible for developers to include in their projects, I wanted to deliver it the same way.

Maven Central is the de facto repository for open source library hosting. Since the SDK I’m developing is part of a product and as such will not be open source, I needed to find another place to host the binary that would still allow it to be included via Maven.

...
Delombok and Javadoc with Gradle Sep 29, 2014

I recently had my first experience working with Javadoc to generate documentation for an SDK I’ve been developing at work. In general, I’m in the “clean code doesn’t need comments” camp, but SDKs tend to be a limited view into a larger abstraction, so good documentation is a necessity.

Javadoc has been around since the introduction of the Java language, so I won’t include a primer here. If you want to learn more, Oracle has you covered.

...
Android's Material Design and The Bauhaus Jul 13, 2014

Since Android Gingerbread (v2.3), loyalists know that each version has an Easter egg that can be accessed by repeatedly tapping the version number on the Settings > About screen. The Android “L” Preview is no exception.

While test driving the new version, I naturally had to see what Google had hidden for me in their latest release. Previous versions have had everything from gingerbread zombies to Nyandroids and a pile of jelly beans. The Android “L” Preview build has a simple animation of random overlapping red and blue rectangles. Several Android blogs mentioned this, but dismissed it as mysterious and strange. While these random rectangles are clearly the same used by Google’s WebDriver Torso YouTube video quality testing, so far everyone seems to have missed the most obvious explanation.

...
Fun with Android Wear Jul 12, 2014

Deutsch UhrI got my LG G Android Wear smart watch earlier this week and dove right into developing for it.

My first project was Deutsch Uhr, a text-based German language watch face inspired by my favorite Pebble watch face. I had fun adding animations for the hour/minute/day changes and learning what makes a Wear app tick (pun intended, I always do). A big thanks to my friend Daniel Ward for help getting started. Be sure to check out his Binary Watch Face, which was the first Android Wear watch face to appear on Google Play a couple weeks ago.

...