В моем проекте я использую AutoValue для своих старых классов моделей. Я начал использовать Kotlin, и я хочу использовать Data Classes вместо AutoValue. Я хочу отключить обфускацию для всех классов Data в моем слое Data, но для предотвращения запутывания других классов в пакете.
Есть ли способ сделать это?
Я бы ожидал, что в моем файле Proguard будет что-то вроде этого:
-keepclassmembers data class example.data_layer.** { *; }
Чтобы устранить проблему, я переместил классы моделей в модельный пакет и добавил новое правило ProGuard для пакета.
-keep class com.company.myfeature.model.** { *; }
Другим решением было бы использовать аннотацию @Keep из библиотеки поддержки, чтобы отключить обфускацию для класса:
@Keep data class MyRequestBody(val value: String)
Использование @Keep может вызвать проблемы, потому что легко забыть добавить его для новых классов.
Надеюсь, в будущем будет существовать способ с одним правилом ProGuard отключить обфускацию для всех классов данных в пакете без необходимости иметь подпакет для классов модели .