Open Source

Building in the open

For years almost everything I learned became a library. Here's the work — grouped by what it does.

56public repositories
1500+stars on featured
@aghajari

Flagship

Flagship libraries

The most widely adopted work — each one built to solve a real problem in production.

ZoomHelper
250+

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.

Kotlin View on GitHub
AXEmojiView
200+

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.

Java View on GitHub
AXrLottie
150+

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.

C++ View on GitHub
AnnotatedText
80+

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.

Kotlin View on GitHub
LazySwipeCards
70+

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.

Kotlin View on GitHub
ThanosEffect
40+

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.

Kotlin View on GitHub