Skip to content
2023
28.07
Sync with Settings Repository Android Studio updates - endless potential for new posts. Although, to be fair, this time it's more about IDEA. We'll see over time what else they broke there, …
15.07
Retrofit We somehow missed the moment that everyone's beloved Retrofit hasn't been released for more than three years, since May 2020. Maintainers in discussions say …
13.07
Crash-free An interesting thought came to mind that I've never thought about from this angle. Crash-free rate over time without any external factors will generally get …
10.07
A Bug Story Once a year or two, I regularly encounter some incredible detective stories at work, after which you wonder how all this didn't crash earlier. I want to share …
07.07
Threads It's amazing how megacorporations like Meta can't just make a normal application. Fine when you have legacy from a decade ago, but this is supposedly built from …
28.06
Breaking the Monolith Step by Step Let's talk about modularization. It's probably been a hot topic in the context of Android development for about five years now. During this time, I've had the …
22.06
UI State and Sealed Classes In one of the Android chats I saw a question: what's better for screen state: sealed or data class? And there were answers like it depends. Usually I answer all …
19.06
Builder Design Pattern in Kotlin (Bad Advice) The regular section "someone is wrong on the internet" returns. We're now talking about an article of the same name on Medium, which the author first …
11.06
Best Practices Recently I've been walking much more. To not waste time, I listen to talks from bookmarks from various conferences in headphones. It's funny that the more …
28.05
Nothing to Write About Most often, it seems to me that I'm not doing anything complex. I'm not a pioneer and I'm not making any discoveries. My approach is that I just walk along …
29.04
Mistakes of the Past Perhaps the most interesting part of working on any large and fairly old project is watching how the mistakes of the past are doing. In such a historical …
25.04
Interface Driven Development and ChatGPT Found another absolutely wonderful use case for ChatGPT. I was sitting today, doing code review, as usual. I feel something's not right, some solution turned …
14.04
Again (Material 3) Android Studio Flamingo came out stable today. I was browsing materials about this, particularly What's New in Android Studio - Flamingo on YouTube. I'm …
05.04
Paging Library Perhaps not a very popular opinion, but there's no worse library from Google, among current ones. This is a great example of a situation when you needed to stop …
31.03
Consequences (Jetifier) Imagine you're a big company. You made a bunch of vital libraries that all depend on each other. And the whole world depends on them, without exaggeration. Then …
26.03
Ability to Stop in Time One of the most difficult things at work is understanding when you need to stop. When you're solving some problem, you want to solve it everywhere at once. When …
14.03
Scroll Remember there were scrollbars in applications? On desktops and in browsers they're still almost everywhere, but in mobile they're on the verge of extinction. I …
09.03
About ChatGPT As soon as the public API for ChatGPT appeared, I immediately ran and connected it to my Telegram bot, fortunately all the foundation for this was already laid …
06.03
Funny Stories from Ancient Times (About enum) Once upon a time, when we didn't have all those Kotlins yet, and we wrote for Android in Java, there were talks that you can't use enums, even though they …
03.03
Flavors aka an Easy Way to Shoot Yourself in the Foot We have flavors in Android. This is a mechanism for separating builds. Everyone knows this is for separating all those dev/qa/prod, gms/hms, free/paid, …
27.02
macOS and Bluetooth I have two wireless devices that I use every day for 5-15 hours. These are Sony WH-1000XM3 headphones and a Razer Orochi V2 mouse. Lots of use cases, especially …
25.02
World of Visual Bugs I think in childhood we all played the game "find the differences" in newspapers and magazines, while in the West they were looking for Waldo. We …
21.02
Turbulence Today someone answered my Android question on StackOverflow. I checked when I asked it and it turns out it was December 2010, like over 12 years ago. Just in …
17.02
Write, Delete There's nothing more pleasant than deleting code. But only if it's not the code you just wrote, and then your manager told you that it's all no longer needed, …
13.02
Project Navigator One of the greatest mysteries of Android Studio for me is that by default, the project tree panel has Android mode selected. This is when it displays not the …
08.02
Running to Stay in Place Over the weekend, I remembered that I have a pet project - a Telegram bot written in Kotlin. Small one, a few thousand lines. My sandbox where I play with …
07.02
Unpopular Opinion About Emulator I don't like the idea of showing the emulator or screen mirror inside Android Studio. And in general all ideas to stuff into it everything that used to be …
05.02
And Everyone Shares How They Want The sharing dialog is so bad that all "big" players build something of their own as a second layer. That is, they have their own sharing dialog, from …
04.02
Sharing Let's talk about sharing. The default sharing Bottom Sheet on Android is absolutely terrible. You'd have to try hard to come up with something worse. Look at …
31.01
Pin Codes Everywhere Everyone considers it their duty to show me their custom screen for entering a pin code instead of just letting me inside. Banking apps, mobile operators, some …
23.01
UI/UX and Google I apologize in advance, it will be very hard to unsee this. The other day I saw this example with YouTube's homepage in Twitter and still can't get over it. …
22.01
2022 Year in Music The year turned out such that I had to think about music not as often as I was used to doing before. But this doesn't mean there wasn't any. We'll remember …
20.01
LeetCode Came in Handy Right in real life, yeah. I was writing a Gradle task that finds the longest path from the root app-module to the farthest module it depends on through the …
19.01
Localization is Hard By default I have English language turned on everywhere. But often for work I test something on my phone on other locales and forget to switch the language …
17.01
Life Doesn't Stand Still (Updates) I love updates. Here you are - a simple worker, after a hard working day you crawl onto the couch, want to watch some stream. You turn on your Android TV, …
09.01
Samples Quite often I browse code of some small Android applications that are posted on Reddit, in articles, in weekly newsletters, and wherever they catch my eye. …
02.01
Modern Stack A big problem of the industry is that a generation of developers has grown up who think that everyone should know the "modern stack". And now they're …
2022
31.12
Obsidian Every geek sooner or later gets the desire to make their Personal Knowledge System. Like a wiki, only about yourself. A dump of your brain, if you will. For …
17.12
Publishing detekt reports to Gitlab In my previous posts on code quality, I wrote about my experience on how we could set up detekt to get code quality reports on Android projects and about my …
17.12
We Need More Standards In general, the world of static analysis reports is wonderful. Just a reference example of xkcd/927. There are more and more of these report standards every …
12.12
Mouse About a month and a half ago I bought a mouse for my MacBook. Buying a mouse in the modern world is not as simple as it might seem. Especially for a MacBook. …
09.12
DevOps For some reason I get wildly excited about being able to take and deploy something on a remote computer, and even add some automation to this process. It's like …
05.12
macOS Has Window Problems Everyone knows that macOS always has the current application's menu in the top immovable bar. Not that I'm strongly against it, but it seems that globally …
03.12
Too Smart GitLab CI Regular column where I complain about how things work. I had to set up CI on GitLab and I dove into it quite deeply in recent weeks. Thoughts. If we discard the …
22.11
E is for Ecosystem I have a MacBook Pro M1 + an old iPad 8 (which is 2 years old). I'm thinking, why not turn the iPad into a second display for the MacBook, I heard that's …
10.11
Kotlin Extensions for Android Projects (don't do this) I came across a Habr article about "experience using one of Kotlin's main features" and, as usual, I got triggered. https://habr.com/ru/post/697908/ …
06.11
macOS and Keyboard Layout Switching For as long as I can remember on macOS, keyboard layout switching has never worked properly for me, and I've been on good terms with Macs since the Snow Leopard …
19.09
Ignorance is Strength One of the things I can't understand is why people boast about not knowing something or that they haven't done something. You know these classic ones: …
16.09
Instances of the Same Application I thought about such a fundamental thing of operating systems as running several instances of the same application in different processes. A quite obvious and, …
05.08
Again About Conservatism On Twitter once again a discussion flared up between Western Android influencers of the Kotlin vs Java, Compose vs XML type and so on. Some say "we live …