In 2017 we continued talking to a lot of companies developing mobile apps and we also regularly analyzed a ton of behavioral data to understand how we could improve Bitrise to give the best experience for mobile developers. We've drawn our conclusions and thought it would be interesting to break them down into numbers and share the big picture with you.
Questions we asked our database included:
- What is the most popular platform?
- GitHub/Bitbucket/GitLab?
- What events are used most to trigger builds?
- How many apps do companies have and what is the average workflow count?
- How much time did builds run on Bitrise and what were their average runtime?
- How much cache did our users use?
- What integrations are most frequently used?
- Which 3rd party integrations are the most popular?
- Which steps failed the most times?
- How many times did companies do releases?
- How many times did companies deploy to their testers?
Hours saved this year

In 2017, your builds ran for 2,372,461,213 seconds, that is 27,459 days or 902 months or 75.2 years. So we saved developers around a world just about a lifetime.
This lifetime and all the other results presented below were compiled from the data taken from all the active apps of last year on Bitrise. We had plenty of apps, builds and customers to draw relevant conclusions on the state of app development in 2017.
Most popular platforms
A lot has changed compared to 2016, when of all the apps added to Bitrise 67% were iOS, 22% Android and 12% Xamarin. Since then Bitrise introduced out of the box support for more platforms, so now we have a more refined picture of platform distribution.
In 2017, unsurprisingly, the two most popular platforms were iOS with 44.3% and Android with 36.1%. Xamarin is still the third with 11%, while React Native apps came fourth with 6%. The platforms with the least number of apps are Ionic (1.2%), and MacOS and Cordova, both with 0.7%.

Git hosting in the cloud
No real change here since 2016. Just as we predicted, GitHub (53.3%) and Bitbucket (33.9%) are still the two major players in this field. GitLab has doubled its share from 2016's 2.5% to 5.2%, while Bitbucket grew 0.9%. GitHub lost 8.7% to either GitLab or self-hosted solutions.

Build Triggers
New builds can be started on Bitrise with the use of our Build Trigger API. Of the three types available, the most used event was Push, taking almost 3/4 of all the triggers. Builds started by pull requests compose almost the whole of the remaining 1/4. Only 1.8% of the builds are triggered by tags.

Apps and their owners
An average company has 2.35 apps on Bitrise. Most of these two apps naturally are iOS and Android as Bitrise supports both (and more). The median of apps per company is 1, and this might stay the same as now you can add your non-native cross-platform app as one project with multiple workflows and set up different stacks for the workflows instead of adding two separate projects.
Workflow count
As for workflows, an app has 2.58 workflows on average (median: 1). Two of these three are usually the test and deploy workflows but there are always apps that need one or more custom workflows.
The most workflows an app has is 73. If you own that app and read this, please tell us why you use so many!

Elite vs Standard build times on Bitrise ⏱
Standard
On our Virtual Machines belonging to our Standard plan (for Organizations), 3,248,140 builds ran for 2,040,301,414 seconds (23,614 days or 64.7 years) in 2017. An average build lasted 628 seconds (cca. 10.8 minutes), the median was 478 seconds (cca. 8 minutes).
Elite
VMs on Elite plan run on xServe machines (Mac: 4 CPUs, 2.93 GHz, 8 GB RAM, Linux: 4 CPUs, 2.6 GHz, 15 GB RAM). In 2017, 423,826 builds ran for 332,159,799 seconds (3,844 days or 10,5 years). An average build lasted 784 seconds (13 minutes), the median was 642 seconds (10.7 minutes).
Apps run on Elite VMs are usually more complex and take longer to build even on more powerful machines. For more information on our Elite plan, comparison of build times and more, click here.
Cache sizes
In September, we introduced a new step called Recursive Touch for Cache which forces Xcode to use cache by setting all file modification times under the given directory, so the files' modification times will be the same in consequent builds you start. (Read more about this here.) Cache:Pull and Cache:Push steps also got a facelift, resulting in serious speed increase. With these enhancements, you love to use cache: with a total of 1,354 GB cache, the average of build cache sizes is 1.4 GB. The biggest cache for an app on Bitrise was a staggering 66.2 GB!
About our steps/integrations 🌟
There are currently around 170 steps and integrations in the Bitrise ecosystem. Each of these steps are responsible for a small task, that can be inserted in the build workflow. These can range from running tests, archiving the app, deploying, releasing or notifying team members, among others.
The most used ones
Our Script step was run about 3.2 million times. This step is used when someone needs to run a custom command or install/update a tool which is not (yet) available on our virtual machines. Developers deployed to Bitrise on about 1.4 million occasions and used the Certificate and Profile Installer around 0.9 million times.

Most used third-party integrations
Our users love getting automated messages to their Slack channels: Slack is the most popular third-party integration with more than 800,000 runs in 2017. (Read more about using Slack with Bitrise here.)
The second most used integration is Hockeyapp, with close to 200,000 runs and Codecov comes third with almost 75,000.

Most used community steps
We’re very grateful to the community using Bitrise and most of all to those who contribute to our service. Our users can contribute to Bitrise by writing new steps or upgrading previous ones as all Bitrise steps are open source. The following steps were all written by the members of our community, thank you for all of them!
Yarn step was used more than 210,000 times, becoming the absolute top performed community step. Set Android Manifest Version and NVM came head to head with around 55,000 runs.

Most used steps per category
- Build
- Gradle runner
- Xcode archive
- Xamarin archive
- React Native bundle
- Xamarin builder

- Test
- Xcode test
- Gradle Unit test
- Codecov
- Xcode analyze
- Nunit runner

- Deploy
- Hockeyapp (iOS + Android)
- Bitrise deploy
- Fabric
- Deploy to iTunes connect
- Amazon s3 uploader
+1 Google Play deploy

- Notification
- Slack
- Hipchat
- Email with Mailgun

- Utility

Fail statistics of steps & integrations
The step that failed the most times is also the most used step: Script. Caching is the second and the third, with Cache:Push failing almost twice as many times as Cache:Pull. These are followed by fastlane and the next five in close proximity.
Oh, and there were 45 steps which never failed in 2017. 😎

Deploys & releases 🚀
Continuous integration and delivery practices let companies deploy and release their apps more rapidly than they would care to do manually. This means that developers can iterate more quickly and gather more feedback about bugs in their apps.
iOS apps were released to the App Store more than 48,000 times during last year (almost doubling 2016's stances), while almost 19,000 Android apps were released to the Google Play Store (the triple of 2016's number).
Counting averages here doesn't tell us too much, though. Digging deeper we see that individual or freelancer developers tend to release their apps only a few times a year, while bigger teams choose to do quick, periodic releases.

Meanwhile internal iOS and Android deploys happened close to 1,700,000 times (more than four times as much as in 2016, wow!). This lets companies test their apps with a fresh build running on their devices each time something is changed in an app.
Automate everything!
Some of the world's most interesting companies build their apps on Bitrise, like InVision, Grindr, Mapbox, Duolingo, Runkeeper, Citymapper, and Travelex along with tens of thousands of other startups, enterprises, and indie developers. We're proud to say that in 2017 we've saved 659,017 hours for all these companies altogether, 513,501 hours more than in 2016. That's almost 75 years saved in 1 year, as opposed to 17 in 2016!

We hope these insights were as interesting for you as for us. We love feedback, so please comment or share this article if you have any suggestions, or if we missed anything you might be interested in! We're proud to help so many great people saving countless hours and ensuring code quality, making sure that you have more time for your ideas and for your code.
We have a few big announcements to make in the coming months, so keep an eye out by following us on Twitter or be a part of our Discuss Bitrise community.
Happy building in 2018!