As a mobile UX designer, I’m always on the lookout for the latest and greatest apps, both in terms of  design and functionality. I’ve downloaded hundreds of them to my smartphone throughout the years, so I’ve definitely seen my fair share of push notifications appear on my lock screen.

But I’ll admit it…one of the things I hate the most about apps are push notifications. The first place I usually go after downloading an app is my phone’s settings to see what notifications I’m supposed to get. And typically, I turn them off right then and there. Not because I don’t find notifications useful, but because so many apps get them wrong. Everyday, users are bombarded with useless notifications that distract them from their day-to-day activities and it gets downright annoying. Take now for instance, I literally just got the same notification on all my devices (two laptops, an iPod, and my phone) as I sit here writing.

Designing notifications to be useful and relevant for your users is extremely important, but how do you create them?

Continue Reading Article

Custom cameras! Chances are, if you’re an Android developer, something about that phrase makes you shudder. Thanks to all of the hardware variations out there, adding a customized camera feature to your app has been notoriously fragile and time-consuming, and in the end provides little to no benefit over the stock camera app.

Enter Lollipop; this past year saw the release of Android 5.0, and with it the brand new Camera2 framework. These new components are Google’s attempt to give developers much more granular control over your phone’s camera functionality. DSLR-like levels of  customization, such as native control over exposure and raw sensor capture are finally possible. And while this new approach requires a little more thought and legwork, the level of control you get in return is well worth the effort.

Let’s dive into the implementation.

Continue Reading Article

Recently, we’ve received an increasing number of requests for our mobile video delivery services, which is no surprise when you consider how quickly video delivery to mobile devices has exploded. Ooyala found that almost 40% of online video consumption took place via mobile in Q4, and Business Insider is projecting 73% per year growth in mobile video revenues over the next five years. That said, video delivery to mobile devices remains an incredibly complex problem, involving the mobile applications themselves, subscriber management, content management and processing, hosting, DRM, CDNs, etc. The complexity doesn’t stop there though, as you work through finding and implementing technical solutions to those issues, you’ll also want to consider your desktop, mobile web, game console, and interactive TV distribution architectures. Many of our clients are currently launching or re-launching their video delivery platform, and so are going through the very tedious process of creating an RFP.

Almost a year ago, I wrote a blog post called Best Practices for Writing a Great Mobile RFP. Since then, we’ve received  an overwhelming number of requests for this post in Word format, and have also heard it’s been a very helpful tool for people going through the process of finding a mobile solution provider. To address the increasing number requests for digital video and OTT services, we thought it would be good to create a blog post with an RFP template for this area of mobile too. And soon, we will be developing RFP templates for field sales, field service, and loyalty program applications as well. If you would like us to send you one or more of those templates when they’re completed or the mobile video / OTT RFP template below in Word format, feel free to fill out our contact form.

Continue Reading Article

Everyone knows filling out forms can be a tedious and mundane task, and doing so on a mobile device can be even worse with small touch areas and multiple fields to input information into. But by adding microinteractions and anticipating user behaviors, you can make form input on mobile a much better experience for your users. Here are a few interaction-design patterns that will go a long way towards getting you there:

Continue Reading Article

Update 4/17/15: I had originally wrongly assumed that AppCompat tinting did not work with  LayoutInflater.from(context) . That’s what I get for not testing my assumptions!


LayoutInflater is a fundamental component in Android. You must use it all the time to turn xml files into view hierarchies. There are several ways to get an instance of one, but it’s not always clear why you should prefer one way over another.

Perhaps the must fundamental way to obtain a LayoutInflater is with

Continue Reading Article

blog-post-image_easter-android_DBThink you know a lot about Android? Want to test your development skills? Download WillowTree’s Easter egg hunt and get cracking!

This past Saturday, we hosted an Easter egg hunt for developers at the Big Android Meat & Greet, hosted by IDEAA in Washington, D.C.  The hunt took the form of an Android app that you can now download to test your programming mettle. The app includes ten challenges that unlock achievements (“eggs”), each with their own unique Android-related problem to solve. Some of them are easy and can be tackled by anyone. Others are more difficult and may even require you to write your own code.  Seven other eggs are hidden and sprinkled throughout the app, so they’re a bit more challenging to find.  Make sure you are logged in with Google Play Games to earn the achievements.

Continue Reading Article

All you need is 15 minutes with any researcher, scientist, or physician to realize that data is a key component of their work. Spend another 15 minutes with them, and you’ll also come to understand how hard this data can be to come by (especially if the data must come from a human population). It’s because of this, that an entire multi-billion dollar industry exists, running studies, trials, and population tests for anyone with a stake in healthcare.

Apple introduced ResearchKit at their March 9th, 2015 event. While it certainly took a backseat to Apple Watch news for most of their customers, ResearchKit was important enough for Apple to give it a prominent mention during their live event:

What is ResearchKit?

Continue Reading Article

Every 8-10 years or so, a new technology/approach hits the web that fundamentally improves what we can do as developers. In 2005 the term “Ajax” first appeared, followed by jQuery in 2006. In 2014, Facebook made its React framework publicly available for web development, and earlier this year released versions targeting native mobile development. It’s starting to feel like this might be one of these big paradigm shifts as early Facebook React reviews have been incredibly positive…

Facebook React combines a bunch of attributes, most of which have been in some form of usage in various other frameworks like AngularJS, and takes them to the next level to drive real benefits for developers vs. frameworks like AngularJS. The result is the first real leap in web development in almost a decade.

So what problems was React trying to solve, and how does it do it?

Continue Reading Article

Recently, a friend of mine asked if I would take a look at an app he was developing. He didn’t have much design knowledge and needed advice on how to make the app better, and how he could create the best user experience possible. After talking with him more and taking a closer look at his app, I helped him make some basic design changes that will go a long way towards ensuring a positive user experience. Helping my friend made me think about others who might be struggling with app design, from developers and new designers to clients trying to learn how to communicate more effectively about design.

In today’s post, I’ll go over some basic tenets that make up the foundation of good design, drawing examples from my experience as a mobile UX Designer here at WillowTree. These principles should help you create the best user experience possible in your app, but they’re also applicable in many other areas of design as well.

Continue Reading Article

In the world of test automation, Selenium Webdriver has become the standard tool for testing web applications. Selenium’s success comes from its multi-platform support, ability to test across a wide variety of browsers, and it’s free. For the most part, you can write your tests in the language you feel most comfortable with, but it is a good idea to use one that already has a test framework such as: Java, C#, Python, or Ruby.

Testers often automate their first test cases with relative ease. You find the web page elements, you click or type as a user would, and then you assert something is true or false.

Continue Reading Article

It’s black and blue. That’s what Taylor Swift says. If that’s not enough for you, that’s also what the actual product listing says.

But what does Android see?

Using the Palette API, we can programmatically determine the colors of the dress. Spoiler alert: blue is definitely one of them. So if you’re on team black and blue, you’re probably feeling pretty good right now. And if you’re on team blue and gold, that’s not a team. Here’s the Very Scientific Method that we used (source code and a debug APK):

Continue Reading Article


A while back, the singular Roman Nurik released an open source live wallpaper called Muzei, which showcases famous works of art on your Android home screen and provides an API to integrate other image sources. Many aspects of this app immediately struck my fancy, but the first was the sleek and fluid logo shown when a user opens up the app.

Thanks to Muzei being open source, anyone can see how the drawing of this logo is accomplished. The util package contains most of the magic, with AnimatedMuzeiLogoFragment, AnimatedMuzeiLogoView, LogoPaths, MathUtil , and SvgPathParser being our classes of interest. Here’s a brief description of what these classes do:

Continue Reading Article