Alec Kazakova

319 Followers
43 Following
36 Posts

New post: Code Gravity

This is about what makes DI frameworks really important over time in a big monolith: how it impacts the way your code grows over time.

https://www.billjings.com/posts/title/code-gravity/

Code Gravity

Poko 0.15.0 supports Kotlin Multiplatform! It now does the same thing for JS and native that it's always done for the JVM. Huge thanks to @jw for implementing this. https://code.cash.app/poko-multiplatform
Poko goes multiplatform

Poko is a Kotlin compiler plugin that generates equals, hashCode, and toString functions for annotated classes based on their properties. Inspired by Jake Wharton’s blog post on maintaining compatibility in public APIs, it partially mimics the behavior of Kotlin data classes while leaving out the copy and componentN functions, which are difficult to maintain without breaking API compatibility. Our Paraphrase and Redwood runtimes use Poko.

Cash App Code Blog

@billjings 👏

I really despise "code ownership" because of its exclusion properties.. would much rather we call it "code stewardship".

SQLDelight 2.0 is released! This has been such a laborious one to get out and I am so proud of it and everyone who contributed to it!

https://code.cash.app/sqldelight-2-0

Full notes here: https://github.com/cashapp/sqldelight/releases/tag/2.0.0

Let us know how the upgrade goes!

Announcing SQLDelight 2.0

After more than a year of development, we’re finally ready to release SQLDelight 2.0. If you’re a current user of SQLDelight you may be surprised to learn not a whole lot has changed. The package name changed, and the IDE plugin improved dramatically, but other than that SQLDelight works exactly the same as it did pre 2.0. Find the full migration guide here.

Cash App Code Blog

Just released Molecule 1.0, Compose without Compose UI for Kotlin multiplatform.

What's changed since the initial 0.1 almost two years ago? Today's Summer of Kotlin Multiplatform blog post summarizes the changes: https://code.cash.app/molecule-1-0

A stable, multiplatform Molecule 1.0

Molecule is a Compose-based library which we announced two years ago for managing application state. I’m excited to announce that today we are releasing version 1.0, its first stable version!

Cash App Code Blog

Just announced Paraphrase, a Gradle plugin that generates type-safe formatters for Android string resources!

https://code.cash.app/paraphrase

Paraphrase: Type-Safe String Resource Formatting for Android

Generate type-safe formatters for Android string resources with Paraphrase.

Cash App Code Blog

RC02 of SQLDelight is out, pretty minor changes and fixes as we're continuing to gear up for 2.0 final

https://github.com/cashapp/sqldelight/releases/tag/2.0.0-rc02

Release Version 2.0.0-rc02 (2023-06-27) · cashapp/sqldelight

[2.0.0-rc02] - 2023-06-27 Added [MySQL Dialect] support lowercase date types and min and max on date types (#4243 by Mike Gershunovsky) [MySQL Dialect] support mysql types for binary expr and sum ...

GitHub

Got some Flows? Need some tests?

Say hello to version 1.0 of Turbine, our library for testing kotlinx.coroutines Flow and more.

https://code.cash.app/flow-testing-with-turbine

Flow testing with Turbine

Say hello to Turbine 1.0, our library for testing kotlinx.coroutines Flow and more.

Cash App Code Blog

My teammate, @patricktyska, and I published an engineering blog post today about our experience at Cash App developing a Money Formatter library using Kotlin Multiplatform. We talk about how we use it to display money consistently to customers across various platforms, including backend, Android, iOS, and JavaScript.

Read more about it here!
https://code.cash.app/kotlin-multiplatform-money-formatter

#kotlin #multiplatform #money #cashapp #backend #android #ios #javascript #engineering

Kotlin Multiplatform Money Formatter

In this blog post, we’ll share how we created a money formatter library using Kotlin Multiplatform to enforce consistency in displaying money to customers across all platforms.

Cash App Code Blog
Would appreciate if folks start trying this out and let us know of any issues so we can resolve before the 2.0 final release