Недавно я переосмыслил свой проект архитектуры Android, пытаясь адаптировать его к более «чистой архитектуре», в частности к тому дизайну, который предложил «дядя Боб».
Это включает в себя несколько уровней абстракций, хорошую изоляцию обязанностей и очень сильную инверсию зависимостей, достигаемую путем внедрения зависимостей; что, в конечном итоге, приводит к очень развязанной портативной системе. Идеальный кандидат для тестирования с помощью модульного и интеграционного тестирования.
В моей реализации для Android у меня получилось три разных модуля или слоя:
-домен: сущности, интеракторы, презентаторы (чистый Java-модуль)
-данные: (действует как хранилище для передачи данных в домен) (библиотека Android) модуль)
-презентация: элементы, связанные с пользовательским интерфейсом, фрагменты, действия, представления и т. д. (модуль приложения Android)
Итак, я пытаюсь выяснить, какой подход будет лучшим для экосистемы iOS.
Я пытался создать проект с несколькими целями для достижения одного и того же решения:
-домен: цель командной строки (что кажется очень странным, но я думаю, что это самая чистая из доступных целей Swift)
-data: cocoa touch framework
-презентация: фреймворк cocoa touch
Благодаря этому подходу я могу использовать эти цели так же, как я это делал с модулями Android. Но первое предостережение, которое я обнаружил, заключается в том, что мне нужно вручную добавлять каждый новый файл в зависимую цель.
Но мои знания очень ограничены в проектах с несколькими целями. Я имею в виду, что никогда не создавал iOS-приложение с несколькими целями. Поэтому я не знаю, даже если решение будет использовать инфраструктуру (cocoa touch/cocoa) в качестве цели вместо модуля командной строки для уровня домена.
Буду очень признателен за любые мысли.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/322 ... an-ios-app