Как стать автором
Обновить

Комментарии 11

Спасибо за материал!

Полезная статья. Понравилось про версионирование.

По тексту это просто перевод Readme для каждого менеджер зависимостей. А где важные детали ? например:

  1. Cocoapods: какие файлы нужно комитать в гит ? Нужно ли комитать Podfile.lock файл ? Нужно ли комитать Pods директорию, какие плюсы/минусы для Pods директории это имеет.

  2. Carthage: нужно ли комитать Cartfile.resolved ? Нужно ли комитать Checkout & Build директории, если да то какие плюсы минусы.

  3. SPM: где хранятся исходники скаченных библиотек и как это связано с очищением DerivedData

  4. Cocoapods если добавить 50 зависимостей в виде динамических библиотек, что произойдет с временем запуска приложения ?

  5. При работе с каким менеджером у Xcode наилучший перформанс

Привет! Спасибо за комментарий.

Согласимся, что информация про DerivedData и перформанс была бы полезной, но базовую работу с гитом и что нужно коммитить, а что нет, статья не затрагивает. 

Важные детали для всех разные, в рамках одного материала раскрыть их все попросту невозможно. Автор статьи считает, что раздел про библиотеки и фреймворки, а также описание работы менеджеров, не менее важны, чем работа с гитом и перформанс.

Привет, но у вас написано:

Материал будет полезен джун-специалистам, которые только начали погружаться в разработку

Я джун, добавил зависимость через Cocoapods как вы написали, git status -sb мне показал ./Pods/ директорию как новую, мне ее нужно комитать в проект или добавить в игнор ? Спасибо.

Нет, resolved и lock файлы, а также Pods и Carthage директории коммитить не нужно. 

Действительно, это важно знать джун-специалисту, но, повторим, подробно раскрыть абсолютно все базовые вещи в одной статье не получится.

Carthage директории коммитить не нужно

Спорное утверждение. В проекте 20 библиотек, при запуске тестов на CI их сборка занимает 10 минут (так как вы писали Carthage собирает все схемы), а сами тесты проходят за 3 минуты, если их закоммитить в проект (бинарники папку Carthage/Build) то на каждый прогон тестов их собирать не надо, то есть +10 минут к сборке приложения (да, не без минусов).

resolved коммитить не нужно.

Откуда тогда Carthage узнает какая у вас версия зависимости если она в Cartfile не указана явно, вы писали пример "MyFramework.json" ~> 2.3, как Carthage без resolved поймет нужна 2.3.0 или 2.3.1, или 2.3.9 ?

lock коммитить не нужно.

Аналогично с resolved как Cocoapods поймет какие конкретные версии нужно скачать чтобы ваш коллега на своей машине имел полную копию зависимостей как у вас.

Также из личного опыта почти все современные Carthage зависимости не соберутся без флага --use-xcframeworks. Чтобы по-настоящему собирать из кэша нужно использовать флаг --cache-builds. Также чтобы максимально ограничить сборку под iOS следует передавать флаг --platform iOS, но на моей практике правда от него мало пользы.

Чел, все правильно пишешь.

Но подумай в следующий раз про tone of voice. Можно же по-другому те же вещи написать, сделать конструктивное дополнение к статье и оставить полезный для сообщества комментарий.

А то получается очереднярский псевдосеньор залетел в комменты, понегативил туда и потешил своё самолюбие.

Но подумай в следующий раз про tone of voice.

блин, я не хотел никого обидеть)) я просто спросил про конкретные моменты, я не знаю как нужно верно формулировать вопрос чтобы не обидеть ((

А то получается очереднярский псевдосеньор залетел в комменты

жирный лайк

Спасибо за статью, надеюсь рано или поздно все перейдут на SPM)

Полезно для систематизации информации!

Зарегистрируйтесь на Хабре , чтобы оставить комментарий