Skip to content

kidoz/kotlinconf-spinner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

JetBrains incubator project

Kotlin Spinner Game

Simple spinner-like game intended to demonstrate capabilities of Kotlin/Native software stack

How to play

  • Download and install the mobile application for Android or iOS
  • The system will automatically assign you to a random team. Each team has a unique colour
  • Spin the Kotlin logo using your fingers, or alternatively shake your phone
  • Each two full rotations (i.e. 720 degrees) will increment your team's score
  • The team with the highest score wins

Technical details

The entire application is implemented using Kotlin/Native

Server-Side

Server side runs on a linux server and is implemented using:

  • microHTTPD HTTP server library
  • SQLite for the database, storing score
  • Jansson for JSON serialization and client/server communication

Client-Side

Android

Client side for Android is implemented in pure Kotlin/Native, as a Native Activity using:

iOS

Client side for iOS is implemented in pure Kotlin/Native using:

Implementation details

  • Most graphical code, sound playback and user input reaction is shared between Android and iOS
  • Server interaction on Android is asynchronous from the UI thread, using workers
  • HTTP server works in multithreaded mode, state sharing between sessions performed via SQLite DB access
  • Android app is split into separate loader and application code, so that dynamic library (libopenal.so) included with application can be used on older Androids
  • WebAssembly frontend can fetch and render stats in the browser

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 85.6%
  • CMake 8.3%
  • Shell 2.4%
  • Objective-C 2.0%
  • HTML 1.7%