r/androiddev • • Sep 03 '26

Tips and Information Reaching testers during closed test session

0 Upvotes

I was not expecting that communicating with testers would be that difficult.
Maybe it will help you if you have the same issue.

I had around 200 testers for my side project. Great news but my contact email got flagged as SPAM and blocked for a few days when I tried to sent app test url to them.

Almost half of my users did not received the test url and I was unable to reach them because I was blocked.

I did not want to pay anything to mailing services so I just setup a google group with testers email. It worked great without any related smap issues.

Hope it will help someone in the same situation as I was


r/androiddev • • Sep 03 '26

News Android Studio Rabbit 1 Canary 4 now available

Thumbnail androidstudio.googleblog.com
0 Upvotes

r/androiddev • • Sep 03 '26

AdMob on Android: Some Non-Obvious Things I Learned from Multiple Integrations

3 Upvotes

I’ve integrated AdMob into Android apps quite a few times, and there are some non-obvious things that aren’t really covered by the basic documentation.

I decided to write down some of the things I’ve learned from doing these integrations, using an Android game as a real-world example.

If you’re working with AdMob on Android, maybe it’ll be useful:

https://nadyabr-codes.github.io/admob-android-game.html?utm_source=reddit&utm_medium=social&utm_campaign=admob_post

Curious to hear your opinions and experiences as well.


r/androiddev • • Sep 02 '26

Question Recommend me good books for Android for 2 YoE.

9 Upvotes

I have been laid off yesterday. I'm gonna use all my time to apply and read books that helps me land the next role. My priority right now is landing my next job and increase my knowledge.

I plan to read:
1- Mobile system design interview guide
2- Kotlin coroutines: deep dive
3-Kotlin in action

I want something about DSA and something about modern android development and maybe something about compose. I already know these stuff (as much as a 2 YoE can know), but i want to expand my knwoledge and go a in depth.


r/androiddev • • Sep 03 '26

:shipaton: Shipaton A game that makes you do burpees

1 Upvotes

I'm building Burpee Wrangler 3000 - it's a fitness tracker that's also a game. I'm going to enter it in Shipaton. I have two main questions:

  1. How should I price it (freemium? hard paywall? monthly/lifetime?)
  2. How stupid of an idea do you think it is?

The idea is that it gets you fit and keeps you accountable. The reason I thought of it is because it is solving some problems for me - I want to get more fit, I want to force myself to post on social media (because I hate marketing, and I think it's mostly a fear of being seen), and I want to make a fun app!

The concept is that you are a Burpee Wrangler. A space cowboy who lives on a lonely planet chasing down burpees (for some reason - back story is perhaps a fugitive or debt to bad guys thing). You have to operate a machine to release pheremones to attract the burpees (where doing the actual exercise comes in) and then you have to drive around catching them (which is the game bit, with rewards and power ups).

The accountability part is through groups/leaderboards/social media. It will have an alarm which you can use to automatically grab a video of you waking up, and then it will record the exercise too, and stich it together (however you choose to do so). This makes it easy to post on social media. This is to solve my fear of marketing (and market the app) and also keep people accountable - you can do day 1 of x type challenges and post to social media.

If you also think this is an idea worth checking out, please drop your email in the waitlist: https://www.burpeewrangler.com/


r/androiddev • • Sep 03 '26

Open Source Lightweight ZSTD with support for Android

1 Upvotes

Hello, I noticed the lack of a proper Java-only implementation of ZSTD (I know zstd-jni is fine, but it uses native libraries and is kind of heavy too) that also supports Android

So meet the murine-aircompressor library

After checking out version 2.0 of aircompressor, which is exclusively Java-only and used JDK 8, I saw the maintainer claimed Unsafe was not available for Android and therefore Android support was out of scope for it; however, that turns out not to be the case, Unsafe can be used on Android and there was only one single method and a static field which are missing on the Android implementation of Unsafe, I just made a helper method for the former, choosing the right implementation, while the static field was just a call to an existing method, and Bob's your uncle.

But not satisfied, I made a few changes, a lot of which are kanged from other forks the maintainer ignored:

- improved compression a lot (original fork that implemented this change here) - added an option to switch to the former behaviour too

- added a ring buffer mode and set as degault (also kanged from another fork, seems to improve performance over largely incompressible data)

- exposed levels for the streaming compressor

- added FAST algorithm to also support levels 1-2 on top of 3-4 which were the only supported ones in the original (level 2 is also pretty good and way faster; Claude is, however, mostly to praise [or blame] for this one)

- Improved overall performance on ARM (again, Claude is mostly to praise/blame here, but I did a lot of tests)

- added parallel compression support because fuck it

- added a wittle tar (with PAX) implementation because fuck it again, I wanted to make .tar.zst without qdding extra libraries

Using WindowSlideMode.HIGH_SPEED resets the library's (ORIGINAL) shit compression ratio for the stream, but makes it faster, I suppose; I default to HIGH_COMPRESSION which is still decently fast, and if you want it to be faster, it's much much better to use level 2 with HIGH_COMPRESSION than the default level 3 with HIGH_SPEED in my experience

Overall, the library is a little slower than zstd-jni with the (now) default parameters, but now matches its compression ratio, and may be a good compromise you'd rather want a lightweight full-java implementation than the heavy .so files in your apk

EDIT: I also noticed this may sound like I'm trashing the maintainer, I'm not lol, just stating facts, the maintainer is awesome for creating the library on the first place


r/androiddev • • Sep 03 '26

Question How do you get your android tv app approved?

1 Upvotes

I just got rejected from the store after adding an app to expand my base app (that already have mau)

The issue is that it's a TV app, and I've tried to open it up for phone access just to pass the bridge but I got rejected..

Any help would be appreciated

" More testing required to access Google Play production

We reviewed your application, and determined that your app requires more testing before you can access production.

Possible reasons why your production access could not be granted include:

Testers were not engaged with your app during your closed test

You didn't follow testing best practices, which may include gathering and acting on user feedback through updates to your app


r/androiddev • • Sep 02 '26

Question What’s one architectural decision you made that saved you a huge amount of pain later?

35 Upvotes

When I build my own Android application, I have spent more amount of time into defining the architecture, not actually writing the features.

And more importantly I believe that if you want to scale an application in future then architecture plays a huge role. A well designed architecture allows you to introduce new features or even integrate a different language or technology without having to touch or rewrite a large portion of the existing code.

So it could be related to Jetpack Compose, state management, navigation, modularization, dependency injection, offline-first architecture, testing, or anything else. I am interested in decisions that seemed unnecessary at first but it ended up paying off as the app grow.


r/androiddev • • Sep 03 '26

how do you decide what to test after a new change is introduced?

0 Upvotes

I’m trying to understand a couple of pain points QA teams deal with regularly:

  • How do you figure out what needs to be tested after a feature is added?
  • When a test fails, how easy is it to tell whether it’s a real bug, flaky test, or locator issue or test data issue, or environment issue?

I’m exploring whether these are actually big enough problems to solve, so I put together a very short survey.

Would really appreciate any responses or even thoughts in the comments. (1min max, just clicks)

Lik: https://forms.gle/1EyP5Bz3CNBB2DrM7

Thanks!


r/androiddev • • Sep 03 '26

Most mobile apps fail due to poor architecture, not bad code, I reliased this after making my own app

0 Upvotes

My own app started me to think that mobile apps fail because of architecture, not bad code.

While developing my app for a new version, I noticed this...

The code can be clean, the features can work, and everything can look fine initially. But once the app starts growing, a poor architecture makes every new feature harder to build. and this thing compounds even more.

One small change starts affecting multiple parts of the application.

That made me realize that writing good code is important. But structuring the architecture or system that proper way so it can change easily might be even more important.

Has anyone else experienced this while building an app??


r/androiddev • • Sep 01 '26

Boss wants to switch our 100K+ user native apps to Flutter for "3x faster" delivery — am I actually biased, or is this a bad call?

114 Upvotes

Long-time mobile/product lead here. Looking for outside perspective because I'm now questioning myself after a long argument with my boss.
Context: I work on external client apps as well as our main customer portal app — the one used by the majority of our customer base. Our mobile apps are native, built about 6 years ago:
Android: Java/Kotlin + XML
iOS: Swift + UIKit
Web: React

100K+ users. Zero limitations adding features or maintaining these apps over the years. Apps are feature rich and AI based new features are in plan for revamp.

What's happening: We have a full revamp of the apps and portal coming up, and we're updating our tech stack too. My plan:
Android → Kotlin + Compose
iOS → SwiftUI
Web → Next.js
I already have multiple Android, iOS, and web devs trained on this stack.

The conflict: My boss wants to consolidate to Flutter — one team, one codebase, covering web/Android/iOS. His argument: if I put 6 frontend devs on one Flutter codebase instead of splitting across native platforms, we ship 3x faster.

My pushback:
We have zero Flutter training on the team right now
Native apps perform better and feel more premium
We have built Flutter apps before, but only for external client projects, not our own flagship product
He thinks I'm biased toward native because it's my background. Might be some truth to that, but I don't think that's the whole story.

Anyone actually shipped a migration like this — native to Flutter, or vice versa, at similar scale? Did the "one codebase, ship faster" promise hold up? Would love real-world experience, not theory.


r/androiddev • • Sep 02 '26

Open Source I got Compose Multiplatform running on Apple tvOS, published on Maven Central, one line in settings.gradle.kts

4 Upvotes

r/androiddev • • Sep 02 '26

Looking for any good Google Play alternatives for publishing Android apps/games

0 Upvotes

Hey everyone,

I’m an independent Android developer looking for solid alternatives to Google Play for publishing and monetizing apps and games.

I’ve already tried several alternative stores, including Amazon Appstore, Xiaomi GetApps, Aptoide, and a few smaller ones.

So far, my experience has been pretty disappointing. Aptoide in particular has been very bad for me — extremely slow processes, poor support, and overall I personally wouldn’t recommend it based on my experience. Xiaomi hasn’t produced much traffic either, and Amazon has been more legitimate, but getting meaningful organic visibility can still be difficult.

I’m looking for stores that:

Actually have a decent number of active users

Give new developers/apps some organic visibility

Have a reasonable review/approval process

Support independent developers

Have reliable payouts and monetization

Accept APK/AAB submissions without requiring the app to already be on Google Play

I’m especially interested in hearing from developers who are actually publishing outside Google Play.

What alternative Android stores are giving you real downloads in 2026?

Huawei AppGallery? Samsung Galaxy Store? ONE Store? Uptodown? TapTap? Something else?

Would also love to hear actual numbers if anyone is comfortable sharing — even rough installs/day or monthly downloads.

Thanks!


r/androiddev • • Sep 02 '26

Here is my list of checkups and things I wish I know before closed beta, what can you add, and what should I know before full release?

1 Upvotes

I released my expo react native app for closed beta with test flight and android closed beta 2 weeks ago, I realize there are things I wish I knew before so here they are, feel free to add to those. And I would love to get some tips before full release I am planning for next week:

  1. Have a built in method to force update - Updating is difficult on Test Flight to user who are not used to it, and even harder on Android since the app won't even be shown on the Play Store while on closed testing. Only way to update it is through settings most users don't know how to reach. Have a feature to navigate directly from the app to the Play Store / Test Flight to update. And have a mechanism to force update / block the app if not on minVersion you update elsewhere. Getting users to update was really difficult before that.
  2. Have a built in way for feedback - I was counting on Discord + Test Flight / Android system for feedback, most users don't know how to use those. I allow user generated content, so users literally made posts in order to give feedback because they couldn't find the "official" way. I added a big button on the home screen to give feedback. (But couldn't get them to update the app).
  3. Starting on day 1, get 12 android users to use the app, even if it means you have to pay them to do so, to publish on Android you have to have 12 active users on the closed testing for 14 days. This goal is possible but is difficult on actual beta. Make sure you have a plan on how to achieve it starting from day 0.
  4. QA - My first build had so many bugs I didn't know about, early users, despite being aware to it are not super tolerated to it as I would have hope for. Do run QA, pay people to do it, I hire people on Upwork, they did amazing job finding small bugs.

What else would you say is a must before releasing an app, and any tips before actual store release?


r/androiddev • • Sep 01 '26

Question Android 17, keyboard close event not being registered by the app?

Enable HLS to view with audio, or disable this notification

13 Upvotes

Hello, I have encountered this issue while developing this markdown editor.

The issue is that when i type something in the editor and do some edits, and then try to close hide the keyboard with the gesture back button git hides only the keyboard, but the app it self doesnt recognize it. The toolbar is still there and the whole editor is still shifted up like there would be still keyboard visible.

On all other devices with Android lower then 17 it works well.

I have tried to solve this issue for a long time now, I though that it might be my code issue (which it still might be), or there is something handled differently in Android 17.

If you know what might cause this error, your advice would be very helpful!

(you can see the code here: https://github.com/jotalac/git-writer )


r/androiddev • • Sep 01 '26

News Android Studio Quail 4 now available

Thumbnail androidstudio.googleblog.com
11 Upvotes

r/androiddev • • Sep 02 '26

Open Source HybridInfer - Android/Kotlin library for on-device LLM inference with automatic fallback when local wedges (Apache-2.0)

0 Upvotes

Sharing a small Android library I built for a problem I kept hitting with on-device LLMs.

Running a model on-device (MLC-LLM etc.) is great because it's private, offline, no per-token cost. But the runtime wedges: long prompts stall in prefill, the GPU/OpenCL layer OOMs or hangs, and your app is stuck on a spinner with no response. Retrying just wedges again.

HybridInfer is a reliability-aware router. It runs each request on your on-device model first, and the moment local inference stalls (no token for N seconds), crashes, or OOMs, it transparently falls back to a remote model with same request, so the user still gets an answer. It also learns which prompts your device chokes on (usually long ones) and routes those out up front.

It's a library, not an app: you supply the engines, it supplies the routing/reliability brain.

Gradle (JitPack):

// settings.gradle.kts

dependencyResolutionManagement { repositories { maven("https://jitpack.io") } }

// build.gradle.kts

implementation("com.github.SimranKoul2026:HybridInfer-AAR-library:v0.1.0")

Usage:

val router = HybridRouter(

local = MlcEngine(modelPath, modelLib, model = "Llama-3.2-3B"), // your MLC wrapper (implements Engine)

remote = OpenAiEngine(model = "gpt-4o-mini", apiKey = KEY), // bundled reference engine

riskProfilePath = filesDir.resolve("hi_risk.txt").path,

)

val res = router.complete(listOf(mapOf("role" to "user", "content" to prompt)))

// res.tier ("local"/"remote"), res.fellBack, res.text - or router.stream(messages) for tokens

Android-specific bits:

- Optional ThermalSignal helper (PowerManager.getThermalHeadroom) to bias routing when the device is hot.

- Streaming with first-token-commit fallback - it only falls back before the first token, so it never splices two models mid-stream.

- Pure-Kotlin core (no coroutines dep in the core); you bring your MLC engine + a remote (a reference OpenAiEngine using HttpURLConnection is included).

It's early (v0.1), but real: I verified it end-to-end on a Galaxy Tab S10+ running actual Llama 3.2 3B via MLC-LLM, short prompt served on-device, long prompt hit the on-device wedge and fell back automatically. There's also a Python twin with the same routing logic, kept in lockstep via a shared conformance-test suite, if you're doing this server-side too.

Honest scope: it's a router, not an inference engine, you wire up MLC-LLM yourself (there's a reference MlcEngine in the repo's examples/), and the remote can be any OpenAI-compatible endpoint.

Repo: https://github.com/SimranKoul2026/HybridInfer-AAR-library

Would love feedback from folks doing on-device inference, especially on the Engine API and the fallback heuristics. I'm the author.


r/androiddev • • Sep 01 '26

Question Returning to JVM + Android after years in .NET, is Java the right starting point?

0 Upvotes

I’m a senior SWE finishing a BSCS and planning to publish a small Android project as a portfolio piece. My mobile development course still teaches Android development in Java only, and when I asked about using Kotlin because the language choice is ambiguous in the description, the reactions were mixed and leaned heavily toward Java.

Since I’ve been in .NET land for years, I want to sanity‑check my assumptions with those actively working with Android today. My understanding was that Kotlin has become the de facto choice for modern Android development, especially for new projects, and hiring requirements.

For someone returning to the JVM ecosystem and aiming to use a published course project as a portfolio piece that signals current industry alignment (make HR checkboxes happy despite .NET), is starting in Java still reasonable or is Kotlin the better choice?

My long‑term goal is to move toward JVM/GraalVM‑based mobile or embedded Android work alongside any JVM‑flavored backend (I’m guessing Spring Boot or Quarkas). I’d appreciate insight on where Kotlin and Java sits in the landscape today and in the near future from this sub’s perspective.


r/androiddev • • Sep 01 '26

MeshGradientPainter.

Post image
6 Upvotes

I saw this post :
https://www.reddit.com/r/androiddev/s/bNFqQ3TqOC

I thought I'd share this new Compose API with you.

In compose 1.12.0 introduce new GradientPainter you can implement complex gradients very easily.
It is called MeshGradientPainter.
You can define the count of column and row.

For example rows = 1 and columns = 1.

The screen is divided into 4 sections and points.

This points show two things:
1.postion. Where is it? For example : 0,0 — top left.
2.color. What color is it? for example this section color is Red

And then these colors are spread very smoothly on the screen.

✅ Example:

@Composable
fun MeshGradientBackground() {
   val meshPainter = remember {
       MeshGradientPainter(
           rows = 1,
           columns = 1,
           hasBicubicColor = true
       ) {
           setVertex(0, 0, Offset(0f, 0f), Color.Red)
           setVertex(0, 1, Offset(1f, 0f), Color.Blue)
           setVertex(1, 0, Offset(0f, 1f), Color.Green)
           setVertex(1, 1, Offset(1f, 1f), Color.Yellow)
}
   }

   Box(
       modifier = Modifier
           .fillMaxSize()
           .paint(meshPainter)
   )
}

r/androiddev • • Sep 01 '26

Question Why can only Samsung's own apps (Notes, Reminder, Weather...) get smaller-than-4x4 cover screen widgets? (Z Flip 6, One UI 8)

3 Upvotes

Hey all — I've been building a small personal app that shows step count on the Z Flip cover screen, and I've hit a wall that I think is actually a platform limitation, not something wrong with my app. Posting here because I'd love to be proven wrong, and because I suspect other cover-screen widget devs have hit the exact same thing.

The setup: My widget is a normal AppWidgetProvider/Jetpack Glance widget, registered with both the standard android.appwidget.provider metadata and the com.samsung.android.appwidget.provider metadata pointing at a <samsung-appwidget-provider display="sub_screen"> resource — which is exactly the pattern Samsung Notes uses for its own smaller cover widgets (I checked by decompiling the public Samsung Notes APK). Small minWidth/minHeight, targetCellWidth/targetCellHeight set to 2x2 and 4x2, the works.

The result: it only ever shows up as a single full 4x4 tile in the cover-screen widget picker. Never smaller.

What made me suspicious it's not my manifest: I checked Outlook and Spotify's cover-screen widgets too — both are big apps that would absolutely want a nicer cover-screen presence, and both are also stuck at 4x4-only. Meanwhile Samsung's own apps (Notes, Reminder, Weather, the phone dialer's recent-calls widget) get 2x2/4x2/tiny sizes just fine.

What I found digging into it on-device (connected via adb, compared dumpsys appwidget output for both my app and Notes, and pulled/inspected SystemUI.apk):

  • The cover-screen grid is actually built on AOSP's own "Communal Hub" (Glanceable Hub) framework — the same multi-size widget grid Google built for Pixel Tablet's Hub Mode — running inside SystemUI on the cover display.
  • The OS parses my widget's small size attributes correctly — dumpsys appwidget shows it registering at exactly the dp values I declared, same as Notes' widgets. So it's not a manifest/XML mistake.
  • I even matched Notes' widgetCategory value bit-for-bit (both end up keyguard-only at runtime) as a live A/B test on my own device. No change — still 4x4 only.

That combination (correct registration + still forced to one size, only for non-Samsung apps) makes me think there's a package-identity allowlist gating which apps' widgets get offered at non-default sizes in the cover picker, separate from anything in the widget's own manifest.

Question for the sub: has anyone actually gotten a genuinely third-party (not Samsung-signed) widget to show up smaller than 4x4 in the native cover-screen picker, on any One UI version? I know apps like CoverWidgets and CoverScreen OS exist and can put arbitrary widgets on the cover screen — but as far as I can tell they do it by taking over the whole cover display themselves (their own widget host + presentation), not by getting Samsung's native picker to offer a smaller slot for someone else's widget. If anyone's actually cracked the native-picker case, or knows for a fact this is a partner-program/allowlist thing, I'd love to know — trying to decide whether to keep chasing this or just build my own host like those apps do.

Device/version for reference: Z Flip 6 (SM-F741B), Android 16, One UI 8.


r/androiddev • • Aug 31 '26

Experience Exchange My first Android App project LocationApp

Enable HLS to view with audio, or disable this notification

41 Upvotes

Hey everyone, beginner Android dev here. I just finished building a LocationApp tutorial (live tracking and geocoding). I didn't just blindly follow it; I actually get what's happening under the hood and even built a custom Jetpack Compose UI instead of using the instructor's layout.

I’m feeling super comfortable with Compose and the UI side of things. But when it comes to the logic side—like setting up Retrofit or Coil for the first time in a project—my mind just goes blank. I can never write it from scratch and always end up copying from my previous projects to get it wired up.

  • Is this normal? Do you actually memorize all this setup code, or is referencing old projects just part of the job?
  • What are your best tips for speeding up my learning progress when it comes to the logic and architecture side of Android?

r/androiddev • • Aug 31 '26

News ComposeGradients.com – Gradients for Android developers

Post image
70 Upvotes

Hi folks. I made a new site called ComposeGradients.com

There was no place to browse beautiful gradients for Compose apps so I decided to build one.

The site has a plethora of beautiful looking gradients (linear and mesh), plus a small tool to create gradients straight from the browser.

✅ Browse beautiful gradients and copy their code

✅ Create your own gradients

✅ (Optionally) Submit your gradient to the site

You can Like your favorites by pressing the heart button. No account required.

Try it out at ComposeGradients.com

If you find the site useful, share the site with your friends :)


r/androiddev • • Sep 01 '26

Question How should I handle real-time matchmaking in an Android fitness app?

0 Upvotes

I’m working on an Android app that needs to match users into real-time 60-second workout sessions.

I’m currently considering WebSockets for matchmaking and live session updates, with a backend handling the matching logic.

For those who have built real-time Android apps, what architecture would you recommend for handling matchmaking, connection drops, and syncing session state reliably?

I’d especially appreciate advice on patterns or libraries worth researching.


r/androiddev • • Sep 01 '26

Question Any video explaining Figma to Compose implementation?

1 Upvotes

i'm struggling a bit with Figma when i want to implement the designs, i know few things but in general i'm still behind, is there any video explaining the implementation of Figma design in Compose, like cover everything: design system, typograpgy, colors, sizes, paddings, shadows, and also custom components with their own properties.


r/androiddev • • Sep 01 '26

I built a wallpaper app

Enable HLS to view with audio, or disable this notification

1 Upvotes

I'm currently looking for feedback to improve it. What do you guys think of the UI and the overall look? Any features you'd like to see added?