@akobor

Random stuff about software development

Cover Image for The Curious Incident of Google Cast in Jetpack Compose

The Cast SDK from Google is everything but modern in terms of the officially supported ways to integrate it into modern Android apps. This is especially true if you're using Jetpack Compose. In this blog post, we'll explore how can you make it work in a Compose application, without the need of reinventing the wheel.

Adam Kobor
Adam Kobor

More Stories

Cover Image for Programmatic versioning in a KMP mobile app

Programmatic versioning in a KMP mobile app

Adjusting version numbers in a Kotlin Multiplatform mobile app can be tiresome and annoying, considering that you have to update the version number in multiple places. In this article I'll show you how to automate this process with simple Gradle tasks.

Adam Kobor
Adam Kobor
Cover Image for Wiring up Micronaut, jOOQ, Flyway and Testcontainers with R2DBC

Wiring up Micronaut, jOOQ, Flyway and Testcontainers with R2DBC

Using an application framework that is non-blocking by its nature is a nice thing, but when you do a lot of database operations in a blocking way, you can't really take an advantage of it. This article is about setting up a quite comprehensive tooling around Micronaut and PostgreSQL in a non-blocking fashion.

Adam Kobor
Adam Kobor
Cover Image for Using Testcontainers with Micronaut and Kotest

Using Testcontainers with Micronaut and Kotest

Using real resources (i.e. databases) instead of mocks in your tests can be beneficial in several ways. With Testcontainers you can have ephemeral and lightweight instances that are provisioned and destroyed automatically, and you can integrate them with your favourite test framework as well. In this article I'll show you how can you make them work with Micronaut and Kotest.

Adam Kobor
Adam Kobor
Cover Image for Heap size, memory usage and resource limits in Kubernetes for JVM applications

Heap size, memory usage and resource limits in Kubernetes for JVM applications

In Kubernetes, scaling applications vertically, that are primarily designed to scale horizontally (i.e. microservices) could be a challenging task. That's especially true for setting the right resource limits for your pod that is running a JVM application.

Adam Kobor
Adam Kobor
Cover Image for Why should you dream big about your architecture?

Why should you dream big about your architecture?

There are a lot of articles about how important the product/project vision is, when you are working in an Agile way, but almost none of them mentions architecture vision, however I think that it is at least as important as the former ones, and I will show, why you should think that too.

Adam Kobor
Adam Kobor
Cover Image for Find & Replace in Evernote on MacOS: a simple solution for a simple problem

Find & Replace in Evernote on MacOS: a simple solution for a simple problem

Evernote is not able to find and replace text in your notes when you are using its MacOS app, however there is an easy fix to tackle this issue.

Adam Kobor
Adam Kobor
Cover Image for How to: GitLab test coverage with JaCoCo and Gradle

How to: GitLab test coverage with JaCoCo and Gradle

GitLab has built-in support for two types of CI/CD badges (pipeline status and test coverage), however it's far from clear how you can make the latter work with JaCoCo and Gradle.

Adam Kobor
Adam Kobor
Cover Image for Why Kotlin for backend is a real thing?

Why Kotlin for backend is a real thing?

A year and a half ago Kotlin was just a buzzword for me, and every time it came up in a conversation, everybody was just like "Oh yeah, I've heard of it, it's for Android, yeah?". Well, I thought so too, until I dove a bit deeper into it.

Adam Kobor
Adam Kobor