Kotlin QR Code Library

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.

Gradle (Android)
implementation("com.google.zxing:core:3.5.3")
Gradle (with image)
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.

Generate QR Code Bitmap (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")
Jetpack Compose QR Code
@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")
}
QRCode.fun API

Generate QR Codes via API in Kotlin

Call the QRCode.fun API from Kotlin using OkHttp or Ktor for styled QR codes.

Kotlin API Integration
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.

QR preview

ZXing vs API

Compare using ZXing in Kotlin versus the QRCode.fun API.

FeatureZXing LibraryQRCode.fun API
Setup complexityGradle dependency + Bitmap renderingSingle HTTP request via OkHttp
CustomizationSize, error correction, colors via BitmapFull styling: colors, shapes, logos
Offline supportYesRequires internet
MaintenanceGradle dependency updateAlways up-to-date
Output formatsBitmap (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.

For Android, ZXing (zxing:core) is the standard choice. For Kotlin Multiplatform or server-side, consider using the QRCode.fun API for consistency across platforms.

Start generating QR codes with Kotlin

Use our free generator or integrate the API into your Kotlin and Android applications.