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…
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…
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.
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…
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
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…
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…
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…
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…
At MeetMe, we have a yearly internal conference wherein we invite folks internal and external to speak to the team (en masse & in breakouts) about emerging technology, trends, core company bits, etc. My core focus this year has been about spicing up our Android applications through exceptional UI/UX specifically using the grace and beauty of animations. As they say, sharing is caring, and I want…
So, I’ve been Googling for a while to find a clean, reasonable approach for putting a ViewPager inside of a ListView (or any vertically scrolling element). The problem with putting a ViewPager inside a ListView is that it takes only a small amount of vertical (Y) delta before the ListView begins to consume touch events instead of delegating to the child in order to enable the scrolling of…
Occasionally (and especially when receiving assets) I have the need to rename multiple files at once – often by some sort of pattern. For instance, I may need to rename all files with the string "_msg" in it where the file ends with ".png" . Previously, I might have manually found and renamed all of them or written some hack of a bash “for loop” to iterate over a find result.…
I was recently asked by Corey Latislaw to join her, Chuck Greb , and Arpit Mathur in helping organize the Android Alliance Philadelphia group. I am proud to announce that I have accepted the position as Social Media Director of Android Alliance Philadelphia and that I plan on helping to create an even more engaging community. I am excited to help bring in even more Android enthusiasts, creators,…
Last night, I gave a lightning talk alongside Matt Smollinger (a myYearbook iOS developer) and other local developers for Philly Tech Week 2012 . My talk centered around downloading, caching, and displaying images in an Android application. Check out Drowning in Images – Memory Management or all of my presentations . You can also watch a video of my presentation on YouTube . I have to thank…
Even though I have recent checkouts of the Android source on my local machine, I usually prefer a more convenient and quick way to look at the platform code. Looking through source files on my local machine can often be slow to find the appropriate files and unreasonable to keep open in an IDE all of the time. Instead, I’ve been using the copy of the Android source that is hosted on github .
[Update 2014-09-02] : Since this original post, a plugin has been made for Android Studio/IntelliJ by Michał Charmas with contributions from me as well. See android-parcelable-intellij-plugin for installation instructions. I have created a tool for making the methods needed for implementation of Android’s Parcelable interface within a pre-existing class. Open the parcelabler tool . Copy the…
At myYearbook, we produce our internal and release candidate builds for all of our Android applications using Jenkins CI . This allows us to automatically produce builds when changes are pushed to code review (through gerrit ) as well as when they’re merged upstream. This process is great for keeping integration clean and organized, but it means that QA, product development, and sometimes…
If your Motorola Droid 2 is in a state of constant loading (at the startup/splash screen) something has gone awry with your device. Unfortunately, the only way I know to resolve this is to perform a hard reset. This hard reset wipes the operating system of the device and reinstalls it from memory. You will lose your installed apps and have to re-download them. If you purchased apps, as long as you…
I’ve got the daemon running, accepting connections and commands. I’ve got a client together and running commands. It all works. More information to come….
The code is almost complete for the alpha version of XSLTD written in Scala. It’s not the prettiest bit of code, but it’s already accepting memcached protocol commands for XSL/XML storage and retrieval. I’m fighting with my HashMap right not to get the data in/out for those values, but it’s coming along nicely. If I stick around again tonight and fight through it, I should…
Let’s say that we are taking in a set of numeric ASCII codes from which we want to get the corresponding character. val charCode = 45 val character = charCode . toChar // Additionally, because of the way scala works, we could just do this, if it's a pre-determined value val character = 45. toChar
I was just browsing through Reddit and found this awesome cheat-sheet for Python . I’ve dabbled in Python in the past, and this will certainly be of use in the future. This cheat-sheet gives examples for the majority of basic language constructs.
Two nights ago, I posted about my costume, Raptor Jesus . Since then, I’ve painted the full head and gone to work with the costume. I used the female ends of zip ties for teeth, which ended up looking pretty good for the costume. I’m glad I thought of that. At work, I won funniest costume! With the prize ($100 gift card) I broke even on the cost of the costume. Pretty cool to be able…
I’ve been hard at work on my Halloween costume: Raptor Jesus. I’m going into this knowing that very few people will actually get my costume. At least for them, it will be fantastic. I started last night on the different parts that make up the head. Materials used: http://www.flickr.com/photos/55094601@N07/5112399974/ , http://www.flickr.com/photos/55094601@N07/5111800263/ Lower Jaw:…
I’ve recently been thinking about how I could get into embedded electronics and came across a cool open-source project called Arduino . Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. That blurb pretty…