All Blogs

remember vs rememberSaveable

remember vs rememberSaveable

In Jetpack Compose, remember keeps the state across recompositions, whereas rememberSaveable also keeps it across configuration changes like screen rotation.

Evolution of HTTP

Evolution of HTTP

HTTP evolved from HTTP 1.0 to 1.1, 2.0, and 3.0, where each version solved the problem of the previous one, like new TCP connections and HOL blocking.

React Native vs Flutter

React Native vs Flutter

React Native uses JavaScript and the native UI components, whereas Flutter uses Dart and its own rendering engine to draw the same UI on all platforms.

Internals of RESP - Redis Serialization Protocol

Internals of RESP - Redis Serialization Protocol

RESP (Redis Serialization Protocol) is the text-based language that Redis clients and servers use to talk. The first byte of each message tells the data type.

Launch vs Async in Kotlin Coroutines

Launch vs Async in Kotlin Coroutines

launch and async both start a coroutine in Kotlin. launch returns a Job with no result, whereas async returns a Deferred that gives us the result.

callbackFlow - Callback to Flow API in Kotlin

callbackFlow - Callback to Flow API in Kotlin

callbackFlow converts any Callback to Flow API in Kotlin. We send each value using trySend() and unregister the callback inside the awaitClose block.

Dalvik, ART, JIT, and AOT in Android

Dalvik, ART, JIT, and AOT in Android

Dalvik is the old Android Runtime based on JIT (Just In Time) compilation, and ART is the newer one based on AOT (Ahead of Time) compilation.

Difference between == and === in Kotlin

Difference between == and === in Kotlin

In Kotlin, == checks structural equality using equals(), whereas === checks referential equality, which means whether both references point to the same object.

Configuration with Viper in Go

Configuration with Viper in Go

Viper is a Go package that finds, loads, and unmarshals configuration files. We will use it to load the configuration from an envfile in a Go project.