📜 ⬆️ ⬇️

“CI doesn’t cope well with mobile development requirements”: interview with fastlane creator Felix Krause



Many mobile developers love the fastlane tool, which automates tasks when an application is released (screenshots generation, code signing in the case of iOS, deploy to the store or to the beta testing system). For a long time, fastlane could only be used on macOS, but now this project is being made partially cross-platform. And its creator Felix Krause recently announced a new project: the CI system fastlane.ci .

And we interviewed Felix, asking about both topics: we started with questions about the CI-novelty, and then moved on to the "usual" fastlane.

- In connection with the advent of fastlane.ci, someone can say "there are already a lot of CI systems, why should there be one more." How do you see the main goals of fastlane.ci not yet covered by other products?
')
- At the forefront of fastlane.ci puts mobile developers. Many CI-systems are very generalized, but in the end they do not cope well with the requirements of mobile development. A good example is that teams use different versions of Xcode when migrating to a new version of Swift.

Therefore, fastlane.ci is a “opinionated” project that simplifies the life of mobile developers. The idea is for the CI system to automatically recognize your project, for the most part set up itself, and be ready in a few minutes.

- It is clear that fastlane and fastlane.ci will work well together, but how closely are they connected? Wouldn't the support for other CIs in fastlane be a lower priority now? Is fastlane.ci supposed to be used without fastlane?

- The last question has not yet been finally resolved, but so far my vision is to run fastlane.ci only to work with fastlane. Probably, over time, this restriction will weaken, but when working on the first version, it will allow us to focus on the most important thing.

But the work on fastlane.ci, of course, will not affect the integration of fastlane with other CI services. Everyone has the right to use any CI system he wants :)

- Now fastlane.ci supports only mobile development, but the reservation is “for now”. In the future, do you want mobile to remain the main, but not only supported it?

- Here, as in the previous answer: first we need to focus on the most important thing, and then we can gradually expand the range of activities.

- As far as we understand, fastlane.ci can be run on different operating systems ...

- No, fastlane.ci is not cross-platform, it is for macOS.

- Wait, the system requirements say "Requires Ruby 2.3.0 or higher." macOS and Xcode are required when building iOS projects. ” That is, it would be more accurate to "Requires Ruby 2.3.0 or higher and macOS"?

- Yeah, I’ll update the README to clarify this issue. So far, everything is designed only for macOS.

- In fastlane.ci support is planned for both iOS and Android. Do you think that in the Android world, the demand for CI is now just due to the termination of Android support in BuddyBuild?

- I think the use of BuddyBuild will decline in Android and iOS, because now in the coming months / years it is hardly worth waiting for active development.

- Let's move from fastlane.ci to fastlane. To begin, let's clarify the situation for those who are far from the topic. Fastlane has a tricky story: first an independent project, then got under the wing of Twitter, becoming part of Fabric, then, along with Fabric, moved to Google. This may raise questions like "do I need to use Fabric to use fastlane?" How are things really?

- At the moment, fastlane is an independent project in Google. You do not need to use Fabric, Firebase, or Google services to use fastlane. The project is open source , supported by us together with the community.

- The latest news about the project is the announcement “We are actively working on supporting Linux and Windows for individual parts of fastlane” ...

- Well, I personally do not actively do this. However, the team of contributors found a person who took on the support of other platforms. And in recent months, work is really going on to ensure that the more and more components of fastlane cease to require macOS.

- Does this work limit the reluctance of regression in the higher priority main version?

- Yes, this is the risk of expanding the number of supported platforms: you are always afraid to break something on another platform.

“Since iOS developers are sitting on a Mac, the demand for a cross-platform fastlane arose solely because of Android, or is it on the iOS side too?”

- I did not see high demand in iOS, except for cross-platform developers, such as React Native.

“When Android developers, when installing fastlane, see“ Make sure you have the latest version of the Xcode command line tools, ”does this cause them to have cognitive dissonance? :)

“Well, Android developers on Mac to install fastlane inevitably need Xcode command line tools to install Ruby and OpenSSL.

- Does it make it harder to work on a project that supports Android, because your iOS background itself?

- Yes, definitely. I have been working with iOS applications for 7 years, so I know a lot about the platform and the ecosystem. So I personally don’t really do the Android part, we have a group of contributors focused on this.



- The main page of fastlane.tools greets us with a counter “how many hours fastlane has saved for developers”. And how do you think this watch? :)

- When fastlane checks for updates, it also sends us very basic metadata: mainly the time spent in a running state, the Xcode version and the OS version.

“But after all, the“ fastlane time ”can not be equal to“ the time that a developer would spend on the same tasks without fastlane. ” Is this counter intended to be a very rough approximation?

- Yes, right. In fact, probably, fastlane saved the developers much more. For example, in the case of generating localized screenshots manually, it can take much longer.

- A whole ecosystem of plugins has grown around fastlane. Do you have a personal pet among them?

- I personally used the “badge” earlier, which allows you to easily add the version number to the “beta” icon on the icon right before the compilation.

- Does it happen that something starts as a plugin, and eventually ends up in the main fastlane?

- Yes, this was the case with several plug-ins - the disable_code_signing and enable_code_signing plug-ins became the main case. In Xcode 8, Apple added a new option for code signing, and people wanted to control it with fastlane. Helmut (the author of the plugin) kindly agreed to integrate the plugin into fastlane when we turned to it.

- Did you see any functionality that surprised you in the plugins?

- I liked the plugin that received the current review passage for iOS applications.

- It is surprising that such a popular tool was not created by a large company, but originated as your student project. Did he then have competitors? What helped to get around them?

- When I started, there was no analogue. The only similar tool was Shenzhen from Nomad Tools, but its development was already discontinued. But lonely, such a project is even easier to start, there are no dependencies.

- When the project hit Twitter, it allowed you to work on it fulltime. Wouldn't you like to monetize it somehow in order to get the same opportunity, but at the same time retaining complete independence?

- I do not see a big advantage in complete independence, if a company allowing you to work on a project acts in its best interests. In the case of fastlane, both Twitter and Google allowed the project to develop in the direction that was most meaningful for the mobile developer community, we listened to the wishes of users and worked on them. Actually, before Twitter, I even offered fastlane sponsorship and contract work related to fastlane, but it was difficult - it was very stressful and distracting. I definitely prefer the current state of affairs to what I did before Twitter.

- In your case, the work itself grew out of a student project. And if that hadn't happened, what would they do? Are you concerned with the topics of privacy and security - would you go in this direction?

- Probably would have worked on iOS-applications - and, perhaps, it would be related to privacy, yes.



- On your site there is a whole section about privacy issues that are right under your nose, but go unnoticed - do you think this is a problem for the industry as a whole?

“I think the iOS community is particularly lacking in awareness of security and privacy issues.” I understand that this is not the most fascinating topic for most people, and it can slow down the development of a project. But she is needed.

Minute advertising. In April, Felix will speak in St. Petersburg at our Mobius conference with the report “Trusting iOS SDKs”, where he will turn to the topic of security. And if after this interview you still have questions for Felix, it will be convenient to ask them personally at Mobius: after each speaker, each speaker will be sent to the discussion area, where you can ask him about it.

Source: https://habr.com/ru/post/348986/


All Articles