ProductPromotion
Logo

Kotlin

made by https://0x3d.site

GitHub - Kotlin/kotlinconf-spinner
Contribute to Kotlin/kotlinconf-spinner development by creating an account on GitHub.
Visit Site

GitHub - Kotlin/kotlinconf-spinner

GitHub - Kotlin/kotlinconf-spinner

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

You need to have ANDROID_HOME set to your Android SDK location.

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

Project Sources

Use JDK1.8, for Android compatibility, i.e.: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home

To use microhttpd (HTTP server) install it, i.e.:

port install libmicrohttpd
apt install libmicrohttpd-dev

To use jansson (JSON library) install it, i.e.:

port install jansson
apt install libjansson-dev

To use sqlite (embedded SQL server) install it:

port install sqlite3
apt install libsqlite3-dev

To use curl (HTTP client) install it:

port install curl
apt install libcurl3-nss

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory