Недавно я пересматривал проект андроидной архитектуры, пытаясь адаптировать его к более "чистой архитектуре", в частности, к типу дизайна предложенный "Дядя Боб" .
Что это связано с несколькими уровнями абстракций, хорошей изоляцией обязанностей и очень сильной инверсией зависимостей, достигаемой путем инъекции зависимостей; что, в конечном счете, приводит к очень развязанной переносной системе. Идеальный кандидат для тестирования с помощью модульного тестирования и тестирования интеграции.
В моей реализации Android я получил три разных модуля или слоя:
- домен: сущности, интеракторы, ведущие (чистый Java-модуль)
- datastrong > : (действует как репозиторий для доставки данных в домен) (модуль библиотеки Android)
- презентация: связанные с ui вещи, фрагменты, действия, представления и т.д. (модуль приложений для Android)
Итак, я пытаюсь выяснить, какой будет лучший подход к экосистеме iOS. Ive попытался создать проект с несколькими целями для достижения того же решения:
- домен: целевая строка командной строки (что кажется очень странным, но я считаю, что это самая чистая доступная цель)
- данные: cocoa сенсорная структура
- презентация: cocoa сенсорная структура
При таком подходе я могу использовать эти цели так, как я это делал с модулями Android. Но первая оговорка Ive нашла, что мне нужно добавить вручную каждый новый файл к зависимой цели.
Но мои знания очень ограничены в проектах с несколькими целями. Я имею в виду, что Ive никогда не создавал приложение iOS с несколькими целями. Поэтому я не знаю, даже если решение будет использовать фреймворк (cocoa touch/ cocoa) в качестве цели вместо модуля командной строки для уровня домена.
Любая мысль была бы действительно оценена.
Спасибо!