- Created clean architecture with data/domain/ui
- Added Ktor client in data
- Added repository interface for motivational quotes in domain
- Added respository interface implementation for motivational quotes in data
- Created expect actual implementation to get the HttpClientEngine to be able to then get the HttpClient.
- Since those differ based on the platform I created a
KtorClientPlatform
that iOSMain and AndroidMain implement.
KtorClientPlatform
file has KtorClient
interface class which is used to get the HttpClientEngine
- Within that same file added a
KtorClientPlatform
class that does one thing
val clientForPlatform: HttpClientEngine = getKtorClient().engine
this makes it so we can use this class in either platform and get the correct ktor engine since we use the expect/actual
pattern
- I then created a
expect fun getKtorClient(): KtorClient
which has actual fun getKtorClient(): KtorClient = IosKtorClient()/AndroidKtorClient
in iosMain
and androidMain
respectively.