Client Stack

  • Scala: we are using Scala instead of Java
  • Cats: a library which provides abstractions for functional programming in Scala
  • Monix: a high-performance Scala library for composing asynchronous and event-based programs
  • SBT Android Plugin: SBT plugin for compiling Scala on Android
  • Macroid: DSL for Android to create user interfaces in a functional way with Scala Macros
  • Android SDK

Server Stack

  • Spray: an open-source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka
  • Akka: a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications
  • Circe: JSON library for Scala
  • Doobie: a pure functional JDBC layer for Scala
  • Http4s: a typeful, purely functional HTTP library for client and server applications written in Scala
  • Cats: a library which provides abstractions for functional programming in Scala
  • Monix: a high-performance Scala library for composing asynchronous and event-based programs
  • Flyway: an open-source database migration tool
  • Typesafe config: a configuration library for JVM languages
  • Shapeless is used as a utility in several places in the code, and is relied upon by the libraries Circe, ScalaCheck, and Doobie