Open Source
Building in the open
For years almost everything I learned became a library. Here's the work — grouped by what it does.
Flagship
Flagship libraries
The most widely adopted work — each one built to solve a real problem in production.
Instagram-style pinch-to-zoom for any view
Drop-in zoom for any Android view hierarchy — the same fluid pinch-to-zoom interaction you know from Instagram, with correct overlay handling, hit-testing and release animations.
Reparents the zoomed view into a window overlay on the fly so it floats above everything, then animates it back into place pixel-perfectly.
A complete emoji, sticker & memoji keyboard
An advanced input library that adds emoji, stickers and memoji support to any Android app — variant skin tones, recents, search, and pluggable providers.
A provider architecture lets you swap the entire emoji set (Google, Apple, Twitter, IOS) without touching the UI layer.
High-performance Lottie rendering via rLottie
Renders Bodymovin/Lottie JSON animations on Android through Samsung's native rLottie engine — built in C++ for buttery playback with a tiny memory footprint.
Built in collaboration with Samsung's rLottie developers; adopted by top companies and integrated into 100+ projects.
Convert Android Spanned to Compose AnnotatedString
A bridge between the classic Android text stack and Jetpack Compose — fully converts Spanned/Spannable into Compose's AnnotatedString, spans and all.
Maps the full span taxonomy — styles, clickables, images and custom spans — so legacy rich text just works in Compose.
Tinder-style swipeable card stack for Compose
A composable card-swiping deck with natural physics, drag thresholds, and a lazy data model so you can deal an infinite stack without paying for it up front.
A lazy layout model only composes the cards that are visible in the stack, keeping large decks cheap.
Particle disintegration — Canvas & OpenGL
The famous 'snap' disintegration animation, implemented two ways: a Canvas particle system and a GPU-accelerated OpenGL version, so you can compare the trade-offs.
Two complete implementations side-by-side: one CPU-bound on Canvas, one pushing tens of thousands of particles through the GPU.
Compose
5Convert Android Spanned to Compose AnnotatedString
A bridge between the classic Android text stack and Jetpack Compose — fully converts Spanned/Spannable into Compose's AnnotatedString, spans and all.
Tinder-style swipeable card stack for Compose
A composable card-swiping deck with natural physics, drag thresholds, and a lazy data model so you can deal an infinite stack without paying for it up front.
CSS Flexbox, as a Compose layout
Brings the CSS Flexible Box model to Jetpack Compose — wrap, grow, shrink and alignment behaving exactly like flexbox on the web.
ViewGroup layoutAnimation for Compose
Staggered entrance animations for the children of any Compose layout — including LazyColumn — recreating the classic ViewGroup layoutAnimation, which Compose never shipped.
Smooth text-change animations in Compose
Animates between two strings character-by-character using an efficient diff, so counters, prices and labels morph instead of snapping.
Graphics & Motion
5High-performance Lottie rendering via rLottie
Renders Bodymovin/Lottie JSON animations on Android through Samsung's native rLottie engine — built in C++ for buttery playback with a tiny memory footprint.
Particle disintegration — Canvas & OpenGL
The famous 'snap' disintegration animation, implemented two ways: a Canvas particle system and a GPU-accelerated OpenGL version, so you can compare the trade-offs.
Animate any view — and everything about it
A fluent animation library for Android that can animate virtually any view property with keyframes, rules and a readable DSL.
Zoomable, scrollable function graphs
Plots mathematical functions or custom drawings on a zoomable, pannable Android canvas — ideal for calculators and teaching tools.
Figma Smart Animate for Android
A custom shared-element transition that automatically animates between two layouts the way Figma's Smart Animate does — match by id, tween the rest.
Android Views
3Instagram-style pinch-to-zoom for any view
Drop-in zoom for any Android view hierarchy — the same fluid pinch-to-zoom interaction you know from Instagram, with correct overlay handling, hit-testing and release animations.
A complete emoji, sticker & memoji keyboard
An advanced input library that adds emoji, stickers and memoji support to any Android app — variant skin tones, recents, search, and pluggable providers.
A precise video cropper timeline
A scrollable, frame-accurate video timeline and cropper view for Android — the kind of control you find inside polished media editors.
Tooling & Systems
3A pure-Java expression engine
A small but powerful open-source math tool that parses and evaluates algebraic expressions in pure Java — functions, variables, precedence and all.
Access Android/data without root
A practical solution for reading the Android/data and Android/obb directories on Android 11+ without root, navigating the Scoped Storage maze.
Compile XML layouts to Java for speed
An annotation processor that generates Java code for your XML layouts at source level — skipping runtime inflation for the highest UI performance.