R.swiftではまだSwiftUIに対応していないのですが、本家issueに対策があったので書いてみました。
実際に使ってみたところ、かなり快適です。
import Rswift
import SwiftUI
extension FontResource {
func font(size: CGFloat) -> Font {
Font.custom(fontName, size: size)
}
}
extension ColorResource {
var color: Color {
Color(name)
}
}
extension StringResource {
var localizedStringKey: LocalizedStringKey {
LocalizedStringKey(key)
}
var text: Text {
Text(localizedStringKey)
}
}
extension ImageResource {
var image: Image {
Image(name)
}
}
使う際は以下のようにする。
let font = R.font.myFunnyFontBold.font(size: 35)
let color = R.color.listItemTitle.color
let text = R.string.localizable.hello_world.text
let image = R.image.random_image.image