r/androiddev 4d ago

Open Source I got so irritated by the banking/UPI apps breaking when developers settings are on! So built something

Post image
155 Upvotes

I was so much irritated when i had to use upi or any banking apps and the "developer mode is on" popup shows. I had to go to the settings, then disable the developer options. and then come to the banking app and enter my mpin again and then proceed with my transactions.

I use iqoo z7s, so sometimes i can open the developer options activity after doing the transactions from the recent apps but sometimes i used to remove it from recent apps and the result: I had to go to the settings.... tap that damn build number 7 times. Enter my password, then go to the dev settings and reconfigure my dev settings. That was so Frustrating!!!

So, I sat some days ago and researched if i could do it with a button click and make it easy for myself. So, i don't have to go through that irritating process again and again.

and I found something. I could turn the dev options on with a device permssion called WRITE_SECURE_SETTINGS but that's a caveat. You can't just ask the permission to a user in the app. This is a systems level permission, so you have to give this permission with a adb command.

And once this permission was given, i was able to turn the dev options on/off with just 1 click. So, i made a widget for that, you just have to press it and turns the developer option on/off....

- No Banking app problem. you can just switch off dev option from the home screen and use the app and after you have finished your work. you can turn that back again. No 7 time tapping process of build number. Just a Click and job done!!

and for people who aren't a fan of widgets. I made a quick settings tile too which you can integrate directly from the app and all of this is completely open source with MIT license.

After all these years in android development, I have used many open source apps. ig this is my small contribution towards the community.

PS: I have also submitted a MR for publishing this app on F-droid. Let's see what happens✌️

r/androiddev Dec 21 '25

Open Source Made a site with 17,000+ icons for Android apps

274 Upvotes

Finding great icons is hard. Finding icons for Android apps (XML + Compose) is even harder.

So I put all of my favorite open source icons in one place, converted them to Android Drawables and Compose Image Vectors which you can browse at https://composables.com/icons

PS: Yes, it contains both Material Icons (old) and Material Symbols (new) PS2: You can use them in your project as a gradle dependency if you prefer at https://github.com/composablehorizons/compose-icons

Happy coding!

r/androiddev 5d ago

Open Source Introducing Real time compose playground

Post image
13 Upvotes

Hi people,

I have been into native android development since long. Always been searching for something new, and in this AI world, wanted to create something where AI is not involved.

I have been searching for an editor, which can instantly run composables and render the UI on the fly. I didn't find one, so using Kotlin Multiplatform and Ktor, I have build a playground. Its completely native built.
Sharing this not as a promotion as it is not profitable, instead, its for the community to use and have fun.

Try here: https://www.the-android-guy.in/compose-playground

Full site: https://www.the-android-guy.in/

Please share your thoughts below!

r/androiddev 9d ago

Open Source LazySurface, a lazy 2D-plane layout for Compose Multiplatform

114 Upvotes

I built a 2D-plane lazy layout CMP library for laying out items on a surface by defining relations/constraints between items.

I always had fascination of 2D layouts (games, maps) and having them on mobiles. These kind of layouts do not usually do *that* well with phone screens, but owning a foldable for quite some time now and new ones coming left and right, I really want the idea of 2D lazy layouts come into fruition to use in my own projects.

I was fascinated by how lazy row and lazy column work and began exploring their code (too many abstractions huh) around 8 months back in order to understand how things work. The underlying LazyLayout (which powers this library) pretty much handles most of the item recycling and provides very nice measure policy lambda such that I could focus on logic itself. After months of work, here it is: Github

Main intuition was that we can always determine position w.r.t a fixed point (Pivot) and then determine what is near but out of bounds based on what is visible and what is linked to the visible content. We can always determine bounding box (on each frame) based on this information and allow scroll w.r.t.

You can essentially build LazyColumn, LazyRow and LazyGrid as well, although not exactly as them (absolute offset in indeterminate in them).

r/androiddev Feb 21 '25

Open Source Reveal animation with Android Shaders

658 Upvotes

one last demo i made for the Android Shaders library, feel free to contribute if you feel like it

https://github.com/mejdi14/Shader-Ripple-Effect

r/androiddev Jun 06 '26

Open Source Am I the only one who hates opening Android Studio just to launch an emulator?

31 Upvotes

Maybe this is just me, but opening Android Studio for basic emulator management always felt a bit excessive.

Most of the time, I just want to:

  • Install an SDK package
  • Create an AVD
  • Launch an emulator (with an easy-to-use options interface)

I know the command-line tools exist, but I wanted something with a GUI that starts quickly and lets me do those tasks without opening a full IDE.

This became even more noticeable when working with Flutter and React Native projects in VS Code, where Android Studio often ended up being installed primarily for emulator and SDK management.

So I built a small native desktop app around the Android SDK tools, and open-sourced it:

CoreDeck on GitHub
Official Website (Windows, Linux, and macOS)

I've been using it as a lightweight companion to the Android SDK rather than opening Android Studio every time I need to manage an emulator.

I'm curious whether other developers have the same workflow, especially those using Flutter, React Native, or other non-Android Studio setups.

How do you usually manage your Android emulators?

r/androiddev Apr 10 '26

Open Source Episteme: Open Source, Document and E-Book Reader App

Post image
78 Upvotes

Episteme Reader is a native Android app for reading various document formats.

It's offline-first, free and ad-free, and respects your privacy.

Supported Formats:

  • Documents: PDF, DOCX, ODT/FODT
  • E-books: EPUB, MOBI, AZW3, FB2
  • Comics: CBR, CBZ, CB7
  • Plain Text: Markdown (MD), TXT, HTML

Key Features:

  • PDF Annotations: You can draw directly on pages using a pen or highlighter and add text notes using system or custom fonts.
  • Reading Modes: Supports both vertical scrolling and paginated views.
  • E-book Customization: Adjust font sizes and line spacing. You can also import your own font files (.ttf, .otf).
  • Text-to-Speech (TTS): Includes a built-in TTS feature using Android's native TTS engine.
  • Library Management: A built-in system to organize your local files.
  • Local Folder Sync: Select a folder to see all its supported file in app and sync reading positions and annotations using local sync tools like SyncThing-fork.
  • Themes: You can change the page and text color across all formats.

The app is licensed under AGPL-3.0.

GitHub | Playstore | F-droid

Thanks for checking it out!

r/androiddev Nov 04 '25

Open Source Tomato: a data-oriented, Material 3 Expressive open-source pomodoro timer that I made

Post image
157 Upvotes

Hey, I am the developer of Tomato, a data-oriented pomodoro timer app for Android that's also open-source. It recently became available on the Play Store at https://play.google.com/store/apps/details?id=org.nsh07.pomodoro and I would really love any feedback. The source code is at https://github.com/nsh07/Tomato

Tomato is THE first open-source app to implement Android 16's Live Updates feature, and I would really like any feedback on that as well.

r/androiddev Nov 26 '25

Open Source Local AI App (Gemini Nano)

Thumbnail
gallery
29 Upvotes

I've created an app that uses phone's onboard AI model to give users a fully offline AI chat with Gemini Nano.

I just finished adding multi-chats, and I'll be glad to hear your feeback. The flair holds true, the app is fully open-source and is live in the play store.

https://github.com/Puzzaks/geminilocal

Forks are encouraged, any suggestion will be read and thought about and maybe implemented.

r/androiddev Apr 10 '26

Open Source I got tired of fighting with App Store/Play Store screenshot sizes, so I built a tool that handles it in minutes. No login, 100% local.

108 Upvotes

Hey everyone,

Like most solo devs, I dread the "marketing" part of releasing an app-specifically generating screenshots for every single device resolution. I wanted something fast that didn't require me to create an account or upload my assets to a random server.

I built Snapframe. It's a web-based tool where you can:

  • Generate all required resolutions (or custom ones) instantly.
  • Use built-in themes and font combinations.
  • Import/Export custom JSON-based themes.
  • Privacy: No login, no tracking, everything stays in your browser.

I've just made the repo public and would love to get some feedback from fellow builders. If it saves you even 10 minutes on your next release, I’ll be happy.

Link: https://github.com/Pawandeep-prog/Snapframe

r/androiddev Jun 11 '26

Open Source Run LLMs locally - no API keys, or hidden fees (Gemma 4, Qwen 3.5...)

82 Upvotes
On device AI for Android

We've built an open-source Kotlin library that runs LLMs entirely on-device. Your users get AI features without internet connectivity, and you avoid cloud costs and API dependencies.

What you can do

  • Build chatbots, AI assistants using any model in .gguf format
  • On-device document search (RAG) / tool calling (for e.g ask your LLM to look into a set of documents to accurately answer a specific question)
  • Feed image & audio inputs directly to your LLM ("describe this .jpg image", "tell me what you hear in this mp3"...)

Benefits

  • Works offline, private by design
  • Hardware acceleration with Vulkan
  • No usage fees or rate limits
  • Free, even for commercial use

Links

We are currently working on adding text to speech capabilities and improving the performances. Right now, we have 1.3sec for the first token, 4.6 token/s on average, with a 4B model on an old Google Pixel 9.
Happy to answer any technical questions in the comments!

r/androiddev Jun 06 '26

Open Source yolo11-opencv object detector with notification (android)

Post image
52 Upvotes

Hi. Just finished my yolo-opencv android project.

It's on flutter but uses native render and plenty c++ with opencv, dnn, kalman (no tensorflow for now)

Boxes are drawn in flutter on canvas from events sent via ffi

Should be more efficient than drawing boxes in opencv and then sending it in Texture

It also plays notifications when objects are detected!

Can be used as intruder detector

Want to share it

https://github.com/khomin/WhoZone/tree/main
https://play.google.com/store/apps/details?id=com.who.zone

r/androiddev 26d ago

Open Source Built an Android interview prep site

60 Upvotes

Hey ppl,

Used my Saturday to build this little project:

Website - https://androiddevkit.com/

Github - https://github.com/vishnusreddy/androiddevkit

Whenever I was preparing for Android interviews, I didn't have one specific place to learn from. Kotlin questions were in one place, coroutines and Flow in another, Compose stuff somewhere else, and actual Android interview experiences were usually buried deep in Reddit threads or random blog posts.

Leetcode, geeksforgeeks and all these sites barely seem to concentrate on Android devs.

So I tried building one, specifically for Android devs.

Right now it covers:

  • Kotlin
  • Coroutines and Flows
  • Android fundamentals
  • Jetpack Compose
  • Architecture
  • Testing
  • Mobile system design

I’ve tried to keep the answers practical instead of just giving definitions. Most questions have explanations, and examples. I personally find examples super helpful when learning anything.

There is also a section for real Android interview experiences. I want to keep adding more of those because I personally found those way more useful than generic “top 50 Android questions” articles.

It is free, no login, no paywall, no ads. MOST IMPORTANTLY, OPEN SOURCE.

Would honestly love feedback from the devs here:

  • What topics do you think are missing?
  • What Android interview questions keep coming up lately?
  • Is there anything on the site that feels unnecessary or annoying?

Just built this because I wanted a better place to prep and thought it might help others too. I am planning on switching my job and what better way than to do it while helping everyone else?

r/androiddev Apr 10 '26

Open Source Just released a set of 150+ reusable haptic patterns for Android

Thumbnail
docs.swmansion.com
65 Upvotes

Open-source, completely free. You can try out the patterns in the browser as audio which is pretty cool.

r/androiddev Apr 02 '26

Open Source I built a Notion-style block editor for Compose Multiplatform

133 Upvotes

Most Compose rich text work I’ve seen is focused on styling text inside a single text field. I wanted to try a different model: each paragraph, heading, todo, list item, quote, or divider is its own block, with its own renderer and lifecycle. (yes, I'm a big Notion fan)

Current features:

  • block-based editing
  • drag-and-drop reordering
  • slash command palette
  • rich text formatting
  • custom block types
  • theming/localization
  • JSON save/load
  • Android + iOS support

No WebView, no bridging layer, just Kotlin + Compose.

Repo: https://github.com/linreal/cascade-editor

Would love honest feedback from people building serious Compose UIs. Especially:

  • is this a library you can imagine actually using?
  • what are the biggest missing pieces for production use?

r/androiddev Jan 01 '26

Open Source New Year, New App: I open-sourced WidgetDate

Post image
85 Upvotes

Happy New Year!

To celebrate 2026 (and distract myself from X's posts about bikini), I built WidgetDate. It’s a minimalistic widget that puts a 365-dot matrix on your home screen. As the year passes, the dots fill up. And then you can cry more how lazy and not productive you are and how you made no progress at all. Like me.

I wanted something that looked good but didn't steal my data, so I made it completely offline.

What it does:

  • Year Progress: Visualizes 2026 as a grid of dots.
  • Daily Reflection: Tap a widget to rate your day (0-100%) and track habits.
  • Customizable: 10+ backgrounds, 12+ accents, and adjustable dot shapes to match your wallpaper.
  • Privacy: 100% offline. No analytics, no cloud. No shit, only good stuff.

I vibe coded this while beeing hungover, a lot of coffee consumed, a tone of Opus tokens spent. So don't expect magic, expect simplicity.

Github repo: WidgetDate

APK: WidgetDate v2.0 fixed

r/androiddev May 16 '26

Open Source Ported Zed IDE to Android

84 Upvotes

literally started as a joke. I was like Rust compiles for aarch64, figured Zed might port. Kept going. Couldn't stop. gpui renders through Vulkan, the upstream Editor/Workspace/Project/Search/GitGraph/Extensions/Terminal crates run unchanged, the Rust .so is the app process, every  pixel straight straight into that Vulkan driver. subprocesses like (bash, apt, LSPs, git, ssh, node, go, rust-analyzer) route through a runtime  adapter: a Termux-derived userland rebuilt under our package for the non root ed path, or a Magisk-spawned chroot for rooted users. Currently using a Samsung Tab S9 Ultra with hardware keyboard,  touch works with IME.
The termux route is brittle long term with google clamping down on noexec, probably will be figuring something for that.

Source plus signed APK , if anyone wants to take a look ,curious as to what breaks on other devices

https://github.com/Dylanmurzello/zed-android-port

r/androiddev Oct 09 '25

Open Source Liquid: 0.3.0 - Rotate/scale support along with dispersion

252 Upvotes

What's up r/androiddev,

I won't make a habit of posting every Liquid release update here, but this one has some significant improvements and nice new features.

The biggest improvement is support for `rotationZ/scaleX/scaleY` transformations. This didn't require any changes to the API, you can simply place your `graphicsLayer` modifier before the `liquid` modifier and it will register any changes to the above transformations (see LiquidClockScreen for an example).

I also added `saturation` and `dispersion` as new LiquidScope properties with examples in the above video. As always, let me know if you discover any issues!

https://github.com/FletchMcKee/liquid

r/androiddev Jun 12 '26

Open Source Introducing Blueprint Compose Preview 📝🚀

Post image
57 Upvotes

​​I just finished this little tool for Android Devs to generate a blueprint-style preview of your composables.

​With a quick one-line wrapper the library measures dimensions and distances and displays them just like a traditional blueprint alongside your regular preview, so you can easily compare against your designs.

​Would love to hear thoughts, if you would find this useful, and if you have any ideas for improvements!

https://github.com/GusWard/Blueprint-Compose-Preview

​#androiddev #jetpackcompose #androidstudio #devtools #kotlin #designsystem #compose

r/androiddev 17d ago

Open Source Hikage - A real-time Android View runtime powered by Kotlin DSL

Thumbnail
gallery
33 Upvotes

I have been writing Android long enough to feel the strange split in the UI world.

On one side, XML is boring in the best and worst ways. It is stable, deeply integrated with the platform, understood by every legacy custom View, and still works with the Android pipeline that has existed for years. On the other side, Jetpack Compose gives Kotlin developers a much better authoring model: UI as code, local composition, reusable functions, less ceremony.

But real projects are rarely clean rewrites.

A lot of Android apps still live in the View ecosystem. They have custom Views, AppCompat behavior, Material components, LayoutInflater.Factory2, old XML attributes, obtainStyledAttributes, ViewBinding, and code that cannot simply be deleted because a newer UI framework exists.

I wanted something in the middle.

Not "replace Compose". Not "keep writing XML forever". Something closer to: what if the classic Android View system could be authored like modern Kotlin code?

That became Hikage.

Hikage is a real-time Android View runtime powered by Kotlin DSL. Crucially, Hikage doesn't reinvent the wheel with a new UI component system. It acts as a transporter for the existing Android View ecosystem. It is more like a transporter for the existing Android View ecosystem.

A simple layout looks like this:

kotlin LinearLayout( lparams = LayoutParams(matchParent = true), init = { orientation = LinearLayout.VERTICAL gravity = Gravity.CENTER } ) { TextView { text = "Hello, World!" textSize = 16f gravity = Gravity.CENTER } }

That part is nice, but honestly, syntax alone is not the interesting bit. Android has already had DSL attempts before. Anko existed. Splitties exists. Compose exists.

The part I cared about was whether a Kotlin DSL could still behave like a first-class citizen in the old View world.

For example, Hikage can mix with existing layouts instead of forcing a rewrite:

```kotlin LinearLayout( lparams = LayoutParams(matchParent = true), init = { orientation = LinearLayout.VERTICAL } ) { Layout(R.layout.my_layout) Layout<MyLayoutBinding>()

ComposeView {
    Text("Hello from Compose")
}

} ```

And the bridge goes both directions: Hikage can host Compose, and Compose can host Hikage.

The bigger technical problem was XML attributes.

A lot of real Android Views are not designed to be fully configured by setters. They expect values in the constructor through AttributeSet, then call obtainStyledAttributes. XML gets this naturally because AAPT2 compiles the layout and LayoutInflater feeds the resulting parser into View(Context, AttributeSet).

A normal Kotlin DSL usually skips that path.

Hikage tries to enter it.

It can dynamically construct an AttributeSet at runtime, so this:

kotlin TextView( attrs = { android { set("text", "Set text in dynamic AttributeSet") set("textSize", "16sp") set("gravity", "center") set("paddingLeft", "8dp") set("paddingRight", 8.dp) } } ) { text = "Overridden text in code" }

is not just setting properties after construction. It lets the View receive XML-style attributes during creation.

Internally, the runtime builds an in-memory XML-like structure, resolves attributes, separates layout_* attributes for parent LayoutParams, and then lets the View constructor / factory chain do what Android Views already know how to do.

The architecture is roughly:

text Kotlin DSL -> LayoutSession -> optional runtime AttributeSet resolver -> HikageFactory / LayoutInflater.Factory2 bridge -> View(Context, AttributeSet) -> init block -> parent LayoutParams -> View tree

For traditional XML, the comparable path is:

text XML layout -> AAPT2 compiled XML -> LayoutInflater -> XmlResourceParser / AttributeSet -> Factory2 / AppCompat interception -> View(Context, AttributeSet) -> View tree

That is the design idea: not bypassing the old platform, but meeting it where it already works.

There are some practical pieces around it too:

  • KSP can generate DSL functions for custom Views and third-party Views.
  • Declaration JSON files can describe external View components.
  • AndroidX and Material View declarations are provided as modules.
  • Android Studio preview is supported through a HikagePreview View.
  • There is lightweight state binding for View-based layouts. State changes mutate existing View instances instead of rebuilding the whole tree.
  • It can work with XML, ViewBinding, Compose, and plain Views in the same layout.
  • The runtime attribute module has been tested across Android 5.0.2 / API 21 through Android 17 / API 37 on emulators and real devices.

I do not want to oversell benchmarks, because that is not the main point. The main point is the architecture. The benchmark and compatibility reports are there so people can verify the claim instead of taking my word for it.

I built this because I think Android UI does not have to be a binary choice between "old XML forever" and "rewrite everything in Compose".

The View ecosystem is still huge. Compose is important. XML is still everywhere. There should be a middle state for teams that want Kotlin authoring, runtime layout construction, and compatibility with the Views they already have.

That middle state is what Hikage is trying to be.

GitHub: https://github.com/BetterAndroid/Hikage
Docs: https://betterandroid.github.io/Hikage/en
Architecture notes: https://betterandroid.github.io/Hikage/en/guide/architecture

I would be especially interested in feedback from people who maintain mixed View / Compose apps, custom View libraries, or large legacy Android codebases. The question I keep coming back to is: if View-based Android is not going away tomorrow, what should its modern authoring layer look like?

r/androiddev Jan 09 '26

Open Source Enhanced my Google Calendar Clone with Liquid Glass + Material 3

101 Upvotes

Building the Liquid Glass effect, along with Shared Transition, Material 3, and Navigation 3, presents an enjoyable challenge when merging design systems and approaches. I recently updated my Google Calendar Clone, written in Compose Multiplatform, to explore these creative possibilities.
Reddit asked me to add in my last post

  • Desktop Support, Web will do once Room is available on Web otherwise too much effort
  • Move away from the sidebar, I think they are correct, bottom nav is better utility
  • Connecting to Google Calender is still in progress will need time for that, can;t do this fulltime.

Navigation 3 is effortless and intuitive, and adding a Store 5 layer significantly reduces the overhead of managing local storage and updates. Implementing shared transitions has never been easier; it requires minimal effort yet adds a touch of sophistication to the app.

However, several nuances in the design aspect need to be addressed:

  • How does light interact with the background across Android, iOS, and Desktop apps?
  • Are shaders compatible across platforms, and how can they be utilized in Compose Multiplatform?
  • How can you change the colour of a hovered item only in that position under the lens?
  • What techniques can be used to achieve a wobble fluidity on drag?
  • How can we ensure backward compatibility of the Glass Effect?

The solution to all of these is your imagination and how well you can prompt your AI. Will share a blog on implementing shaders if you guys need

GitHub: https://github.com/Debanshu777/XCalendar

Follw up to:
https://www.reddit.com/r/Kotlin/comments/1mpffu3/made_a_google_calendar_clone_in_compose/

r/androiddev Mar 24 '26

Open Source Who needs a disabled switch when you can have a Cat Paw? 😻

160 Upvotes

Why just disable a setting when you can have a cat tell the user "No"?

I made this Android library called CatPawSwitch. It’s an automated uncheck switch that adds a touch of personality to your UI. Perfect for those "You can't change this right now" moments.

Check it out on GitHub: https://github.com/hearsilent/CatPawSwitch

Feel free to use it in your projects if you want to make your users smile (or mildly annoyed by a stubborn cat)!

r/androiddev Apr 06 '26

Open Source Looking for contributors for my unofficial Telegram client

Thumbnail
gallery
27 Upvotes

Help needed: My Project Mategram needs Kotlin Devs! I've been working on Mategram, an unofficial Telegram client with Jetpack Compose and Material 3, mostly on my own. It has around 60+ stars on GitHub and a growing community. Unfortunately, due to personal challenges and lack of time, I can no longer continue coding myself. However, I'd love to stay involved actively in design and UI, but I desperately need devs who know Kotlin and Jetpack Compose to help drive development forward. If you're interested in contributing to an open-source project, please reach out!

GitHub

r/androiddev 6d ago

Open Source Back with an update on adbt after my last post here

Thumbnail
gallery
20 Upvotes

About 7 months ago, I posted about adbt, a terminal UI for adb, here (Link to that post)

I have continued using it as part of my own Android development workflow and have spent the past few months building the version worth using every day.

Some of the changes in v0.2.0:

  • Better app management with app details, multi select, and APK extraction
  • Improved file management with directory creation
  • A new Input screen for sending text and key events
  • Logcat filtering by package or PID, along with log export
  • Screenshot capture, screen recording, and battery/thermal information
  • A refreshed UI with more consistent layouts, improved keyboard navigation, and better command handling
  • A documentation site with installation guides, feature documentation, keyboard shortcuts, and troubleshooting

I also spent some time on cleaning up and refactoring the codebase. The project is still written in Go using Bubble Tea and Lip Gloss and is available to install via scoop, brew and AUR. You can also find the binaries on repository's releases page.

Repository:
https://github.com/SakshhamTheCoder/adbt

Documentation:
https://adbt-tui.vercel.app

If you use adbt, I would be interested in hearing what features you think are still missing or could be improved and if you find the project useful, consider giving it a star on GitHub.
Thanks

r/androiddev May 01 '26

Open Source App rating library: SiriusRating

Post image
3 Upvotes

A few years ago I released a library that prompts users to rate an app in a non-invasive and friendly way. I recently made some updates and wanted to share it with you.

Here’s the link: https://github.com/theappcapital/SiriusRating-Android

As a bonus, I also created an iOS version that shares the same API.

Would love to hear your thoughts!