-
·
Diventa un Android Dev
Dal 1 febbraio 2021, in collaborazione con CGM Consulting, partirà il mio corso di programmazione Android destinato a tutti coloro che si stanno avvicinando al mondo della programmazione mobile: https://bit.ly/corso-android-ivan-morgillo Anche se sei già un dev, c’è sempre la possibilità di aiutare qualche amico o amica interessati ad una carriera come Android Dev 😉 Il…
-
·
IntelliJ IDEA / Android Studio Tricks: “Presentation Assistant” plugin
One of my great passions related to programming is “Pair programming” or in its group version “Mob programming”. I have been fascinating by Extreme Programming for a long time and I strongly believe in its effectiveness. However something that often added friction while practicing PP was my extensive use of keyboard shortcuts. It’s a personal…
-

·
Sealed Classes in Kotlin: How to handle the missing .copy() method (2026 Update)
A few weeks ago we looked at one of my pain points of working with Kotlin Data Classes: nested copy and we improved on a basic Kotlin solution using a Lens. Today we look at another type of nesting: Sealed Classes nesting. When we wanted to create some sort of restricted hierarchy in Java we…
-
·
IntelliJ IDEA / Android Studio Tricks: “Save Actions” plugin
One of my favorite plugins that I constantly suggest to install is Save Actions Save Actions plugin allows me to run a few code quality actions whenever a file is saved: pretty straightforward. The configuration is accessible from Preferences -> Other Settings -> Save Actions and the default looks pretty much like this: This is…
-

·
How to fix the pain of modifying Kotlin nested data classes
When Kotlin arrived a few years ago one of the selling points was immutability: In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created. https://en.wikipedia.org/wiki/Immutable_object This is very cool! Value objects are such a huge help when it comes to reasoning about code, safety and avoiding weird subtle misbehaviours due to “things…
-
·
IntelliJ IDEA / Android Studio Tricks: Surround With
In one of my previous posts I wrote about one of my favorite features of IntelliJ IDEA/AS: Live Templates. “Surround With” is a sort of LT’s cousin. When you want to wrap a piece of code with a specific snippet, you select the code and hit the “Surround With” shortcut. On Mac you can access…
-
·
IntelliJ IDEA / Android Studio Tricks: Live Templates
One of my favorite features of IDEA are Live Templates. To give you a bit of context, Live Templates are those things you see appearing when you start typing in IDEA 😂 OK OK, let’s be a bit more precise. If you are writing some Java code and you type foreach and then press TAB,…
-
·
My IntelliJ Plugin Collection – Kotlin Fill class
I spend on average 8 hours a day using Intellij and, over the years I created quite a collection of useful plugins. This is the first article of a series where I will present all the plugins I use every day 😄 Kotlin Fill Class One of the Kotlin tools I use every day are…
-
·
Go to first unread message on Telegram Web
As for millions of users, Telegram is part of my communication toolkit: family, friends, community and some pet projects are connected through this fascinating chat system. When it comes to desktop experience, Telegram offers a couple of options: native app or web app. I’m not a big fan of native apps: things like Slack sucking…
-
·
ADB Pro: Install and run an Android app on every connected device (2026 Update)
I usually have only one device connected when I develop non-UI related parts of the app, but when it comes to UI, I tend to try out the app on as many devices as possible. There was a time when I actually had physical devices connected all the time (https://ivanmorgillo.com/2016/01/05/first-hardware-project-of-2016-device-holder/), but lately I have been…