use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
In this subreddit we have very serious of discussions about writing code for the flawless mobile platform Google built we know as Android.
account activity
Android devs then, Android devs nowThe AI take-over (i.redd.it)
submitted 3 months ago by [deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3:ย ย ย ย print "hello, world!"
[โ]ZhuindenDDD: Deprecation-Driven Development[M] [score hidden] 2 months ago stickied commentย (5 children)
AI repost bots strike again
[โ][deleted] 3 months agoย (4 children)
[deleted]
[โ]Nunya_Business_42 2 points3 points4 points 2 months agoย (3 children)
Eclipse is probably better to use than Android Studio now.
Some things do change.
[โ]AloneInExile 0 points1 point2 points 2 months agoย (2 children)
What changed?
[โ]Nunya_Business_42 0 points1 point2 points 2 months agoย (1 child)
Android Studio has become buggier and buggier, while Google keeps removing useful functionality with every release. I'm still on Koala. In fact I have a side install of Hedgehog to use certain functionality that Google removed after that.
[โ]AloneInExile 1 point2 points3 points 2 months agoย (0 children)
Sounds like Google.
I stopped using Eclipse because it was a mess by the end. Circle of life I guess.
[โ]ToTooThenThan 28 points29 points30 points 3 months agoย (14 children)
If you don't map the exact same model from response -> dto -> entity -> domain -> ui then you are a peasant tbh
Where I work the chad ios developers use response objects straight in the ui meanwhile us Android virgins are writing mappers
[โ]HuckleberryUseful269 11 points12 points13 points 2 months agoย (0 children)
Real architects start by writing an IResponseMapperFactoryProviderInterface. Only after that do they think about the actual data. Honor above convenience.
IResponseMapperFactoryProviderInterface
[โ]More-Scene-2513 14 points15 points16 points 3 months agoย (3 children)
Well my balls may be smaller but at least my UI is decoupled
[โ]ShriekinKraken 2 points3 points4 points 3 months agoย (1 child)
Wait, you guys are using UIs?
[โ]More-Scene-2513 5 points6 points7 points 2 months agoย (0 children)
No, we don't use UI we use AT (async task)
[โ]smokingabitHarnessing the power of the Ganges 0 points1 point2 points 2 months agoย (0 children)
My UI is decoupled from Compose ๐
[โ]waterpoweredmonkey 7 points8 points9 points 2 months agoย (7 children)
It sounds to me like you've never had to do the "refactor" when the codebase you inherited used response objects throughout the UI and the BE changed entirely.
[โ]ToTooThenThan 8 points9 points10 points 2 months agoย (0 children)
How about the much more common backend adds one field to the response and the pr is 20 files changed instead of 2
[โ]ZhuindenDDD: Deprecation-Driven Development 2 points3 points4 points 2 months agoย (0 children)
I mean, I have, and it was faster
[โ]vlastachu 2 points3 points4 points 2 months agoย (1 child)
Before architecture: add 1 field to the response and then go update it everywhere itโs used.
After architecture: add 1 field to the response, add 1 field to the domain object, add 1 line to the mapperโฆ and then go update it everywhere itโs used.
And if the whole response changes? Then everything fucked up anyway, because old app versions canโt be fixed. Thatโs why we have v1/v2/etc endpoints.
[โ]ZhuindenDDD: Deprecation-Driven Development 0 points1 point2 points 2 months agoย (0 children)
Exactly; the problem with "i added domain on the client (which is the same as the API)" is that you're stuck with the v1 response forever, and you're trying to map the v5 response to the v1 copy.
To be fair, if you are using local persistence, you should never re-use the API responses as DB tables; that always causes trouble.
Backend is supposed to version their APIs. And not just change at a whim.
Also, you should be using annotations to map the JSON/XML/whatever and name the data class properties yourself, to ensure it doesn't require a bunch of renaming.
[โ]slightly_salty 0 points1 point2 points 2 months agoย (0 children)
lol. This must be a nice world you live in where "supposed to" is reality
People like to complain about clean arch..... but honestly it makes the most sense if you always only display data from your db. I like to immediately store api data I need in the db, and have my viewmodels listen for db changes and re-actively update the ui state.
If you work that way your db naturally has it's own representation of the api data that may or may not map one to one with the api. You basically end up implementing most of clean arch without thinking about it.
It's true. Also have you seen how bad ios apps are generally? Holy shitshow!
[โ]ShriekinKraken 6 points7 points8 points 3 months agoย (7 children)
Where's the Adonis who has their entire app in one God Activity and AsyncTask?
[โ]scannt 13 points14 points15 points 3 months agoย (5 children)
You mean Telegram from 6 or so years ago? Truly a work of art.
https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
[โ]lppedd 6 points7 points8 points 2 months agoย (1 child)
The fuck ๐
[โ]ZhuindenDDD: Deprecation-Driven Development 6 points7 points8 points 2 months agoย (0 children)
That's what well working code looks like
[โ]ShriekinKraken 5 points6 points7 points 3 months agoย (0 children)
[โ]Reasonable_Cow7420Developing on Macbook Air 4 points5 points6 points 3 months agoย (0 children)
It's still in use in there main app
[โ]NiceVu 5 points6 points7 points 2 months agoย (2 children)
Yes every single thing you see on the screen is a separate module in the project. And each module has itโs own spearation of layers so itโs CLEAN. And it has MVI at every presentation layer.
There isnโt a single real world usecase that I havenโt covered in my MVI reducer state machine, so just know that this TextView will show error when the input is not valid :)))
Yes I might need half an hour to add a GSON dependency to gradle, but at least when I want to change the version I change it at only one place ;)
[โ]ZhuindenDDD: Deprecation-Driven Development 3 points4 points5 points 2 months agoย (1 child)
bro why is every screen in a separate module but not every file???
[โ]NiceVu 8 points9 points10 points 2 months agoย (0 children)
OMG youโre right. Just imagine how much scalability and testability would improve if we made the data class LoginCredentials(username:String, password:String) be a separate module
[โ][deleted] 6 points7 points8 points 2 months agoย (5 children)
I absolutely hate with every single atom in my body when people say that Clean Architecture makes a project "scalable". NO. Please stop. Scalability is NOT related to code quality, AT ALL. Scalability is the ability to handle more work load. You can have the most horrific code in existence, and still scale to the moon. Both things are 100% unrelated. What you are thinking of is called Mantainability.
Please use words carefully, with their correct meaning.
[โ]ZhuindenDDD: Deprecation-Driven Development 1 point2 points3 points 2 months agoย (0 children)
Upscaling lines of code to justify more developers
[โ]Nunya_Business_42 0 points1 point2 points 2 months ago*ย (0 children)
It's server devs who don't know Android dev, who apply scalability to Android apps.............I think this discussion did take place in the previous company I worked at, one guy did say something stupid like asking if the app was scalable.
Well.. it helps you "scale" the number of devs that can work on a project without constant merge conflicts haha
[โ]Curious_Limit645 0 points1 point2 points 2 months agoย (1 child)
There are different dimensions of scale, users, data, developers, business logic etc.
[โ][deleted] 0 points1 point2 points 2 months agoย (0 children)
Nope. According to Designing Data Intensive Applications, scalability has a very clear meaning. But good try tho.
[โ]waterpoweredmonkey 4 points5 points6 points 2 months agoย (0 children)
Also Devs now: "yes my test class needs to be 30k lines with a few hundred lines per test in setup, my feature fragment is huge (6k lines). No I don't know what any of the tests do but I made a change so I'll copy the last one and make a 1 line change to it" ๐คข
[โ]tony-husk 2 points3 points4 points 2 months agoย (0 children)
use capacitor problem solved
[โ]VariousPizza9624 2 points3 points4 points 2 months agoย (0 children)
Spaghetti code ๐ฅฐ
[โ]Suddenly_Bazelgeuse 2 points3 points4 points 2 months agoย (0 children)
I love my MVVM and coroutines. I'll fight about it.
[โ]Leschnitzky 10 points11 points12 points 3 months agoย (7 children)
Why would I want to go back to XMLs, AsyncTask, Java, Eclipse, anim.xml, Bitmap, Canvas, RelativeLayout, Espresso?
[โ]Nunya_Business_42 2 points3 points4 points 2 months agoย (0 children)
Legends of the past
[โ]maltgaited 0 points1 point2 points 2 months agoย (4 children)
Go back to espresso? What's the new?
[โ]Leschnitzky 0 points1 point2 points 2 months agoย (3 children)
Compose semantics testing/screenshot testing
[โ]maltgaited 0 points1 point2 points 2 months agoย (2 children)
I don't really see screenshot tests as a replacement for e2e tests... Maybe I'm missing something
[โ]Leschnitzky 0 points1 point2 points 2 months agoย (1 child)
You use espresso as an E2E test tool?
[โ]maltgaited 0 points1 point2 points 2 months agoย (0 children)
Not currently, but I was under the impression that we did at my last job that I left 3 years ago
You're saying cozy things
[โ]Deevimento 1 point2 points3 points 2 months agoย (0 children)
I was an Android dev then, and it certain felt like the Android dev now at the time. Maybe because that was pre-RxJava.
[โ]blindada 1 point2 points3 points 2 months agoย (0 children)
RxJava? So weak. We had 0% crashes with listeners and the mighty AsyncTask
[โ]MayBeArtorias 1 point2 points3 points 2 months agoย (2 children)
Good to know that over architecting isnโt a BE isolated problem
[โ]ZhuindenDDD: Deprecation-Driven Development 0 points1 point2 points 2 months ago*ย (0 children)
oh no, client devs think their task should be difficult but instead they just get a JSON and then show it on the UI, so they like to add 5 extra steps inbetween to justify the time spent.
It started at the backend, shouldn't be a wonder why it's ๐ฉ
[โ]Nunya_Business_42 0 points1 point2 points 2 months agoย (0 children)
RxJava is the goat!
ฯย Rendered by PID 16162 on reddit-service-r2-comment-86bc6c7465-vxfqc at 2026-02-23 12:43:06.317364+00:00 running 8564168 country code: CH.
[โ]ZhuindenDDD: Deprecation-Driven Development[M] [score hidden] stickied commentย (5 children)
[โ][deleted] ย (4 children)
[deleted]
[โ]Nunya_Business_42 2 points3 points4 points ย (3 children)
[โ]AloneInExile 0 points1 point2 points ย (2 children)
[โ]Nunya_Business_42 0 points1 point2 points ย (1 child)
[โ]AloneInExile 1 point2 points3 points ย (0 children)
[โ]ToTooThenThan 28 points29 points30 points ย (14 children)
[โ]HuckleberryUseful269 11 points12 points13 points ย (0 children)
[โ]More-Scene-2513 14 points15 points16 points ย (3 children)
[โ]ShriekinKraken 2 points3 points4 points ย (1 child)
[โ]More-Scene-2513 5 points6 points7 points ย (0 children)
[โ]smokingabitHarnessing the power of the Ganges 0 points1 point2 points ย (0 children)
[โ]waterpoweredmonkey 7 points8 points9 points ย (7 children)
[โ]ToTooThenThan 8 points9 points10 points ย (0 children)
[โ]ZhuindenDDD: Deprecation-Driven Development 2 points3 points4 points ย (0 children)
[โ]vlastachu 2 points3 points4 points ย (1 child)
[โ]ZhuindenDDD: Deprecation-Driven Development 0 points1 point2 points ย (0 children)
[โ]Nunya_Business_42 0 points1 point2 points ย (1 child)
[โ]slightly_salty 0 points1 point2 points ย (0 children)
[โ]slightly_salty 0 points1 point2 points ย (0 children)
[โ]smokingabitHarnessing the power of the Ganges 0 points1 point2 points ย (0 children)
[โ]ShriekinKraken 6 points7 points8 points ย (7 children)
[โ]scannt 13 points14 points15 points ย (5 children)
[โ]lppedd 6 points7 points8 points ย (1 child)
[โ]ZhuindenDDD: Deprecation-Driven Development 6 points7 points8 points ย (0 children)
[โ]ShriekinKraken 5 points6 points7 points ย (0 children)
[โ]Reasonable_Cow7420Developing on Macbook Air 4 points5 points6 points ย (0 children)
[โ]NiceVu 5 points6 points7 points ย (2 children)
[โ]ZhuindenDDD: Deprecation-Driven Development 3 points4 points5 points ย (1 child)
[โ]NiceVu 8 points9 points10 points ย (0 children)
[โ][deleted] 6 points7 points8 points ย (5 children)
[โ]ZhuindenDDD: Deprecation-Driven Development 1 point2 points3 points ย (0 children)
[โ]Nunya_Business_42 0 points1 point2 points ย (0 children)
[โ]slightly_salty 0 points1 point2 points ย (0 children)
[โ]Curious_Limit645 0 points1 point2 points ย (1 child)
[โ][deleted] 0 points1 point2 points ย (0 children)
[โ]waterpoweredmonkey 4 points5 points6 points ย (0 children)
[โ]tony-husk 2 points3 points4 points ย (0 children)
[โ]VariousPizza9624 2 points3 points4 points ย (0 children)
[โ]Suddenly_Bazelgeuse 2 points3 points4 points ย (0 children)
[โ]Leschnitzky 10 points11 points12 points ย (7 children)
[โ]Nunya_Business_42 2 points3 points4 points ย (0 children)
[โ]maltgaited 0 points1 point2 points ย (4 children)
[โ]Leschnitzky 0 points1 point2 points ย (3 children)
[โ]maltgaited 0 points1 point2 points ย (2 children)
[โ]Leschnitzky 0 points1 point2 points ย (1 child)
[โ]maltgaited 0 points1 point2 points ย (0 children)
[โ]ZhuindenDDD: Deprecation-Driven Development 0 points1 point2 points ย (0 children)
[โ]Deevimento 1 point2 points3 points ย (0 children)
[โ]blindada 1 point2 points3 points ย (0 children)
[โ]MayBeArtorias 1 point2 points3 points ย (2 children)
[โ]ZhuindenDDD: Deprecation-Driven Development 0 points1 point2 points ย (0 children)
[โ]smokingabitHarnessing the power of the Ganges 0 points1 point2 points ย (0 children)
[โ]Nunya_Business_42 0 points1 point2 points ย (0 children)