iOS Developer Survey Pt. 2 - Languages, Tools & Processes
We’ve continued to analyze Dave Verwer’s iOS Developer Community Survey, and some interesting trends have come to light. For an overview of the survey and the methodology used, check out part one of this series. Specifically, we’ve noticed that teams are generally writing platform-specific code, and their choice of development tools reflect that. Let’s dive right in and check out the tools of the trade, and what developers are using.
Programming Language Trends for iOS Development:
Swift is king in the world of iOS development. While Objective-C is clearly still a viable option for development in this arena, on a scale of 1 to 10 – 1 representing code bases entirely written in Objective-C and 10 representing code bases written entirely in Swift – personal projects of survey respondents averaged 8.9, and professional projects came in just behind that figure at a solid 8.
And Swift doesn’t look to be so popular just because it's commonly used. Respondents illustrated the general sentiment that Swift makes for a positive development experience. More than eighty percent of developers who completed the survey rated their current level of satisfaction with Swift at an 8 out of 10 or better.
Cross-platform vs. iOS-specific apps:
In light of the above, it may not come as a surprise that iOS-specific projects are far more popular than those that target multiple platforms. More than seventy-five percent of respondents whose team ships code for multiple platforms shared that they have entirely separate code bases for each platform they target.
Server Side Language/Architecture Trends:
While Swift is clearly the dominant choice in iOS client-side code, Swift on the server is a far less popular option – particularly in the professional projects of respondents. Sixty-five percent shared that their team has no interest in exploring Swift on the server.
In terms of application architecture, the model view controller (MVC) approach is by far the most popular, followed somewhat distantly by model view viewmodel (MVVM).
iOS User Interface Development:
UIKit is far and away the most popular tool for defining user interfaces for iOS apps. A whopping ninety-eight percent of respondents shared that they used UIKit in a project that has shipped in the past twelve months.
CI tools: Fastlane, Jenkins, Bazel, and Buck
What CI tools are the most popular among all developers? The results show that while a handful of CI tools may be the popular favorites, preference means there is a variety of tools used - and many developers are using more than one in their CI workflow.
The survey found that, overall, Fastlane (51.6%), xcodebuild (39.9%), and Jenkins (25.7%) reigned supreme for teams of all sizes. However, for smaller teams, Jenkins was the overwhelming favorite, with nearly half (43%) of those teams working with the popular open-source CI/CD tool.
As the teams grew, so did the usage of Jenkins; teams of 50+ saw slightly more than half (52%) using Jenkins - but also had a massive jump in Bazel and Buck usage. 21% used Bazel and/or Buck (while it is a 50/50 split, many used both!) compared to just 6% with teams that only had 5 to 49 developers.
While a global pandemic may not affect the choice in CI tools, we think tools like Bazel and Buck will continue to gain steam in the developer community. Jenkins and Fastlane have cemented their standing, but there seems to be room for growth and emerging tools.
Part 3 coming soon!
Stay tuned for more in this series where we’ll dive into the survey further. In Part 1, we discussed where developers and teams keep their Macs, and in Part 3, we’ll discuss what these teams are working on day-to-day. You don’t want to miss this and the best way to stay informed about everything happening is by joining the MacStadium Community Slack! The MacStadium Community Slack is the best place to mingle with your fellow MacStadium fans, hear about the latest blog post or webinar, talk to the experts, and ask questions that could be featured in one of our webinars.