One of the many great things about the Unidirectional Data Flow (UDF) to organize an app’s logic is that it works with any reactive programming pattern, whether it be Kotlin coroutines Flow (Flow), ReactiveX (Rx) based RxJava/Kotlin, or LiveData.
The title might sound like a B-rated horror movie, but in reality, Kotlin’s “reified” keyword helps you do things that were not possible before. Generics provide type safety and help you avoid explicit type casts.
This codelab aims to teach you how to use insets to avoid gesture conflicts. Additionally, this codelabs aims to teach you how to use the Gesture Exclusion API for controls, such as drag handles, that need to reside in the gesture zones.
An interface for plugging components that consumes and contributes to the saved state. This objects lifetime is bound to the lifecycle of owning component: when activity or fragment is recreated, new instance of the object is created as well.
I’ve been reading another Flutter-praising article that mentioned an application supposedly written in this framework. According to the author of the article, the application was indistinguishable from a native iOS app using Apple-provided controls from UIKit. I found it hard to believe because every Flutter app I’ve used had serious UI/UX issues compared to most native apps. So I decided to give it a try.