# Create AIDL client

An AIDL client is an app that binds to an AIDL service, calls API, shows response inside its own views.

Steps:

1. Create a service connection:

   ```kotlin
    private var aidlService: ICalculator? = null
    private val serviceConnection = object : ServiceConnection {
        override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
            aidlService = ICalculator.Stub.asInterface(service)
            Toast.makeText(applicationContext, "Service Connected", Toast.LENGTH_LONG).show()
        }

        override fun onServiceDisconnected(name: ComponentName?) {
            aidlService = null
            Toast.makeText(applicationContext, "Service Disconnected", Toast.LENGTH_LONG).show()
        }
    }
   ```
2. Connect to AIDL service via Binders.

   ```kotlin
    val serviceIntent = Intent()
    serviceIntent.component = ComponentName(BuildConfig.AIDL_PACKAGE, BuildConfig.AIDL_SERVICE)
    bindService(serviceIntent, serviceConnection, BIND_AUTO_CREATE)
   ```
3. Call methods of AIDL after successful connection:

   ```kotlin
    aidlService?.add(2, 2)?.let {
        Toast.makeText(
            applicationContext,
            String.format(Locale.getDefault(), "Sum is: %d", it),
            Toast.LENGTH_LONG
        ).show()
    }
   ```
