Schibsted’s 1st iOS Deployment Meet-up
Thursday, 28th of April 2016: getting to know each other, guests arrive
Friday, 29th of April 2016: the meet-up date
We here at Aftonbladet had been planning on having a meet-up with iOS developers across various Schibsted companies for many months. We had a range of topics in mind for this meet-up, including:
- Xcode, IB
- Build tools, deployment, Fastlane, etc
A lot of internal discussions were held and we came to the conclusion that even though it is fun to discuss Swift and Xcode, it is even better to talk about build and deployment tools! The reason behind this is that the number of meet-ups that are focused on Swift right now are quite high but we had difficulty finding gatherings that focused on one of the most daunting tasks as an iOS developer: deployment and releasing to the App Store.
The goal for our meet-up was to talk about the best tools available right now in order to: build, distribute, test and deploy iOS apps.
We saw quite a lot of companies inside Schibsted who were excited by the possibility of being able to talk about iOS deployment. The following companies within Schibsted showed interest in participating:
Aftonbladet (Sweden), SPT (United Kingdom), Willhaben (Austria), Schibsted Personal Finance (Sweden), Tori (Finland), Schibsted (Spain), Blocket (Sweden), Klart (Sweden), Viktklubb (Sweden), InfoJobs (Spain), Omni (Poland)
We had a total of 24 participants from 6 countries, all coming from a technical iOS background (+1 tester from Finland) talking deployment. Regardless to say, it simply became a very productive day for all of us.
The idea behind what was presented was to ensure we do not double-present the same material. In other words, if 3 companies all use Fastlane + Travis to build their apps, we didn’t want all these 3 companies to talk about the same thing.
- At 08:30, Erik Sundin of Blocket presented Blocket’s build system
- At 09:00, Fabian Ehrentraud and Mathäus Zingerle presented Willhaben’s build system
- At 10:15, Sebastian Badea, Gil Serra and Oscar Duran Grillo presentedInfojobs ES’s build system
- At 10:45, Maciej Walczynski presented Viktklubb & Klart.se’s build system
- At 13:00, Vandad Nahavandipoor held a hands on session with Travis + Fastlane
- At 14:00, Johnny Souza presented SPT’s build and deployment system
The mix of topics that were discussed during the meet-up were very interesting, ranging from Fastlane, to Travis and Calabash and so on. After the first few presentations, the topic was mainly then focused on using Fastlane and Travis to continuously deliver and test iOS applications across various Schibsted companies.
There are a range of tools that various Schibsted companies are using to automatically test their applications including, but not limited to: Calabash, Xcode UI tests, XCTest and even Facebook Snapshot Testcase, alongside Fastlane.Scan.
We all at Schibsted strive to deliver high quality mobile applications to our customers and to enable that, we have integrated some of the most advanced deployment and testing tools into our workflow.
The main take aways from the meet-up are as listed:
- All companies are striving to move away from custom build scripts and instead using Fastlane. The reason behind this is that custom bash scripts tend to get more and more complicated over time and only a select few employees in the company will know about them and their internals. When time passes, these scripts get unbelievable difficult to maintain. Fastlane solves this problem where iOS developers can instead work with configuration files, which are well documented, instead of writing custom bash scripts. This allows us to focus on what we want to achieve rather than how we should achieve it. Additionally, Fastlane is a very active open-source tool hosted on GitHub. Custom build scripts written and placed in various Schibsted Git repositories will eventually be outdated and won’t work. Using a central tool such as Fastlane that can be updated with 1 line of code is a huge advantage for all companies involved.
- We use different continuous integration systems such as Travis, Bamboo and TeamCity. Inside Schibsted, we happen to have an Enterprise Github license and an enterprise license for Travis CI as well and a dedicated team of support for Travis. Travis has a big plus compared with some other tools that it allows all branches, with 0 configuration, to be built and tested upon pushes, allowing a highly tested code that is essentially merged into the master branch.
For UI testing, all companies involved are having difficulties with keeping the tests up to date. Both for UI and unit testing, achieving a high percentage of code coverage is a huge effort. The main issue is finding the pieces of code that are most important and need to be tested before all other tests. It will be impossible or even in vain to achieve 100% code coverage. Some parts of our code base might not be worth spending a lot of time writing tests for but other critical parts may. The outcome of this part of the meet-up was to: use the best tools available to test the most critical/buggy parts of the code.
- Different companies within Schibsted have different build, test and deployment needs. It will be unnecessary to make sure that every company uses the same tools and technologies to build and test. For instance, we have Jenkins, Travis CI, Bamboo, QuickBuild and TeamCity which are being used to build our apps. All are achieving the same results more or less but we are paying for various licenses for some of these tools. Perhaps in the future we can discuss how to unify our tool set and make it easier for iOS developers to get used to a unique set of tools, to make it easier to move between projects.