Должны ли файлы 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.