Комментарии 4
Для цветовой палитры, необходим был дополнительный шаг, в Assets приложения мы создали, так называемые, динамические цвета - цвет который меняется в зависимости от системной темы устройства.
Допустим, вам нужно создать новый экран в красных тонах. У вас в assets уже штук 10 оттенков красного. Вы заставляете дизайнеров использовать строго одни и те же названия цветов? Каждый раз ищете по ассетам, добавлен ли там уже цвет с нужны rgb?
По этим причинам предпочитаю хранить цвета в коде, но может есть вариант обойти это
Спасибо Вам за вопрос!
В нашем случае, если новые красные тона - это стиль одного экрана или компонента, то будет расширена цветовая палитра дизайнерами, а потом и нами в коде (за уникальностью добавляемого цвета, следят дизайнеры).
Если предполагаем, что красные тона - это будущий стиль всего приложения, то будет создана новая цветовая палитра (вначале дизайнерами, потом и нами в коде).
Мы генерим цвета из фигмы. Если дизайнер добавил новый цвет, то просто пересобираем паллету с обновленным списком цветов и потом в комплите кода появляется тот цвет, что указан в разметке в фигме.
Да, заготовленные компоненты удобная штука. У нас окрашивание компонентов происходит прямо во время сборки либы компонентов и после сборки библиотеки каждый проект получает одинаковые компоненты но в разных цветах.
// UIComponents (CocoaPods или SwiftPM)
import FigmaColors
import SwiftUI
struct Button {
var backgroundColor {
#if App1BuildMacro
return FigmaColors.color1
#elsif App2BuildMacro
return FigmaColors.color2
#else
return FigmaColors.colo3
#endif
}
var body: some View { Button().background(backgroundColor) }
}
Потом каждый себе собирает нужную версию
xcodebuild ... -D App1BuildMacro
где FigmaColors это все цвета для всех проектов, просто парсим из фирмы json раз в месяц и билдим статику цвета. Лишние неиспользуемые цвета компилятор всё равно вырежет на этапе сборке приложения.
О iOS дизайн системе за 5 мин