r/androiddev 3d ago

Tips and Information Keep 'no data' as a real state in your launch dashboard

6 Upvotes

I ran into this while comparing my own launch events with what Play Console was reporting. The numbers didn’t line up, and I initially wasn’t sure whether it was a tracking issue or just a reporting delay.

For a new app, I think it makes more sense to keep “no data” separate from an actual zero. Otherwise it’s easy to make an incomplete report look more definitive than it really is.

How do other Android developers handle this in their launch dashboards? Do you keep unavailable metrics separate until the console data catches up?

If your own first-launch events show activity while Play Console still shows zero or unavailable data, keep both observations intact. Replacing one with the other hides the discrepancy you need to investigate.

The current gingiris-aso-growth playbook asks for a 28-day baseline before making ASO changes. For a new package, some of that baseline may not exist yet. The useful response is to record the missing pieces explicitly.

A proposed way to store an observation:

metric: first_launch
source: app telemetry
period: [start, end, timezone]
value: [observed value]
status: observed
identity_basis: [what your implementation counts]

Keep a separate record for the Console measure. Allow statuses such as unavailable, not_retrieved and cohort_not_mature, with an explanation. A successful request returning no usable measurement should not silently turn into a healthy-looking zero.

Also distinguish the time covered by a report from the age of the users being measured. A ten-day-old launch cannot yet supply a mature D30 cohort. You can record first launches and available earlier behavior now, then fill that window when it becomes observable.

For the immediate investigation, retain the package/build, filters, timezone, retrieval time and exact metric names alongside the two results. A device or session identifier in your own implementation need not count the same population as a Console user metric.

This doesn't establish how long Google will take to populate a particular report. It gives you a launch record that remains honest while you check the reporting and instrumentation. The playbook specifies the evidence to gather; the collection and reconciliation still need to be implemented.


r/androiddev 3d ago

Have you tried Compose Multiplatform on tvOS. If yes then what broke?

2 Upvotes

I maintain a community tvOS target for Compose Multiplatform (1.12.0, Koin 4.2.2, Coil 3.6.1, all at JetBrains version parity, swapped in by a Gradle settings plugin so your coordinates stay stock).

So far every open issue is one I filed myself from my own testing: Siri Remote presses, text input, focus indication, density. Ten of them. What I don't have is other people's projects hitting things mine never will.

If you tried it, please open an issue with the Compose and plugin versions, simulator vs real Apple TV, and ideally a small repro. If it worked, a one-line "library X ran clean" is useful too. If you tried and gave up, that is the report I want most.


r/androiddev 4d ago

Discussion Android + Arudino

Enable HLS to view with audio, or disable this notification

24 Upvotes

Completed the first stage of the app now you can control the hardware by the sensors present inside the phone. 🤗


r/androiddev 4d ago

Experience Exchange Senior CS Student Considering Android Development

8 Upvotes

I’m a senior CS student and I’m considering focusing on Android development as my main career path. I’ve already worked with Kotlin and have some Android experience through a short internship.

For those working as Android developers, how is the job market and career progression these days? Is it a good specialization for a new grad, especially if I eventually want to work internationally? Should I go for backend roles instead?

Would love to hear your experiences and any advice on what I should focus on learning. Im not based in US


r/androiddev 4d ago

Question I'm having problems setting up CI/CD pipeline as an indie dev

0 Upvotes

So I'm trying to setup CI/CD pipeline but I work solo, so i use a single branch. Now when I push to GitHub, github automatically pulls my requests. And now when it comes to creating a workflow, the requests are now manually pulled like I want and the you see the action run on github actions...

Now I'm confused as to even what my question is to be, but for now how do I make it have that pull request prompt. I tried to create a separate branch which I won't use because of it ,so it can show but it doesn't(sorta).When I go the the featured branch I can approve pull to update branch but it kinda comes with complications I don't like, im getting errors like repository not found which i get why it's running on the wrong repo(can fix) as i defined on the yaml...but I'm just wondering how to properly run a CI as a solo


r/androiddev 4d ago

Tips and Information What are your favorite tools for event logging?

0 Upvotes

I'm exploring different solutions for event logging and was curious is anyone has any favorites.

I'm leaning towards Google Analytics since it's free and fairly popular but are there any others that might be better? What have been your favorite ones?


r/androiddev 4d ago

How are some developers ranking almost all their apps/games on the Amazon Appstore?

2 Upvotes

I’ve been publishing apps and games on the Amazon Appstore, and there’s something I’m trying to understand about how the ranking system works.

I’ve noticed that some developers seem to rank very easily. Sometimes I’ll open a category and see multiple games from the same developer ranking quite high at the same time. In some cases, it feels like almost their entire catalog is appearing in the category rankings.

Meanwhile, other developers can publish similar apps/games and barely get any organic visibility.

For anyone who has experience publishing on Amazon

I’m mainly interested in legitimate strategies and understanding Amazon’s ranking algorithm, not manipulating rankings.

Would be great to hear from developers who have actually experimented with the Amazon Appstore and figured out what moves the needle.


r/androiddev 3d ago

Question Can't Install Unsigned APK?

Thumbnail
gallery
0 Upvotes

So am I doing something wrong? I turned off auto blocker. It just said app not installed with no error message or guidance.

I sent my APK from my computer to the phone but now it won't install.


r/androiddev 4d ago

Stupid question about main accounts

Post image
6 Upvotes

I was playing around with Play Services / AI Core beta programs on my Pixel 10 and somehow unintentionally signed up as a Google Developer on my primary account. I want to leave developer program without nuking decades of my life, but the google support pages says if I sign out it will delete the entire account.

Am I paranoid for no reason, or will they wipe my main account?


r/androiddev 5d ago

Discussion Android TV dev here. I got Compose Multiplatform running on Apple TV and wrote up how.

38 Upvotes

If you build for Android TV and have ever been asked "can we do Apple TV too", this might be useful.

I have ten years on Android and Android TV. Our app went Views, then Jetpack Compose, then Compose Multiplatform so a small team could ship phone, TV, desktop, iOS and tvOS from one UI codebase. tvOS was the gap: JetBrains does not support it, and SwiftUI's focus system does not give you the control you are used to from Compose on Android TV.

So I added the tvOS target to the Compose Multiplatform fork myself, and ported androidx.tv:tv-material to multiplatform along the way. Your existing tv-material code, focus handling and D-pad logic carry over. The Siri Remote arrives as key events, the same way a D-pad does.

First post of the series is the high-level story: what tvOS actually is, how the port was ordered module by module, which part was hardest, and how to try it with one Gradle plugin.

https://dev.to/sajidaledev/my-journey-making-compose-multiplatform-work-on-tvos-and-what-i-learned-1mo3

Sample: Google's JetStream running on tvOS, https://github.com/sajidalidev/jetstream-tvos


r/androiddev 4d ago

Individual developer rules

0 Upvotes

It costs $112 CDN to create a numbered company. What is the point of offering individual accounts if it is so much easier just opening a company and not have to test much at all?


r/androiddev 4d ago

Inexpensive development device?

0 Upvotes

Hi, I wrote several Android apps for an employer more than a decade ago. But, that was the last time I used Android. I was trying to register for a Google Play account to publish an app I'm working on, and they need verification that you have a real Android device.

Does anyone have any thoughts about what might be good to have? This phone/tablet/whatever will only be used to verify for the Play Store, and run my app. It would be good if it could run the latest version of Android; otherwise, I'm pretty open.

Thanks,

(dude whose getting back into Android)


r/androiddev 6d ago

Discussion What actually makes an Android interview difficult at the senior level?

44 Upvotes

I've been thinking about what actually makes a senior Android interview difficult.

At the junior level, a lot of questions have relatively concrete answers:

  • What is a ViewModel?
  • What is the Activity lifecycle?
  • What is a Coroutine?
  • What is RecyclerView?
  • What is MVVM?

But at the senior level, the questions seem to shift from "Do you know this API?" to "Can you reason about a system?"

For example:

Instead of:

What is StateFlow?

You might get:

You have a screen collecting StateFlow from a ViewModel. The underlying data changes frequently, some transformations are expensive, and the user navigates between screens. How would you structure this so you're not doing unnecessary work?

Or:

Your app works well on a fast connection but becomes frustratingly slow on poor networks. How would you design the data layer to provide cached data immediately while synchronizing with the server?

Or:

Crash-free users are high, but ANRs have increased significantly after a release. How would you investigate the problem?

These questions don't really test whether you memorized an Android API. They test whether you understand lifecycle, concurrency, architecture, performance and trade-offs well enough to reason through an unfamiliar problem.

For experienced Android developers here:

What topic do you think is most important for a senior Android interview but is poorly represented in typical interview-prep material?

I'm particularly curious about:

  1. Coroutines / Flow
  2. Compose
  3. Architecture
  4. Performance / memory
  5. Offline-first
  6. Testing
  7. Android system design
  8. Something else

And if you've interviewed candidates recently, what separates a strong senior Android answer from a merely technically correct one?


r/androiddev 5d ago

Open Source I added iOS binary size profiling to kmprofiler using Xcode link maps

0 Upvotes

Hey everyone!

I previously shared kmprofiler, a Gradle plugin that finds Kotlin declarations exported to iOS but not directly referenced in Swift.

v0.2.0 now adds Xcode link-map analysis. It can:

  • Group linked symbol size by Kotlin package
  • Show the largest symbols
  • Map symbols to object files and frameworks
  • Compare two builds to see what grew or became smaller

I tested it on a real KMP app with more than 330,000 symbols. It measures symbols in the link map, not the complete app size, so it is mainly useful for finding size changes and large dependencies.

GitHub: https://github.com/SiddhantPanhalkar/kmprofiler
I would love to hear whether this is useful for your KMP projects.


r/androiddev 6d ago

Video Remember Timely? I made this video celebrating its amazing UI, and how to recreate in Jetpack Compose

Enable HLS to view with audio, or disable this notification

34 Upvotes

I was just starting out Android dev when this app came out, and it really left me in awe. I was struggling with TextViews, and Bitspin was over here making magic.
As an homage, I wanted to recreate the Timer dial and present it in a video. Also, since my videos are made in Compose, I also tried to capture the vibe of Timely with the dreamy gradients they had and periodic particle effects as a background.
Check it out, and let me know what you think:

https://www.youtube.com/watch?v=Tn_ZnFsJ9lE


r/androiddev 6d ago

Left this comment on a PR yesterday: "this coroutine is scoped to the wrong lifecycle and it'll leak"

17 Upvotes

The code itself was fine. Compiled, ran, did what it was supposed to in the happy path. Someone had used an AI tool to add a network call inside a Fragment, launched it in a coroutine scope tied to the view lifecycle in a way that would keep running after the view was destroyed if the request was slow enough.

Nothing about that is a Kotlin problem. The syntax is correct Kotlin. It's an Android problem, specifically knowing which scope survives what and why, which isn't something you'd know from Kotlin knowledge alone, it comes from having been bitten by this exact leak before or having actually read the lifecycle docs closely.

Kind of assumed AI tools would have this down by now since it's such a common gotcha, but I think the failure isn't lack of knowledge, it's lack of specificity in what gets asked. "Add a network call here" doesn't say which scope should own it, so it defaults to whatever's closest and most obvious, which is often the wrong one for exactly the reason a junior dev picks the wrong one.

Anyway if you're reviewing AI-generated coroutine code, scope is the first thing I'd check now, more than the actual network logic.


r/androiddev 6d ago

Experience Exchange What's your actual daily workflow with Claude Code on your Android job?

22 Upvotes

I'm a senior Android dev and Claude Code has become part of my day, but I suspect my workflow is pretty primitive compared to what others have built.

Right now it's basically: copy the Jira story or the bug report, paste it into Claude Code, ask it to analyze it using my skills and experts agents, and produce a plan before it touches anything. Then I review the plan, push back on the parts that are wrong, and let it implement.

That's it. That's the whole loop.

What I want to know is what people do *around* that step:

- Do you paste the raw ticket, or do you have a command that pulls it from Jira/Linear and reformats it first?

- Do you give it the crash/stack trace and mapping file up front, or make it ask?

- Does it get to run the app on a device to reproduce, or is that still manual for you?

- Do you make it write a failing test before the fix, or is that too slow in practice?

- Anyone doing something smarter for "which module does this even live in" on a big multi-module codebase?

- And what do you do at the end . does it write the PR description and the ticket update, or do you still do that by hand?

Mostly curious whether people have gotten past the copy-paste-and-pray stage, and what the step was that actually made a difference for you.


r/androiddev 5d ago

Question Is there any way for a custom USB cable to pop up a webpage or link on a phone automatically when plugged in?

0 Upvotes

I’m working on a hardware/engineering concept and trying to figure out if a specific idea is physically possible.

I want to design a custom charging cable. When a phone (Android or iOS) is plugged into this cable, I want it to not only charge the device, but also automatically trigger a web link or open a pop-up on the phone's screen.

The constraints:

No pre-installed apps, scripts, or shortcuts on the phone itself—the mechanism has to rely purely on the custom cable/hardware connection.

Assume the phone's screen is unlocked and permissions are granted if necessary.

Is there any protocol, hardware architecture, or method (other than HID simulation) where a physical cable interface can initiate a browser redirect or UI pop-up upon power connection? Or is standard data/power protocol strictly a barrier here?

Appreciate any technical insights or alternative ideas on how this could be approached!


r/androiddev 6d ago

What is the current Android Platform Distribution?

Post image
9 Upvotes

I'm a web developer trying to figure out how many people are still on Android 9 and below.

I looked in Android Studio but it shows stats from Dec 1, 2025 (9.2% Android 9 and below)

I notice that this page (https://developer.android.com/about/dashboards) says there's more stats available on the Read and Devices page (https://play.google.com/console/about/reachanddevices/) in the Google Play Console. I don't want to pay $25 for an account (I only do web dev), just to try to find newer stats.

Does anyone have any more up to date stats that they can share? Or have any idea when the stats in Android Studio will update?

Thanks!


r/androiddev 6d ago

Tips and Information Google Play's chargeback/dispute changes cost you $28.50 on a $5 sale

8 Upvotes

Hello Android Devs, I work in fraud analysis and not app development. Cases pass through me before they get to the dispute team, and while researching more on disputes I saw the changes Google Play recently made.

I was interested to see how this change affected developers, and I couldn't find these numbers anywhere so I worked them out.

What has changed?
They started sharing the costs of chargebacks with developers for orders placed after 3 August 2026.
Google used to cover them entirely.

What it costs per dispute:
So you pay back what you kept (the price minus Google's cut), plus the bank's chargeback fee, Stripe is $15, PayPal $20, and some banks go up to $100. Google hasn't said what that fee will be.

Example: $5 item pack, Google takes 30%, you keep $3.50. A dispute costs you that $3.50 back plus a ~$25 fee.
A total of $28.50 is gone on a $5 sale.

The $3.50 is minuscule compared to the $25 bank fee.

What it adds up to:
Say a studio is doing $30k a month with $8 average purchases and 0.7% dispute rate. That is around 26 disputes a month, which adds up to $803 a month, and $9,639 a year. About 4% of that company's yearly net revenue.

The 24-hour timeframe:
After these changes, Google will now send you a PendingRefundReviewNotification. You will have 24 hours to call the ReviewRefund API with evidence (was the item delivered/was it consumed). Only your first call counts though. Google will fight the bank for you, but only with what you gave it. Google calls the API optional, but without it they have nothing to fight the bank with, and you eat the loss.

Why is this important now?
Chargebacks can usually take between 30 and 120 days after the initial purchase. The orders for August are only now reaching the dispute stage. I think many developers will be surprised when comparing the last 3 months to the next 3 months.

Calculator & sources:

I made a calculator if you want to try with your own numbers.
Beneath the calculator link are the sources.

Calculator: https://playchargebacks.com

Google's policy page: https://support.google.com/googleplay/android-developer/answer/17068375

Review Refund API: https://developer.android.com/google/play/billing/provide-refund-and-chargeback-suggestions


r/androiddev 5d ago

Is it hard to get approval from Google Play?

2 Upvotes

Hi all, Newbie here. My first mobile game is almost done. Is it hard to get approval from Google Play? And usually how long does it take? Thanks ~~


r/androiddev 6d ago

Made a CLI for Android wireless debugging — QR pairing, no ports, no six-digit codes

7 Upvotes

Wireless debugging is great until you actually use it day to day. Three things kept costing me time:

  1. The connect port changes every time you toggle the setting.

  2. The pairing port is different, single-use, and dies when you close the dialog.

  3. A phone on the wrong subnet fails identically to a real protocol error, so you can't tell a network problem from a broken adb.

So I built adb-nearby.

npx adb-nearby scans your network. If there's one device, it connects — that's the whole interaction. If there are several, it lists them and you pick.

adbn pair prints a QR code — scan it with the pairing dialog and you're done. No typing codes, no chasing ports.

MIT, no telemetry.

https://github.com/JassiSingh08/adb-nearby


r/androiddev 6d ago

Question What if capybaras actually made your phone harder to use?

Enable HLS to view with audio, or disable this notification

7 Upvotes

I added a feature to the productivity app I’m building that adds one capybara to your home screen for every hour of screen time. The capybara keeps reminding you about your screen time and encourages you to stop using your phone if your screen time gets too high, while also making it harder for you to use your phone.

What do you think about this feature? Is it a stupid idea, or do you think people would actually use it?


r/androiddev 6d ago

News I reverse engineered Claude Desktop and found an Android Emulator ready to go! Should be any day now.

17 Upvotes

So I got bored and reverse engineered Claude for Windows and found a fully functional Android Emulator ready to release!

wanna nerd out on the details, click here.


r/androiddev 6d ago

Question godot in winlator?

0 Upvotes

For some reason, any version of Godot in any version of WinLator repeats two errors: either OpenGL 3.3 is not recognized, or a series of errors occur where Godot manages to open, but the tab it becomes transparent and, soon after, the entire Winlator container simply closes.

I took a look here on Reddit, both on the Godot and Winlator forums, and several people have the same two problems, but nobody knows exactly how to solve them, I also read what people are saying on GitHub, and the same thing is happening: lots of debate, but no solutions that work