Проблема:
Пользователи жалуются, что ночью приложение "слепит глаза". Как добавить тёмную тему правильно?
// 1. Определите цветовые палитры для светлой/тёмной тем
private val DarkColorPalette = darkColors(
primary = Purple200,
surface = Color.Black
)
private val LightColorPalette = lightColors(
primary = Purple500,
surface = Color.White
)
// 2. Используйте MaterialTheme с автоматическим переключением
@Composable
fun MyApp() {
val isDarkMode = isSystemInDarkTheme()
MaterialTheme(
colors = if (isDarkMode) DarkColorPalette else LightColorPalette
) {
// Ваш UI
}
}
// 1. Добавьте цветовые ассеты для об
// (в Assets.xcassets создайте Dark и Light варианты)
// 2. Используйте @Environment для автоматического переключения
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
Text("Привет!")
.foregroundColor(colorScheme == .dark ? .white : .black)
}
}
// Android (сохранение выбора в SharedPreferences)
val prefs = remember { context.getSharedPreferences("theme", Context.MODE_PRIVATE) }
val isDarkMode = prefs.getBoolean("dark_mode", isSystemInDarkTheme())
// iOS (UserDefaults)
UserDefaults.standard.set(true, forKey: "darkMode")
primary
, background
), а не жёсткие HEX-значения.#буст