» » » «CI плохо справляются с требованиями мобильной разработки»: интервью с создателем fastlane Феликсом Краузе

 

«CI плохо справляются с требованиями мобильной разработки»: интервью с создателем fastlane Феликсом Краузе

Автор: admin от 13-02-2018, 12:40, посмотрело: 86

«CI плохо справляются с требованиями мобильной разработки»: интервью с создателем fastlane Феликсом Краузе


Многие мобильные разработчики любят инструмент [b]fastlane[/b], автоматизирующий задачи при выпуске приложения (генерацию скриншотов, code signing в случае с iOS, деплой в магазин или в систему бета-тестирования). Долгое время fastlane можно было использовать только на macOS, но сейчас этот проект делают частично кроссплатформенным. А его создатель [b]Феликс Краузе[/b] на днях громко анонсировал новый проект: CI-систему [b]fastlane.ci[/b].



И мы взяли у Феликса интервью, расспросив про обе темы: начали с вопросов о CI-новинке, а затем перешли к «обычному» fastlane.

fastlane.ci кто-то может сказать «уже и так есть куча CI-систем, зачем ещё одна». Какими вы видите главные цели fastlane.ci, ещё не покрытые другими продуктами?[/b]



— Во главу угла fastlane.ci ставит мобильных разработчиков. Многие CI-системы очень обобщённые, а в итоге не слишком хорошо справляются с требованиями мобильной разработки. Хороший пример — использование командами разных версий Xcode при миграции на новую версию Swift.



Поэтому fastlane.ci — «opinionated»-проект, упрощающий жизнь мобильным разработчикам. Идея в том, чтобы CI-система автоматически распознавала ваш проект, по большей части настраивала сама себя, и оказывалась готова за несколько минут.



[b]— Понятно, что fastlane и fastlane.ci будут отлично работать вместе, но насколько тесно они связаны? Не станет ли теперь поддержка других CI в fastlane менее приоритетной? Предполагается ли использование fastlane.ci без fastlane?[/b]



— Последний вопрос пока не решён окончательно, но пока что моё видение в том, чтобы запустить fastlane.ci только для работы с fastlane. Вероятно, со временем это ограничение ослабнет, но при работе над первой версией оно позволит нам сосредоточиться на самом главном.



Но работа над fastlane.ci, разумеется, никак не скажется на интеграции fastlane с другими CI-сервисами. Каждый вправе использовать любую CI-систему, какую хочет :)



[b]— Сейчас fastlane.ci поддерживает исключительно мобильную разработку, но сделана оговорка «пока что». В будущем хотите, чтобы мобильная оставалась главной, но поддерживалась не только она?[/b]



— Тут как в предыдущем ответе: сначала нам надо сосредоточиться на самом главном, а затем можно постепенно расширять спектр деятельности.



[b]— Насколько понимаем, fastlane.ci можно запустить на разных ОС…[/b]



— Нет, fastlane.ci не кроссплатформенная, она для macOS.



[b]— Подождите, в system requirements написано «Requires Ruby 2.3.0 or higher. macOS and Xcode are required when building iOS projects». То есть точнее будет «Requires Ruby 2.3.0 or higher and macOS»?[/b]



— Угу, обновлю README, чтобы прояснить этот вопрос. Пока что всё рассчитано только на macOS.



[b]— В fastlane.ci планируется поддержка как для iOS, так и для Android. Предполагаете ли вы, что в Android-мире сейчас как раз повысится спрос на CI из-за прекращения поддержки Android в BuddyBuild?[/b]



— Я думаю, использование BuddyBuild снизится и в Android, и в iOS, потому что теперь в ближайшие месяцы/годы от него вряд ли стоит ждать активного развития.



[b]— Перейдём от fastlane.ci к fastlane. Для начала давайте проясним ситуацию для тех, кто далёк от темы. У fastlane хитрая история: сначала независимый проект, потом попал под крыло Twitter, став частью Fabric, затем вместе с Fabric перешёл к Google. Это может вызывать вопросы вроде «требуется ли пользоваться Fabric для использования fastlane». Как на самом деле обстоят дела?[/b]



— В данный момент fastlane — независимый проект в Google. Вам не требуется пользоваться ни Fabric, ни Firebase, ни сервисами Google для использования fastlane. Проект опенсорсный, поддерживается нами совместно с сообществом.



[b]— Последняя новость о проекте заключается в объявлении «Мы активно работаем над поддержкой Linux и Windows для отдельных частей fastlane»…[/b]



— Ну, я лично активно этим не занимаюсь. Однако в команде контрибьюторов нашёлся человек, взявшийся за поддержку других платформ. И в последние месяцы действительно идёт работа над тем, чтобы всё больше составных частей fastlane переставали требовать macOS.



[b]— Ограничивает ли в этой работе нежелание регрессии у более приоритетной основной версии?[/b]



— Да, в этом риск расширения числа поддерживаемых платформ: всегда побаиваешься сломать что-то на другой платформе.



[b]— Поскольку iOS-разработчики сидят за Mac, спрос на кроссплатформенный fastlane возник исключительно из-за Android, или с iOS-стороны он тоже есть?[/b]



— Я высокого спроса в iOS не видел, за исключением кроссплатформенных разработчиков, вроде React Native.



[b]— Когда Android-разработчики при установке fastlane первым же пунктом видят «Make sure you have the latest version of the Xcode command line tools», это не вызывает у них когнитивный диссонанс? :)[/b]



— Ну, Android-разработчикам на Mac для установки fastlane неизбежно нужны Xcode command line tools, чтобы установить Ruby и OpenSSL.



[b]— А усложняет ли работу над проектом, поддерживающим Android, то, что у вас самого бэкграунд в iOS?[/b]



— Да, определённо. Я уже 7 лет занимаюсь iOS-приложениями, так что о платформе и экосистеме знаю много. Так что я лично не особо занимаюсь Android-частью, у нас есть группа контрибьюторов, сосредоточенная на этом.



«CI плохо справляются с требованиями мобильной разработки»: интервью с создателем fastlane Феликсом Краузе


[b]— Главная страница fastlane.tools встречает нас счётчиком «сколько часов сэкономил fastlane разработчикам». А как вы эти часы считаете? :)[/b]



— Когда fastlane проверяет наличие обновлений, заодно отправляет нам очень базовые метаданные: главным образом, проведённое в запущенном состоянии время, версию Xcode и версию ОС.



[b]— Но ведь «время работы fastlane» может совсем не равняться «времени, которое разработчик потратил бы на те же задачи без fastlane». Этот счётчик задуман как очень грубая аппроксимация?[/b]



— Да, верно. На самом деле, вероятно, fastlane сэкономил разработчикам куда больше. Например, в случае с генерацией локализованных скриншотов вручную может получиться гораздо дольше.



[b]— Вокруг fastlane выросла целая экосистема плагинов. Есть ли у вас среди них личный любимчик?[/b]



— Я лично ранее использовал “badge”, позволяющий прямо перед компиляцией легко добавить номер версии на значок “beta” на иконке.



[b]— Бывает ли, что что-то начинается как плагин, а в итоге попадает в основной fastlane?[/b]



— Да, так происходило с несколькими плагинами — главным таким случаем стали плагины disable_code_signing и enable_code_signing. В Xcode 8 Apple добавила новую опцию для code signing, и люди хотели контролировать её с помощью fastlane. Гельмут (автор плагина) любезно согласился интегрировать плагин в fastlane, когда мы обратились к нему.



[b]— А встречали ли в плагинах какую-то удивившую вас самого функциональность?[/b]



— Мне понравился плагин, получавший текущие сроки прохождения ревью для iOS-приложений.



[b]— Удивительно, что такой популярный инструмент не был создан крупной компанией, а возник как ваш студенческий проект. Были ли у него тогда конкуренты? Что помогло их обойти?[/b]



— Когда начинал, аналога не было. Единственным похожим инструментом был Shenzhen от Nomad Tools, но его разработка тогда уже была прекращена. Но одиночке такой проект начинать даже легче, нет никаких зависимостей.



[b]— Когда проект попал в Twitter, это позволило вам работать над ним фуллтаймово. А не хотелось ли вместо этого как-либо его монетизировать, чтобы получить ту же возможность, но при этом сохранив полную независимость?[/b]



— Я не вижу большого преимущества в полной независимости, если компания, позволяющая тебе работать над проектом, действует в его лучших интересах. В случае с fastlane как Twitter, так и Google позволили проекту развиваться в том направлении, которое было осмысленнее всего для сообщества мобильных разработчиков, мы прислушивались к желаниям пользователям и работали над ними. Собственно, до Twitter я даже предлагал спонсорство fastlane и связанную с fastlane контрактную работу, но это было сложно — сильно нагружало и отвлекало. Я определённо предпочитаю нынешнее положение вещей тому, что делал до Twitter.



[b]— В вашем случае работа сама выросла из студенческого проекта. А если бы этого не произошло, чем бы занимались? Вас волнуют темы приватности и безопасности — направились бы в эту сторону?[/b]



— Вероятно, работал бы над iOS-приложениями — и, возможно, это было бы связано с приватностью, да.



«CI плохо справляются с требованиями мобильной разработки»: интервью с создателем fastlane Феликсом Краузе


[b]— На вашем сайте есть целый раздел о проблемах приватности, которые находятся прямо под носом, но остаются незамеченными — по-вашему, для индустрии в целом это проблема?[/b]



— Я думаю, что в iOS-сообществе особенно не хватает осознания вопросов безопасности и приватности. Я понимаю, что это не самая увлекательная тема для большинства людей, и она способна тормозить разработку проекта. Но она необходима.



Минутка рекламы. В апреле Феликс выступит в Петербурге на нашей конференции [b]Mobius[/b] с докладом «Trusting iOS SDKs», где как раз обратится к теме безопасности. А если после этого интервью у вас остались вопросы к Феликсу, на Mobius будет удобно задать их лично: каждый спикер после своего доклада будет отправляться в дискуссионную зону, где его можно как следует порасспрашивать.


Источник: Хабрахабр

Категория: Операционные системы » Android

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *