
A simple, flexible QR code renderer for Jetpack Compose - by Lightspark
First install it from Maven Central:
Groovy:
dependencies {
implementation "com.lightspark:compose-qr-code:1.0.1"
}kts:
dependencies {
implementation("com.lightspark:compose-qr-code:1.0.1")
}Then, use it in your code! Here's a plain ol' boring QR Code:
@Composable
funBoringPreview() {
QrCodeView(
data ="https://github.com/lightsparkdev/compose-qr-code",
modifier =Modifier.size(300.dp)
)
} |  |
Meh... Let's spice it up a bit with a smiley face overlay:
@Composable
funSmileyPreview() {
QrCodeView(
data ="https://github.com/lightsparkdev/compose-qr-code",
modifier =Modifier.size(300.dp)
) {
Smile(
modifier =Modifier.fillMaxSize(),
backgroundColor =Color.Yellow,
smileColor =Color.Black
)
}
} |  |
Cool, I guess we're getting somewhere. What about dark mode? Maybe we can also add some style with
circular dots in the qr code...
@Composable
funSmileyDarkPreview() {
QrCodeView(
data ="https://github.com/lightsparkdev/compose-qr-code",
modifier =Modifier.size(300.dp),
colors =QrCodeColors(
background =Color.Black,
foreground =Color.White
),
dotShape =DotShape.Circle
) {
Box(
contentAlignment =Alignment.Center,
modifier =Modifier
.fillMaxSize()
.clip(RoundedCornerShape(8.dp))
.background(Color.White)
.padding(8.dp)
.clip(RoundedCornerShape(8.dp))
.background(Color.Green)
) {
Smile(modifier =Modifier.fillMaxSize(0.5f))
}
}
} |  |
That's not bad! Let's add some even cooler styles, though. cracks fingers...
@Composable
funPurpleAndGold() {
val purple =Color(0xFF552583)
val gold =Color(0xFFFDB927)
QrCodeView(
data ="https://github.com/lightsparkdev/compose-qr-code",
modifier =Modifier.size(300.dp),
colors =QrCodeColors(
background = purple,
foreground = gold
),
dotShape =DotShape.Circle
) {
Box(
contentAlignment =Alignment.Center,
modifier =Modifier
.fillMaxSize()
.clip(CircleShape)
.background(purple)
) {
BasicText(
text ="L",
style =TextStyle.Default.copy(
color = gold,
fontSize =42.sp,
fontWeight =FontWeight.ExtraBold,
fontStyle =FontStyle.Italic,
fontFamily =FontFamily.Serif
)
)
}
}
} |  |
This libraries relies on the great, reliable zxing library for QR
code data generation.