Это будет перечисление с неким набором товаров, назовём его GoodsCategory с типом исходных значений String, а также подпишем перечисление под протоколы Caseiterable для доступа к свойству allCases, а также Identifiable, чтобы обеспечить возможности уникальной идентификации для значений.
SwiftUI — ну совсем не продакшен реди
Каждый сложный лейаут упирается в долгую компиляцию; разбиение на компоненты решает только часть проблем — алерты и прочие модификаторы вынести некуда
И да, в итоге процесс разработки превращается в танцы с бубном над компилятором, который «не смог»
И я не преувеличиваю, компилятор так и говорит — я не смог, попробуй попроще описать…
После разработки на Texture с DSL расширением (https://github.com/nickaroot/TextureUI) разработка на SwiftUI становится просто какой-то шуткой