Mobile application development has come a long way since the first days of the App Store and the iPhone 3G. The basic tools for building apps have evolved. Xcode, Apple’s platform for building iOS apps, has gone through many iterations. Android Studio has taken over Eclipse as the preferred development environment for Android applications. Cross-platform tools like Xamarin, Phonegap and Titanium have come along as well.
It’s not enough, however, to just build an app and put it out in a store. Today’s apps are marketed, monitored and improved in a rapid cycle. Developers are now using a host of additional tools to help make their apps great, particularly the platform. This post looks at what types of tools are out there to help companies build great apps.
Getting The Word Out
Many companies use online advertisements to get their app out in the public consciousness. Marketing campaigns can be a good tool for getting new users to download the app. Tracking those campaigns is essential to understanding what works best when marketing the app. There are several tools available to the app developer to help track which campaigns generate which installs. Most of the ad providers offer APIs for tracking installs and app launches through ads. A simple code snippet added to the application enables this tracking. Usually it’s just a matter of setting up an app key and copying a small chunk of code for the intended platform. There are also third party tools to track advertising from multiple sources. Generally these work by creating a link that carries campaign information in its URL that is then used in the ad. The advantage of a third party tool is that it can integrate data from multiple campaigns and multiple advertising partners/paths. In many cases, these tools can also generate links for indirect marketing like referrals from current customers.
Understanding How The App Is Used
Once the app is out in the wild there are several questions that need to be answered about the application. How many people are using it and how to drive a bigger audience to the app? Are users converting to sales? What are users doing with the app, which parts are they using or ignoring? How is the app performing in the real world? What proposed changes work best in the real world? A host of tools exist to answer all these questions.
Several tools, like Google Analytics and Localytics, allow the app to generate events as a user navigates and uses the application. Screen transitions, button presses, list selections and other user choices can all generate events that are forward to the analytics providers servers. These tools are relatively simple to use. The SDK is added to the application code and initialized at app startup. A single line of code is then added at each point that represents a meaningful event in the app. This data can then be used in a variety of ways on the provider’s dashboard. Flow through the app can usually be seen in a graph. Sales conversions can be seen by tracking browsing events and purchasing events. Marketing plans can be made to target particular users based on their activity in the app. A company can even see which type of users are leaving and then tailor promotions to re-engage them.
Other tools, like New Relic, collect analytical data at a finer granularity. While high-level events can be tracked, lower-level mobile app performance data is also collected. Screen load times, web call usage and response times as well as other performance data gets sent to the server for analysis. Combined with data about the device, network and location of the user, this data can help isolate performance problems in the mobile application in the real world. This type of analytics can be used to identify a screen that performs poorly on a given version of iOS or a web call that is performing poorly and needs to be optimized as well as other performance issues that may be costing a company users and revenue. These tools are also relatively straight forward to use when building an app.
A/B testing is another tool that lets a company determine what their users like and don’t like. A/B testing tools allow the developer to present one version of an element to one set of users and a different version to another. For example, will users click on a “Buy Now” button more frequently if it is gray or red? Once the tool is installed, the developer can then specify the variations they want to test and the tool will present different options to different users and record the usage of each choice. The user doesn’t know there is a test going on, they just use the app normally. The resulting data can help guide decisions for future changes. Some of the available tools even enable remote updating of the app to use the the “winning” choice once a statistically significant amount of data is collected.
Pricing for all these tools varies from provider to provider. Generally there is some free level of usage for development or low volume use cases. Price will increase based on a variety of factors including how long the data is stored, how much data is generated and how many apps a company has.
Improving The Next Release
An application doesn’t generally just have one release. Bugs and crashes are found and new features need to be added. There are several tools available to help improve the next release and get it out quickly to testers and ultimately the world at large.
Some of the tools discussed in the previous section can help identify stability issues and areas for improvement in the next round of development. The performance analysis data generated by a tool like New Relic can point at areas that need work. New Relic as well as more dedicated crash tools like Crashlytics will collect crash data and allow the developer to see stack traces of crashes that occur in the field. Like many of these tools, it is a simple matter of adding the tool library to a project and then initializing the APIs at app startup.
As bugs are fixed and features are added, it is useful to get the new version of the app out to internal and external testers. Continuous integrations tools, like Jenkins, can automatically create new builds for test and release. They can even be used to update version strings and other data that changes from build to build. These tools can do scheduled builds, manual builds or builds triggered by changes in a source repository. This frees the developer to go back to improving the app instead of spending time building and distributing the app.
Additionally, tools are available to distribute applications to testers. Tools like TestFlight (for iOS) and HockeyApp (for iOS or Android) allow a company to notify a test group of a new release and allows the testers to download and install the app. Jenkins and other CI tools can integrate with these distribution tools to make the entire process seamless.
Building doesn’t just happen. It takes iteration and tuning to take a good idea and turn it into a great app. There are a wealth of tools available to help the app developer achieve this goal. From the first MVP release and initial push to get users to iterating and refining the app, there are tools for each stage that are essential for the mobile app developer.
Product EngineeringRead more
Product EngineeringRead more