Skip to content

williankl/accountkt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KashKt

About

This app is a simple solution to checking the currency value against any other currency. These values are updated daily, and use this Exchange api as source of truth.
The main reason this app was created was to study the Kotlin Multiplatform feature, which builds Kotlin native code into some targets, such as iOS and Android.

Vectary texture

Multiplatform Tech Stack

Structure

The module structure and logic is as follows:

app
 - android: base android application code. Should have near to none logic, only initializations, such as the MainActivity and the Application classes.
 - ios: same as the android initialization module.
data
 - currency-service: this is the service that fetches the information from the api, it builds it's own networking client as there is no need to a more complex one.
 - currency-storage: uses SQL delight to build an interface for the internal storage as is needed by the application.
features
 - currency-feature: uses the services implemented at the data module to link the information coming from the api with the internal storage, providing a single source of truth to the classes using it.
 - shared-preferences: build an interface exposing the user preference to simpler things, that should not need to be stored in a proper internal storage feature.
ui
 - application: the whole application design, holding the user interface itself and the viewmodels that will use the features built in the features module.
 - design
 - - core: holds the core components for the application design system, such as text components, colors, etc...
 - - components: more complex components built to a specific use-case in for the app's UI.

How can you test it?

. For both platform you will need a file called local.properties on the base project directory with the following values added:

  1. apiKey={your-api-key-here} -> the key should come from this api
  2. sdk.dir={your-android-sdk-location-here}

. For Android you can simply clone it into AndroidStudio and run the application under the :app:android module. If for some reason your IDE generate a project build.gradle file, be sure to delete it.

. For iOS you will need to have a MacOS platform, where you can build the project through xCode. The xCode project that should be build is at /app/ios directory. If you would rather do it through the AndroidStudio, there is this Plugin that can build the project within it, but a MacOS system is still required.

Google play | App store

You can check the application on the following links:

  1. Google play
  2. App store

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published