It’s the time of the year when Advent of Code has gotten too elfing hard and I use what’s left of the year’s productive energy to publish my list of favorite albums. I discovered a few new artists/groups this year, but an AI trained only on previous years’ lists could have correctly guessed half of these: Ty Segall - Three Bells Another batch of perfectly baked psych…
You’d think I’d do more with a prestigious domain name like andydyer.org than post a list of my favorite albums once a year. Someday, perhaps. This year I included several albums from 2022. I listened to them so many times that it felt weird to exclude them solely based on their release date. DoMi & JD Beck - NOT TiGHT (2022) Instant favorite. So good! The classic jazz influences are…
This year’s top albums list is a mix of chill & aggressive, ranging from folky Americana, to psych rock, and even punk. While past favorites Kendrick Lamar & Earl Sweatshirt both released long-awaited albums, I did not find myself returning to them the way I did with their previous releases. This list is probably the first that has included a new mix of an album that was released in a…
This year I said farewell to Berlin, road tripped around southern Germany, and moved to sunny Colorado. Here’s my list of favorite albums that soundtracked it all: Mdou Moctar - Afrique Victime My first concert in over a year and a half, Mdou Moctar did not disappoint. While the guitar playing is undoubtedly the feature, be sure to appreciate the skill of the drummer as well. Night Beats -…
Intro As promised in my last post , it’s time to use our family tree DSL to spoil the plot of Netflix’s Dark series ! 😈 To quickly recap, we have a small but functional (my puns are always intended) DSL for building a family tree in Kotlin: The Dark family trees in code The family trees are of course the focus of the series as they are revealed to us piecemeal; episode by episode,…
Originally published on ProAndroidDev Why build a DSL? Ever since first getting into Kotlin, I’ve known it has a few things that makes building domain-specific languages (DSLs) easier. I’ve read the mind-expanding type-safe builders guide for building a DSL for HTML, but until recently I hadn’t found a good use case for building a DSL of my own. My team at Zalando maintains…
Originally published on the Zalando Engineering Blog Introduction The CSS Flexible Box Layout specification (AKA flexbox) is a useful abstraction for describing layouts in a platform agnostic way. For this reason, it is widely used on the web and even on mobile . Readers familiar with ConstraintLayout can think of flexbox as conceptually similar to the Flow virtual layout it supports. This type of…
This year was full of unexpected surprises, disappointments, and more for everyone, but music was here to comfort us throughout. Here’s my list of favorite albums for the year: Hum - Inlet Anyone who’s talked music with me long enough has heard me express my adoration for Hum. They were the first/one of the first bands I’ve seen live . Their particular brand of space…
As previously outlined in my talk at Mobius Conference in Saint Petersburg last year, our team at Zalando is building a server-driven UI platform we call AppCraft. AppCraft allows us to add or update screens in our app with only server changes instead of the normal app release constrained way of doing things. On the client side, we are building every screen the same way: fetch layout & data from…
Time files and it turns out it’s been several years since I last shared my favorite albums of the year. Despite the lack of posts, I still keep a list every year and decided it’s time once again to highlight some of the albums I’ve enjoyed most: Oh Sees - Face Stabber Any year that includes an Oh Sees release will find it in my top albums list , so here it is. I also see them…
It was a pleasure speaking at Mobius Conference in Saint Petersburg this past May. I never got around to finishing the transcript of the talk I intended to write, but you can find the slides on Speaker Deck and the video on YouTube :
What is Biografy? Biografy is a lifelogging app that automatically builds a timeline of each day. The Events view logs events from various apps including music, podcasts, videos, calls and chats. Each event includes rich detail such as the time, activity (stationary, walking, biking, etc.), and location/place. The Motion view lists car/transit trips, bike rides, runs, and walks. With the Map view,…
Intro When new technologies start gaining momentum in the Android community, the pragmatic (or lazy) among us eventually have to ask ourselves, “Is it worth it?” After the initial arrival and departure of the hype train, some of these become trusted tools we use in almost every app. Think RxJava and Dagger . React Native may be on its way to earning a place in the same club. Once we get past the…
I’ve lived in Berlin for a bit more than six months now. Here’s a list of some of the things I’ve learned: It is possible to survive a summer without air conditioning. It’s also possible to go all summer without a mosquito bite. I don’t miss having a car. Public transit is great here so I typically only need one to haul things like furniture. And I can rent one on…
Anyone who has talked to me for more than 10 minutes has probably heard me mention my love for Berlin. I first visited the city about six years ago and almost immediately resolved to make it my home one day. I’m thrilled to finally announce that it’s happening ! I’ll be joining Zalando in Berlin next month to do Android and hopefully step up my fashion game a bit. Radical Agility…
This was my third time attending the Big Android BBQ in Hurst, TX and my third time to present at it. Perhaps my favorite thing about the conference (aside from the obvious BBQ) is reconnecting with old friends and making new ones. This year I’ve had the pleasure of meeting people from all over the world and learning that we know a lot of the same people. Small world, indeed.
I presented “Things That Suck About Android Development” at this year’s mdevcon conference in Amsterdam. It’s a great conference in an amazing city. I highly recommend it to anyone developing mobile apps. The title is admittedly a bit sensational, but my goal was to highlight many of the painful parts about developing for Android and how to avoid/fix them. The slides are…
I’m a bit late with my annual Top 10 list, but here it is roughly ranked by Google Music play count: Earl Sweatshirt - I Don’t Like Shit, I Don’t Go Outside I was finally lucky enough to see him live and he didn’t disappoint. Another great release. This soundtracked numerous skateboard and chill sessions. Vince Staples - Summertime ‘06 His “Hell Can Wait”…
Before the Design Support Library was announced at Google I/O last month, I had numerous third party libraries in my projects for various elements of Material Design. I’ve enjoyed replacing the nav drawer, tabs, and parallax scrolling libraries with their support library counterparts. However, on one of my projects, we needed an expanding floating action button (FAB) similar to the one in…
I’ve had a pretty big secret for the past month or so; something that only my friends and family know about. We’ve all been there, sneaking around interviewing for a new job like we’re having an affair. Only this time, it was different. As an Android developer, this was like trying out for the majors. No…seriously, y’all…Google invited me to interview. My…
I’ve been working with Firebase lately in preparation for adding data synchronization to my Music Library app. Their docs did a great job of getting me set up. Using the sample app as a guide, I even got Google+ OAuth working without much trouble. From there, it didn’t take long to load data into a Firebase instance partitioned by Google account. All that was left was to query the data…
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…
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…
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 end of another year means it’s time for the annual Top 10 Favorite Albums list. 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. Nothing - Guilty of Everything A wonderful example of the specific brand of rock music I love. Heavily MBV…
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…
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 .
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…
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…
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…
I 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…
This year’s Google I/O developer conference once again gave developers plenty to be excited about. As expected, we heard about the next release of the Android operating system, Android Wear smart watches, and updated development tools. Rumored products & services such as Android TV, Android Auto, and Google Fit were also announced. Perhaps the most exciting and far-reaching announcement was the…
I’m thrilled to be speaking at Droidcon Berlin this year. I fell in love with the city on my first visit and the conference was a perfect reason for another visit. Attempts to try out my very basic German skills have shown me that I have a long way to go. However, I am proud to say that I have managed to make a few purchases without panicking and falling back to English.
I gave a two hour tutorial on developing for Android at work today for our weekly tech talk. Similar in style to my coworker Aaron Ortbals’ tutorial on Ember.js , I showed how to build a client for GitHub’s Events API . Topics included: Project setup Gradle dependencies API requests & JSON parsing Activities & fragments Lists, adapters, and custom item layouts You can find the source…
Shortly after getting a Pebble Smartwatch this past Christmas, my coworker and all-around-cool-dude [Matthew Morey](http://matthewmorey.com/) asked me if I'd be interested in developing the Android version of his [Wrist Presenter iOS app](http://matthewmorey.com/wrist-presenter/). Luckily, he already had a rock solid Pebble app developed, so I didn't have to flex my meager C programming skills.…
Why a new app? When I first decided to get into Android development, I created the Music Library app to catalog my vinyl collection. It served me well as I learned the ins and outs of Android programming including content providers , interacting with other applications via intents , working with the file system to save/load images, making API requests, etc. In order to test the workings of the…
Each year, I keep a list of albums that I find myself listening to frequently. This is the time of year when I review the list and pick my top 10. I ventured into hip-hop and electronic music a bit more this year. Psych rock and 90s style fuzz are also well represented. My Bloody Valentine - MBV Disclosure - Settle Swearin’ - Dust in the Gold Sack Weed - Deserve Thee Oh Sees - Floating…
When I initially needed to integrate OAuth request signing with Volley in my Android app, I used the Signpost library . It was fairly straightforward to build a URL, pass it to the Signpost OAuthConsumer, and retrieve a new string with the appropriate OAuth parameters added. Unfortunately, as you can see from the commit history , there has been very little activity over the past year.…
I’m giving another Intro to Android Programming talk at TechStreet Houston today. The slides are very similar to my previous talk at Houston TechFest, but here is the link for today’s presentation.
T-Mobile reception is still terrible at the conference center. Alcohol purchases spike in the City of Hurst as a result of the conference. The guys from Willow Tree Apps have released some awesome Android open source libraries ( BetterPickers , OAK , and RPatch ) It’s worth the short drive to Roots Coffee each morning. High Roller makes adult size big wheels. They are a ton of fun to ride.…
This is my second year to speak at the Big Android BBQ in Hurst, TX. My talk covered a slew of handy open source libraries to accelerate the development of modern Android applications. The slides are available on Google Drive . I’m having a blast at the conference. The sessions so far have been great. I hope to see all of you here again next year!
I gave an Intro to Android Programming presentation today at Houston TechFest . The slides are available on Google Drive . Thanks to everyone who attended. Keep Android trill!
I’ll be giving a talk on migrating a custom Eclipse/Ant build to Android Studio/Gradle at tonight’s Houston Android Developers meetup . The slides are available on Google Drive . I hope to see you there!
I finally got around to registering a domain name and setting up a basic Octopress site. I’ll be posting here about music/code/coffee/beer/life releated stuff when the mood strikes.
When working with the GridView in an Android app recently, I ran into a very strange behavior around setting the selected state for a view created in my ArrayAdapter's getView() method. I'm using selectors to handle the drawable states and everything works properly when tapping a list item to select/tapping again to unselect. When debugging the ArrayAdapter's getView() method, I could see that the…
It's been over a year since I've posted here, but I've been busy delving into Android and Ruby on Rails among other things. To get back into blogging (hopefully more regularly...we'll see), I thought I'd share an interesting JavaScript exercise I was asked to complete as part of a job interview recently. The task was to build a functional queue in JavaScript. A functional queue is a queue (first…
Since I put together my inaugural Top 10 list last year, I may as well make it a tradition. Luckily I had the foresight to keep a running list in Evernote throughout the year, so the tough part was putting them in order. Some may argue about the order of the albums on the list or the exclusion of others. I'd love to hear your opinions. So without any further jibba jabba , here's my Top 10 Albums…
I didn't take much of my vacation time this year, so I'm left with thirteen days of vacation to take in December. In an effort to make the most of this bounty of time off, I made a list of things to do. Thanks to Jamie for suggesting I make a list after patiently enduring my first couple brainstorming sessions. Here's the list in no particular order: Triumphant return to homebrewing - Brew an…
Any good trip needs a soundtrack. With this in mind, I created a mix CD with the following tracks. All of the bands except where noted hail from Montreal or at least Canada. I've included links to listen to the tracks on YouTube. No Celine Dion or Bryan Adams will be found here, only the coolest indie bands Canada has to offer. These are in no particular order. I know, I know... the art of a good…
Since my friend Greg asked for it, here's a review of The Flaming Lips' "New Year's Eve Freakout" as their latest album, "Embryonic", spins on the turntable. The last time I saw the Lips was in high school just after the release of "Clouds Taste Metallic". That experience and word-of-mouth since prepared me for the celebratory chaos that is a Flaming Lips show. Joe Mathlete of 29-95.com did a very…