EN
iOS Такой
iOS Такой
61 subscribers
goals
18 of 100 paid subscribers
Когда наберу первые 100 подписчиков, я буду безумно рад! Здесь мы кодим, проводим собеседования, доклады. Присоединяйся!

Swift Package Manager (SPM)


Swift Package Manager (SPM) - это инструмент первого производителя от Apple, который автоматизирует процесс управления зависимостями пакетов в Swift. Он интегрирован с системой сборки Swift и предоставляет простой способ указания зависимостей с помощью Package.swift файла.
Благодаря SPM модульность приобретает ряд преимуществ перед другими методами:
1. SPM упрощает управление зависимостями проекта.Он автоматически управляет версиями, загрузкой и связыванием зависимостей, что упрощает управление сложными проектами.

2. Поскольку SPM является инструментом первого производителя от Apple, это означает, что он хорошо поддерживается и интегрирован с другими инструментами и технологиями Apple при реализации модульной архитектуры.

3. Экосистема предоставляет множество доступных плагинов SPM, которые помогают более эффективно реализовать архитектуру модульности (например, SwiftGen для генерации локализованных строк, изображений и цветов для каждого модуля).


Теперь разбираемся, как добавить пакет и вынести туда какой-то модуль и т.п

1. Создайте Swift Package:
Запустите Xcode и создайте новый пакет, выбрав Файл>> Создать>> Пакет. Даем имя модулю и нажимаем create


Теперь проверьте папку и файлы Xcode, созданные нами по умолчанию.
- README – Предоставьте возможное описание пакета.
- Package.swift – Описывает конфигурацию пакета swift.
- Исходная папка – содержит исходный файл в подпапке, ограниченной для каждого целевого объекта.
- Папка Tests – содержит тестовые примеры XCTest в подпапке [TargetName]Tests с областью действия для каждого целевого объекта.

Из них наиболее важным является Package.swift. В нем описывается полная структура нашего пакета.


Давайте разберемся с файлом Package.swift .
В первой строке,// swift-tools-version: 5.8 указывается минимальная версия Swift, необходимая для сборки этого пакета.
импорт PackageDescriptionимпортирует платформу PackageDescription, необходимую для определения пакета.
Затем передайте классу Package имя вашего пакета.
Продукты - это целевые объекты, которые будет создавать этот пакет. Это может быть либо библиотека, код, который можно импортировать в другие проекты Swift, либо исполняемый код, который может запускаться операционной системой.
Далее мы определяем зависимости, необходимые для этого пакета.
Наконец, цели - это набор целей и тестовых заданий.
Доступно множество версий объявления цели.Мы можем выбрать в зависимости от использования.Все исходные коды хранятся в Sources >> TargetNamed_Subfolder (То же имя, что и target).

И наконец, нам необходимо добавить пакет в наш проект. 

Перейдите в Xcode>> File>> AddPackages >> Add Local >> addPackage , чтобы выбрать локальный каталог пакета. Для AddToProject выберите свой проект, а не проект Pod, если в нашем проекте также есть зависимость от Pods.
Последний шаг перед импортом и внедрением вашего модуля - добавить библиотеки в целевое приложение из настроек целевого приложения на вкладке "Общие " в разделе Фреймворки, библиотеки и встроенный контент.
Для работы с модулем, вам необходимо его будет вызвать с помощью import "Название пакета".
Дополнительные ресурсы:
1. Многомодульность, SPM/SwiftUI

Subscription levels

Поддержка iOS Такой

$ 1,06 per month
- Доступ к закрытому чату
- Еженедельные созвоны с подписчиками, где будем обсуждать: текущую ситуацию на рынке, собеседования, проекты, выпуски, книги.
-Будем вести базу знаний, сделаем родмап обучения для любого уровня и будем сохранять все статьи, выжимки из книг, видео-материалов в Notion. И многое другое :)

Свои люди

$ 3,2 per month
- Доступ к закрытому чату, где вы можете влиять на контент или стать гостем выпуска
- Еженедельные созвоны с подписчиками, где будем обсуждать: текущую ситуацию на рынке, собеседования, проекты, выпуски, книги.
- Помощь от меня и Екатерины по проекту, по трудоустройству и т.д
- Будем вести базу знаний, сделаем родмап обучения для любого уровня и будем сохранять все статьи, выжимки из книг, видео-материалов в Notion. 
И многое другое :)

Senior

$ 5,4 per month
- Доступ к закрытому чату, где вы можете влиять на контент или стать гостем выпуска
- Еженедельные созвоны с подписчиками, где будем обсуждать: текущую ситуацию на рынке, собеседования, проекты, выпуски, книги
- Помощь от меня и Екатерины по проекту, по трудоустройству и т.д
- Будем вести базу знаний, сделаем родмап обучения для любого уровня и будем сохранять все статьи, выжимки из книг, видео-материалов в Notion.
- Возможность быть ведущим в некоторых рубриках, выпусках.
Go up