View State Management & Coordination with Compose on Android

A Lengthy Exploration of ViewModel to Compose UI Communication & UI State Management with Compose

What are the options for managing reactive UI state on Android? How should a viewmodel communicate UI state with the view? How should the view communicate UI events to the viewmodel? This article is explicit documentation of an architectural exploration of viewmodel-to-view communication on my open-source Android project, Merlinsbag. It also dives into the tradeoffs of utilizing the Compose Compiler & Runtime to manage state.

JNI Marshalling Performance: Single Round Trip

An Empirical Taste of the Cost of Kotlin to C++ JNI Communication on Android.

This article focuses on one question related to potential performance gains. When researching the JNI, you will quickly be warned that marshalling data across the JNI is non-negligible. Essentially, communication between the native side (C++) and the managed side (Kotlin) is expensive. The programmer should not only reduce *how much* data they send to one another but should also reduce *how often* they send data to one another. My question here is the simplest I could think of that would provide helpful insight to the cost of marshalling data across the JNI.

Ray Marching: Menger Sponge Breakdown

An Iterative Ray Casting Rendering Technique

There are two very popular methods to render 3D scenes. Rasterization has historically been the most popular method used for real-time graphics (ex: video games). In short, rasterization is a technique that projects 3D models, usually composed of 3D triangles, onto a 2D plane. Another popular method of rendering is ray-tracing... What we will discuss in this article is a third rendering method. A flavor of ray-casting known as ray marching.