What We Learned About CI/CD Analyzing 75,000 Builds
What We Learned About CI/CD Analyzing 75,000 Builds
Check out these insights on how developers are using continuous integration and delivery.
Join the DZone community and get the full member experience.Join For Free
One can read a lot of why continuous integration is a powerful techniqueand how it can speed up your mobile app development process. However, we decided to dig deeper and analyze who are the users of a continuous integration tool tailored for mobile (confused about why CI for mobile is different than standard CI?) and what are their cases, needs and, most importantly, the benefits…in real numbers! We gathered data from Nevercode, a CI/CD tool for Android, iOS, React Native, Ionic and Cordova, and analyzed more than 75K builds from the first quarter of 2018. Here are the results.
What Is Continuous Integration (CI)
In short, continuous integration (CI) is a software development practice of merging developer build copies daily, if not multiple times a day, into a shared code repository. Each integration is verified by an automated build to detect errors and get to the root of the problem as soon as possible without losing track of the development process. Check out the top CI tools for mobile projects.
Who Is Using CI/CD Tools for Mobile?
Continuous integration as a software practice is nothing new to web developers. While the concept of CI remains the same, the practicalities of mobile CI are somewhat different. Learn more about why continuous integration focused on mobile is a smarter choice for your app development process. Spoiler alert: automatic setup, fast and furious delivery!
Now, let’s see what the user profile of a mobile-oriented continuous integration tool looks like.
Platforms: The Rise of Modern Programming Languages
Unsurprisingly, the most popular platforms built on Nevercode are still Android and iOS, each taking a massive one-third of all projects. Compared to the last quarter of 2017, the situation has definitely improved in favor of Android projects. Starting out at 30.5% last year, Android has taken the center stage with more than 37% of all builds while iOS has decreased it’s share to 32.4%.
The success of Android projects can be explained by the rising popularity of Kotlin. This relatively new programming language for JVM has taken the mobile development world by storm.
Realm Report states that “2018 will be the year of Kotlin and Android developers without Kotlin skills are at risk of being seen as dinosaurs very soon”.
Like that’s not good enough, Antonio Leiva sums up 12 hard-to-resist arguments why you should switch to Kotlin for programming Android apps. If you already decided to give Kotlin a go, Mladen Rakonjac from Infinum makes clear how to get started with Kotlin.
What do you think, will Kotlin kick Android developers without Kotlin skills out of office? Share your thoughts via Twitter.
Orta Therox from Artsy admits that React Native has been the right choice for their team and adds that “there are many apps that could have been created faster and cheaper by using React Native.” Orta recommends React Native especially for apps that are driven by an API. React Native is also great if you want to your app to have a unique look and feel to it. If you’re tempted to know more about React Native, check his comprehensive intro to React Native for an iOS developer. The Artsy Engineering team has also documented their journey, see what they learned in the last 2 years as a set of native developers using React Native.
Last but not least, the platform with the fewest number of apps is Ionic/Cordova (13.4%). At this point, Ionic is helping over 300,000 web developers a month build apps. The co-founder of Ionic Framework Max Lynch says, “We’re seeing a ton of excitement from the community around Progressive Web Apps, and using Ionic to ship apps both to the app stores, desktop/electron, and the web, with a single code base.” They’re currently working on v4 of Ionic, stated to release this summer, which sees all of Ionic’s components moving to standards-based Web Components. “These Web Components can now be used outside of Angular, enabling developers to build some of the highest-performance Progressive Web Apps in the industry.” Check out their website for more.
“We think the trend of Web Developers embracing web technology for mobile will only increase, and we think Progressive Web Apps have an incredibly bright future”
So, where do mobile app developers like to keep their repositories? Looking at Nevercode builds, we can conclude that still minor players in the field are Bluemix with 2.2%, VisualStudio with 4.1% and GitLab with 8.1%. It’s important to note that Bluemix and VisualStudio are fairly new players in the field and are already showing a promising trend. We are more than curious about how they are going to change the game.
The popularity of self-hosted Git solutions has slightly increased (by 5.6%) to 16.9%. The cloud solutions that mobile app developers love the most for hosting their repositories are still Bitbucket with 28.1% and GitHub with 40.3%.
CI/CD and Integrations
What are the top integrations that mobile app developers love to match with their continuous integration service?
One of the main benefits of a continuous integration tool is improved communication. When a build fails, the whole team will be notified so as to immediately get to the root of the problem. In this epic Fragmented podcast on CI/CD services, Donn Felker and Kaushik Gopal are taking CI/CD into pieces. “That’s my number one thing that I want!” comments Donn talking about the expectations for CI. Donn continues,
“ I do not want to pull the latest code and it does not build. And the next two hours I have to figure why it does not build. I want to be notified immediately!”
For this reason, the top of all the integrations is ruled by good old email with 24.5% and Slack with 20.9%, both of which help to improve the daily team communication.
The communication integrations are followed by distribution integrations. The third most popular integration among mobile app developers is iTunes (16%), followed by Google Play Store (10.5%). Let’s not forget that continuous integration together with the right delivery tools is a powerful combination. The cool thing about continuous integration and delivery is that you can fully automate the delivery process and meet happy end users faster. Every developer knows that healthy code means better sleep at night!
Not surprisingly, the third type of integrations that Nevercode users implement has to do with app performance reporting. It’s a well-known fact that the earlier in development lifecycle you catch the bug, the less it will cost you later. Period. That’s why Crashlytics for iOS with 12.2% and HockeyApp for Android and Cordova projects with 12.1% are popular tools among mobile app developers.
There’s another rising star on the block to look out for. From May 2018 Nevercode CI integrates with fastlane for native iOS apps. And this will be most probably a real game changer. The highly popular fastlane is an open-sourced command tool that helps to automate all the aspects of testing and deploying of applications. Already back in 2015, Felix Krause, the founder of fastlane, explained fastlane on DevChat.tv:
“fastlane tools is like a collection of tools that helps you with all kinds of things. Fastlane itself is a tool on top of these tools. It connects all fastlanetools and third-party tools into one workflow. You just define which tools and which steps to run and fastlane will execute them in the right order.”
The least frequently implemented integrations among Nevercode users are Testfairy (2.4%), a beta testing platform for Android and iOS, followed by Hipchat (0.9%) for internal messaging and Relution (0.5%) for mobility management.
Team and Projects Benefiting From CI
Now that we understand the mobile CI user profile, let’s see what kind of projects they have.
Building an awesome mobile app is often a professional team sport (respect for indie developers!), which is already evident in the great popularity of communication integrations. The majority of the teams using Nevercode CI have less than 5 developers. However, the importance of continuous integration for every mobile application project increases as the number of developers grows. The true benefit of continuous integration unlocks for Nevercode teams that have more than 20 team members.
What About Apps?
On average, one team builds 1-2 mobile apps on Nevercode. However, Nevercode also works successfully with teams that build over 20 apps by offering them custom solutions. That’s amazing, isn’t it!
Throughout the years, we have conducted several surveys to find out what are the common problems that motivate developers to look for mobile-focused CI/CD services. Nevercode users have spoken, and I will present you the main reasons:
"One tool to build them all"
No more code signing errors for real
Workflows are the real superpower of CI/CD pipeline
100% of visibility and traceability
Firebase Test Lab
First class support
Automatic setup and extremely feature rich
20% of Work Time Saved Every Day!
What about real numbers? I want to know how much I am winning, you might say. Fair enough.
In the first quarter of 2018, one mobile CI/CD tool on the example of Nevercode ran builds in total more than 1.5 million minutes. If we calculate the saved time for each team, we see that Nevercode is saving developers around 20% of a work day!
I other words, Nevercode is saving a team about 4 work days in a month! It makes almost 10 weeks in a year!
Like that’s not crazy enough, you’ll save a 2.5-month salary when you calculate it into money. That’s right, you will save some big bucks too!
Could you imagine where your product could be if you gained 20% more coding time…EVERY DAY?
Builds Under 10 Minutes
We can see that the majority of Nevercode builds take less than 10 minutes. Getting a build under 10 minutes is the ultimate golden nugget for developers with small/medium apps without big test suits. When a build takes longer than 10 minutes, developers must waste too much precious time and energy waiting. This results in less frequent merges and more risky deployment, and nobody wants that.
However, when it comes to complex projects and growing teams, build time inevitably increases. One needs to run tests on multiple devices, manage team collaboration and so on to optimize the workflow. Again, this is where a good CI/CD tool saves the day for mobile app teams. The data from Nevercode builds reveals that the average build duration is around 16 minutes from pushing new code to getting the build status report. This includes all these giant mobile app teams with more than 30 people and around 40 projects with tests! Not bad, not bad at all!
That’s one hell of a productivity tool for mobile app developers, right there. And the secret sauce to victory lies in automation. Automate all the routine and boring tasks and save more time for implementing new features.
What can we say about the average mobile CI/CD user? A mobile CI tool is implemented by developers who aim for quality and treasure every second of their work time. With Nevercode’s continuous integration & delivery tool, your team can save up to 20% of work time in a day as the builds run fast even for very large teams and projects with tests. A good mobile CI tool guarantees you a good night sleep and you can be confident that your code is secure and ready to ship! You just have one duty, developing the app and pushing the code. Everything else will be done by the CI/CD service. Work 20% smarter, not harder!
Published at DZone with permission of Bojana Ilic . See the original article here.
Opinions expressed by DZone contributors are their own.