Как создать подмодули импорта Swift
В настоящее время мы модулировали наш проект Swift, используя несколько целей. Цели компилируются в файлы.framework, которые являются зависимостями более высоких целей. У нас есть общая цель модуля, несколько целей модуля продукта и исходная цель приложения. Common будет содержать код очень низкого уровня, общие библиотеки и любой конкретный код, который может использоваться несколькими целевыми продуктами.
Так что приложение будет делать:
import Common
import Product1
import Product2
И целевой код Product1 может сделать:
import Common
Обычно поток - Common -> Product* -> App, где Common никогда не будет ссылаться на другое направление.
К сожалению, общий объем стал большим, и в нем много кода, который может не понадобиться для каждого импорта.
То, что я хотел бы достичь в Swift, это что-то вроде этого:
import Common.API
import Common.PurchaseCheckout
Я изучил карты модулей, которые позволяют настроить подмодули импорта, но все они сосредоточены вокруг заголовков target-c, а не Swift. Есть ли быстрая вариация?
Особая необходимость заключается в том, что мы хотим создать легкий SDK, который использует только некоторые функции, и как только мы "импортируем Common", он раздувает SDK и добавляет зависимости от довольно многих несвязанных какао-стручков., Мы можем включать файлы в целевой SDK файл за файлом, но надеялись, что модульность упростит задачу.
РЕДАКТИРОВАТЬ
Похоже, я могу использовать такие вещи, как:
import class Common.FileDownloadAPI
import class Common.FileUploadAPI
возможно, в моем коде, чтобы создать впечатление частичного импорта. Тем не менее, кажется, что module-maps - это способ в target-c сделать это для вас, создав подмодуль. Я не хочу писать 100 импортов классов, чтобы импортировать половину из 200 файлов, которые подмодуль может сделать за один импорт. Так что все еще ищу идеи.