What I do:
common
expect class Color
expect fun fromRGB(r: Int, g: Int, b: Int): Color
expect fun fromARGB(a: Int, r: Int, g: Int, b: Int): Color
android
actual typealias Color = Int
actual fun fromRGB(r: Int, g: Int, b: Int): Color = fromARGB(255, r, g, b)
actual fun fromARGB(a: Int, r: Int, g: Int, b: Int): Color = a shl 24 or (r shl 16) or (g shl 8) or b
iOS
@Suppress("CONFLICTING_OVERLOADS") actual typealias Color = UIColor
actual fun fromRGB(r: Int, g: Int, b: Int) = UIColor(red = r / 255.0, green = g / 255.0, blue = b / 255.0, alpha = 1.0)
actual fun fromARGB(a: Int, r: Int, g: Int, b: Int) = UIColor(red = r / 255.0, green = g / 255.0, blue = b / 255.0, alpha = a / 255.0)
JS
actual typealias Color = String
fun toHex(number: Int) =
if (number >= 16) number.toString(16)
else "0${number.toString(16)}"
actual fun fromRGB(r: Int, g: Int, b: Int): Color =
"#${toHex(r)}${toHex(g)}${toHex(b)}".toUpperCase()
actual fun fromARGB(a: Int, r: Int, g: Int, b: Int): Color =
"#${toHex(a)}${toHex(r)}${toHex(g)}${toHex(b)}".toUpperCase()