

More information about Testing can be found in my Testing on Kotlin Multiplatform articleĪs mentioned in the introduction, the app has two main features: showing a list of todos and their count. core-test - contains the BaseTest class, and might contain other common text fixtures like API / Database fakes etc.It contains functions that help the Swift-Kotlin interop like the iOS wrappers (on which I've touched on in my previous article) or Koin helpers. core-ios - this module is only used by the iOS platform.In this example it contains an interface for providing the current timestamp (with an internal implementation) core-common - all the common entities which are used throughout the app.In this example there are three core modules: This module is basically the implementation details of the api module dependency module (white - internal) - contains the implementations for the corresponding api module.It contains the API that the clients (Android and iOS) use api module (blue - exported) - contains the interfaces and data structures of the given features.In this example they are prefixed with todos, one for the list and one for the countĮach feature module can be broken down even further into two types:

feature modules - correspond to a feature of the app.which might are used in a lot of different modules core modules - contain common classes, functions etc.There are two main groups of modules in the shared module: The reason for that will be explained later. Modules like core-common or todos-list-api should be treated as part of the shared module API, because these modules are not used directly. The blue modules are the ones which will be exported through the shared module and the white ones are implementation details. The Android and iOS platform use the shared module as an umbrella framework/library. Please excuse the lackluster UI, as it was not the focus of this article.
