A lot of the points in the talk could sound obvious or maybe were already implicitly learned by working with Compose code, but having the most important things all in one place and structured nicely was very engaging to watch. I've also learned a few things I didn't know.
26.05.2025 13:05 β π 1 π 0 π¬ 0 π 0
Mmmm
The statement that the AI E2E tests will be less flaky than the hand-written ones is a bit too optimistic.
Hand-written tests are easy to monitor, debug and fix. Who fixes Gemini, when it suddently stops finding the right image or button in an app, or is just down?
21.05.2025 08:13 β π 0 π 0 π¬ 0 π 0
This image shows a Sankey diagram visualizing the path of 30 job applications β from submission to final outcome. The flows indicate how many applications progressed in each way.
Key stages in the process:
Applications (total: 30):
- 23 via a website
- 5 via an employee referral
- 2 contacts were initiated by the company ("I was contacted")
Initial responses:
- 6 applications were ignored
- 6 received a reply
Progress after contact:
- 4 led to an introductory interview
- Of those:
- 2 led to a technical interview
- 1 of those led to a signed employment contract
- 2 ended without further decision ("no rejection, no continuation")
Rejections:
- 17 applications were rejected
Candidateβs own decision:
- 4 times the applicant declined
Summary:
- Most applications came through websites but often didnβt go far.
- Only one application resulted in a successful hire.
- Overall, response rates were modest: many were ignored or rejected early on.
The diagram provides a clear overview of the application process, highlights bottlenecks (e.g., many early rejections), and gives a good sense of the overall success rate.
#AndroidDev job search in Germany, senior remote position, visualized.
Took about one and a half months, and I feel incredibly lucky that it took that little - my last job search took me about 6 months.
(what the red colors are in the diagram I don't know, was too tired to fix them)
14.05.2025 09:40 β π 1 π 0 π¬ 0 π 0
wow
11.05.2025 20:25 β π 0 π 0 π¬ 0 π 0
Maybe I'm dead wrong then, because this phrase seemed unnecessarily overcomplicated to me, like LLM like to generate π
11.05.2025 20:13 β π 1 π 0 π¬ 1 π 0
What do you mean?
Sorry I don't understand
11.05.2025 20:05 β π 0 π 0 π¬ 1 π 0
Boost app performance and battery life: New Android Vitals Metrics are here
New Android Vitals metrics focusing on excessive wake locks, giving developers tools to resolve consumption issues and improve app performance.
Kudos to the Android team for consistantly improving the performance tools
And anti-Kudos for starting using LLMs to write their articles ("continuously evolving to deliver exceptional user experiences" - who speaks like that?)
android-developers.googleblog.com/2025/04/boos...
#AndroidDev
11.05.2025 16:34 β π 1 π 0 π¬ 2 π 0
π«
14.04.2025 06:17 β π 0 π 0 π¬ 0 π 0
After many years I've finally given up and started using vscode instead of sublime text.
I was a big fan of sublime, but it seems vscode is pretty much the industry standard now and many people around often me don't even know what sublime isπ₯²
13.03.2025 15:06 β π 1 π 0 π¬ 1 π 0
This strategy can be very useful when we want to measure performance during a high-load system state, when tasks queues are full and an additional thread switch (measuredFunction giving control to the original thread) could take too much time, making metrics from users unreliable.
12.03.2025 08:43 β π 0 π 0 π¬ 0 π 0
In the snippet above:
- uptimeMillis is first called on the thread which will invoke measuredFunction
- after measuredFunction returns, the execution is still within the measuredFunction's thread
- so we measure the time it takes to switch to the thread of measuredFunction and for it to get executed
12.03.2025 08:43 β π 0 π 0 π¬ 1 π 0
withContext(Dispatchers.Unconfined) {
val start = SystemClock.uptimeMillis()
measuredFunction()
val duration = SystemClock.uptimeMillis() - start
report(duration)
}
Personal opinion: although the Unconfined dispatcher could be tricky, it's quite useful when one wants to measure performance of suspending function in "real life", on user devices:
12.03.2025 08:43 β π 0 π 0 π¬ 1 π 0
Dispatchers.Unconfined and why you actually want EmptyCoroutineContext
Use EmptyCoroutineContext instead of Dispatchers.Unconfined.
A nice article about Dispatchers.Unconfined by @colinwhite.me, very useful if one wants to understand Kotlin Dispatchers a bit better: code.cash.app/dispatchers-...
12.03.2025 08:43 β π 1 π 0 π¬ 1 π 0
I bet this talk would be of a great usefulness for someone, who just received an objective to improve the Jetpack Compose performance of some code base. It gives several good ideas of what to look at and where to start.
31.01.2025 11:13 β π 0 π 0 π¬ 0 π 0
Jetpack Compose: Drawing without pain and recomposition
This is a talk on recomposition in Jetpack Compose and the myths of too many calls it is followed by. I'll briefly explain the reasons behind recompositions and why they are not as problematic as they...
A very-very interesting #AndroidDev talk from Vitalii Markus, where shows quite a few examples of how the Flow app improves Jetpack Compose #performance in critical places, moving heavy work to later phases (developer.android.com/develop/ui/c...)
www.droidcon.com/2024/11/22/j...
31.01.2025 11:13 β π 1 π 0 π¬ 1 π 0
I almost haven't worked with Jetpack Compose professionally yet so I learn about such nice changes a bit too late after they come out. It's nice seeing how Compose gets more and more mature with each year though.
But I still wish it used much less magic under the good.
31.01.2025 11:06 β π 0 π 0 π¬ 0 π 0
New ways of optimizing stability in Jetpack Compose
Master strong skipping, annotations, configuration file, and more to optimize stability.
A great #AndroidDev article on Strong Skipping Mode of Jetpack Compose, which was released in the summer of 2024 and is designed to greatly optimize the lib #performance without forcing devs to rewrite too much code.
medium.com/androiddevel...
31.01.2025 11:06 β π 0 π 0 π¬ 1 π 0
YouTube video by droidconLisbon
Sergio Sastre FlΓ³rez - Composable Preview Driven Development: TDD-fying your UI with ease!
Another #AndroidDev talk on Preview-Driven-Development. From Sergio Sastre Florez, who is unfortunately not on Bluesky yet.
www.youtube.com/watch?v=cDqd...
This is probably the best guide on PDD that I've seen. It's really good at explaining the first steps one could follow to try this approach.
31.01.2025 10:58 β π 0 π 0 π¬ 2 π 0
now*
31.01.2025 10:53 β π 0 π 0 π¬ 0 π 0
The company I worked at in 2023 one day started to apply a very similar approach to the modules structure.
I was in an entirely unrelated team so I didn't ask questions, but now I wonder if maybe this talk has influenced the transformation.
31.01.2025 10:51 β π 0 π 0 π¬ 0 π 0
Android at Scale @Square
A wonderful #AndroidDev talk from @ralf-wondratschek.com on how Android modules were structured at @Square back in 2019 (it's the year of the talk), for build #performance.
www.droidcon.com/2019/11/15/a...
I wonder how much the modules approach at @Square has change since then.
31.01.2025 10:51 β π 1 π 0 π¬ 3 π 0
I didn't yet have the opportunity to use it.
Back in the day all the devs were coming up with their own ways to determine how performant the device is - some were considering RAM size, some number of cores or screen resolution.
It was somewhat chaotic, and I wonder how much this lib helps nowadays.
31.01.2025 10:41 β π 0 π 0 π¬ 0 π 0
Performance Class helps Google Maps deliver premium experiences
The Media Performance Class (MPC) standard helps developers understand a device's capabilities and tailor user experience accordingly.
An interesting #AndroidDev #performance article about the (relatively) new Performance Class feature of Android (which helps to determine how performant is the device)
More specifically, the article demonstrates how Google Maps use this new feature
android-developers.googleblog.com/2025/01/perf...
31.01.2025 10:41 β π 1 π 0 π¬ 1 π 0
I doubt that a lot of people who are not directly working on the low-level AOSP-things face similar issues to the ones described in the article, but nevertheless it's always fun to learn a bit more about how benchmarks work on a lower level.
31.01.2025 10:34 β π 0 π 0 π¬ 0 π 0
Speeding Up UI Tests 4x While Reducing Costs
In software development, speed and reliability are everything. Achieving both meant a significant overhaul of how we handled UI tests.
A wonderful article on #AndroidDev CI/CD: engineering.traderepublic.com/speeding-up-...
The author tells a performance improvement story, sharing enough details about their journey to allow the reader to consider the author's approach for their own projects.
29.12.2024 08:54 β π 1 π 0 π¬ 0 π 0
It's a pretty old article (2020) and googling the people mentioned in such articles leads to odd things sometimes.
E.g. here Aleksei Zakharov was mentioned as a source of Wisdom, but then I google him and find out that the company has laid him off, as of he never was a source of Wisdom...
22.12.2024 09:10 β π 0 π 0 π¬ 0 π 0
Get the latest Android news, best practices, live videos, demonstrations, tutorials, and more!
Android @ Cash App. Merge conflicts are my cardio https://github.com/colinrtwhite
π€ #Android GDE | Lead developer
β€οΈ TDD, Unit & UI testing
πͺ I make things happen
Pfp made by Andrew in https://picrew.me/en/image_maker/2260685
She/her
Clojure, good UI, mental health tech. Building Parts (https://parts.ifs.tools) for IFS therapists. Husband and 2Γdad.
β« Studio: @a.possible.space
π‘ Homepage: https://gosha.net
π SE London
Photography (https://curious-creature.com), Blog (https://romainguy.dev). In the past: Engineering Director, Android Toolkit team at Google.
https://p-y.wtf | Android Eng @Square | hashnode.com/@py | instagram.com/py.ricau | LeakCanary, Radiography, square/logcat, square/PAPA. He/Him
official Bluesky account (check usernameπ)
Bugs, feature requests, feedback: support@bsky.app