Reposted by Jan SkrasekFirefox for Web Developers @webdevs.firefox.com · 22/07/2026popover="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.compopover="hint" - new in Firefox 153YouTube video by Firefox for Web Developers 27621
Reposted by Jan SkrasekGergely Orosz @gergely.pragmaticengineer.com · 16/07/2026The 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/2026Firebase RemoteConfig is becoming a paid service with a free tier. firebase.google.com/docs/remote-... 000
Reposted by Jan SkrasekJaewoong Eum (skydoves) @skydoves.bsky.social · 12/07/2026The PoC of Hot Reload on iOS, Compose Multiplatform. Compose HotSwan is taking a step toward KMP support. 0152
Reposted by Jan SkrasekEliot Higgins @eliothiggins.bsky.social · 08/07/2026In case you missed it, here's Count Binface's appearance on the BBC this morning. 20056371526
Reposted by Jan SkrasekMarco Gomiero @marcogomiero.com · 22/06/2026Another 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 SkrasekGradle @gradlebuildtool.bsky.social · 10/06/2026dependencyLocking { 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 SkrasekFirefox for Web Developers @webdevs.firefox.com · 02/06/2026Ever struggled to get heading tags right in includes/components? headingoffset could be the answer… 1124661
Reposted by Jan SkrasekNeurotica @schwarzgerat.bsky.social · 23/03/2026slop 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.comKotlinConf ’26 Day 1 Livestream: Keynote IncludedYouTube video by Kotlin by JetBrains 000
Jan Skrasek @hrach.dev · 20/05/2026It 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/2026In 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 Skrasekscrcpy @scrcpy.bsky.social · 13/05/2026scrcpy 4.0 is out 🚀 Try the new flex display feature (and more): github.com/Genymobile/s... 17112
Reposted by Jan Skrasekpatak @patak.cat · 16/05/2026Heartbreaking. 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. 431084
Jan Skrasek @hrach.dev · 14/05/2026Do 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 SkrasekMarco "Ocramius" Pivetta @ocramius.mastodon.social.ap.brid.gy · 09/04/2026Today's comical MS Teams rendering issue: 021
Jan Skrasek @hrach.dev · 06/04/2026I migrated to the Android Screenshot Plugin, and I suddenly miss the Kover's code coverage. Here's the fix: hrach.dev/posts/androi...hrach.devAndroid Screenshot Plugin and Kover Code CoverageHaving 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 SkrasekSaket Narayan @saket.me · 02/04/2026I built a tiny IntelliJ IDEA plugin for something that had been bothering me for years github.com/saket/intell... 5289
Reposted by Jan SkrasekSaket Narayan @saket.me · 01/04/2026It'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 SkrasekAndrei Shikov @shikasd.bsky.social · 27/03/2026In the next version of AGP - R8 makes coroutines 2x faster 15615
Reposted by Jan SkrasekFirefox for Web Developers @webdevs.firefox.com · 26/03/2026hasUAVisualTransition 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 SkrasekP-Y @p-y.wtf · 02/03/2026What 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 SkrasekNiki @nikitonsky.mastodon.online.ap.brid.gy · 03/03/20262022: 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/2026Do you commit manually? If so, is the message (coauthor) prepared by AI? 110
Jan Skrasek @hrach.dev · 21/02/2026Do you manually add co-authored-by or do you just not commit at all? 100
Reposted by Jan SkrasekJan Skrasek @hrach.dev · 13/02/2026Nav3: fix Lifecycle for overlaid nav keys - a bugfix for you if you're already on nav3. hrach.dev/posts/nav3-f...hrach.devNav3: fix Lifecycle for overlaid nav keysThis 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/2026Nav3: fix Lifecycle for overlaid nav keys - a bugfix for you if you're already on nav3. hrach.dev/posts/nav3-f...hrach.devNav3: fix Lifecycle for overlaid nav keysThis 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/2026www.youtube.com/shorts/CryX2...youtube.comNav3: Draggable SheetYouTube video by Jan Škrášek 100
Jan Skrasek @hrach.dev · 09/02/2026Also, nice to see that it is easy to implement this draggable sheet. hrach.dev/posts/nav3-d...hrach.devNav3: Draggable SheetThis 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/2026A bit of my Nav3 experience - first ModalBottomSheets hrach.dev/posts/nav3-m...hrach.devNav3: ModalBottomSheetThis 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/202620 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/2026Of 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/2026Is 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/2026TLDR: 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/2026Well, 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/2026Sorry, 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/2026I 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/2026But 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/2026I 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 SkrasekOrta Therox @orta.io · 03/02/2026Want 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 SkrasekSebastian Sellmair @sellmair.dev · 17/01/2026The 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 SkrasekRebecca 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 SkrasekMartin Bonnin @mbonnin.net · 13/01/2026I 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 SkrasekBasic Apple Guy @basicappleguy.com · 11/01/2026The iPod shuffle turns 21 today! 51109
Jan Skrasek @hrach.dev · 30/12/2025GraphQL scalar specification just got LocalDateTime. Love it! 😍🎉🎄 github.com/graphql/grap... 000
Reposted by Jan SkrasekMartin Bonnin @mbonnin.net · 18/12/2025New GraphQL scalar specification contributed by Jakob Merrild: `Long` scalars.graphql.org/jakobmerrild...scalars.graphql.orgLong — GraphQL Custom Scalar 111
Reposted by Jan SkrasekNextras @nextras.org · 13/12/2025The 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.comRelease 5.1.0 RC1 · nextras/ormWhat'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 SkrasekFirefox for Web Developers @webdevs.firefox.com · 11/12/2025CSS text-decoration-inset landed in Firefox 146! Here's how it works: 620438