Skip to content
View zainkhalid91's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report zainkhalid91

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
zainkhalid91/README.md

Hi, I'm Zain πŸ‘‹

Android engineer, Jetpack Compose and Kotlin

I build Android apps in Kotlin and Jetpack Compose, and I like drawing things by hand on a Canvas: games, dials, simulations and apps that run on Android and Windows from the same code.

Kotlin, Android Studio, Gradle, Java, Git, GitHub, Figma

My GitHub, as a bonsai

It grows with every commit and redraws every day (kodama).

My GitHub history drawn as a bonsai

Stats

GitHub stats Most used languages

Commit streak

My contributions over the last 31 days

Latest projects

45 loading indicators in pure Jetpack Compose, with new ones every week. No Lottie files or images: each loader is one composable drawn on a Canvas, with zero allocations per frame. Screen reader labels, reduced motion that never freezes, and one config object for speed, direction and colour. Android and Compose Desktop.

All 45 Compose Loaders animating

implementation("com.github.zainkhalid91.compose-loaders:loaders:0.2.0") Β· Release notes and demo video

πŸŒƒ NEON//ASCII

A playable, rainy cyberpunk side-scroller rendered as live ASCII art. One runtime shader turns each cell into a glyph by brightness. Compose Multiplatform, for Windows and Android.

NEON//ASCII in ASCII mode

An arcade brick breaker with 10 levels, 10 worlds and 4 boss fights. No images, sprite sheets or game engine: every brick, ball and boss is painted in Kotlin on a Compose Canvas, with zero allocations per frame.

All ten levels of Brick Breaker Retro

Download the APK

πŸ•Œ Salah, for Android and Windows

Prayer times with a dot matrix clock, reminders with the azan, a Hijri calendar, sunnah times, a Qibla compass and home screen widgets. In English and Arabic. Both apps share the same prayer calculation code, so they agree to the minute.

Salah, today's prayers Salah in Arabic

Android APK Β· Windows installer

A fun app that adds interactive stickers to your phone screen.

More projects

Project What it is
Drawing App Draw or write on a canvas with 5 pen types and any colour, plus a PDF reader with zoom and screenshots. Works on large screens
Compose Everything A Jetpack Compose showcase app: Room, Navigation, MVVM, a music player and notes
Crypto App UI A small crypto wallet app with animated UI, QR transfers and transaction history
GitHub API Client A GitHub repo browser using Dagger Hilt, the repository pattern and clean architecture

Contributions

A snake eating my contribution graph

Pinned Loading

  1. salah-windows- salah-windows- Public

    Forked from primayudantra/salah

    Windows version of the salah tracker app

    Kotlin 1

  2. NeuralSphere NeuralSphere
    1
    /*
    2
     * Copyright 2026 Zain Khalid
    3
     *
    4
     * Licensed under the Apache License, Version 2.0 (the "License");
    5
     * you may not use this file except in compliance with the License.
  3. brick-breaker-compose brick-breaker-compose Public

    Brick breaker game completley build in compose app.

    Kotlin 3

  4. salah-android salah-android Public

    Kotlin 3 1

  5. SandfallHistogram SandfallHistogram
    1
    /*
    2
     * Copyright 2026 Zain Khalid
    3
     *
    4
     * Licensed under the Apache License, Version 2.0 (the "License");
    5
     * you may not use this file except in compliance with the License.
  6. Cyberpunk-ASCII-World- Cyberpunk-ASCII-World- Public

    A cyberpunk work created fully in compose multiplatform

    Kotlin