Skip to content

Android Example

Gradle

Add GeoQibla to your KMP shared module:

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation("io.github.shahidzbi4213:geoqibla:0.0.1")
        }
    }
}

Manifest

The library declares foreground location permissions in its Android manifest. Confirm the merged application manifest includes:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Activity

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.runtime.Composable
import com.shahid.tech.qibla.GeoQiblaScreen
import com.shahid.tech.qibla.rememberQiblaController

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            App()
        }
    }
}

@Composable
fun App() {
    val controller = rememberQiblaController()
    GeoQiblaScreen(controller = controller)
}

Device Testing

Use a physical Android device for compass validation. Emulators can validate permission and layout flows, but heading sensors and magnetic field behavior are device-dependent.