The Retrofit 2 converter for kotlinx.serialization has shed its experimental annotations and gone 1.0!
https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/releases/tag/1.0.0
This requires a bump to Kotlin 1.8.10 and kotlinx.serialization 1.5.0 where the APIs we relied upon have now been stabilized. Enjoy!
Next steps: move the converter into the Retrofit repo as a proper first-party offering.
Mosaic 0.6.0 released with Kotlin 1.8.20 support.
This release contains a lot of infrastructure changes which are required to support a forthcoming Compose UI-like modifier feature. Lots of internal optimization and shuffling as well as some public package moves. Otherwise, no real features other than the Kotlin bump.
Molecule 0.9.0 released with Kotlin 1.8.20 support. No other changes. Enjoy!
"On 64-bit Apple platforms, the entire 4 GiB 32-bit address space (addresses [0x00000000, 0xFFFFFFFF]) is not accessible by the process, which catches both NULL pointer dereference bugs and 64-bit to 32-bit pointer truncation bugs." https://alwaysprocessing.blog/2022/02/20/size-matters
I wasn't aware. This is clever! Even with about 4 billion possible values shaved off, that still leaves over 16 million Petabytes of address space.
ThreeTenABP 1.4.5 released with the 2023b timezone database.
https://github.com/JakeWharton/ThreeTenABP/blob/trunk/CHANGELOG.md#version-145-2023-03-30
Unfortunately there probably will be an immediate follow-up for 2023c as soon as ThreeTenBP releases with it because part of the changes in 2023b were reverted.
For details on the underlying timezone database changes see https://data.iana.org/time-zones/tzdb/NEWS
Turbine 0.12.2 released with some important correctness fixes.
https://github.com/cashapp/turbine/releases/tag/0.12.2
- The exception thrown when no events have been received now includes the timeout exception containing the caller file and line information.
- Ensure `expectNoEvents()` fails if a completion or exception event occurred.
- Differentiate timeout exceptions thrown from Turbine's own event timeout (which are thrown) from those which occur within the flow under test (which are available via `awaitError()`).
"Mitigating soft verification issues in R8 and D8" by outlining references to newer APIs into API-specific types.
https://medium.com/androiddevelopers/mitigating-soft-verification-issues-in-r8-and-d8-7e9e06827dfd
It's nice to see this supported! Four years or so this was actually rejected by D8/R8 as being not its problem. As a result AndroidX changed rules to do it manually: https://github.com/androidx/androidx/blob/582f1ee41b2177a6182c5e8b5793b50e78d353ea/docs/api_guidelines/compat.md#checking-device-sdk-version-compat-sdk
> Calls to new APIs gated on `SDK_INT` *must* be made from version-specific static inner classes to avoid verification errors that negatively affect run-time performance
New Coil release! 2.3.0 includes baseline profiles and a new coil-test artifact, which should help a lot with screenshot testing. Also a few assorted bug fixes. Check it out!
https://github.com/coil-kt/coil/blob/main/CHANGELOG.md#230---march-25-2023
I built my own memory profiler (in #Rust, on #Linux)
And lived to tell the story in video form, apparently:
https://www.youtube.com/watch?v=DpnXaNkM9_M
If you use https://github.com/mdogan/homebrew-zulu then a `brew update` and `brew install zulu-jdk20` will get you an automatically-updating JDK 20 living alongside all your others.
heyooooooo new article: "A world to win: WebAssembly for the rest of us" https://wingolog.org/archives/2023/03/20/a-world-to-win-webassembly-for-the-rest-of-us
Of interest if you wonder: why does it seem like only rust and C are winning with WebAssembly? what is the deal with garbage collection? how would you compile scheme to wasm? how can I win with my weirdo altlang? also, is WebAssembly haunted? guaranteed success or your money back!
The Effective Interview ⚡️ with @jw is finally out 🚀
Go give it a read! 👇 lots of learnings and advice on this one.
https://effectiveandroid.substack.com/p/effective-interviews-jake-wharton
Java 20 / JDK 20: General Availability: https://mail.openjdk.org/pipermail/jdk-dev/2023-March/007517.html #java20 #jdk20 #openjdk #java