realm / realm-java

Realm is a mobile database: a replacement for SQLite & ORMs
http://realm.io
Apache License 2.0
11.45k stars 1.75k forks source link

Allow consumers to prefer APT in Kotlin projects #7727

Open mannodermaus opened 1 year ago

mannodermaus commented 1 year ago

Problem

There is currently no way to bypass the usage of kapt for Kotlin projects using Realm. The plugin's code has a pending TODO comment about allowing the configuration of this setting, but no way to actually control it. This prevents people from using tools like NAPT for improving the build speed of their project. For instance, in my case, the only remaining library to rely on kapt is Realm and I'd like to move away from it to speed up compilations.

Unfortunately, moving to realm-kotlin is not a realistic alternative because of the huge undertaking in migrating the codebase to support it.

Solution

I'd like to request that a preferAptOnKotlinProject flag be added to its DSL of the Gradle plugin, with a default value of false.

Alternatives

No response

How important is this improvement for you?

I'd like to see it, but have a workaround

cmelchior commented 1 year ago

Hi @mannodermaus.

Have you considered not applying the plugin and just manually doing what it does? Would that solve your problem? https://www.mongodb.com/docs/realm/sdk/java/troubleshooting/#customize-dependecies-defined-by-the-realm-gradle-plugin

mannodermaus commented 1 year ago

Thanks for the suggestion @cmelchior, I wasn't aware that the full extent of the Gradle plugin could be so easily unwrapped. Skipping the Gradle plugin in favor of a manual setup as per the linked guide works well. I'm demoting the priority of the request to "I'd like to see it, but have a workaround" 🙇‍♂️