SERIES: Building a backend with Ktor Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5 Generate API documentation from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor Logs are a vital part of software development....
Write
How to persist Ktor logs
Structuring a Ktor project
SERIES: Building a backend with Ktor Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5 Generate API documentation from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor It’s been a few months since I’ve started working with Ktor to build the backend of Revelop....
My audio & video setup after 4 years of remote working
I’ve been working remotely for a while and during these years I kept improving my work setup. During the last year, I’ve also increased the overall video and audio quality and now I’m pretty confident I’ve ended up with something worth sharing. A little note before moving on. Some gears I will share are cheap and others are expensive but I think that every product is one of the best that can be found in its price range....
Introducing KMP FatFramework Cocoa, a Gradle plugin for iOS FatFramework
Today I want to share KMP FatFramework Cocoa, a Gradle plugin for Kotlin Multiplatform projects that generate a FatFramework for iOS targets and manages the publishing process in a CocoaPod Repository. The plugin is born from a set of unbundled Gradle tasks that I wrote to manage the building and the publishing process of Kotlin Multiplatform libraries for iOS that we use at Uniwhere and Revelop. The libraries are published in a FatFramework that contains the code for every required architecture (real devices use the Arm64 architecture, while the simulator uses the host computer architecture which in most of the cases is X64)....
Introducing Kotlin Multiplatform in an existing project
After discovering a new interesting technology or framework, you will probably start asking yourself how to integrate it into an existing project. That’s because, the possibility to start with a blank canvas is rare (not impossible, but rare). This is also the case for Kotlin Multiplatform (I’ll call it KMP in the rest of the article). When starting a new blank KMP project it is easier to have a mono-repo structure like this:...
Migrating old artifacts from JCenter to MavenCentral
As you may have heard, JCenter is shutting down in May 2021. Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ So, if you are using JCenter as the repository for your libraries (as me), it’s time to migrate. In this article, I will not go through the publishing process of a library to MavenCentral, because there are already plenty of resources available. For example, I followed the one written by Márton Braun....
Running a blog with iPad
It’s been a few years since I started writing this blog, and I quite like sharing my thoughts and experiences. After a short while spent on Medium, I decided I wanted to be the sole owner of my content, so I started experimenting with different solutions and ideas. After I finally landed on the “perfect” tech architecture (I know, I’m lying. There’s no perfect solution and Future Me will most likely refactor and (over)re-engineer the current solution), I started to seek the “perfect” writing setup....
Using Retrofit and Alamofire with Kotlin Serialization on Kotlin Multiplatform
If you are starting a project with Kotlin Multiplatform and you want to share the network layer, the best way to go is definitely with Ktor. But if you don’t want to share the entire network layer but maybe only the DTOs? There could be many reasons for wanting this. Maybe you are starting to integrate Kotlin Multiplatform (I’ll call it KMP in the rest of the article) into an existing project and the work for sharing the entire network layer is simply too much....
Choosing the right architecture for a [new] Kotlin Multiplatform, Jetpack Compose and SwiftUI app
Recently, I’ve started to work on (yet another) side project: Money Flow. As the name suggests, this is an application to help me track all the expenses and incomes. I’ve thought and designed it almost a year ago but only now I’ve found the time to start writing actual code. A first design iteration, that will change a bit I’ve decided to make this project a personal playground for a Kotlin Multiplatform mobile app....
My 2 Cents about cross-platform
During my journey as a mobile developer, I had the chance to try and give a look at some cross-platform solutions both for work and fun reasons. Today, I want to share my thoughts and considerations about them and why/when you should use cross-platform. I hope that these thoughts will be helpful to anyone that is in the process of choosing the right solution for their product. Disclaimer: in this article, I will share some opinions based on my experience and they can apply to your situation or not....
QR Reader Secure - Privacy-Focused and Secure QR Reader
Last week my parents asked me to download to their phones a simple QR Reader. So I opened the Play Store and I started to search an easy to use application, without lot’s of noise (oh, I mean intrusive ads..) and without ulterior motives. Well, I wandered around the Play Store for an hour without finding an answer. Some apps will require all the imaginable permission only to scan a QR code....
Friends Tournament - Tournament creation and management made easy
Today I want to share Friends Tournament, a side project that I have been working on for the past year during my spare time. Friends Tournament is a simple application that will help you to manage and organize tournaments with your friends. You can use it to generate videogames tournament, sports tournament, board games tournament, whatever type of tournament do you want. All you need to do is to provide the number of players, the number of matches and the numbers of player that can play at the same time....