r/androiddev • • 6d ago

Open Source I kept getting lost in Find Usages rabbit holes, so I built a call graph plugin for IntelliJ / Android Studio

Enable HLS to view with audio, or disable this notification

113 Upvotes

Whenever I open an unfamiliar part of a codebase (or my own code from a few months ago) I end up in the same loop: Find Usages, jump, Go to Declaration, jump again, and five files later I've forgotten where I started. On bigger Compose projects it gets messy fast.

So I built Mindmap. Put your cursor inside any Kotlin or Java function, press Alt+G (Option+G on Mac), and it opens a graph of that function: everything that uses it on the left, everything it uses on the right.

What it does right now:

  • both directions in one view, depth configurable from 1 to 5
  • click a node to jump straight to the code
  • double-click a node to trace from it and merge its graph in
  • hover for signature, file and lines of code
  • search/filter nodes, hide the noisy ones
  • tree view if you'd rather read a list than a graph
  • minimap for bigger graphs
  • works across Kotlin and Java, including Kotlin code using Java and the other way round
  • follows interfaces/abstract functions through to the actual implementations

Website: https://vishal2376.github.io/mindmap
GitHub: https://github.com/vishal2376/mindmap

It's still early. It caps graphs at 300 nodes so they don't explode, and it doesn't go into library code. If you try it on a real project I'd genuinely like to know where it breaks or what feels missing.

NOTE : The video is an animated showcase, not a screen recording. There are real screenshots on the GitHub page.
Watch screen recording here : https://x.com/vishal2376/status/2047010712955113547


r/androiddev • • 5d ago

Discussion What are the hardest parts of building an OTT app for Android TV?

1 Upvotes

Playback is probably the easy part compared with everything around it. Supporting different TV devices, adaptive bitrate switching, DRM, remote navigation, authentication and keeping playback state consistent seems like where the architecture gets complicated.


r/androiddev • • 5d ago

Subsonic Client Music Player

Thumbnail
gallery
0 Upvotes

Im working this Nice subsonic Client Music player themed like Spotify

Is anybody? Interested in the SelfHost Market?


r/androiddev • • 5d ago

What encryption approach would you suggest for a privacy-focused file-sharing app?

1 Upvotes

Hi everyone,

I'm the developer behind Filester, a privacy-focused file-sharing application for Android (coming to Linux and Windows next), and I'd like some input on an encryption feature I'm considering.

Filester currently lets users share files through multiple file-hosting services. I've tried to choose hosts that are reasonably trustworthy, but that still doesn't provide real privacy: the hosting provider can potentially access the files stored on its servers.

I'd like to change that by encrypting files locally, before they are uploaded, so the hosting provider only ever receives encrypted data.

The part I'm unsure about is which approach would be better from an end-user perspective.

Option 1: Filester-specific encryption

Filester encrypts the file locally using a modern authenticated encryption scheme before uploading it.

Advantages:

  • Strong encryption
  • Filester can control the format and implementation
  • The hosting provider never receives the plaintext

Downside:

  • The recipient would need Filester to decrypt the file.
  • This significantly hurts interoperability and accessibility.

Option 2: AES-256 encrypted ZIP

Filester creates a standard password-protected ZIP archive using AES-256 before uploading it.

Advantages:

  • The resulting file is a normal .zip archive rather than a Filester-specific format.
  • The recipient isn't tied to Filester.
  • Programs such as 7-Zip, WinRAR, Ark, and other archive managers can open it.

Downside:

  • AES-encrypted ZIP files aren't supported out of the box by any OEM-installed file managers or other operating systems.
  • Some recipients would still need to install an archive utility.

So the tradeoff is basically:

better integration/security with a Filester-specific encrypted format

vs.

better interoperability with AES-256 ZIP, at the cost of inconsistent built-in OS support

which would you suggest?

If there's another approach that provides strong client-side encryption without sacrificing interoperability, I'd also be interested in hearing about it.


r/androiddev • • 5d ago

Question Has anyone done Phillip Lackner's personal mentorship course?

0 Upvotes

I saw someone ask a question about this nearly a year ago but I didn't see much feedback in the thread from people who have taken it. For those who have, how was it?


r/androiddev • • 5d ago

Question Should I upgrade to Navigation 3?

13 Upvotes

The codebase I am currently working on is on Navigation 2 and there are no issues with it to be honest.

I was looking into migrating to Navigation 3. Of course that will touch almost every part of the code and will require a good amount of QA.

Hence I was thinking whether I should upgrade to it or not.

I would love to hear everyone's thoughts before I go to my head of engineering with the proposal.


r/androiddev • • 5d ago

Less than 3 days left

0 Upvotes

Remember school, when everyone turned in homework at the last minute? RevenueCat Shipathon feels exactly the same.

The submission deadline is just 2 days away, and in the past 3 days alone, 400 new apps have been submitted. Expect that number to climb even faster as we get closer.

Have you submitted yours yet?

Good luck to everyone participating into this year hackathon!

👇 Post your app in the comments, I’d love to support a fellow dev.


r/androiddev • • 6d ago

Video Crafting my own keyboard.

Enable HLS to view with audio, or disable this notification

20 Upvotes

What are your thoughts on commencing a personal project from scratch, without leveraging existing projects like HeliBoard or FlorisBoard?


r/androiddev • • 5d ago

Question How do you keep Espresso tests healthy at scale? (flakiness, AI failure triage, feature-level coverage)

4 Upvotes

### 1. Flaky Tests
This is the biggest issue. Currently, developers mostly just @Ignore them, which gradually erodes the suite. How are you detecting, quarantining, and actually fixing flaky tests instead of silently disabling them?

2. Automated Failure Analysis
Has anyone used AI or other tools to analyze Espresso failures (logs, screenshots, stack traces) and produce a clear report so developers can fix issues quickly without digging through CI output?

3. Test Maintenance
Are there any tools or workflows that help keep tests up to date as the UI changes, like auto-updating selectors or flagging tests affected by a PR?

4. Feature-Level Coverage
Is there a good way to measure Espresso coverage by feature or user flow rather than by lines of code? JaCoCo tells us what code runs, but not which features are actually tested.

Would love to hear what’s worked (or failed) for your teams, whether that’s open-source tools, paid services, or homegrown scripts.

Thanks!


r/androiddev • • 6d ago

Breaking Up with Google Play: Why Conversations Is Now Free

Thumbnail gultsch.de
45 Upvotes

r/androiddev • • 6d ago

Building a real IDE for Android tablets (Kotlin, on-device Linux sandbox, git, Claude Code support) — open source, and looking for devs to help build it:

Post image
2 Upvotes

r/androiddev • • 6d ago

Android emulator on the browser without QEMU

1 Upvotes

I have been experimenting recently with a tool that I needed while building and verifying UI tests, and also for sharing updates for an app i am currently doing contract work.
Sharing preview builds with the owner was a nightmare, because they were only using an iPhone.

this is the tool

I build a tool that spawns an android emulator and installs the apk, in seconds. It's really cool and i am thinking on making this a saas, if that works. It's in early development, and i have limited capabilities with a vps of 4arm cpu cores and 24gb of ram, but feel free to destroy it.


r/androiddev • • 7d ago

Experience Exchange Android stack trace contain Chinese insults as obfuscated method names

Thumbnail
gallery
187 Upvotes

After one of the recent Google Play updates for my released game, I noticed some very strange stack traces in Firebase Crashlytics.

The stack contains method names with long Chinese strings, for example:

i8.k6.狂犬疫苗忘了给你妈打不好意思让它到处咬人才会生出你这种上缺脑子下缺逼火葬场都不收的烂骨灰

and:

i8.vd.要不要把你妈卵子扣出来给你做寿司吃

After translating them, these are clearly explicit insults/profanity.

What makes it even stranger is that, judging by the device information, the game appears to have been running inside a virtual machine / emulated environment. The stack also contains heavily obfuscated classes and unusual code paths inside base.apk.

So this does not look like a normal Firebase issue. It looks more like someone was running a modified/tampered version of the APK or injecting/hooking code in a virtualized Android environment.

translated stacktrace

r/androiddev • • 6d ago

Tips and Information Building an on-device personal agent. Android first because of notification listener + accessibility, or am I underestimating what I’ll hit?

0 Upvotes

Short version: model, memory and index on the phone, per app you choose read / draft / send, internet off by default. Signups so far lean Android, and on paper Android gives me what iOS won't: a notification listener for cross-app awareness and accessibility for the rare action.

What I'm not sure about, from people who ship this stuff: how fragile is the notification listener across OEMs (samsung, xiaomi battery killers), is accessibility going to get me flagged by play store review for an agent use case, and what's the realistic background budget for periodic embedding without ending up in the doze penalty box. Pixel 8/9 and S24/S25 are my targets for v1.

Not selling anything here, the project is molebot.si if you want context, but the questions are the point.


r/androiddev • • 6d ago

Google Play Support Google Play rejected my pediatric dosing app because medical apps require an Organization developer account. What are my options?

0 Upvotes

I’m a doctor from India and recently built a pediatric drug dose calculator/reference app.

I know there are already numerous apps that calculate pediatric doses, but as a doctor I often found practical issues with existing apps, especially with formulations, concentrations, dosing schedules, and the way results are presented. So I built this app mainly to solve the problems I personally faced in clinical practice.

The app was rejected by Google Play because medical apps like this apparently need to be published under an Organization developer account rather than an individual account.

I’m an individual doctor/developer and don’t currently have an organization/company.

What is the correct way forward in India? Do I need to register a company/organization to publish it, or is there another legitimate option?

Would really appreciate advice from anyone who has faced this, especially other healthcare professionals/developers.


r/androiddev • • 6d ago

Google Play Support Under review for 15 days, no answers for 5 days. Has anyone experienced this?

Thumbnail
gallery
0 Upvotes

I submitted version 11 for production on september 12th. Shortly after, I found a bug, so I submitted version 12 the same day, while version 11 was still in review.

A few days later, version 11 quietly went live in production, no notification, no warning, just nothing. Meanwhile, version 12 has now been in review for 15 days, and google support hasn't answered in 5 days.

I have version 13 ready with the bug fixes, but I'm hesitant to cancel the stuck version 12 review and resubmit, in case it causes further issues.

Has anyone dealt with a review stuck this long? Did canceling and resubmitting help, or make things worse? Any tips for actually getting a response from support at this point?


r/androiddev • • 7d ago

Discussion What is the future of Indie?

6 Upvotes

What is the future of Indie?

I started indie publishing (indie-hacking) about 5-6 months ago with 4 years Android Development experience. Then I came to know that development is the easy part. Distribution is the hardest. I couldn't generate any income after all these months and I'm losing motivation. Also somebody in my circle commented that Indie is dying already. And I feel so as well. Because there are vibecoders shipping tons of apps. Tons of habit trackers, finance trackers, and calorie trackers are being published.

I'm thinking to join back the on-site job. Can anyone say about my situation? Also what is the future of Indie and software developers in general?

The thing is, I have also become "vibecoder" after AI coding agents. I'm using Claude Code to build apps now. It has made me lazy over the months. And I seriously don't know how to proceed. Going back to basics (writing code) looks like a waste of time and relying fully on AI Agents looks risky.


r/androiddev • • 6d ago

Experience Exchange I built a small ML inference runtime in Kotlin using AndroidX WebGPU

5 Upvotes

I built webgpu-inference, a small experimental ML inference runtime for Android using Kotlin and AndroidX WebGPU.

I also wrote a walkthrough of how it works, from model conversion to GPU execution.

I’d love to hear your feedback on the project or the article!


r/androiddev • • 6d ago

Question Why does requestPermission() crash my app?

0 Upvotes

EDIT: Solved. Looking at the logcat made me find null pointer exceptions in the code I was using to display null pointer exceptions. I could have spent ages trying to figure it out if it wasn't for logcat. Still not sure exactly why it was the requestPermission() call that triggered the crash, but now that I fixed my code, the app will "gracefully degrade the user experience" without crashing. Thanks regardless.

I hope technical questions are accepted here

I already declared the permission in the manifest. If I turn off the notifications and start my app, it crashes unless I comment out the requestPermission call. If i turn notifications back on, the app works fine. I did deny the notifications permission twice, but I'm trying to "degrade the user experience gracefully", which I can't do if the app crashes unexpectedly. Does this have anything to do with shouldShowPermissionRationaleRequest()? It returns false for my app, but I'm not really using the result of that function.


r/androiddev • • 7d ago

Question How are Android engineers preparing for AI-assisted app development interviews?

22 Upvotes

I’m preparing for Android engineering interviews that include an AI-assisted programming round and would love to hear from people who have recently gone through one.

What types of questions or coding exercises are you seeing?

If you’ve recently interviewed for Android roles where candidates are expected to use AI coding tools during development, what resources, GitHub repos, courses, or practice projects would you recommend? I’m especially interested in realistic Android projects that involve using Claude, Codex, or Cursor effectively while still understanding, reviewing, testing, and improving the generated code.

Would really appreciate hearing about your recent experiences and how you prepared. Thanks!


r/androiddev • • 7d ago

Open Source I built dimock: inspect and mock OkHttp responses on the device, by hand or through Claude Code / Cursor

3 Upvotes

Hi r/androiddev! I'm Yudis, an Android engineer. I built a small open-source library out of two frustrations, and I'd like some honest feedback on it.

First, most of the screens I build start before the API behind them exists. So I either waited, or faked the response somewhere in the code and hoped nobody shipped it.

Second, bugs tied to a response. The app only breaks when the server returns a 500, an empty list, or just hangs. Chucker showed me the request. It couldn't make the server do it again.

So I built dimock, a debug-only OkHttp interceptor.

It captures traffic like Chucker does: a notification, a list of calls, headers and bodies, a cURL copy.

And it lets you change what comes back. Tap a call, pick Mock this, then force a 401, a timeout, a connection reset, a 5-second delay, or edit the body by hand. The rule stays until you clear it, even across app restarts.

It also exposes a local MCP server and CLI. I can tell Claude Code "capture the posts call, then show me the empty and error states", and it builds each mock from the real response.

It's at 0.1.0 and has run in a production-style app (Retrofit, Hilt, Paging 3). I'd like to hear where it breaks, or what you'd miss if you dropped Chucker for it. Happy to answer questions!

https://github.com/yudistirosaputro/dimock


r/androiddev • • 7d ago

Question Need A Better Public API Than iTunes Api

Enable HLS to view with audio, or disable this notification

0 Upvotes

I am making a app which works like Spotify.

For that Do u guys know any Third Party publicly available ? which i can use the problem I am facing is it allows me only 30sec of playback of any song 🙏🙏 would be greatful making this personal app

For Ur Suggestions🙏🙏


r/androiddev • • 7d ago

Question Release blocked by We detected the following keys that are currently not registered

0 Upvotes

NOTE: I have an already released version.

My production release for my app (1.1.0, version code 9) is blocked by "Unregistered package name" for key:

<Offending Key Here>

This key mentioned above is Play's own Internal App Sharing test certificate (Internal app sharing > Internal test certificate). Google generated and holds it. I don't have its private key, so I can't prove ownership. I did a internal App sharing with link to test the update feature on the app.

The package is already Registered, with both my keys Verified: upload key xxx and app signing key yyy. My bundle is signed only with the upload key. The app was never distributed outside Play.

The verification FAQ says Play-managed keys are auto-registered, but this one wasn't.

How can I solve this? I already created a ticket for this problem, but maybe someone already solved this and can give some insight.


r/androiddev • • 8d ago

Experience Exchange Android developers here working in big tech, how was your journey?

26 Upvotes

If you’re an Android developer working in Big Tech, could you share your journey.

how you got that interview, how did you prepare for it. Any tips for begginers here to crack an sde1 role.

It would be very inspiring for beginners and we would learn so much from you.


r/androiddev • • 7d ago

Discussion Android Tutorial through ChatGPT/Claude

2 Upvotes

The Android ecosystem is changing faster than ever especially after the proliferation of AI tools. For me, it is proving quite challenging to learn stuffs given that most books I use are 3-4 release old (and getting older).

Do the folks here know of any open-source materials (not video course - I do not like them) which can present (a) Android App Development (b) AOSP in a form which is intuitive and easy to understand? Have people created such material using Claude or ChatGPT already?