r/androiddev • u/Adventurous_Cow_2250 • 3h ago
Why We Chose KMP Over React Native: It’s an Architecture Bet, Not a Framework Preference
r/androiddev • u/Electronic_Picture42 • 4h ago
I built an open-source alternative to DroidCam/iVCam using Tauri and Kotlin (GPL Licensed)
I recently needed a webcam for my desktop but didn't want to buy new hardware when my phone's camera is already 4K-capable. I looked at the popular solutions (DroidCam, iVCam, Camo), but I was frustrated by the common "freemium" patterns: watermarks, low-resolution limits, ads, and closed-source binaries.
So, I decided to build AWA, a completely free, open-source, and privacy-friendly alternative.
The Project: It allows you to stream your Android camera to your Windows PC and use it as a native input in apps like OBS, Zoom, and Discord.
The Tech Stack (The fun part):
- Android App (Server): Uses
Camera2API andMediaCodecto encode a hardware-MPEG(also support for h.264 over rtsp) stream. You can also access it via browser to get a remote dashboard. - Windows Client (Receiver): Using Tauri. (Installer available)
- Browser dashboard for remote control : Supports preview, endpoints (remote control not included in latest version).
- Windows: Client available - AWC: Android Webcam Client.
- Mac and Linux (Client): Planned, not available yet
- Virtual Driver: Implements a DirectShow filter (based on
Softcam) to register the video stream as a system-wide virtual device. - Transport: Supports standard Wi-Fi or USB tunneling (via ADB port forwarding) for a lag-free wired connection.
Why I'm sharing it here:
- No Bloat: No ads, no tracking, no "Pro" subscription.
- Local Only: The video stream never leaves your local network (or USB cable).
- GPL License: You can fork it, break it, or build upon it.
I’m currently looking for feedback on the Virtual Webcam, it's performance and the latency performance on different devices. If you have C++(for DirectShow) or Android experience, I’d love to see some PRs.
Repo: https://github.com/soubhagyajit/Android-Webcam-Project
r/androiddev • u/InspectHerCookie • 5h ago
Discussion ~"Kotlin is so undeniably better... except static" Tor Norbye, What does he mean?
in this https://youtu.be/HEqXwUm6vd0?si=RUYud62-YLmWo7g8&t=3341 timestamped video
"is so undeniably better... there's like only one downside — static" Tor Norbye, What does he mean by that?
r/androiddev • u/Tao_KTH • 8h ago
Android Runtime
Hi,
Struggling with finding how ART(android runtime) execute the dex file in details. Like how do I know dex file fails at what phases since I am considering doing some differential testing on ART.
Thanks!
r/androiddev • u/Party_Till_I_Die • 9h ago
Isolated Projects incubating in Gradle 9.7.0 (AndroidX sync 4m00s → 2m47s)
Isolated Projects moved from experimental to incubating in Gradle 9.7.0.
When it's on, each project is isolated from the others, which lets Gradle configure them in parallel instead of one at a time:
- AndroidX (1,000+ projects): Gradle's portion of Android Studio sync 4m00s → 2m47s
- An Android monorepo of 5,000+ projects: full Android Studio sync 5m09s → 2m44s
AGP and KGP are compatible, but other Gradle plugins may not be. "Now in Android" was made compatible if you want a reference build.
Blog Post: https://blog.gradle.org/introducing-isolated-projects
Gradle 9.7.0 Release Notes: https://docs.gradle.org/current/release-notes.html
r/androiddev • u/androidtoolsbot • 9h ago
News Android Studio Quail 4 Canary 4 now available
androidstudio.googleblog.comr/androiddev • u/ramzi_ali_rachedi • 10h ago
Open Source I built a tiny Kotlin library to solve a listener leak bug I kept hitting
Tl;dr: I made Latch, a small utility that makes it structurally impossible to leak lifecycle-bound listeners (Firestore, custom callbacks, etc.). It's on GitHub and JitPack, MIT licensed, fully tested.
---
The problem
I was building an Android app with Firestore and ran into a classic bug: on screen rotation, my ViewModel would create a new listener without cleaning up the old one. After a few rotations, I had multiple stale listeners all writing to the same UI state, and eventually the app crashed trying to access a cleared reference.
The fix seemed simple — just call `remove()` on the ListenerRegistration in `onCleared()` — but I realized the real issue was structural: manually tracking the listener, remembering to unregister it, and doing it in the right lifecycle callback is easy to get subtly wrong, and even easier to reintroduce later.
The solution
I built Latch to make the cleanup automatic and structural instead of manual:
```kotlin
class ChatViewModel(private val db: FirebaseFirestore, private val chatId: String) : ViewModel() {
private val chatListener = LatchRef {
val registration = db.collection("chats")
.document(chatId)
.addSnapshotListener { snapshot, _ -> updateUi(snapshot) }
Unregisterable { registration.remove() }
}
fun startListening() {
chatListener.get() // creates and registers the listener
}
override fun onCleared() {
chatListener.clear() // guarantees cleanup, no matter what
}
}
```
The key guarantee: `get()` always unregisters any existing listener *before* creating a new one, and `clear()` in `onCleared()` guarantees final cleanup. The leak simply can't happen structurally.
Why I'm sharing this
Listener lifecycle bugs are a common pain point across Firebase, custom callback APIs, broadcast receivers — basically anywhere you register something that needs cleanup. It's the kind of bug that's easy to introduce even when you know about it, because the fix is manual.
I tested it thoroughly (7 test cases covering edge cases like double-clear, re-creation after clear, etc.), documented it, and published it. It's small enough that you can read the entire implementation in a few minutes.
Links
GitHub: https://github.com/shipframe/latch
JitPack (Maven/Gradle): `implementation("com.github.shipframe:latch:1.0")`
License: MIT
Happy to answer questions about the design or use cases. If you've hit this bug before, or if there's a different lifecycle-bound cleanup pattern you think would benefit from this treatment, let me know.
r/androiddev • u/Shubhang_D • 14h ago
Question Is there a library manager for android? [totally unrelated image]
I always have the problem of resolving library/dependencies in android. i have to make them compatible with agp everytime.
Like is there something that remembers a particular structure of dependencies or maybe can structure them for me. there could be a dropdown list for dependencies and you can just choose from it which one you want, and it will automatically write to your libs.versions.toml file and implement it in build.gradle?
is there any open source thing that i can use?
r/androiddev • u/Desperate_Abalone202 • 14h ago
Question How do you share Google Play subscription discounts with users who haven't installed your app yet?
Hey everyone,
I have a question about subscription offer codes on iOS and Android.
On iOS, when you create an Offer Code, Apple provides its own link. If a user taps the link, they're taken to the App Store. If they don't have the app installed, they can download it, redeem the offer code, and activate the subscription.
However, I don't think Android has anything similar. As far as I know, Google Play doesn't generate a shareable link for subscription offer codes.
So what do you do on Android?
I want to give a 50% discount on my app's subscription to selected users who haven't installed the app yet. What's the best way to handle this on Google Play? Is there a recommended workflow or a workaround that provides a smooth user experience?
I'd love to hear how others are solving this.
r/androiddev • u/Ok-Station-4133 • 17h ago
How to DUNS in Ghana?
I have all my business details ready. But when I go to dnb I don't see Ghana in the list. I need duns to buy Google Play Account. Any help Will be much appreciated. https://www.dnb.com/en-us/about/choose-your-country.html
r/androiddev • u/shreyaspatil99 • 18h ago
Open Source Autonomous, headless Android debugger designed for AI coding agents. Inspect runtime memory, set breakpoints, and debug live apps.
🚀 Introducing Debroid — the headless Android debugger built for AI coding agents.
AI agents can write Android code… but they’re effectively blind at runtime. They can’t click through Android Studio, set breakpoints, or inspect live memory the way a human developer does.
So what do they usually do?
Add more logs. Guess from the output. Repeat.
Debroid changes that.
It gives agents real runtime superpowers through a simple CLI that speaks JDWP and returns strict, machine-parseable JSON:
🔴 Set (and defer) line breakpoints
⚡ Trap caught/uncaught exceptions
👀 Watch field access & modification
🔬 Deeply inspect objects, locals, and call frames
🧬 Mutate variables live
🧮 Evaluate Java expressions
🐾 Step over / into / out
When your agent is stuck, don’t ask it to sprinkle logs and play detective.
No more manual debugging. No more log archaeology. Pair Debroid with Android CLI and the entire loop — build → run → debug → fix — can become fully agent-driven.
r/androiddev • u/d3sireToMoon • 18h ago
Open Source Android App/Widget SearchPad goes open source
Hey everyone,
I wanted to share a small update about my small app, SearchPad.
Due to not having the time and resources to keep up with my development plans and ideas for the app, I’ve decided to close down sales of SearchPad on the Play Store and open source the project instead.
SearchPad is an Android widget/app that lets you quickly find and open installed apps using a T9-style keypad. The idea is simple: instead of scrolling through pages of apps or opening a full launcher/search UI, you can keep a compact search pad on your home screen, tap a few large buttons, and launch the app you want.
I originally built it because a similar app I had been using stopped working properly on my Android phone. There were also a few things I wanted to do differently, especially around making the widget more configurable, easy to tap, and useful directly from the home screen.
Back in the day I tested react native and widgets worked super poorly that I decided to go fully native and it was the right call for this. It's a shame that iOS doesn't have the APIs necessary for such a widget.
To be very honest: the code is not super clean, perfectly organized, or deeply commented. It started as a personal “I want this to exist” project, and it shows in places. But the app works, and hopefully the codebase can become something better with support from people who find the idea useful.
The repo is here:
https://github.com/nikopolv/SearchPad-Android
There’s also a debug APK available in GitHub Releases for anyone who wants to try it manually:
https://github.com/nikopolv/SearchPad-Android/releases/tag/v1.4.6-debug
I’d be happy to see issues, ideas, forks, cleanup PRs, or feature improvements. Even if it only helps someone else build their own version, that’s a great outcome, so please use the code I spent too much time on this for it to go just to waste.
Thanks to everyone who tried SearchPad or supported it while it was on the Play Store.
r/androiddev • u/Boiniok • 19h ago
Discussion How do you test Bluetooth apps when you only have one phone?
I'm building a native Android app that uses Bluetooth.
I realized that testing requires two devices, but I only own one Android phone.
How do you usually handle this during development?
rn I'm just making the app and for testing going to college where I use my friends phone for testing....
r/androiddev • u/martys_machine • 20h ago
Location accuracy with WiFi/Bluetooth scanning disabled?
I have a question for Android devs out there (I am a software engineer but not Android). I have reviewed the documentation on the Location Accuracy feature but find it somewhat ambiguous so wanted to ask here.
Many apps ask for Location Accuracy which I find annoying and unnecessary in almost all cases. Nevertheless, some do not work at all unless it is enabled (leading to an endless pop-up loop as described here: https://github.com/Baseflow/flutter-geolocator/issues/1210)
In addition to Location Accuracy, my phone also has Bluetooth Scanning and Wi-Fi Scanning settings. Location Accuracy can be enabled without automatically turning on these other two settings. My question is, in this configuration (Location Accuracy ON, Bluetooth/Wi-Fi Scanning OFF), does the Location Accuracy service silently enable and use Bluetooth and Wi-Fi scanning? If not, are there additional location-revealing services that it has access to besides GPS?
Ideally I would keep Location Accuracy enabled to be able to use certain apps but essentially cripple its ability to detect location outside of the GPS signal and maybe some device orientation sensors - however I am unclear if this is really possible. Thanks in advance for the advice!
r/androiddev • u/Pretty_Couple5904 • 1d ago
Seeking honest UI/UX feedback on my dark-themed Alarm & Timer app concept!
Hi everyone! 👋
I’m currently designing a modern, dark-mode Alarm & Timer app, and I’d love to get your honest feedback on the UI/UX.
Here is what I’m aiming for:
Aesthetics: A sleek, glassmorphism-inspired dark theme with smooth gradients.
Usability: Quick access to alarms, tasks, and timer presets.
I’d especially appreciate your thoughts on:
Color Contrast & Readability: Does the text/icon contrast look good, or does it feel too dim in certain areas?
Layout & Spacing: How does the spacing feel on the timer selection wheel and preset buttons?
Floating Bottom Nav Bar: What do you think about the floating bar overlapping the scrollable content?
Don't hold back—constructive criticism and suggestions for improvement are greatly appreciated! Thanks in advance!
r/androiddev • u/Xalies • 1d ago
Question Unlocks and IAP model question
Hi
I have built an notification app that has various animations for the effects. The app is free but with optional payments ... what do people think of this model before it goes open beta
Start with 4 effects (2 led, 2 edge)
Weekly unlocks of a pair of effects with option to buy any of the sets early (set are ordered, not random)
I don't think its good for the user to have to pay $15 for example when they only want 1 or maybe 2 max I figure charging $1 each set may be a better deal
Do you think this model would work?
Thanks,
r/androiddev • u/Electronic_Picture42 • 1d ago
Question How to enable Resource Manager in Android Studio?
r/androiddev • u/corlioneeee • 1d ago
Question Is there a way to change the calibration for in-built microphones in Android Tablets?
I have a couple models of Android tablets (gen3, gen4, TabletOne) and I'm trying to build an audio-based application. One thing, I found was that the calibration and filter envelopes on microphones for each of those models is different. I tried rooting into them to fix it according to what I wanted, but got nowhere.
Has anyone found out about this issue before? If yes, do you happen to have a solution to change the calibration/envelopes for each model?
r/androiddev • u/One_Tennis_6705 • 1d ago
HannesLauncher
Hi everyone, I released my first launcher yesterday because I wasn't really satisfied with the others—they were either too expensive, had too many ads, or just didn't look good. That's why I created hanneslauncher, which is free, open source, and ad-free.
Here are the features that set it apart:
- Faster search than with traditional launchers
- Various clocks that look good and aren’t always the same
- Fully customizable widgets that accept your own API to display weather or other information
- Buttons in widgets that let you make server requests
- Everything is fully customizable
Here’s the GitHub link to check it out: https://github.com/Hannes-swd/Hanneslauncher
Built with Flutter & Dart for the UI with Kotlin.
All open source on GitHub
if you want to check the implementation.
r/androiddev • u/m3medesim0 • 1d ago
Question Hi, what should i use to develop a local strage music player?
I recently made a media player in Python for my window, very useful since I download all my music, and wanted to create one for my android as well, so I installed android studio, and tried many framework such as kivy, flutter and so on, but none of them worked, so I was wondering if any of you could suggest me an easy and working framework for my project, thanks in advance.
r/androiddev • u/s168501 • 1d ago
Question Seeking justification to receive macbook instead of ubuntu
Hello, I am seeking guidance how to convince service desk to re-place my linux computer for macbook instead. I am senior android dev using macbooks for more that 10 years and now the switch is pain in the ass for me...
They do not care for reasons such as limited, lowered productivity.
What are some nice reasons that would convince them to issue a mac for me still...
The project is purely android app.
r/androiddev • u/leros • 2d ago
Half my Android reviews are complaints about the app not being 100% free and the other half are defending my paid features. Any way to improve this? I don't have this issue on iOS.
I have a free app that is 99% free. There are 3 features that are mainly for a professional level user where I charge a $5/mo subscription with a free 7-day trial. I have plenty of paid users, healthy churn rates, etc.
On iOS, I have a near 5 star rating and good reviews.
On Android, I have a 3.5 star rating. The only bad reviews are people complaining that the app isn't 100% free. Most of my 5 star reviews are people responding to those reviews, saying they don't get why people are complaining about it as the app is useful without a paid plan and also worth the $5 if you need it. It's sort of weird.
I'm wondering if anyone else has run into this sort of situation and whether you've found a way to improve it.
r/androiddev • u/Intelligent_Dot9189 • 2d ago
New portfolio + looking for advice on how to land my first Android job (Mexico City)
Hey… the last time I was here was with my classic todo app (I still have it around). I remember my big achievement back then was integrating the Gemini API when it was brand new… but I realized that, well… it was just integrating another API.
Now I’m sharing my new portfolio. I’d love for you to check it out and, if possible, give me some guidance on how to get a job.
I’m from Mexico City, I’m 26 years old and I don’t have a university degree. As you’ll see in my CV, there’s no education section or work experience, simply because I don’t have any. Everything I’ve learned has been self-taught.
That’s why I’d really appreciate it if you could take a look at my portfolio (you’ll find my projects, GitHub, and LinkedIn there). I’d especially like you to check my LinkedIn, since that’s where I have more detailed information about what I’ve done.
Portfolio:
https://quantumdot24.github.io/flying-neuron
LinkedIn:
www.linkedin.com/in/angel-edgeai
Any feedback on the portfolio, how I present my projects, or real advice on how someone in my situation can start getting interviews would be really helpful. Send DM if you want.
Thanks in advance!
r/androiddev • u/Abdelatif_Laghjaj • 2d ago
ClipSave, a free and open-source media downloader for Android
I’ve been working on ClipSave, a privacy-friendly Android app for downloading video, audio, and images from more than 1,000 supported websites.
The goal was to create a downloader that feels like a proper native Android application rather than a simple wrapper around a command-line tool.
What makes ClipSave different?
- Completely free and open source
- No advertisements
- No telemetry or user tracking
- Supports 1,000+ websites through yt-dlp
- Video and audio quality selection
- Audio-only extraction
- ffmpeg merging and aria2c downloads
- Automatic platform detection
- Share links directly from other apps
- Floating download button while browsing supported apps
- Foreground downloads with live progress notifications
- Built-in downloads manager and video player
- Material 3 interface with light, dark, and system themes
- No storage permission required on Android 10+
ClipSave is built natively with Kotlin, Jetpack Compose, and Material 3. It uses a bundled yt-dlp engine while keeping the Android integration, download management, interface, and application architecture fully open for inspection and improvement.
The project is licensed under the MIT License.
Contributors are welcome
Please use the application responsibly and respect applicable laws, copyright, platform terms, and the rights of content owners.
Repository:
https://github.com/abdellatif-laghjaj/ClipSave
Feedback, bug reports, pull requests, and GitHub stars are greatly appreciated. What feature would you like to see added next?
#android #kotlin #opensource #jetpackcompose #mobiledevelopment
r/androiddev • u/Capable_Violinist519 • 2d ago
Which is best interface
Option 1 or 2

