Sign in

Jan Skrasek

@hrach.dev
133 followers 274 following 116 posts

Mobile Software Engineer @ Rohlik.cz / Rohlik.group, ex-Disney+ Hotstar, ex-Kiwi.com; Nextras ORM and PHP by night: nextras.org Blog hrach.dev

PostsRepliesMedia
Reposted by Jan Skrasek
Kotlin Weekly @kotlinweekly.bsky.social · 16/09/2026
Krakow it is.
1162
Reposted by Jan Skrasek
Firefox for Web Developers @webdevs.firefox.com · 22/07/2026
popover="hint" landed in Firefox 153. Here's how it differs from regular popovers: youtube.com/shorts/HWetx... (sorry for the YouTube link, it seems like video uploads are broken on bsky today)
youtube.com
popover="hint" - new in Firefox 153
YouTube video by Firefox for Web Developers
27621
Reposted by Jan Skrasek
Gergely Orosz @gergely.pragmaticengineer.com · 16/07/2026
The last 7 weeks, Spotify had 4 outages when publishing my podcast episodes (!!). After outage #3, I asked the Podcasts team to share how they are improving reliablity. They didn't share - and it just got worse. So I am no longer publishing video podcasts on Spotify, but redirect my audio RSS.
47715
Jan Skrasek @hrach.dev · 15/07/2026
Firebase RemoteConfig is becoming a paid service with a free tier. firebase.google.com/docs/remote-...
000
Reposted by Jan Skrasek
Jaewoong Eum (skydoves) @skydoves.bsky.social · 12/07/2026
The PoC of Hot Reload on iOS, Compose Multiplatform. Compose HotSwan is taking a step toward KMP support.
0152
Reposted by Jan Skrasek
Eliot Higgins @eliothiggins.bsky.social · 08/07/2026
In case you missed it, here's Count Binface's appearance on the BBC this morning.
20056371526
Reposted by Jan Skrasek
Marco Gomiero @marcogomiero.com · 22/06/2026
Another tool in my Swiss Army Knife for day-to-day work 💪 It's called Slashgrab, a macOS menu bar app for copying file and folder paths. Drag it onto the icon, drop it, and the path is copied to the clipboard. So I don't need to go crazy to get a path from whatever. slashgrab.app
011
Reposted by Jan Skrasek
Gradle @gradlebuildtool.bsky.social · 10/06/2026
dependencyLocking { lockAllConfigurations() } Locks all resolved versions to a lockfile. Nobody accidentally upgrades a transitive dependency without it showing up in the diff.
021
Reposted by Jan Skrasek
Firefox for Web Developers @webdevs.firefox.com · 02/06/2026
Ever struggled to get heading tags right in includes/components? headingoffset could be the answer…
1124661
Reposted by Jan Skrasek
Neurotica @schwarzgerat.bsky.social · 23/03/2026
slop is something that takes more human effort to consume than it took to produce. When my coworker sends me raw Gemini output he’s not expressing his freedom to create, he’s disrespecting the value of my time
12969256
Jan Skrasek @hrach.dev · 21/05/2026
@kotlinconf.com Why are you broadcasting the KotlinConf'24 talk in the live stream from today? Suddenly, QA of the last talk switched to this? Thx! www.youtube.com/watch?v=MmwB...
youtube.com
KotlinConf ’26 Day 1 Livestream: Keynote Included
YouTube video by Kotlin by JetBrains
000
Jan Skrasek @hrach.dev · 20/05/2026
It was not a demo. It was prepared upfront. It tells us that the model misses basic arch knowledge & they don't have any relevant skills bundled.
010
Jan Skrasek @hrach.dev · 19/05/2026
In a blink of a second, Google IO is presenting a vibecoded Android app that "manually" parses JSON on the main thread. But ... since your company CEO can do that by themself, that's progress, isn't it?
151
Reposted by Jan Skrasek
scrcpy @scrcpy.bsky.social · 13/05/2026
scrcpy 4.0 is out 🚀 Try the new flex display feature (and more): github.com/Genymobile/s...
17112
Reposted by Jan Skrasek
patak @patak.cat · 16/05/2026
Heartbreaking. And a wake-up call. It is no longer about being difficult to find a way to sustain yourself through your work online. It is no longer sustainable to keep a website up now. Axel has done so much for the web and all of us. Buy one of his books if you can. We've learned so much from him.
2ality blog: temporarily offline

Dear visitor! Two things happened recently:

- The income from my book sales went from being enough for me to live off (2024) to zero (2026).
- The traffic to my blog and my books (which were free to read online) increased beyond what I can currently afford. Virtually all of it comes from AI crawlers, so there is no ad income.

Therefore, I’m taking my blog and my books offline so that I can decide what to do next – especially w.r.t. AI companies stealing my work. This may take a while (think months): I don’t have any energy to deal with this right now.

I apologize for this (hopefully temporary) inconvenience to my human readers! You can still buy my books at Payhip.

Axel Rauschmayer
431084
Jan Skrasek @hrach.dev · 14/05/2026
Do I understand that correctly? Also, the usage rules state that it is denied to use AMAPI for in-house applications only. Do you have any comments on that? :) Thx. #androidenterprise
100
Jan Skrasek @hrach.dev · 14/05/2026
@jason.bayton.org Hi Jason, reading your great post and this "The same APIs that power commercial MDM solutions are available to anyone with a Google Cloud project." makes me feel it is super easy. Yet, it seems that AMAPI requires approval from the Google side to even get 1 device enrollment.
100
Reposted by Jan Skrasek
Marco "Ocramius" Pivetta @ocramius.mastodon.social.ap.brid.gy · 09/04/2026
Today's comical MS Teams rendering issue:
MS Teams "how was the call quality?" questionnaire, showing that some of the checkboxes in the form overlap with each other, making the text unreadable.
021
Jan Skrasek @hrach.dev · 06/04/2026
I migrated to the Android Screenshot Plugin, and I suddenly miss the Kover's code coverage. Here's the fix: hrach.dev/posts/androi...
hrach.dev
Android Screenshot Plugin and Kover Code Coverage
Having an official solution for Compose Screenshot is great. Basically, you get similar stuff to Paparazzi - a wrapper around layoutlib. What I enjoy is a separate source-set. But that comes with a li...
011
Reposted by Jan Skrasek
Saket Narayan @saket.me · 02/04/2026
I built a tiny IntelliJ IDEA plugin for something that had been bothering me for years github.com/saket/intell...
5289
Reposted by Jan Skrasek
Saket Narayan @saket.me · 01/04/2026
It's interesting how clearly Google vs Apple shows up in something as small as virtual devices frames. iOS simulator: sharp, natively rendered Android emulator: transparent PNG, rough corners with jagged edges
1103
Reposted by Jan Skrasek
Andrei Shikov @shikasd.bsky.social · 27/03/2026
In the next version of AGP - R8 makes coroutines 2x faster
15615
Reposted by Jan Skrasek
Firefox for Web Developers @webdevs.firefox.com · 26/03/2026
hasUAVisualTransition landed in Firefox 149, making it available across all major engines. As well as having a very catchy name, it lets you avoid doubling up on page transitions. Here's how it works:
67510
Reposted by Jan Skrasek
P-Y @p-y.wtf · 02/03/2026
What happens to Square / Block Android OSS projects post layoffs? Let's start with some context OSS at Square is mostly a happy accident. Jack hired Bob, who's job was attracking world class engineers, and he did that through talks & OSS.
28123
Reposted by Jan Skrasek
Niki @nikitonsky.mastodon.online.ap.brid.gy · 03/03/2026
2022: We need to figure out a way to stop AI from wanting to kill humans 2026: We want AI to kill humans
016
Jan Skrasek @hrach.dev · 21/02/2026
Do you commit manually? If so, is the message (coauthor) prepared by AI?
110
Jan Skrasek @hrach.dev · 21/02/2026
Do you manually add co-authored-by or do you just not commit at all?
100
Reposted by Jan Skrasek
Jan Skrasek @hrach.dev · 13/02/2026
Nav3: fix Lifecycle for overlaid nav keys - a bugfix for you if you're already on nav3. hrach.dev/posts/nav3-f...
hrach.dev
Nav3: fix Lifecycle for overlaid nav keys
This is a post in a series on how I tackled Nav3 concepts and wired things together. Dialogs are modeled as an overlay scene; the destination behind the screen must remain rendered. Right now, its lif...
001
Jan Skrasek @hrach.dev · 13/02/2026
Nav3: fix Lifecycle for overlaid nav keys - a bugfix for you if you're already on nav3. hrach.dev/posts/nav3-f...
hrach.dev
Nav3: fix Lifecycle for overlaid nav keys
This is a post in a series on how I tackled Nav3 concepts and wired things together. Dialogs are modeled as an overlay scene; the destination behind the screen must remain rendered. Right now, its lif...
001
Jan Skrasek @hrach.dev · 09/02/2026
www.youtube.com/shorts/CryX2...
youtube.com
Nav3: Draggable Sheet
YouTube video by Jan Škrášek
100
Jan Skrasek @hrach.dev · 09/02/2026
Also, nice to see that it is easy to implement this draggable sheet. hrach.dev/posts/nav3-d...
hrach.dev
Nav3: Draggable Sheet
This is a post in a series on how I tackled Nav3 concepts and wired things together. I needed a sheet that can be closed by dragging down - it surprised me a bit that the implementation is not that di...
100
Jan Skrasek @hrach.dev · 09/02/2026
A bit of my Nav3 experience - first ModalBottomSheets hrach.dev/posts/nav3-m...
hrach.dev
Nav3: ModalBottomSheet
This is a post in a series on how I tackled Nav3 concepts and wired things together. I needed a sheet that can be closed by dragging it down. It surprised me a bit that the implementation isn’t that d...
100
Jan Skrasek @hrach.dev · 05/02/2026
20 minutes later... it zipped everything back, I installed the plugin, and I can use Kotlin 2.3. I'm definitely not a crazy proponent of wibe coding, etc. But truthfully, AI just empowers my skills to do more. I hope I won't lose the joy later on, but rn this is breathtaking.
000
Jan Skrasek @hrach.dev · 05/02/2026
Of course, I had to guide it a bit (like "decompile it first to see what exactly you need to remove and only after that write the script that manipulates the bytecode").
100
Jan Skrasek @hrach.dev · 05/02/2026
Is there any online editor I could use to do this? No? The only possibility is to do this programmatically. Do I need Kotlin 2.3 so much that I have to learn this? No, sorry. Wait a moment. Claude code, hello there!
100
Jan Skrasek @hrach.dev · 05/02/2026
TLDR: We need to remove these two lines from bytecode. That's not easy, right? We can decompile, easily remove, but we cannot compile back. So, bytecode manipulation it is. :( :( :( again.
100
Jan Skrasek @hrach.dev · 05/02/2026
Well, not so easy. The functionality is not easy to turn off in plugin.xml. :( :( :( But we have the compiled .class, right? Let's look up the source code in GitHub. Oh yes, this is it: github.com/JetBrains/an...
100
Jan Skrasek @hrach.dev · 05/02/2026
Sorry, I do not have time to wait another week for a fix. So... let's download the Android plugin and disable the functionality that causes this (some lorem ipsum plugin, totally irrelevant - the Lorem ipsum is meant seriously, the code instantiating Lorem Ipsum generator is crashing).
100
Jan Skrasek @hrach.dev · 05/02/2026
I opened a ticket to JetBrains. They identified that it is not an issue of the Kotlin plugin in like 10 minutes (wowo), but the Android one that is crashing (and they posted the relevant stack trace).
100
Jan Skrasek @hrach.dev · 05/02/2026
But of course, the latest IntelliJ EAP supports a newer Android plugin that supports AGP 8.13. A win! Until you realize, it's buggy as hell, it crashes in certain files and then there is no auto-completion nor code highlighting.
200
Jan Skrasek @hrach.dev · 05/02/2026
I want to use Kotlin 2.3 because of certain features. To use it, you need AGP 8.13 to avoid R8 issues and thousands of build warnings. But if you use IntelliJ IDEA like me, no luck, buddy. It supports only 8.12 for now.
100
Reposted by Jan Skrasek
Orta Therox @orta.io · 03/02/2026
Want to re-raise this banger of an article, which really helped frame the differences between atproto and bluesky, and turned me into a convert for atproto bsky.app/profile/dana...
07411
Reposted by Jan Skrasek
Sebastian Sellmair @sellmair.dev · 17/01/2026
The Kotlin ecosystem might not choose a strict 'SemVer' notation (and it's gonna be fine!) blog.sellmair.io/the-kotlin-e...
blog.sellmair.io
163
Reposted by Jan Skrasek
Rebecca Franks @riggaroo.dev · 16/01/2026
👀 Want to see a preview of what's coming up in #JetpackCompose? We heard you that debugging shared elements is tricky. In 1.11.0-alpha03, a new composable LookaheadAnimationVisualDebugging was added. Wrap your SharedTransitionLayout to add visual cues to track down those hard to debug issues. 🐛⤵️
14112
Reposted by Jan Skrasek
Martin Bonnin @mbonnin.net · 13/01/2026
I think we should aim for both. Modern hardware should reasonnably be able to create a graph with hundreds of thousands of nodes in milliseconds. Of course that doesn't work if there's IO in between but this is where we need Gradle strict mode.
041
Reposted by Jan Skrasek
Basic Apple Guy @basicappleguy.com · 11/01/2026
The iPod shuffle turns 21 today!
51109
Jan Skrasek @hrach.dev · 30/12/2025
GraphQL scalar specification just got LocalDateTime. Love it! 😍🎉🎄 github.com/graphql/grap...
000
Reposted by Jan Skrasek
Martin Bonnin @mbonnin.net · 18/12/2025
New GraphQL scalar specification contributed by Jakob Merrild: `Long` scalars.graphql.org/jakobmerrild...
scalars.graphql.org
Long — GraphQL Custom Scalar
111
Reposted by Jan Skrasek
Nextras @nextras.org · 13/12/2025
The release candidate for Nextras ORM 5.1 is out! This version is a service pack for the 5.0 branch. It fixes a lot of edge cases and quirks, and also brings a few new features. github.com/nextras/orm/...
github.com
Release 5.1.0 RC1 · nextras/orm
What's Changed Add DateTime property wrapper in #732 Add Date property wrapper in #746 Model PrimaryProxy modifier as property wrapper in #731 Use Weak Reference in the Identity map in #764 Add Pr...
111
Reposted by Jan Skrasek
Firefox for Web Developers @webdevs.firefox.com · 11/12/2025
CSS text-decoration-inset landed in Firefox 146! Here's how it works:
620438