Generate QR Codes with Kotlin
Kotlin developers can use ZXing for Android QR code generation and scanning. Works seamlessly with Jetpack Compose and traditional Android Views.
Installation
Add ZXing to your Android project using Gradle.
implementation("com.google.zxing:core:3.5.3")implementation("com.google.zxing:core:3.5.3")
implementation("com.google.zxing:javase:3.5.3")Generate QR Codes with Kotlin & ZXing
Code examples using ZXing in Kotlin for Android.
import android.graphics.Bitmap
import com.google.zxing.BarcodeFormat
import com.google.zxing.MultiFormatWriter
fun generateQRCode(data: String, size: Int = 300): Bitmap {
val matrix = MultiFormatWriter().encode(
data, BarcodeFormat.QR_CODE, size, size
)
return Bitmap.createBitmap(size, size, Bitmap.Config.RGB_565).apply {
for (x in 0 until size) {
for (y in 0 until size) {
setPixel(x, y, if (matrix[x, y]) 0xFF1A2B3C.toInt() else 0xFFFFFFFF.toInt())
}
}
}
}
// Usage
val qrBitmap = generateQRCode("https://qrcode.fun")@Composable
fun QRCodeImage(
data: String,
modifier: Modifier = Modifier,
size: Int = 300
) {
val bitmap = remember(data) { generateQRCode(data, size) }
Image(
bitmap = bitmap.asImageBitmap(),
contentDescription = "QR Code",
modifier = modifier.size(200.dp)
)
}
// Usage in a Composable
@Composable
fun MyScreen() {
QRCodeImage(data = "https://qrcode.fun")
}Generate QR Codes via API in Kotlin
Call the QRCode.fun API from Kotlin using OkHttp or Ktor for styled QR codes.
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
suspend fun generateQRCodeViaAPI(data: String): String {
val client = OkHttpClient()
val json = JSONObject().apply {
put("data", data)
put("width", 300)
put("height", 300)
put("type", "png")
put("margin", 10)
put("dotsOptions", JSONObject().apply {
put("color", "#1A2B3C")
put("type", "rounded")
})
put("cornersSquareOptions", JSONObject().apply {
put("color", "#8564C3")
put("type", "extra-rounded")
})
put("backgroundOptions", JSONObject().apply {
put("color", "#FFFFFF")
})
}
val request = Request.Builder()
.url("https://qrcode.fun/api/generate-qr-styled")
.post(json.toString().toRequestBody("application/json".toMediaType()))
.build()
val response = client.newCall(request).execute()
val result = JSONObject(response.body?.string() ?: "")
return result.getString("data") // base64 PNG data URL
}Live QR Code Preview
Try generating a QR code with Kotlin right now.
ZXing vs API
Compare using ZXing in Kotlin versus the QRCode.fun API.
| Feature | ZXing Library | QRCode.fun API |
|---|---|---|
| Setup complexity | Gradle dependency + Bitmap rendering | Single HTTP request via OkHttp |
| Customization | Size, error correction, colors via Bitmap | Full styling: colors, shapes, logos |
| Offline support | Yes | Requires internet |
| Maintenance | Gradle dependency update | Always up-to-date |
| Output formats | Bitmap (Android) | PNG, SVG |
Kotlin QR Code Use Cases
Common scenarios for QR codes in Kotlin applications.
Android Apps
Generate and display QR codes in Android apps for sharing links, contacts, Wi-Fi credentials, and payment information.
Jetpack Compose
Create composable QR code components with custom styling and animations for modern Android UIs.
Kotlin Multiplatform
Share QR code generation logic across Android, iOS, and desktop using Kotlin Multiplatform with the QRCode.fun API.
Backend Services
Generate QR codes in Ktor or Spring Boot Kotlin services for tickets, invoices, and authentication flows.
Frequently Asked Questions
Common questions about generating QR codes with Kotlin.
Start generating QR codes with Kotlin
Use our free generator or integrate the API into your Kotlin and Android applications.