Insights on Scaling Android Development

Have you ever wondered how the giants who write Android applications, with millions of global users, go about writing their apps?  How they test or how they coordinate builds?  How do they go about managing features and releases, and, what about providing support for the fragmented ecosystem of devices? We put together a panel of experts featuring speakers from Cyanogen Inc, Amazon, Twitter, Square, and Eventbrite, among others, to ask some of these tough questions.

Watch the full video below, or use the index to jump to some of the key topics discussed

Video Index
  • (00:00:15) - Introduction to panelists / What version of Android did you start with?
  • (00:04:39) - What does it mean to be “Android at scale?”
  • (00:10:21) - Managing teams and a huge number of features
  • (00:16:59) - Rolling out features to massive user bases
  • (00:20:02) - What are your strategies for testing?
  • (00:23:40) - How do you deal with test flakiness?
  • (00:25:56) - Why are you moving from Robotium to Espresso? Can you elaborate the decisions and benefits of Espresso?
  • (00:29:14) - Which tools are you using for testing?
  • (00:33:32) - How have you been designing your app for testability?
  • (00:40:29) - What about testing at the embedded levels?
  • (00:41:24) - Do you also test on external services?
  • (00:44:18) - What alternative architectures are Android devs using when considering scale?
  • (00:50:08) - Is anybody actively using reactive Java, or reactive stye programming, in their architectures at scale right now?
  • (00:52:29) - How do you deal with Android at scale when you have a worldwide customer base? How is that affecting your practices and what are you doing?
  • (01:00:53) - Can you touch on how your organization engages with the open source community?
  • (01:10:38) - What are some of the libraries you consider indispensable? What are important things to think about when deciding on and/ or using a library?
  • (01:13:23) - How do analytics help in building better apps?
  • (01:22:57) - What are your favorite resources for learning Android?
  • (01:29:40) - How many of you are doing hybrid apps, right now, where you're making use of the power of some of the JavaScript frameworks … and bringing them into Android?
  • (01:32:32) -"It seems like our designers only understand iOS, how can we get our designers to understand Android?"
  • (01:37:42) - When moving from a multi-activity application architecture, to a single-activity app, what are your considerations when working with larger teams and scaling for more users?
  • (01:40:23) - What do you see as the future of Android and what are you excited about? What makes a hirable Android developer?

About the Event

ProTech teamed up with Sasa Gargenta, from the SF Android User Group, and AnDevCon to put together a panel of really talented developers from some of the top companies in the Android space. The cast includes:

  • Howard Harte from Cyanogen, Inc. (the creators of CyanogenMod)
  • Jake Wharton from Square
  • Ty Smith from Twitter
  • Juan Gomez from Eventbrite
  • Mike Hines from Amazon
  • Larry Schiefer from HiQES, and
  • Dave Smith from Possible Mobile (delivering apps for the TV and sports broadcasting industries.)

As the moderator, my favorite parts of the discussions centered around design, support, testing, and useful third party tools. Espresso was by far the most popular testing framework. For companies looking to adopt a testing framework this is a great place to start. Further buzz from the group was around Crashlytics and Twitter Fabric, which allows for real time crash reporting, usage metrics, and customer management (and it’s free).

When it comes to open source libraries, Dagger and ButterKnife were discussed as a very popular way to achieve dependency injection within your Android applications. Ty Smith, an Android Engineer at Twitter, went on to elaborate on how you can achieve dependency injection in Android without a framework and achieve an MVC design that resolves many of the problems associated with threading in Android.

A very special thanks goes out to our panel, I found the discussion very informative and enlightening. I hope you do too!

Additional Android Resources

Published November 26, 2014