Developers are drowning in tools. In fact, as of this March, there are 246 mobile product development tools on the market for just one operating system: Android.
Too many tools might sound like a great problem to have. But simply sorting through them all can feel like a full-time job. Somebody learning one new tool per day, including weekends, wouldn’t be finished until mid-November.
It’s overwhelming, we know. That’s why we’ve created this guide of our seven favorites. Not every tool for every job is listed, of course. But for the average app project, the following are our go-to tools:
Android Studio is the official integrated development environment (IDE) for Android development, born out of a partnership between Google and JetBrains. The latest version is Android Studio 2.3, which includes significant UI updates and testing features over the prior edition. Everything you need to construct a basic Android application comes built-in, including Gradle for building the app, emulators for developing it on multiple screen sizes and densities, and Android Monitor for debugging your application to name just a few.
Xcode is Apple’s development tool, and it's essentially your only option for iOS builds. It only runs on Mac OS X and isn’t as open to configuration and plug-ins as its Android counterpart. Hoping to improve its user interface, Apple released Xcode 8.2 late last year alongside its new MacBooks. Developers tend to have strong opinions about Xcode, but whether you love it or hate it, the tool features a unique “interface builder” functionality that lets users visually configure what they want to appear in the application.
If you’re building a mobile application, you'll need some sort of back-end framework where you create APIs, store data, and write business logic. Regardless of what language you use for your server-side code — probably Python, Javascript, or Ruby — you'll probably want to use a model-view- controller (MVC) framework even though you're not rendering webpages. These frameworks and their corresponding third-party libraries can help you set up basic mobile APIs with relative ease. As you might guess, Django is our personal favorite. We use it in our rapid-prototyping process because what takes days in some web languages can be done in minutes using Django. This allows us to spend more time perfecting the product's front-end functionality and less time wrestling with the back end.
OK, these are technically two tools, but we really couldn't choose between these excellent error-reporting platforms. When bugs start cropping up during beta testing and production, it's critical to unpack the errors. Where in the code did it originate? What was the user doing at the time? Crashlytics, which Google just bought from Twitter, generates reports based on the version of your application and gives you a heads up when it notices error spikes. Sentry is also a robust error-monitoring tool that works with many different front-end and back-end platforms.
New Relic, an application performance monitoring platform, is having its moment in the spotlight. Its stock rallied this January to its highest since its IPO in December 2014, and its customers include giants like Nike, Sony, ESPN, and even Healthcare.gov. Why is it so popular? Well, New Relic profiles both the back and front ends of an application to measure server latency. Knowing how long each part of the request took allows you to eliminate bottlenecks and improve performance.
Fastlane, an Android and iOS automation tool, is a favorite around our office. It's designed to automate some of the more tedious tasks involved with testing and deploying your app. It takes screenshots, handles code signing, and much more.
Whatever you're building, you'll need to test the codebase for front-end and back-end functionality. CircleCI, Travis CI, and Codeship are all solid options — in fact, we’ve used all three — but CircleCI stands out for its compatibility. Atlassian's BitBucket, HipChat, and JIRA all play well with it.
Use one of these tools to test your code every time a pull request or commit is made to the code repository. Because they run automated tests during development, continuous integration services help catch errors while protecting the existing codebase. Developers gain efficiency while end users get a bug-free experience.
It’s easy to get buried by the development tools out there. But with these seven in your back pocket, you’ll advance a long way toward that glorious finish line. For an even greater boost, check out our free whitepaper “The Ultimate Guide to Mobile App Design and Development.”