Auto-Incerement your builds
One irritating thing about Google Play Console is that it will show you need to increment the versionCode AFTER you have uploaded and it has processed your build. I’m currently working with very large .aab and APK sizes for testing - and it takes quite a while to process the build. It’s extremely frustrating to see that you forgot to increment your build version after making and uploading the build. So I found this straightforward solution on Stack Overflow that auto-increments your build versi
NoSuchMethodError - a headache in a multi-module project.
Lately, I’ve been working with a legacy multi-module project in Android. I aimed to complete all the application initialization in my newly created module. However, the legacy module had an Application class of it’s own with quite a bit of logic. I faced a problem - how do I initialize the legacy application class, since you can only have one in Android? Well, I decided to simply make the legacy Application an ordinary class and pass Context from my Application into the former application. T
Ktor engines
Ktor has many engines, but each one comes with its own unique challenges + configurations. This is the price that must be paid for being a highly flexible framework. The Ktor team has done a wonderful job. The fact that Ktor can work with so many platforms is amazing. I'm sharing a part of the slideshow that I'm using in networking section of my KMP course and I hope you find it useful!
Source sets or How KMP organizes multi-platform code.
One of the core aspects of KMP is source sets, which help us organize multi-platform code. In order for the app to compile properly and interact with platform-specific APIs, it's important to familiarize yourself with this concept. I've put together this post to help you understand this better. What have you struggled with in KMP? Let me know in the comments 👇
Breaking UI changes in Android 16.
Fellow Android developers - beware! Breaking changes in Android 16. 🚨 Android will ignore the orientation attribute in your Manifest starting from Android 16. So if your app is forcing this and you're targeting the latest Android - your UI might get messed up. While this is, of course, not fun for those who will have to re-do their UI - I see this as a positive change. Many devs abused this by forcing certain orientations in their apps - not realizing that configuration changes can still happe
Kotlin’s :: operator and kewl things you can do with it
Kotlin has many concise operators, but one of the “confusing” ones is the:: operator. You’ve probably seen it a bunch of times in projects you’ve worked in. Java has it as well. The :: operator is called the callable reference operator. It gives you a reference to a function, property, or a constructor without invoking it. This has many applications, but in this post I’ll show you just a couple of popular applications. You can see the carousel below for examples. So, we can use :: (callable re
Flutter vs React Native vs KMP. Which one should you choose?
I recently gave a talk at SeniorDev where I shared a decision tree to help teams choose between these three cross-platform frameworks. Each has strengths, but the “right” choice depends on your existing codebase, team experience, goals, and release timelines. So I put together this decision tree to help you make the right decision. This tree, of course, does not account for everything, but it should give you a general sense of direction. 🎥 The full talk is here 📊 The decision tree is fe

Why I have 4 names
Why I have 4 names.You might have noticed lately that I use Mykola and Nikolay interchangeably. I also have 2 other names that I use - Nick and Kolya (Коля). Let me explain. I come from Ukraine but from a Russian-speaking family. At birth, I was given the name Nikolay - which is a Russian variant of Ukrainian Mykola. Don’t ask me why Ukrainians decided that Mykola == Nikolay, but that’s how it is. So, right at birth I was destined for confusion when I was to travel abroad. Like many other nati

KMP course networking section structure
Now that I'm back from vacation, I'm fully engaged in the process of building my course. Today, I pinned down the structure of the 3rd section, which will mostly cover the networking part. So here it is... What do you think? Anything you would add or change in this section? If you're interested in KMP - You can get early access to my course right now Learn KMP!
Blah
blah blbah
Coming soon
This is Nikolay Miroshnychenko, a brand new site by Mykola Miroshnychenko that's just getting started. Things will be up and running here shortly, but you can subscribe in the meantime if you'd like to stay up to date and receive emails when new content is published!
