56
Stay up-to-date with latest news on Android Development! Content directly fetched from the subreddit just for you. Powered by : @r_channels
What is the Best language for independent android dev that will help me work on a project that is somehow big
So I'm not sure what to use, i know flutter/dart is a good start for independent projects but the optimization is always bad when I use it, that's probably due to it being used for multi platforms, so I have been thinking to learn another language for android only. So my question is as it's stated up there, take in my that I want something that will make create a good ui and at the same time for backend, basically something full-stack.
Sorry if I wasn't so clear.
https://redd.it/1tgnrt4
@reddit_androiddev
What Android app looked easy… until you actually built it?
What Android app looked easy… until you actually built it? 😭
Some apps genuinely look so simple from the outside...
“just a notes app”
“just a chat app”
“just a finance tracker”
“just a habit tracker”
Then you start building and suddenly you’re dealing with:
* notifications breaking randomly
* background tasks
* device compatibility
* Play Store policies
* retention problems
* onboarding
* users finding bugs you never imagined 💀
Feels like simple apps are only simple for the users lol
Curious what app idea humbled you the most after you started building it?
https://redd.it/1tgl90w
@reddit_androiddev
AnimePixel just crossed 50,000+ downloads 🎉
https://redd.it/1tgg4lz
@reddit_androiddev
Eh creado una app nativa
https://redd.it/1tgb98k
@reddit_androiddev
você tem 1 minutinho livre?
Se você tiver 1 minutinho livre e puder dar essa força, baixa o app, deixa 5 estrelas e um comentário bacana lá na loja. Ajuda demais quem está começando do zero!
Link para download: https://play.google.com/store/apps/details?id=com.meu.versiculo.blibia
Muito obrigado pelo apoio de verdade! 🙌
https://redd.it/1tg75gm
@reddit_androiddev
Code quality and security checks
Does any of you make code quality and security checks? I am obsessed about them. The problem is that when I do all of them (quite often) it takes a VERY long time. Made some scripts so it's easier. Wouldn't remember otherwise. Here's what I have: lc/lint-check: ktlintCheck, detekt and Android Lint. ac/android-check: Android security checks (semgrep, mobsfscan and DeepSec custom report). dc/dependency-check: gradle dependency verification, OSV-Scanner and OWASP Dependency Check. ss/secret-scan: gitleaks, TruffleHog, and semgrep secrets. ds/deep-sec: DeepSec scan, report, custom checks and revalidation. ms/mobsf-scan: MobSF/mobsfscan Android static scan.
os/osv-scan: OSV-Scanner source scan. ql/codeql-check: github CodeQL status (github CLI). db/dependabot-check: Dependabot configuration and Dependabot alerts (github CLI). pc/pmd-check: PMD CPD duplicate scan. cs/compose-stability: skydoves compose stability analyzer stabilitycheck. cr/compose-rules: mrmans0n compose-rules (ktlint/detekt paths). ga/google-android-security: Google Android security lints (Android lint). sc/security-check: combined dependency, secret, and semgrep security scan ('-Full' also adds android check). sonar: project-specific sonarqube/sonarcloud run if the project has 'tools/sonar.ps1'.
https://redd.it/1tg3v2h
@reddit_androiddev
AI-native mobile workflows are exposing a new problem in software engineering:
AI-native mobile workflows are exposing a new problem in software engineering:
When the input layer itself becomes unstable (voice dictation desync, overlay focus loss, keyboard dead zones, async UI collapse), traditional bug reporting breaks down because users can’t reliably describe the failure while it’s happening.
Modern AI systems already have multimodal video understanding.
Why not use Gemini itself to analyze screen recordings of failures, correlate them against system logs, identify likely race conditions/focus conflicts, and automatically generate concentrated engineering telemetry?
Instead of:
raw screen recordings,
vague user descriptions,
fragmented repro steps,
engineering teams would receive:
timestamped UI-state transitions,
probable subsystem conflicts,
and structured diagnostic summaries.
AI systems are becoming complex enough that they may need AI-native observability pipelines.
https://redd.it/1tfx6im
@reddit_androiddev
I built a tool to generate app promo videos directly from your app screenshots with codex
https://redd.it/1tfq9xi
@reddit_androiddev
We’ve built an AI bot for mental clarity, not sure if it’s actually valuable yet, need honest feedback
We’re still figuring out whether this AI app is something people would genuinely keep using long-term, and I need more honest feedback.
A little while ago I made this Post about Thimin (Short for Thriving Minds), an early-stage voice AI we’re building for mental clarity and reflection.
The idea is still simple:
A space where you can talk openly, vent, think out loud, and hopefully leave feeling a bit more clear-headed.
Some people tried it and gave really thoughtful feedback, which helped a lot.
But now I’m trying to understand something deeper:
What would actually make an app like this worth keeping?
Right now, it’s easy for AI apps to feel interesting for a day or two, then get forgotten or uninstalled.
I don’t want Thimin to become one of those.
So I’d genuinely love honest opinions on these two questions:
1. What would make an app like this worth paying for monthly?
2. What features or experiences would make you keep coming back instead of uninstalling it later?
Could be anything:
better memory, emotional intelligence, voice realism, journaling, mood tracking, daily reflections, personalization, actual progress over time, etc.
I’m not looking for validation here.
If the answer is “nothing, I wouldn’t pay for this,” that’s useful too.
If you want to try it before answering:
Android: https://play.google.com/store/apps/details?id=com.app.thimin.prod&hl=en
Really appreciate any honest thoughts, even harsh ones.
Still trying to figure out whether this is genuinely useful or just another AI gimmick 🙏
https://redd.it/1tfsno0
@reddit_androiddev
Compose BOM changelog — see exactly what changed between versions
/r/JetpackCompose/comments/1tfo0ae/compose_bom_changelog_see_exactly_what_changed/
https://redd.it/1tfpsuy
@reddit_androiddev
AI/LLM and dev skills
I've been an Android developer for about 5 years. There have been different phases of learning and sharpening my skills. However, I feel it has all slowed down since ai assisted coding became a thing. Of course there have been plenty of other things to learn regarding that, but I'm talking about artisanal software development specifically.
I'm curious whether it's just me or do you guys share this view?
https://redd.it/1tfmxg3
@reddit_androiddev
I want to ask honestly — do skills really matter anymore, or is a CS degree required to get hired in good companies?
I have 2 years of experience in mobile app development, and I’ve worked on real projects, but recently I’m struggling even to get interview calls. Meanwhile, one of my colleagues who has a CS degree is getting multiple offers almost every day.
The strange thing is our resumes and experience are almost the same. The main difference is that he has a Computer Science degree, while I only have a diploma. He got hired quickly and is growing fast in his career. I’m genuinely happy for him, but at the same time I feel like my own growth has stopped in my current company.
Now I’m confused about what to do next.
Should I continue focusing on skills and projects, or should I try to complete a CS degree as well?
Anyone who has faced something similar, I’d really appreciate your advice.
https://redd.it/1tfj0xa
@reddit_androiddev
i personally very dislike the current Android dev support habits
i know & its a fact that most of the people change their phones very often like every two years, but still, in my opinion i really hate the current Android lifecycle. old phones like Galaxy S4 still performs in a moderately good speed & performance, but just because it has an old Android version, and even because of the pressure caused by Google absolute plonkers app developers these days choose not to support older Android. apps these days require like Android 8.0+ but this seriously need to be changed in the future, it keep the 'working' old phones useless because of this. even there are still many PC program developers that support Windows 7 (and some few even supports XP) but the Android side is too changing fast
https://redd.it/1tfez4k
@reddit_androiddev
banner
Don't wait for happy users to leave reviews on their own. They won't. The only people who reliably go to the Play Store unprompted are the unhappy ones.
My first attempt was a banner inside the app asking for a review. People get banner-blind fast. It barely moved the needle.
Then I switched to the Google In-App Review API. Users can rate and review without leaving the app - the friction is much lower. My review count went up significantly after that.
One thing I deliberately didn't do: review-gating (asking "are you enjoying the app?" before showing the review prompt). A lot of big apps do this, but it's against Play Store policy. I'm not big enough to survive a ban, so I didn't risk it.
7. Set up crash reporting properly
Use Crashlytics to get crash reports - but don't just let it catch unhandled crashes. Log your exceptions to it so they show up as errors too.
I use the Timber library to make this seamless. I just use Timber.i(), Timber.e(), Timber.d() throughout the app as normal logs. On dev builds, Timber writes to the console. On production builds, Timber routes error/warning logs to Crashlytics and ignores debug/info. No extra effort at the call site.
The point isn't Timber specifically - it's that you need an infrastructure to actually detect exceptions in the wild and fix them. Flying blind on crashes is how small bugs quietly tank your rating.
8. Localisation is lower effort than you think
I noticed users in certain countries whose device language wasn't English. I picked 6-7 languages based on where I already had users and added translations.
Play Store has built-in machine translation - you just upload your strings.xml and it does the rest. Easy, but the quality isn't great. A German-speaking user actually pointed this out to me. I switched to AI-generated translations and the results are noticeably better.
If you already have users in a region, localising for them is a relatively small implementation effort and signals that you actually care about them.
# AI - The Elephant in the Room
8. Use AI to build automations, not slop
I'm not here to tell you to vibe-code your entire app. But as a solo dev, you are constantly time-poor, and AI is genuinely good at writing scripts and automations that save you hours of repetitive work.
A few things it's done for me:
Screenshot automation: I used to take screenshots manually. Then upload them to AppScreens to generate my store listing screenshots. It was tedious. Eventually I got AI to write a screenshot test using Fastlane - it uses UI automation to go to various screens, capture screenshots, and move them to a directory in a particular format. AppScreens has bulk folder upload so I can now just upload the folder. Much easier.
Translations: I feed it my strings.xml and it translates into 7+ languages. One user flagged that the German had mixed formal/informal register - fair point, but not a dealbreaker. I'll take it.
Changelog generation: It reads my git commits, formats a changelog, and outputs it in the exact format Play Console expects. Copy, paste, done.
Crash fixing: I connected AI to Firebase via MCP and created a skill that fetches the latest crashes from Crashlytics, fixes them, and documents each fix in a pattern library - so it has an easier time next time it sees a similar issue.
The general principle: wherever you're doing something repetitive, ask AI to write a script for it. And where possible, have it write scripts rather than use it interactively - saves tokens, easier to reuse.
9. Use AI to build apps - avoid building apps that use AI
This is a personal preference, but worth considering. AI-powered features get expensive fast - API costs scale with usage in a way that's hard to predict, especially early on when you don't know your usage patterns.
If you have a list of app ideas and some involve AI features, factor in the cost dimension. There's a version of this where the unit economics just don't work for a small indie app.
# Engineering practices that are pain to get
Force Screen Orientation for Tablets
What is the hack to force screen orientation? I know there has to be one because Unity and others can do it. I haven't had any luck. None of the old ways work. I am talking about the Tablets. I haven't had any issues with phones.
https://redd.it/1tfb21c
@reddit_androiddev
Embracing Compose Snapshot State for UI Layer State Production
https://www.tunjid.com/articles/embracing-compose-snapshot-state-for-ui-layer-state-production-6a078c7d64469a118e42eecf
https://redd.it/1tgnk5z
@reddit_androiddev
Is it just me or update review system is broken since last week for established apps? Stuck for hours?
Here it says sent for approval:
https://preview.redd.it/xiih8mof4w1h1.png?width=3422&format=png&auto=webp&s=82ede5facd8ab6e95837346b3a9ea2acd028327b
but here it says "not sent for review"?
https://preview.redd.it/eqgj39zp4w1h1.png?width=2953&format=png&auto=webp&s=a5145f974faee6ee49faf6af113df267bd86ec0b
usually my updates used to get published in 30 minutes? now they are stuck for hours?
https://redd.it/1tglbjw
@reddit_androiddev
Compose Unstyled 2.0: Let there be component libraries!
https://composables.com/blog/compose-unstyled-2.0
https://redd.it/1tgeswp
@reddit_androiddev
Wondering why my post was removed
I asked if ppl do code quality and security checks and told what my workflow is. Didn't mention any names of any apps, didn't promote, nothing. I am confused, thought that this would be the place for that kind of question. So I try again in a different way. Do you do any code quality or security checks? 😅
https://redd.it/1tg68n9
@reddit_androiddev
Can you guess what i am building?
https://redd.it/1tfmwc5
@reddit_androiddev
Hiring Android Developers
We’re a small, laid-back team focused on building solid products, no unnecessary process, no endless meetings. Just people shipping features, fixing problems, and helping each other out.
We’re looking for Android developers (at least \~3 year experience) who enjoy building real apps and improving user experience.
What you’ll do:
* Build and improve Android apps
* Add new features and fix bugs
* Work with APIs and backend services
* Improve performance and app stability
* Help ship updates and maintain live apps
Tech stack (flexible):
* Kotlin / Java (Android)
* REST APIs / GraphQL / Firebase
* Git, basic CI/CD, testing
What you get:
* Remote (US / EU / CA preferred)
* Flexible hours
* $27–$49/hour (based on experience)
* Part-time or full-time
If this sounds like your kind of work, send a short intro + your location 📍
https://redd.it/1tfs3ld
@reddit_androiddev
I released my first Android game — building it was only half the work
https://redd.it/1tfy0f5
@reddit_androiddev
Suggest what features to add
https://redd.it/1tfur83
@reddit_androiddev
Handling item selection
I have a list of data displayed in a LazyColumn in Jetpack Compose. The data model exists in the UI layer, and I need to handle item selection state.
I’m considering two approaches:
Add an isSelected field inside the UI model and update the item when selection changes.
Keep the model unchanged and maintain a separate collection (for example, a list or set of selected item IDs).
With the first approach, updating selection means creating a copied version of the item and updating the state. I’m wondering if repeatedly copying items and updating the list could affect performance, especially with larger lists
https://redd.it/1tfrcnq
@reddit_androiddev
Is Play Games Sidekick, worth ticking that box? Whats the Benefit?
Solo dev here, working on an update for my game. Looking at Play Games Sidekick as part of the Google Play Level Up program and trying to figure out what the sentiment is around it for both the player and dev.
Google's own numbers sound impressive (25% install uplift, 2.5B incremental acquisitions across featured games), but I'm sceptical of these stats...
* Would love to hear from devs who've actually shipped with it:
* Did you see a measurable impact on installs and retention?
* What other benefits and outcomes have you observed?
* What feedback from players have you had after its inclusion? Like UX complaints?
* Is the Level Up program featuring real, or mostly noise?
I've got a working test build with the Sidekick inclusion, and I'm not sure about it hence the questions. But I do get the appeal of being able to access play games services without leaving the app.
https://redd.it/1tfmegb
@reddit_androiddev
Send audio to ear buds from Watch
I've been developing an app which runs on Galaxy Watch and I've hit a wall. I cannot get either TTS or Media playback to play the audio over the connected ear buds. Audio always come out of the Watch speakers, I'm tearing my hair out troubleshooting this. Any thoughts? Anyone come across this?
https://redd.it/1tfl6e1
@reddit_androiddev
New UI improvements kryventa
https://redd.it/1tfhsz5
@reddit_androiddev
started but incredible once you get used to it
11. Run lints before every release
Before you cut a release, run lints to catch common issues. For example, I run MissingTranslation to check if there's an English string AI forgot to translate. I have serious trust issues with AI so I use lints to keep it honest.
I also wrote custom lints (Python scripts) for things specific to my codebase. For example, I ban System.currentTimeMillis() and require a custom TimeProvider.now() interface instead - so I can substitute a fake implementation in tests. These kinds of guardrails are easy to set up and save you from a whole class of subtle bugs.
12. Use Hilt for dependency injection
I can't cover all the benefits in a progress post, but the single biggest one for me: it makes testing incredibly easy. I can swap out real implementations for fakes without any pain.
Combined with Robolectric, I can run unit tests without a device at all. Fast feedback loop.
While we're on testing: prefer real implementations over fakes, and fakes over mocks. In that order. Mocks are brittle and give you false confidence.
13. Follow Clean Architecture - data, domain, presentation
Android's recommended layering (data, domain, presentation) felt like overhead at first. But the biggest payoff, again, is testing. Each layer is independently testable and the boundaries force you to write decoupled code.
If you're starting a new app, just do it from day one. Retrofitting it later is painful. It takes a bit time to get used to - you might need to watch bunch of youtube videos too at first - but will be worth it.
14. Write tests. Don't skip it.
I know. Everyone says this. But seriously - the combination of Hilt + Robolectric + Clean Architecture means your tests are fast, reliable, and not that hard to write once the infrastructure is in place. The upfront cost is real. The long-term cost of not having them is higher.
Get AI to write tests. They are quite good at it. Again, don't trust what it writes blindly. It will have gaps.
Fun story: Few years ago, in the days when everyone used to write code by hand, someone had sent me a code review where they added tests. I noticed some bugs in the main logic and was really confused as to how their tests passed with that logic. Then I noticed that they were mocking class Foo, the class where the main logic was added! What's the point of writing test if we mock the class under test! (I asked the author to comment out their new logic in Foo and run the tests again - they realized their mistake when that passed too)
So yeah - if AI says all tests passed - don't take it for granted. AI/Humans can make mistake. Please review the code.
# Conclusion
Well, that's it from me this year. Hopefully I can sustain my app for another 6 months. If I can, I will come back with a 18 months report.
Happy to answer questions - especially if you're early stage and figuring out where to start. It's a bit late here in UK now (assuming mods approve my post), so apologies if I fall asleep and end up replying late.
https://redd.it/1tf958f
@reddit_androiddev
1 year of building an Android app as a solo dev - 12 month progress report (lessons learned)
Hey r/androiddev,
A year ago I posted my first announcement here. I got some of my earliest feedback from this sub - genuinely helpful stuff that shaped the app early on. In the past, I had posted 3-month and 6-month update which discuss high and lows of the journey . This one is a bit different - less focused on my specific app, more on what I've learned that might be useful for others.
First, some numbers for context:
|Metric|Month 6|Month 12|Diff|
|:-|:-|:-|:-|
|Total Downloads|2,210|7,980|\+261%|
|MAU|487|1,920|\+294%|
|DAU|140|856|\+511%|
|Revenue (total)|£111|£394|\+255%|
|Active Subscribers|9|21|\+133%|
|MRR|\-|£14|\-|
|Lifetime Purchases|6|18|\+200%|
|User Reviews|\-|170|\-|
|Avg Rating|\-|4.74|\-|
Not life-changing numbers, but real and moving in the right direction. Here's what I'd tell a friend who's just starting out.
# Mindset
1. It's overwhelming - and that's normal
Solo dev means wearing many hats you didn't sign up for. Building the app is only part of it. Screenshots, landing page, launch sites, social media, ASO, email - the list never ends. I stressed a lot in the first few months.
My motto now: just make tiny progress every day. There is a ton to do, but there's no rush. Once I accepted that, things got a lot more manageable.
2. Indie life is not startup life
Startups are about acceleration. Raise money, grow fast, grow at all costs. That's a completely different game - and one I didn't want to play.
I'm solo and plan to stay solo. I've accepted slow growth in exchange for building something sustainable over 5-10 years. That trade-off only really makes sense if you have a day job and aren't relying on the app for income. If the app is your main income, chasing growth makes total sense. Just know which game you're playing before you start.
# Marketing
3. Stop thinking of marketing as an art
I'm not creative. The idea of "marketing" used to intimidate me. Then I read Traction by Gabriel Weinberg. It reframed marketing as more of a science - you form a hypothesis, run a cheap test, measure the result, and double down on what works.
More importantly, it opened my eyes to how many marketing channels actually exist. Most developers, myself included, default to ASO and maybe some Reddit posts. There are 19 traction channels in the book. Worth a read even if you don't follow the framework exactly.
4. What got you here won't get you there
Don't treat your marketing strategy as fixed. What works at 0 users won't work at 100, and what works at 100 won't work at 5,000.
When I had 0 users, I posted in subreddits asking for feedback, submitted to launch sites, and did a lot of manual legwork. That got me to \~100 installs. However, this strategy doesn't scale. It will take forever to reach 100K. At that point I shifted focus to ASO, which took me further. Each stage needs a different approach.
Just keep this in mind. Try to figure out what stage you are in and whether you need something different to reach the next level.
# Dev decisions that moved the needle
5. Instrument your onboarding funnel
If you're not collecting analytics, you're flying blind. At minimum, track your onboarding funnel - how many user starts onboarding daily, how many completes it, which step has the biggest drop-off? Find the hole and fix it. That one data point can meaningfully improve retention without changing anything else.
If you decide to use Google Analytics for analytics, remember that it requires user consent under GDPR. If you're targeting European users, either build a consent flow or use a privacy-friendly alternative.
Also - use androidx.core.splashscreen. When your app launches, there's a brief moment where it needs to decide which screen to show - onboarding for new users, or the main screen for returning ones. Without a splash screen, users see a flicker during that decision. The library handles this cleanly and it's very little effort to set up.
6. Use the In-App Review API - not a
Is there any way to "spoof" what my screen shows to an app?
Crazy question but is there any way to "spoof" what my screen shows to a program that takes screenshots?
You know, like when you see in a movie when they make the security camera show something different before they break in and rob a place etc
Not needing to get into ethics, me and a friend have a back and forth keeping track of each other's devices and Im trying to get one over on him, basically. Thats about it.
Samsung Revvl 7+ Pro
https://redd.it/1tf9b6w
@reddit_androiddev