element in the source code • Relevant for the compiler and developers interacting with the code • Used on source code elements classes, properties, functions/methods etc
• Understands Kotlin language features • Faster alternative to KAPT, different • Understands Java and can produce Java code – alternative to previous annotation processors.
and build time • Supports incremental and parallel processing • Reduced overhead when processing symbols • Fully compatible with Kotlin type system • Improved developer productivity & learning curve!
to KAPT in larger projects • KAPT could be troublesome when incremental processing is enabled • KAPT has trouble understanding Kotlin • KCP is superior when it comes to accessing compiler mechanics • KCP can transform or manipulate the code directly in the source files or output build files, KSP can not perform such action
• @Write request might not require return type • @Notification functions return type must be Flow<T> • @WritePayload must be used on an argument • @DeviceAddress must be used on an argument of type String • @BluetoothService must be used on a class or interface • @Priority must be used on an Int argument