Definitely read up on multiplatform. Basically you'll create a project of common code and then a number of source sets for each specific platform. Those source sets will have platform specific dependencies. The common code can depend on classes defined in platform source sets by using the expect/actual mechanism to create stubs and implementations.