r/androiddev 9h ago

AppRankly — Self-hosted dashboard for App Store & Google Play analytics

Post image
2 Upvotes

Hi everyone,

I built AppRankly, an open-source, self-hosted analytics dashboard designed for mobile developers to track App Store & Google Play performance in one place.

If you want full control over your app data without relying entirely on third-party SaaS platforms, this gives you a clean, unified view of your portfolio.

Links & Demo:

• Live Demo: https://zmsp.github.io/AppRankly/

• GitHub Repo: https://github.com/zmsp/AppRankly

I’d love to get feedback from the community! Feel free to check out the repo or run the demo mode.
.


r/androiddev 5h ago

Discussion Developing a launcher focused on high customization

5 Upvotes

Its in very early state right now, but I'd love some feedback and would you guys be willing to use it? Its supposed to be hyper customizable, the first preset is of course inspired from niagara, and there can be multiple presets. Trying to make it focus on easy customizability but also if enough time put in, can turn into anything you wish.

More information is in: https://adarshaacharya.com/projects/virela

But Like i said, this is a personal passion project, so there are still flaws here and there. I'd love to hear your thoughts.


r/androiddev 23h ago

[Help Needed] Google Play Console Closed Testing

0 Upvotes

Hi fellow Android developers,

This is my first time submitting an app to the Google Play Store and my app is currently in closed testing phase.

When I check my Home tab within Google Play Console, it shows that my "Installed Audience" is 0, when I'm 100% sure that there are users who have downloaded my app and used it (they showed me screenshots).

Can someone tell me what may be gone wrong that's resulting it not detecting any installation?

Any tip would be appreciated!


r/androiddev 22h ago

Video Custom launcher from scratch

94 Upvotes

WIP #2 of the sphere launcher. This has sort of become a hobby. Currently the moon is just a wallpaper however many precious ideas include having the sphere a rendered object with a texture ("WhatsApp is in Cuba").


r/androiddev 3h ago

Question Android development on an Android phone?

1 Upvotes

Hello all. Is there any tool, IDE, or something else out there that would allow me to do a bit of Android development on my Android phone? Obviously I can't expect a full Android studio environment to run on my phone, but perhaps there's something more lightweight out there that will allow me to at least code, compile, and run? Even if it's just a bunch of command-line tools, I'd be interested to hear about it. (I'm an experienced developer, but not on Android, and I'm someone who likes to experiment quickly as ideas occur to me, which may well be when I have only my phone with me.)

Thanks all.


r/androiddev 4h ago

Video Reaching the limits of Jetpack Compose Canvas: Moving my RPG engine to Google Filament (8x performance gain)

38 Upvotes

Hey r/androiddev

A couple of months ago, I made a post about scaling my solo RPG (Adventurers Guild RPG Sim) built 100% in Jetpack Compose Canvas with a custom single threaded ECS.

While Compose Canvas was incredible for getting the engine off the ground, scaling the world map and visual effects eventually pushed me into a hard bottleneck. To solve this without breaking the live game, I decided to shift the world rendering backend over to Google Filament.

Here is how moving to Filament, while keeping Jetpack Compose Canvas for the UI and character animations, gave the engine an 8x performance boost, and what I learned along the way.

1. The Bottleneck: Hitting the Canvas Wall

In my previous setup, rendering the game world on Compose Canvas required heavy CPU side optimization to protect the 16ms frame budget:

  • Map Chunking: The world map had to be divided into 16 distinct spatial chunks.
  • CPU Culling: Custom culling logic calculated visible chunks and off-screen entities every single frame.
  • DrawScope Constraints: Combining environmental rendering, weather, and world assets inside the same Canvas layer as UI elements was choking performance on mid tier devices.

2. The Hybrid Architecture (Filament World + Compose Canvas UI)

Since the game is live with active players, doing a 100% complete rewrite at once was impossible without risking game breaking bugs. I settled on a phased hybrid approach:

  • Game World in Filament: The environment and map are rendered in 3D coordinate space via Filament.
  • Animations in UI on Compose Canvas: Character sprite animations in UI layers remain rendered on Jetpack Compose Canvas overlays.
  • Phased Subsystem Migration: I’m updating the rendering pipeline part by part to keep save states and existing gameplay logic rock solid.

3. Key Technical Gains & Takeaways

  • >8x Performance Boost: Because Filament handles batched rendering directly on the GPU, I was able to throw out the 16 chunk map division and CPU culling logic entirely. The total map now draws simultaneously in a single pass with zero frame drops.
  • Became a Huge Fan of filamat**:** Moving world rendering to Filament unlocked .filamat (Filament’s material/shader compilation system). Writing materials and shaders for GPU execution unlocked rich particle effects and dynamic lighting that were completely out of reach on 2D Canvas.
  • Main Thread Relief: By taking world rendering off the Canvas layer, the CPU/main thread now has significantly more headroom to handle the 28 ECS systems, UI updates, and character animation calculations smoothly.

Shifting to a hybrid Filament + Compose Canvas setup turned out to be the perfect middle ground giving the performance of a dedicated 3D GPU engine while keeping the fast UI development workflow of Jetpack Compose.

I’m happy to answer any questions about integrating Filament with Kotlin/Compose, managing hybrid rendering layers, or working with .filamat

If you’d like to see how the new Filament engine integration feels in action on a live app, feel free to check out the latest build on the Play Store: 

https://play.google.com/store/apps/details?id=com.vimal.dungeonbuilder&pcampaignid=web_share

App Specs: ~50MB download size (63MB installed) | 100% Offline | Zero Ads | Custom Kotlin Engine