Flaem: Android app
Kotlin and Compose, push via FCM, home-screen widgets.
We write native Android apps in Kotlin with Jetpack Compose, and use Kotlin away from phones too: in a database engine and a language interpreter.
The projects on this page on the screens from the portfolio and the case studies, each with a short description and the way to the full one.
Kotlin and Compose, push via FCM, home-screen widgets.
A native Jetpack Compose client: servers, channels, groups, voice calls and home screen widgets.
A technology has to fit the place the code will run and the team that will take it over. The final choice is made in the quote, together with you.
Flaem, Plazer and Gyred have Jetpack Compose clients on Android. The app starts at once, with no wait for a browser engine, and gestures and scrolling are the system's own.
The Flaem and Plazer apps show the key information in widgets, without opening the app. Only a native app can have a widget.
An FCM notification about a server outage opens that very server's console. From the signal on the phone to the place you can act, it is one tap.
Plazer's Android app calls the Rust core through UniFFI and does not touch the cryptography itself. Kotlin draws the interface, and the protocol is the same code as in the browser.
Gyred on Android shows the agent sessions waiting for a decision and lets you answer from the phone. A native client starts fast, and what counts is the time from the notification to the answer.
kestrel is a database engine with a SQL parser, a B-tree, a WAL and transactions, and lumen is a language with a bytecode compiler. Sealed classes describe their syntax trees so that the compiler makes sure every kind of node is handled.
When both platforms should do the same and widgets are not needed, one codebase in React Native with TypeScript or in Flutter costs less than two native apps.
The VulCode client panel installs on a phone as a TypeScript web app, with no store. That is enough for invoices and tickets, and a fix does not wait for Google Play review.
On iOS, widgets, APNs notifications and the Keychain are handled by Swift code. We write the Flaem and Plazer iOS clients in SwiftUI.
We do not write Plazer's encryption in Kotlin. The Rust core is one for Android, the browser and the desktop, so the protocol has one implementation to check.
We write the services the app talks to in Go or Rust: the Plazer hub is in Go, the Flaem core in Rust. They have to run on many machines as single binaries, without a JVM.
Kotlin runs on Paper, but the documentation, examples and most plugin libraries are in Java. We write Frozcraft in Java so the next person on the project finds answers straight away.
Each need on a row of its own, with what each of the two columns gives you on it side by side.
How many lines we have written in Kotlin, and what part of everything we have written that is. We count the lines added in the commits of our repositories, language by language.
From the dependency files of our repositories. With each, one sentence on what we use it for.
The Android app interface.
Navigation between screens.
Reading API responses.
Push notifications on Android.
Answers about Kotlin, our projects and the numbers on this page.
Write-ups of the projects on this page and an overview of every technology.
Describe what you want to build. We reply within an hour and tell you plainly whether this technology is a good choice.