Write

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....

Flutter or React Native, a cross-platform dilemma - Serie wrap-up

Which framework should I use? How to build UIs? How do things work under the hood? These are the types of questions that I’ve answered during the series of articles about Flutter and React Native. Some time ago I started learning Flutter for fun reasons and at the same time, I (had to) started learning React Native for work reasons. While learning and using them, I started to see some differences and some common concepts between them....

Flutter or React Native, a cross-platform dilemma - How to chose + Bonus - (Part 4)

Welcome to the fourth and last part of this article series about React Native and Flutter. In the first episode, we have introduced the two frameworks with some history and with a comparison between the languages that they use. In the second episode, we have talked about User Interfaces and how to build them. In the third episode, we went deeper under the hood to understand how things work. And now it’s time to wrap things up by trying to understand how to choose the right framework for you....