GithubHelp home page GithubHelp logo

bhanditz / kotlinconf-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jetbrains/kotlinconf-app

0.0 2.0 0.0 2.24 MB

KotlinConf Schedule Application

License: Apache License 2.0

Kotlin 81.91% Ruby 0.25% Swift 17.84%

kotlinconf-app's Introduction

JetBrains incubator project

KotlinConf App

This is the official KotlinConf App! We hope you enjoy(ed) the conference and sessions. This repository contains the source code of the application.

All pieces of the application are implemented in Kotlin. Backend, frontend and mobile apps are Kotlin applications. Yes, Kotlin is powering all parts of the story. Did I already say that? Okay, let's get to the details:

Server

KotlinConf App is connecting to the server running in the cloud to get information about sessions, speakers, favourites and votes. It is developed using Ktor, an asynchronous Kotlin web framework.

The server polls Sessionize service, which is used for planning the conference. Once in a while, it connects to APIs to get the latest information about sessions, speakers, and timeline. It then augments and republishes this information for clients to consume. It also provides a couple of extra APIs to save your favourites and accumulate votes.

Android Application

As you can imagine, the Android version is developed in Kotlin/JVM. What's interesting here is that this time application utilizes Multiplatform support, which is an experimental feature in Kotlin 1.2. Data structures for retrieving data from the backend server and some date-time operations are shared across multiple projects.

iOS Application

iOS version is written in Swift, but it uses presenters and repositories written in Kotlin in the common module. This way iOS part itself is responsible only for specifying how the application looks like and how it represents changes requested by logic. Kotlin and Swift are highly interoperable, so from Swift, you can easily use all classes and tools defined in the common module.

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 tool window
  • The backend will start serving on localhost:8080, with data stored in a local H2 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 iOS

  • Open konfios in Xcode
  • Run this project

To just generate Objective-C framework for iOS, use :common:iosMain:build task.

kotlinconf-app's People

Contributors

marcinmoskala avatar e5l avatar jarekankowski avatar 4u7 avatar catalinachioveanu avatar orangy avatar catalina-chioveanu-aexp avatar sandwwraith avatar yanex avatar elizarov avatar hhariri avatar quasilyte avatar jkutner avatar 3flex avatar esiddeveloper avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.