MMayank Kumar·Nov 3Kotlin Null Safety Explained Simply: ?, ?., ?:, !! and Platform TypesHow Kotlin stops NullPointerException before your app runs: nullable types, safe calls, the Elvis operator, why !! is risky, and where Java can still crash you.7 min read·imayankkumar.hashnode.dev
SShalen Mathew·Jul 5Android CI/CD for Beginners - Part 1: IntroductionStop building everything manually. Learn how modern Android teams automate their development workflow6 min read·shalenmathew.hashnode.dev1
GGanesh Rama Hegde·Feb 21Chapter 30 : UseCase27 - Flow Cancellation & Cooperative Cancellation Flow cancellation is not an optional feature. It is a core part of how coroutines are designed to behave. When a collector stops collecting, the entire upstream flow is cancelled automatically. This i6 min read·kotlinflow.hashnode.dev
GGanesh Rama Hegde·Feb 21Chapter 29 : UseCase26 - Channels and Flow BridgeNow we do one level below Flow. Flow is built on coroutines.Coroutines are built on channels. Here we convert channel to Flow and build Flow using channelFlow. We also understand producer-consumer in4 min read·kotlinflow.hashnode.dev
GGanesh Rama Hegde·Feb 20Chapter 27 : UseCase24 - StateFlow (State Holder Semantics)What is StateFlow? StateFlow is a special type of SharedFlow that: Always holds a current value Requires an initial value Replays the latest value to new collectors Conflates updates automatically3 min read·kotlinflow.hashnode.dev
GGanesh Rama Hegde·Feb 18Chapter 24 : UseCase21 - Conflation Deep Divebuffer() in Chapter 23 was all about “queue everything” when the consumer is slow. Now we look into conflate() which is all about “dropping intermediate values” and caring only about the latest value. The Core Idea When the consumer is slow: buffer(...3 min read·kotlinflow.hashnode.dev
GGanesh Rama Hegde·Feb 16Chapter 21 : UseCase18 - Exception Handling in FlowFlow gives us structured exception handling. Business Scenario We will: Process stocks Throw an artificial exception for demonstration Handle it safely using catch Continue flow gracefully Code Implementation package org.kotlinflowlearner.stock...3 min read·kotlinflow.hashnode.dev
GGanesh Rama Hegde·Feb 15Chapter 20 : UseCase17 - zipIn this chapter we will use zip() for synchronised business streams. Business Scenario We want to: Take top N stocks by market cap Take top N stocks by price Pair them position-wise Produce a comp4 min read·kotlinflow.hashnode.dev
AAjimsimbom Bong M·Jan 31Kotlin FundamentalsA guide that covers the fundamental aspects of the Kotlin programming language: variables, control flow, functions, and lambdas5 min read·blog.ajim.dev
GGanesh Rama Hegde·Jan 29Chapter 15 : UseCase12 - combine()combine() merges two flows. But unlike zip(), it does not wait for matching pairs. Instead, whenever either flow emits, combine uses the latest value from both flows. This makes it reactive and contin4 min read·kotlinflow.hashnode.dev