Должны ли файлы Kotlin помещаться в отдельный исходный каталог на Android?
Я собираюсь начать использовать Kotlin для разработки Android в дополнение к Java из-за его преимуществ. Я установил плагин Android Studio и включил соответствующие зависимости в мои файлы gradle.
Итак, я прочитал из документации Kotlin и Stack Overflow, что можно включить отдельный исходный каталог для файлов Kotlin, например:
Приложение:
-manifest
-java
-kotlin
-res
Я знаю, что могу создать этот каталог, добавив следующее в мой файл build.gradle
:
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
Мой вопрос: должен ли Kotlin "жить" с файлами Java в том же каталоге или нет?
В дополнение к мнениям, я хотел бы знать, существует ли для этого конкретное соглашение, и если да, то почему именно так оно и есть.
Если нет, то каковы преимущества и недостатки каждого варианта?
Ответы
Ответ 1
Помещение файлов Kotlin в отдельный исходный каталог существует как документально, потому что в ранних версиях (до 1.0) Kotlin это была единственная поддерживаемая настройка. Впоследствии плагин Kotlin Gradle стал более гибким, поэтому разделение каталогов больше не требуется. Я не знаю о каких-либо преимуществах, которые могут быть получены, если положить файлы Kotlin в отдельный исходный каталог.
Наличие отдельного исходного каталога особенно неудобно, когда у вас есть проект Java, который вы постепенно конвертируете в Kotlin. Перемещение каждого преобразованного файла в другой исходный каталог делает процесс преобразования излишне громоздким.
Ответ 2
Поскольку размещение файлов мало что значит для компилятора Kotlin, соглашение заключается в том, чтобы поместить их в модули "логически" так же, как и с файлами Java.
Например, если вы решили реорганизовать Java-класс, переведя его в Kotlin, полученный Kotlin файл должен заменить исходный файл Java.