Changing How App Developers Diagnose Software Bugs
Today there are more than 1.6 million Android apps on GooglePlay, a number that has more than doubled in the last three years. Successful apps are sleek, fluid, and, above all, fast. App developers can spend up to 90 percent of their app optimization time searching for the software bugs that eat away at app performance.
Enter NimbleDroid, an app profiling service for Android created by Junfeng Yang, an Associate Professor of Computer Science at Columbia University. NimbleDroid automates the process of diagnosing software bugs so that developers can quickly correct them, leaving their time open to focus on an app’s core design and features.
NimbleDroid is among more than two dozen new companies with patented intellectual property to come out of Columbia in the past year.
“Columbia University is very pleased to be working with NimbleDroid. We want to see faculty start-ups succeed and are excited about the research and work happening in this space,” says Greg Maskel, a licensing officer with Columbia Technology Ventures who manages the intellectual property side of NimbleDroid’s patent-pending technology.
NimbleDroid is the only profiling service available for mobile apps. “It’s already out there, you can use it today,” says Yang. “Our primary goal here is just to help as many people as possible.” NimbleDroid, which is currently in beta, has already profiled more than 11,000 Android apps for bugs that affect app start-up time, and the company has development relationships with many large companies including Yahoo.
Anyone can use their website (nimbledroid.com) to profile their app already in Google Play, upload multiple versions of apps they are creating, track app performance across versions to avoid performance regression, and compare their app’s performance with competitors’. “We don’t wait until the users get annoyed by crashes or performance problems. We want to detect bugs preemptively,” Yang says.
NimbleDroid automatically provides error diagnostics that would currently take even the most adept programmer hundreds of hours to replicate manually. The service uses proprietary technology developed by Yang’s research group at Columbia to track every operation the app makes without perturbing its normal function. For every app NimbleDroid profiles, “the app runs as is, as if it were not tracked,” explains Yang. “That is crucial for gathering fine-grained and truthful data.”
NimbleDroid collects data on thousands of apps efficiently using a cloud of devices that continuously run apps queued up for profiling. In addition to its data collection technology, it also uses proprietary technology for rapidly mining and analyzing the huge amounts of data it collects. This provides developers with essential information about errors in their own code and in any third-party library code they may be using. The NimbleDroid team is actively working to grow the service to seamlessly integrate with the app build process, to work in a variety of app usage scenarios, and to automatically correct common code errors. The company also wants the knowledge base it has developed to be an educational tool for developers, whether they have been writing Android apps from the beginning or are just learning app design. Yang says that in the future “we’ll be the one stop shop while you are building your app. You’ll come to us, we’ll take your app, and we’ll do all of the things we can do to make it faster, to make it more reliable, to make it better.”
NimbleDroid is currently seeking to expand its reach. Yang and his team have been making the rounds at Android development conferences, most recently at AnDevCon in Boston and DroidCon NYC, which the company also sponsored. They will also present at the upcoming AnDevCom in Santa Clara this December.