A small petshop with a master/detail structure
votlin-app
Votlin is a small petshop with a master/detail structure. It lists the talks from Extremadura Digital Day event.
Server
The server is based on ktor
Web Page
The website is based on React
Visit the site here
Android Application
The Android version is developed in Kotlin/JVM
You can download the app here: Votlin in Google play.
iOS Application
With kotlin/native and Swift
How to build and run
Building the code
- Make sure you have the Android SDK installed
- Open the project in IntelliJ IDEA (2017.3 EAP recommended)
- Create a file
local.properties
in the root directory of the project, pointing to your Android SDK installation. On Mac OS,
the contents should besdk.dir=/Users/<your username>/Library/Android/sdk
. On other OSes, please adjust accordingly. - Run
./gradlew build
Running the backend
- Run
./gradlew backend:run
from the command line or from Gradle toolwindow - The backend will start serving on localhost:8080, with data stored in MySQL database
Running the Android app
- Create a run configuration of type "Android App"
- Select module "app" in the run configuration settings
- Run the configuration
- Select the emulator or connected device, as normal
Running the Web client
- Make sure the backend is running on localhost:8080
- Run
gradlew :frontend:run
in the 'web' directory to run webpack development server
Running iOS
- This is quite simple, open the xcodeproject file with xCode and click on "play" button, that's all ;)
Thanks to:
- Thanks to @Kotlin team, take a look to KotlinConf app -> https://github.com/JetBrains/kotlinconf-app
- Thanks to @MarcinMaskala, He has 2 multiplatform repos that are really helpful -> https://github.com/MarcinMoskala
- Thanks to @wiyarmir, he has also a multiplatform project that could help you -> https://github.com/wiyarmir
- Thanks to @victorfriasv for the Votlin logo! Looks really nice! :) -> https://www.linkedin.com/in/victorfriasv
TODO
- iOS -> Fix UI thread issue.
- TornadoFX -> Improve the UI
- Tests
- Error handling, maybe with Arrow datatypes?
- Wiki -> Add how import and iOS framework and configure the build phase to use Kotlin from iOS