Kotlin multiplatform project
Clone or download

README.md

Votlin App

Votlin Logo

Description

Votlin is a small petshop with a master/detail structure. It lists the talks from Extremadura Digital Day event.

Project slides

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 be sdk.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:

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

Screenshots

Android

Android app

iOS

iOS app

Web

Web app

Demo gif

Demo GIF

License

Copyright 2018 Sergio Casero & Daniel Llanos

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.```