Android Application Development
Engineering exceptional Android experiences means leveraging every bit of functionality Android has to offer, and that’s exactly what we do.
The foundation of Android development is built on Java – both a blessing and a curse for companies looking to create an Android app. Java is the one of the most popular languages, and is often one of the first taught to developers in school. What this translates to is a sea of developers that all claim to understand and be proficient in Java. This volume makes it difficult to differentiate between merely competent and highly talented Android developers. The other complication, and what most companies don’t realize, is that the ability to write Java applications often translates poorly to writing Android apps, for example:
- Common Java application architecture has no place in the Android Framework. Android apps have to be fast – 60fps fast. The days of acceptable laggy interfaces are long gone in the mobile landscape. Getting that type of performance across the ~20,000 android devices in existence isn’t easy and requires an incredibly amount of attention to detail coupled with deep QA resources.
- Android apps need to be memory efficient. The early android devices gave 16MB to apps and it’s not uncommon to see devices today that only give 60MB to each individual app to run. If you ask the average Java developer what their last application’s memory footprint is they either will not know or it’ll be far above that.
- Android apps need to be able to close and open at any time and at any place in the app. Architecting for that isn’t something a traditional Java developer does day to day and it’s not something he or she will be able to flip on a dime and pick up right away.
These requirements don’t translate to traditional Java applications and the Android framework itself doesn’t allow for traditional application design. Even the UI framework is entirely specific to Android. The way Android is structured, it could be argued that you’re better off hiring someone with no Java experience, who will take the time to really learn the Android Framework, instead of an experienced Java developer who will try to force their experience onto the App.
Finding A Great Android Developer
So how do you hire a top Android application development company? Of course look at their experience and capabilities, but the devil is really in the details. Shoddy software is the result of cut corners that the client often cannot see — you need an Android team that takes pride in its work and makes sure every application is highly performant and maintainable. So what to look for? Some examples:
- The team should be tightly integrated with the UX team. There are significant gains to be had by designing apps well for the Android platform and a successful Android team helps guide the UX team in this manner. If the Android team isn’t fighting for better designs for their platform then they’re not experienced enough to trust.
- The team should be tightly integrated with the QA team. With 20,000 potential devices your apps may run on, a successful Android team needs to have a strong affinity towards testing and a should be working with QA daily. Having a strong testing suite built around your app is critical to the success of your app and ensuring the team can focus on building great features instead of playing whack-a-mole with bugs.
- The team should be security focused. Avoiding security issues up front can save development time and results in a better product. While external security scans can turn up some issues, a security issue in your app is enough to ruin your reputation and it’s not worth the risk to employ a team that’s going to treat that as a low priority.
- The team should be efficient. Android teams need to have a desire to make great apps, but at the same time no one needs to make a $10,000 button. A successful Android team knows the expansive list of effective open source libraries that can speed up development and knows when and how to leverage them.
- The team should have quality safeguards in place during development. This means tools and libraries that report back when an app fails to meet appropriate CPU and memory profiles. It’s hard for designers and users on modern devices to reproduce these lags and crashes, but your users on low end devices will suffer. Without these tools in place your product will either be subpar or your QA team will have to spend countless hours verifying your app on a wide range of devices.
Our Android Experience
We’ve been designing and developing Android apps since the early days of Cupcake. In that time we have:
- Developed hundreds of Android apps
- Developed Android TV apps
- Created a custom embedded Android ROM
- Engineered wearable apps for Android
- Developed Chromecast apps (described by a Google employee as, “the best Chromecast integration we’ve seen to date”)
We have created internal Android apps for enterprise and apps for consumers. We’ve created apps that millions of mothers use to manage their pregnancy, and Android applications that stream videos to millions of people. If there’s something you can do with an Android device, we have done it before and we can do again for your app too.