In Kotlin 1.3 we can place all platform code in one module but platform code still placed in separate source sets.
I think it would be nice to place all code of specific feature in one source set. It will simplify navigation between common and platform and make project structure more flexible.
Also it will make possible to implement Screaming Architecture
Extension of platform sources can be .<target_name>.kt.
Example of gradle module structure:
src/main/kotlin
└─catalog
└─CatalogPresenter.kt
└─CatalogFragment.android.kt
└─CatalogViewController.ios.kt
└─CatalogVueComponent.js.kt
└─shoppingCart
└─domain
└─GetShoppingCartUseCase.kt
└─AddInShoppingCartUseCase.kt
└─data
└─ShoppingCartRepository.kt
└─RoomShoppingCartRepository.android.kt
└─RealmShoppingCartRepository.ios.kt
└─LocalStorageShoppingCartRepository.js.kt
└─ShoppingCartPresenter.kt
└─ShoppingCartFragment.android.kt
└─ShoppingCartViewController.ios.kt
└─ShoppingCartVueComponent.js.kt