56
Stay up-to-date with latest news on Android Development! Content directly fetched from the subreddit just for you. Powered by : @r_channels
The state of this sub
A bit off topic..
I've been a programmer almost exactly as long as I've been a redditor - a colleague introduced me to both things at the same time! Thanks for the career and also ruining my brain?
I'm not sure how long this sub has been around, /r/android was the home for devs for a while before this took off, iirc.
Anyway, this community is one I lurk in, I tend to check it daily just in case something new and cool comes about, or there's a fight between /u/zhuinden and Google about whether anyone cares about process death. I've been here for the JW nuthugging, whatever the hell /r/mAndroiddev is, and I've seen people loudly argue clean architecture and best practices and all the other dumb shit we get caught up in.
I've also seen people release cool libraries, some nice indie apps, and genuinely help each other out. This place has sort of felt like home on reddit for me for maybe a decade.
But all this vibe coded slop and AI generated posts and comments is a serious existential threat. I guess this is the dead Internet theory? Every second post has all the hyperbole and trademark Claude or ChatGPT structure. Whole platforms are being vibe coded and marketed to us as if they've existed for years and have real users and solve real problems.
I'll be halfway through replying to a comment and I'm like 'oh wait I'm talking to a bot'. Bots are posting, reading and replying. I don't want to waste my energy on that. They don't want my advice or to have a conversation, they're trying to sell me something.
Now, I vibe code the shit out of everything just like the next person, so I think I have a pretty good eye for AI language, but I'm sure I get it wrong and I'm also sure it's going to be harder to detect. But it kinda doesn't matter? if I've lost faith that I'm talking to real people then I'm probably not going to engage.
So this kind of feels like the signal of the death of this subreddit to me, and that's sad!
I'm sure this is a huge problem across reddit and I'm sure the mods are doing what they can. But I think we're fucked 😔
https://redd.it/1rgj6he
@reddit_androiddev
Guide to Klipy or Giphy - Tenor gif api shutdown
Google is sunsetting the Tenor API on June 30 and new API sign-ups / new integrations were already cut off in January, so if your Android app still depends on Tenor for GIF search, this is probably the time to plan the replacement.
I spent some time looking at the two main options that seem most relevant, thought I'd share a guide here:
1) KLIPY (former Tenor team)
WhatsApp, Discord, Microsoft and biggest players announced that they're swapping Tenor with Klipy. From what I saw, KLIPY is positioning itself as the closest migration path for existing Tenor integrations. If your app already uses Tenor-style search flows, this looks like the lower-effort option.
For devs to migratae (base URL swap): https://klipy.com/migrate
For creators to claim & migrate their content: https://forms.gle/Z6N2fZwRLdw9N8WaA
2) GIPHY (Shutterstock)
GIPHY is obviously established option, But their own migration docs make it pretty clear this is not a pure drop-in replacement - endpoints, request params, and response handling differ.
Tenor migration docs: https://developers.giphy.com/docs/api/tenor-migration/#overview
My takeaway:
If your goal is the fastest migration with the least code churn, KLIPY looks closer to a Tenor-style replacement - It's built by Tenor founders.
If you are okay with a more involved migration and want to use GIPHY’s ecosystem, GIPHY is a solid option.
https://redd.it/1rgw5o0
@reddit_androiddev
JNI + llama.cpp on Android - what I wish I knew before starting
spent a few months integrating llama.cpp into an android app via JNI for on-device inference. sharing some things that werent obvious:
1. dont try to build llama.cpp with the default NDK cmake setup. use the llama.cpp cmake directly and just wire it into your gradle build. saves hours of debugging
2. memory mapping behaves differently across OEMs. samsung and pixel handle mmap differently for large files (3GB+ model weights). test on both
3. android will aggressively kill your process during inference if youre in the background. use a foreground service with a notification, not just a coroutine
4. thermal throttling is real. after ~30s of sustained inference on Tensor G3 the clock drops and you lose about 30% throughput. batch your work if you can
5. the JNI string handling for streaming tokens back to kotlin is surprisingly expensive. batch tokens and send them in chunks instead of one at a time
running gemma 3 1B and qwen 2.5 3B quantized. works well enough for summarization and short generation tasks. anyone else doing on-device LLM stuff?
https://redd.it/1rgsqbv
@reddit_androiddev
Should i go all in Kotlin?
In my 4th semester, I was introduced to Java for the first time and I genuinely loved OOP. I ended up building an app in Java for both Android and desktop, and that’s when I realized I actually enjoy building software.
Being the nerd I am, I started digging into whether Java is enough to build real-world apps and land a dev job. That’s when I found out Kotlin is basically the go-to for Android now, so I switched and started learning it.
Fast forward: I’ve built a few apps with Kotlin. I understand a decent amount, but I’m definitely not an expert yet. Still learning, still breaking things, still enjoying the process.
What’s messing with my head is this:
I’ve used AI agents to implement features in my apps that I haven’t fully learned yet, and they work surprisingly well. Almost too well. It made me wonder—should I really spend years learning all this deeply if tools can already do a lot of the heavy lifting?
So I’m a bit confused about direction right now:
Should I double down on Kotlin and Android dev?
Does Kotlin/Android actually have a solid future career-wise?
Is it realistic to aim for a job with this path?
Or am I setting myself up to learn skills that’ll be half-automated by the time I’m job-ready?
I enjoy building apps a lot, and I like understanding how things work under the hood. I just don’t want to end up grinding for years on something that doesn’t have a future.
https://redd.it/1rbhrgz
@reddit_androiddev
F-Droid: Keep Android Open
https://f-droid.org/2026/02/20/twif.html
https://redd.it/1rb64ru
@reddit_androiddev
Is this a good social media idea?
Hello! I created a social media called "SocialStudent" for students (from my school) to exchange ideas, Grades, memes and advices. If you want, you can check it out:
https://social-student.flutterflow.app
But is this a good idea, people would like?
https://redd.it/1rb0u0q
@reddit_androiddev
I just open-sourced my Kotlin Multiplatform project — InstaSaver Pro!
https://redd.it/1rb0tnf
@reddit_androiddev
NexusControl Open-source Android homelab manager built with Compose + SSHJ (multi-tab SSH, SFTP, monitoring, Script automation)
Hi all,
I’ve been working on an open-source Android app called NexusControl — it’s a homelab command center built entirely with Kotlin + Compose.
Features include:
Multi-tab SSH terminal (SSHJ)
SFTP browser with inline editor
Dashboard tiles pulling stats over SSH
Docker container overview
REST API tiles (Home Assistant, Proxmox, Pi-hole, custom JSON)
Script library with templates
Background monitoring via WorkManager
Encrypted credentials using Android Keystore
No backend, no cloud, everything local.
Would appreciate any feedback on architecture or feature ideas.
GitHub:
https://github.com/iTroy0/NexusControl
Screenshots :
Processing img ejd6p4e9omkg1...
https://redd.it/1raxd8o
@reddit_androiddev
I built an embedded NoSQL database in pure Kotlin (LSM-tree + vector search)
Hi everyone,
Over the past few months, I’ve been experimenting with building an embedded NoSQL database engine for Android from scratch in 100% Kotlin. It’s called KoreDB.
This started as a learning project. I wanted to deeply understand storage engines (LSM-trees, WAL, SSTables, Bloom filters, mmap, etc.) and explore what an Android-first database might look like if designed around modern devices and workloads.
Why I built it?
I was curious about a few things:
How far can we push sequential writes on modern flash storage?
Can we reduce read/write contention using immutable segments?
What would a Kotlin-native API look like without DAOs or SQL?
Can we embed vector similarity search directly into the engine?
That led me to implement an LSM-tree-based engine.
High-Level Architecture
KoreDB uses:
Append-only Write-Ahead Log (WAL)
In-memory SkipList (MemTable)
Immutable SSTables on disk
Bloom filters for negative lookups
mmap (MappedByteBuffer) for reads
Writes are sequential.
Reads operate on stable immutable segments.
Bloom filters help avoid unnecessary disk checks.
For vector search:
Vectors stored in flat binary format
Cosine similarity computed directly on memory-mapped bytes
SIMD-friendly loops for better CPU utilization
Some early benchmark
Device: Pixel 7
Dataset: 10,000 records
Vector dimension: 384
Averaged over multiple runs after JVM warm-up
Cold start (init + first read):
Room: \~15 ms
KoreDB: \~2 ms
Vector search (1,000 vectors):
Room (BLOB-based implementation): \~226 ms
KoreDB: \~113 ms
These are workload-specific and not exhaustive. I’d really appreciate feedback on improving the benchmark methodology.
This has been a huge learning experience for me, and I’d love input from people who’ve worked on storage engines or Android internals.
GitHub:
https://github.com/raipankaj/KoreDB
Thanks for reading!
https://redd.it/1ratbpj
@reddit_androiddev
Can you upload an app to Play Store from a country you don’t live in?
I’m from Canada and let’s say I go to Florida for a couple months. If I start and publish an app over there is it legal? I’m seeing a lot of mixed answers.
The Google Play Store policy seems to not mind but when searching about working remotely in the US without an employer it’s not allowed???
Imagine a monetized Youtuber goes to Florida to record and upload a video
Wouldn’t that be the same thing???
Thoughts???
https://redd.it/1ragryy
@reddit_androiddev
Google Production Access
Hi guys, anybody building android apps and sometimes hit the wall during testing with real users, please let’s gather here quickly for obvious reasons 🤣🤣🤣 https://chat.whatsapp.com/DtLR6zz49i847Rm1YHrZZM
https://redd.it/1raoiap
@reddit_androiddev
TWA vs. Capacitor for Play Store approval
Hi everyone,
I’ve been stuck in the 14-day closed testing loop for a while now. I've been rejected 3 times with the message "Needs more testing / not enough engagement," even though I have about 25 consistent testers. I might be doing something wrong on my end, but I currently made a technical change. My app was a TWA (Bubblewrap), but now I switched to Capacitor to make use of more native features.
My question: For those of you who have been through this: Does Google’s review favor Capacitor apps over TWAs?
Not looking for testers here, just curious about your experience with these two stacks during the review process.
Thanks!
https://redd.it/1ragi8a
@reddit_androiddev
Android widgets seem cool, why are there so few tutorials?
Hey folks,
I come from a web development background and recently started exploring Android development.
Home screen widgets seem really useful (weather, music controls, reminders, etc.), but I noticed there aren’t many modern tutorials about building them, and most resources are outdated.
Is there a reason widgets aren’t more popular among developers?
Also, how different is widget development compared to building a normal Android app UI? Is it harder, or just more limited?
Curious to learn from people who’ve worked with them.
Thanks!
https://redd.it/1rakood
@reddit_androiddev
5 Kotlin Internals You Should Know
https://skydoves.medium.com/5-kotlin-internals-you-should-know-d4bab319d4ef
https://redd.it/1r6t6rz
@reddit_androiddev
How we cut Maestro E2E test time from 34s to 14s by dropping the JVM
If you're running Maestro for Android E2E testing, you've probably noticed the overhead.
There's a JVM process sitting in the background eating \~350 MB doing basically nothing. Every command hops through multiple layers before it actually touches the UI. Simple flows take way longer than they should.
The view hierarchy is another headache — especially if you're working with React Native or hybrid apps. You write `tapOn: "Login"` and nothing happens because the text is inside a nested non-tappable view. So you end up debugging accessibility trees instead of writing tests.
We built an open source runner that fixes both:
* **No JVM** — same test, 34s → 14s. We wrote custom element resolution instead of going through Appium's stack.
* **Smarter taps** — walks up the view tree to find the nearest tappable ancestor. `tapOn: "Login"` just works whether you're using text match or testID.
* **Real iOS devices** — also got WebDriverAgent stable on actual hardware if you're doing cross-platform. Code signing, session persistence, all of it.
Same Maestro YAML syntax. We just replaced the engine underneath.
Works with BrowserStack, Sauce Labs, LambdaTest — any Appium grid. Our element logic sits on top so you skip the usual Appium speed tax.
Open source: [github.com/devicelab-dev/maestro-runner](https://github.com/devicelab-dev/maestro-runner)
Happy to answer questions about the performance stuff — the JVM overhead rabbit hole was interesting.
https://redd.it/1r69rur
@reddit_androiddev
GPlayStore - Auto Windows OS conversion - Google Playstore pushing "Google Play Games" for Windows Desktop quite aggressively.
https://redd.it/1rh9fvc
@reddit_androiddev
Struggling to Understand MVVM & Clean Architecture in Jetpack Compose – Need Beginner-Friendly Resources
Hi everyone,
I’m planning to properly learn Jetpack Compose with MVVM, and next move to MVVM Clean Architecture. I’ve tried multiple times to understand these concepts, but somehow I’m not able to grasp them clearly in a simple way.
I’m comfortable with Java, Kotlin, and XML-based Android development, but when it comes to MVVM pattern, especially how ViewModel, Repository, UseCases, and data flow work together — I get confused.
I think I’m missing a clear mental model of how everything connects in a real project.
Can you please suggest:
Beginner-friendly YouTube channels
Blogs or documentation
Any course (free or paid)
GitHub sample projects
Or a step-by-step learning roadmap
I’m looking for resources that explain concepts in a very simple and practical way (preferably with real project structure).
Thanks in advance
https://redd.it/1rh3542
@reddit_androiddev
Is this a correct way to implement Figma design tokens (Token Studio) in Jetpack Compose? How do large teams do this?
Hi everyone 👋
I’m building an Android app using Jetpack Compose and Figma Token Studio, and I’d really like feedback on whether my current token-based color architecture is correct or if I’m over-engineering / missing best practices.
# What I’m trying to achieve
Follow Figma Token Studio naming exactly (e.g. `bg.primary`, `text.muted`, `icon.dark`)
Avoid using raw colors in UI (Pink500, Slate900, etc.)
Be able to change colors behind a token later without touching UI code
Make it scalable for future themes (dark, brand variations, etc.)
In Figma, when I hover a layer, I can see the token name (bg.primary, text.primary, etc.), and I want the same names in code.
# My current approach (summary)
# 1. Core colors (raw palette)
object AppColors {
val White = Color(0xFFFFFFFF)
val Slate900 = Color(0xFF0F172A)
val Pink500 = Color(0xFFEC4899)
...
}
# 2. Semantic tokens (mirrors Figma tokens)
data class AppColorTokens(
val bg: BgTokens,
val surface: SurfaceTokens,
val text: TextTokens,
val icon: IconTokens,
val brand: BrandTokens,
val status: StatusTokens,
val card: CardTokens,
)
Example:
data class BgTokens(
val primary: Color,
val secondary: Color,
val tertiary: Color,
val inverse: Color,
)
# 3. Light / Dark token mapping
val LightTokens = AppColorTokens(
bg = BgTokens(
primary = AppColors.White,
secondary = AppColors.Pink50,
tertiary = AppColors.Slate100,
inverse = AppColors.Slate900
),
...
)
val DarkTokens = AppColorTokens(
bg = BgTokens(
primary = AppColors.Slate950,
secondary = AppColors.Slate900,
tertiary = AppColors.Slate800,
inverse = AppColors.White
),
...
)
# 4. Provide tokens via CompositionLocal
val LocalAppTokens = staticCompositionLocalOf { LightTokens }
fun DailyDoTheme(
darkTheme: Boolean,
content: u/Composable () -> Unit
) {
CompositionLocalProvider(
LocalAppTokens provides if (darkTheme) DarkTokens else LightTokens
) {
MaterialTheme(content = content)
}
}
# 5. Access tokens in UI (no raw colors)
object Tokens {
val colors: AppColorTokens
get() = LocalAppTokens.current
}
Usage:
Column(
modifier = Modifier.background(Tokens.colors.bg.primary)
)
Text(
text = "Home",
color = Tokens.colors.text.primary
)
# My doubts / questions
1. Is this how large teams (Google, Airbnb, Spotify, etc.) actually do token-based theming?
2. Is wrapping LocalAppTokens.current inside a Tokens object a good idea?
3. Should tokens stay completely separate from MaterialTheme.colorScheme, or should I map tokens → Material colors?
4. Am I overdoing it for a medium-sized app?
5. Any pitfalls with this approach long-term?
# Repo
I’ve pushed the full implementation here:
👉 **https://github.com/ShreyasDamase/DailyDo**
I’d really appreciate honest feedback—happy to refactor if this isn’t idiomatic.
Thanks! 😀
https://redd.it/1rh0v56
@reddit_androiddev
Does this follow Material 3 Design?
https://redd.it/1rbb9tl
@reddit_androiddev
Public Key Cert pining
i'm looking for some ideas about best practice to pinning public key cert on mobile app , the challenge how renew my public key cert without update the app , to reduce impact of downtime or expiration impact , any advise ,, thanks
https://redd.it/1rb4ztz
@reddit_androiddev
Designing an on-device contextual intelligence engine for Android
About me: I am an AOSP Engineer and I extensively work with Android internal systems, I switched to iOS, because its closed source, and since AOSP is open-source it always bugs me to check source code.
One of the best things I like about iOS is the appleIntelligence, and I wonder why there is no solution regarding the same for Android, I am aware about app-side aspects, and I beleive that with correct permissions something similar is possible on Android as-well.
But I want to ask some opinions regarding the same for things needed in ML aspects
https://redd.it/1rb1g73
@reddit_androiddev
First android app review time for a corporate account?
I uploaded my first app to android for review on Feb 15, now it's Feb 21st but still in review. Is this typical or is there a problem? I have a corporate account so could bypass the tester requirement.
https://redd.it/1raz1gf
@reddit_androiddev
Building linen — a native meeting notes app with automatic task detection (Kotlin + Compose)
Hi r/Android,
I’m building linen, a native Android app that turns meetings into structured notes with action items already extracted.
The goal isn’t just transcription — it’s clarity after the meeting.
Tech stack:
Kotlin
Jetpack Compose (fully declarative UI)
Room for local storage
Supabase for sync
On-device + cloud processing depending on use case
Some things I’m intentionally focusing on:
• Clean, minimal Compose UI (no cluttered productivity dashboards)
• Fast startup time
• Structured summaries instead of raw transcript dumps
• Automatic task detection synced to calendar
I’m building this solo and recently rebuilt the entire frontend to match a calmer design system.
I’d love feedback from other Android devs:
Would you prefer on-device speech processing over cloud?
How important is offline meeting capture?
Would you trust an app that listens locally but doesn’t store raw audio?
If anyone’s interested, I can share UI screenshots or talk more about the architecture decisions.
Thanks 🙌
— Vaibhav
linen
https://redd.it/1rauu5z
@reddit_androiddev
Why is the Google Play Store taking up so much storage on my phone?
https://preview.redd.it/5wu472fqvukg1.jpg?width=1010&format=pjpg&auto=webp&s=13d6fa4fdc05ef563f4ad462fdd517155b54bf92
Hey guys, does anyone know why the Google Play Store is taking up so much space on phones? In my case, I have a Galaxy S22 Ultra and the Google app store is taking up more than 9GB on it, and on my S25 Ultra it's taking up more than 12GB. To me, this is irrational. I believe it must be some kind of error. I've already cleared the cache, data, and uninstalled updates, which makes the app store go back to taking up about 250MB, but within hours when I check again it's already taking up many gigabytes of my storage.
https://redd.it/1ras4a6
@reddit_androiddev
Can a solo Indian developer register as an organization on Google Play Console?
Hi,
I am a solo Android developer from India. I want to create a Google Play Console account as an organization, not as an individual.
I read that a DUNS number is needed for organization accounts.
My questions:
Can a solo developer register as an organization?
If yes, how did you get a DUNS number?
Do I need to register a company first (like LLP or Pvt Ltd)?
Or is it not possible for solo developers?
If any Indian developer has done this, please do let me know.
Thank you.
https://redd.it/1ranhho
@reddit_androiddev
Samsung Galaxy Tab A9+ 5g (x216b) bit 9
I need a file horse for sm x216 b (tab a9 plus 5g) bit 9 ,android 16 ,so I can do an edl user data reset ,(I kind of regret even updating to android 16 rather that to bit 9 security) user data format would have been much easier 🥲
https://redd.it/1ranpgr
@reddit_androiddev
My app is on PH
My app is on Product Hunt now, if you want, you can visit it. Link:
https://www.producthunt.com/products/budgefy-your-personal-finance-app?utm\_source=other&utm\_medium=social
Does anyone have any tips how to gain more points and comments? I started developing my app about 10 months ago, Its a finance app
https://redd.it/1ralnzi
@reddit_androiddev
Display over dialer ?
So I am trying to build something like magic ques but for call suggestions to work I need to somehow display over dialer app , is this possible through draw over others app permission or my app have to be default dialer
https://redd.it/1raj0ed
@reddit_androiddev
Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious
https://redd.it/1r6p4vf
@reddit_androiddev
DependencyGuard: protect your project's dependency graph
https://github.com/rubensousa/DependencyGuard
https://redd.it/1r63vkq
@reddit_androiddev