Thoughts on Better Kotlin Practices

I recently joined a new company to continue my career in Android development and leadership. Part of that is seeing how people code, what the team has found valuable in the past for best practices, and sprinkling some of my own ideas in as time goes on. I thought I’d share some of my thoughts here so that others can see these and consider them as well. Kotlin Best Practices Only use destructuring on positional classes Destructuring can be a really clean way to unpack data, but it should be reserved for data types where the order of fields makes intuitive sense—namely, positional classes like Pair, Triple, or when splitting a string, e.g. ...

June 13, 2025 · 5 min · 991 words

Generate JUnit assertions from your JSON

Got some JSON you want to build into a model and test? It can be pretty tedious writing all of that code. Instead, why not generate the assert* code automatically? I’ve been writing code manually for a while now and finally decided to build something to write that boilerplate code for me. I’ve put up a live version for anyone to use, as well as open-sourced it on GitHub. Let me know what you think! ...

February 27, 2015 · 1 min · 110 words

Android Animations: Bring Your Application to Life

My Animation talk from Droidcon New York City 2014 Slides on SpeakerDeck Original keynote with animations Sample app for camera distance tip Video:

February 2, 2015 · 1 min · 23 words

Wi-Fi issues on Moto X 2nd Gen

I received my 2nd Gen Moto X today. During setup, I attempted to connect to our company’s Wi-Fi network to no avail. I was able to connect to another public Wi-Fi in the area but for some reason not to our typical Cisco WAP setup at work. All of the other devices we have at work are able to connect to the network, so I’m not sure what is going on. ...

September 26, 2014 · 4 min · 754 words

Android Animation — Bringing Your Applications to Life @ Droidcon NYC 2014

Last weekend, I gave a talk on animation on Android at the innaugural Droidcon NYC (2014). The talk was well-received and I got some tough questions. Nonetheless, I’m happy I did it and I’m posting the presentation for your viewing pleasure. I highly recommend checking out the actual Keynote file (linked to from the Speakerdeck site) if you can as it includes the videos/animations as opposed to just static images. ...

September 25, 2014 · 1 min · 87 words

Android Authority: Best resources for Android development

Whether you’re a seasoned professional or just beginning with Android development, this list of resources (including tools, libraries, and blogs) is useful for any developer or team on just about any project, big or small. Read more: Best resources for Android development

May 11, 2014 · 1 min · 42 words

Listing connected Android devices with OS version and model

I was wandering down the path of trying to associate the myriad of devices connected to my machine for debugging. I wanted to know very easily what the devices’ model and OS version were without having to manual check by disconnecting and reconnecting devices and using the process of elimination. One way to see this information is using a special flag with adb: adb devices -l This yields something like List of devices attached HT16JHX24920 device usb:14130000 015d2a506750081b device usb:14120000 product:nakasi model:Nexus_7 device:grouper 4d005e148cc950eb device usb:14112000 product:ja3gub model:GT_I9500 device:ja3g 0A3BC06A11010002 device usb:14140000 e08b84fd device usb:14113000 HT346W912280 device usb:14114000 Which as you can probably tell doesn’t give us all of the information we want, nor does it seem to work on every device. ...

April 9, 2014 · 1 min · 208 words

Making Borders for Views Using layer-list

Android is full of many ways to do things differently. One of those things happens to be making a border for a View. The common approach I’ve seen is for developers to have two Views. One View is the View with a background (be it solid, bitmap, or otherwise). The other View acts as a border, typically either 1px or 1dp in width or height, the other side matching the height or width of the other View. Although this is certainly an easy approach, at adds more to your layout than is likely necessary. ...

March 20, 2014 · 2 min · 269 words

A Better Parcelabler...

A little bit ago (okay, a long time ago) I wrote a blog post about a tool I wrote for creating Parcelable implementations for Android. At time of writing, I knew it wasn’t a great solution, but that at least it worked… Since then, I constantly put off writing what I thought would be a better solution: an IDE plugin. So last week, I embarked upon the journey of making a plugin for Android Studio. I immediately saw that something existed, but it was a bit older, and not quite as feature-packed as I had hoped. So, I took it upon myself to make some enhancements and submit a pull request. ...

February 10, 2014 · 1 min · 147 words

Moving to New Opportunities, New Things, New York...

Over six-and-a-half years ago, I joined a small startup, MeetMe (then myYearbook), of around 20 or 30 employees in the small, artsy town of New Hope, PA. Over the years, MeetMe provided me with many opportunities to grow and learn, allowing me to transition from a full stack web engineer to an Android engineer. I truly am grateful not only for the opportunities that I’ve been given, but also for the team that I’ve gotten to work with. ...

February 4, 2014 · 1 min · 172 words