Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "recyclerview"
-
I have been a mobile developer working with Android for about 6 years now. In that time, I have endured countless annoyances in the Android development space. I will endure them no more.
My complaints are:
1. Ridiculous build times. In what universe is it acceptable for us to wait 30 seconds for a build to complete. Yes, I've done all the optimisations mentioned on this page and then some. Don't even mention hot reload as it doesn't work fast enough or just does not work at all. Also, buying better hardware should not be a requirement to build a simple Android app, Xcode builds in 2 seconds with a 8GB Macbook Air. A Macbook Air!
2. IDE. Android Studio is a memory hog even if you throw 32GB of RAM at it. The visual editors are janky as hell. If you use Eclipse, you may as well just chop off your fingers right now because you will have no use for them after you try and build an app from afresh. I mean, just look at some of the posts in this subreddit where the common response is to invalidate caches and restart. That should only be used as a last resort, but it's thrown about like as if it solves everything. Truth be told, it's Gradle's fault. Gradle is so annoying I've dedicated the next point to it.
3. Gradle. I am convinced that Gradle causes 50% of an Android developer's pain. From the build times to the integration into various IDEs to its insane package management system. Why do I need to manually exclude dependencies from other dependencies, the build tool should just handle it for me. C'mon it's 2019. Gradle is so bad that it requires approx 54GB of RAM to work out that I have removed a dependency from the list of dependencies. Also I cannot work out what properties I need to put in what block.
4. API. Android API is over-bloated and hellish. How do I schedule a recurring notification? Oh use an AlarmManager. Yes you heard right, an AlarmManager... Not a NotificationManager because that would be too easy. Also has anyone ever tried running a long running task? Or done an asynchronous task? Or dealt with closing/opening a keyboard? Or handling clicks from a RecyclerView? Yes, I know Android Jetpack aims to solve these issues but over the years I have become so jaded by things that have meant to solve other broken things, that there isn't much hope for Jetpack in my mind 😤
5. API 2. A non-insignificant number of Android users are still on Jelly Bean or KitKat! That means we, as developers, have to support some of your shitty API decisions (Fragments, Activities, ListView) from all the way back then!
6. Not reactive enough. Android has support for Databinding recently but this kind of stuff should have been introduced from the very start. Look at React or Flutter as to how easy it is to make shit happen without any effort.
7. Layouts. What the actual hell is going on here. MDPI, XHDPI, XXHDPI, mipmap, drawable. Fuck it, just chuck it all in the drawable folder. Seriously, Android should handle this for me. If I am designing for a larger screen then it should be responsive. I don't want to deal with 50 different layouts spread over 6 different folders.
8. Permission system. Why was this not included from the very start? Rogue apps have abused this and abused your user's privacy and security. Yet you ban us and not them from the Play Store. What's going on? We need answers.
9. In Android, building an app took me 3 months and I had a lot of work left to do but I got so sick of Android dev I dropped it in favour of Flutter. I built the same app in Flutter and it took me around a month and I completed it all.
10. XML.
If you're a new dev, for the love of all that is good in this world, do NOT get into Android development. Start with Flutter or even iOS. On Flutter and build times are insanely fast and the hot reload is under 500ms constantly. It's a breath of fresh air and will save you a lot of headaches AND it builds for iOS flawlessly.
To the people who build Android, advocate it and work on it, sorry to swear, but fuck you! You have created a mess that we have to work with on a day-to-day basis only for us to get banned from the app store! You have sold us a lie that Android development is amazing with all the sweet treat names and conferences that look bubbly and fun. You have allowed to get it so bad that we can't target an API higher than 18 because some Android users are still using devices that support that!
End this misery. End our pain. End our suffering. Throw this abomination away like you do with some of your other projects and migrate your efforts over to Flutter. Please!
#NoToGoogleIO #AndroidSummitBoycott #FlutterDev #ReactNative16 -
After using StackOverflow for years, it makes me mad that the devRant community hates on it saying "i get downvotes", "people are assholes". But when you go ahead and see those questions, the Poster took less that 15 seconds to copy/paste their shitcode with poor indentation, no context, no question, no expectation description, and no result description.
YET, THEY DEMAND FREE HELP and for people willing to help, to BREAK THEIR FUCKING EYES reading your non indented and/or non preformatted crap of shitcode
Listen here you little shit, if you don't take at least fucking 5 minutes to let me know what the fuck are you trying to do, what the fuck have you tried, and what the FUCKING SHITFUCK you expected to happen, THEN DON'T GO RANTING LIKE A PRE-PUBERT GREASY KID ON WHY YOUR FUCKING QUESTION GOT DOWNVOTED.
The problem is YOU AND YOUR LACK OF CONSIDERATION TOWARDS OTHER DEVELOPERS, <BOLD>WHO ARE WILLING TO DO FIX YOUR SHITCODE FOR FREE</BOLD>
It took me a while to understand that, when I started posting years ago. But once I learned, it was extremely helpful.
SO SHUT THE FUCK UP, BE HUMBLE, AND WRITE A PROPER FUCKING QUESTION.
WHY AM I RANTING ABOUT THIS, YOU ASK? WELL SOME FUCKTARD JUST POSTED "java - if(Plot Number == booked)then change the color of CardViewBackground color and text color Recyclerview Android", AND THE FUCKING BODY IS JUST A COPY PASTE OF A SHITCODE JAVA CLASS.
WHAT THE FUCK DO YOU EXPECT TO GET WITH THIS???
OOOOHHHHH BUT, I'M SURE AS FFFUUUCKKKK HE'S GOING TO CRY TO DEVRANT ABOUT HIS FUCKING QUESTION GETTING 3 DOWNVOTES.12 -
Android development: Just got a RecyclerView to use two different types of ViewHolders. What a bitch to get working, but the performance benefits will always keep me coming back...7
-
Yknow, I want to make an android app that I have in my mind for about half a year now and I already tried twice, both with Kotlin and with Java but everytime I try it's just pain and suffering and frustration...
No it's not because of the language, I like Java and I like Kotlin too and I'd say I'm at least decent at Kotlin and really good in Java...
No no.. the issue is the fucking Android SDK and the mix-and-match documentation available online!!!
Every fucking time I want to implement some sort of UI element, user action or a background service and I start googling how to do it It comes with with at least 3 different stack overflow solutions, all of them saying "that way of doing it is deprecated, instead you should X" and looking up the OFFICIAL FUCKING DOCS it will just make me roll up in the corner and cry because of how fucking inconsistent it is and the retarded domain language it uses... fucking transactions for fucking fragments inside fucking activities... because I guess the word "screen"/"view"/"template" or something similar natural just was too mainstream for the all knowing alphabet soup that google is...
And then you start looking up what the fucking difference even is and how to code it up only to find out there's at least 12 other opinions on how fragments should be used and what should be an activity and what should be a damn fragment...
But that's not all, that's just the base... I get a headache even thinking about how the fucking inflating of templates and the entire R. notation works. You want to open a fucking tiny corner menu with the settings options? WELL THEN YOU FUCKING BETTER REMEMBER TO IMPLEMENT IT THROUGH SOME SORT OF EVENT AND INFLATE THE MENU YOURSELF EVEN THOUGH ITS THE SAME FUCKING THING WITH STATIC STRINGS...
AND WHY THE FUCK DO I NEED LIKE 4 NEW FILES TO IMPLEMENT A FUCKING LISTVIEW...
also talking about ListViews... what was wrong with "ListView"... Why do we need a "RecyclerView"... oh right... because the fucks fucked the fuck up and all the legacy components were designed by a monkey and are next to useless! SO WE NEEDED A NEW NAME FOR THE FIXED VERSION, CANT NAME IT LISTVIEW AGAIN... FUCK YOU...
honestly... if I got a dolar for every "what the fuck android" I said during trying to understand that mess I'd be richer by a few hundred...
oh oh oh, but you know what? You don't like the android SDK? that's fine, you can use fucking React or Flutter or something... yeah.. because instead of torturing myself with the android SDK I want to torture myself with an abstraction of the same SDK and JavaScript as the fucking cherry on top... HAVE YOU FUCKING SEEN THE CODE FLUTTER SHOWS ON THEIR WEBSITE AS THE "Introduction" ?!!!
Look at this piece of shit:
[code in attached image, we could really use a proper Markdown support at least for rants]
THAT'S NOT EVEN THE ENTIRE THING, THAT'S JUST THE *REALLY* UGLY PART...
The fucking nesting... What is it with JS and all the fucking nesting everytime?! It looks like shit.... It reads like shit as well...
WHY, in the name OF FUCK, IS THERE MORE THAN 5 ANDROID FRAMEWORKS and ALL of them... used this FUCKING NOVEL idea of programming using A FUCKING BRACKET WALL
It always looks like:
(code(code[code{code(code{code()})}]));
If I wanted to make a fucking app or a website using fucking Haskell I'd do that.... at this point reading assembly code feels like heaven compared to this retardation... Why is this so popular?! WHAT DO YOU PEOPLE SEE IN IT?! Clearly it's not the aesthetics... it looks like a fucking frog vomit running down an emus leg, fuck that.... I don't even hate classic JavaScript, it's a good enough language and it does what I tell it to... but these ugly fucking frameworks like react, angular and whatever else uses this fucking format can go fuck right off. This is not the way JS is gonna get a better name for itself...
So:
Fuck Google
Fuck the marionette that designed the Android SDK
Fuck the Hellspawn the came up with the "functional-like" way of using JavaScript
Fuck everyone that thinks "JavaScript everywhere" is a good thing
And deeply future-fuck everyone that makes a new framework following any of these standards, stucks a .js at the end of the name and releases his hairball.js of an invention into the fucking world....
It's a mess... fuck everything android related...14 -
Oh man where to start:
Not wanting to use LINQ because he did not wanted to "download external dependencies"
Not wanting to use prepared statements on their php sql code, and refusing to use pdo because they will "always use mysql"(moved to postgreSQL shortly after I left)
For some reason including a php file that only had ?>......thats it....only ?>
Use c++ but refused to learn oop and use structs for everything, importing stdio.h and printf everything.....like really?
Maybe just nitpicking, but refusing to use the recyclerview pattern on am android app. The implementation was faster after I made the change.
Importing a library for promises instead of using the ones already in the language(JS)
Changing the style of aaaaall p tags instead of using classes as well as refusing to use divs in place of p tags...well...fuck
Not indent his ASP classic code
Use notepad on his asp classic code
Use ASP Classic in 2017, even for new projects6 -
Me : *testing json output on pc by sending items with GET*
App : *app crashing with only recyclerview error*
Me : *debugging the app for 2 hours and testing ways to do another adaptor *
Me : fuuuuuuuuuuuuuuuuu... I used POST to get the data on app and forgot to change $_GET $_POST
Lesson learned. Always check the input first
Im ashame of my self #crysinthecorner2 -
I feel fucked, I feel fucked right up in the ass.
Remember that app I had to do to get the job? I found out the other candidates weren't even able to install Android Studio and that their deadline was postponed. And that they weren't able to complete the app.
I did everything with a really good design, solid programming, even added animations and made it so the recyclerview loads 15 items at a time while you scroll down smoothly. I. DID. EVERYTHING IN ONE DAY. I missed a good night of sleep.
I didn't get the job. They gave it to a fucker that was a web developer. I saw his app. It was really crappy (I'm not being petty or malicious, it was really bad from a dev point of view and a user point of view).
I feel. Disappointed. in this unfair world. And honestly I feel disappointed to the point that I don't even know if I should be a developer anymore. I feel betrayed by the hopes and the good feeling I got from the oportunity.8 -
Fucking android framework. Sucks my huge ass balls. What is wrong with the people that wrote this?
You implement a fba and hide it when the recyclerview in the corresponding is scrolled down.
Then you change to API level 25 and they fucking decide it would be a good idea to refuse to send the onNestedScroll when the visibility for a fba is set to GONE which is itself not bad, but they also think setting the visibility for the fba when you call the hide() method to... yea you guessed it FUCKING GONE would be an amazing decision. Oh yea you smart ass nice decision I'm so glad you did it.5 -
Your UI doesn't render as expected...
You blame RecyclerView...
You blame ConstraintsLayout...
You even blame f**king ImageView...
Turn out the culprit was VectorDrawable...
You try to blame VectorDrawable but your inner self knows that it's your lack of proper knowledge of VectorDrawable....
You feel sad...
You push your code to git and go to sleep.1 -
Spent my entire evening trying to figure out why my CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout setup won't work properly despite my code being "seemingly" identical to Banes' fabled Cheesquare.
And the culprit? Well, roll the drums..
Turned out CoordinatorLayout and all its mumbo jumbo NEEDS the support-v7 version of Toolbar in order to WORK RIGHT.
HOLY. EFFIN'. POOPFEST.
I'm targetting Lollipop, goddammit, there should be absolutely ZERO reasons for me to use Toolbar from the Support Library!!!
If this is by design then why on Earth would you even bother shipping Toolbar alongside the default API in the first place, Google???
Just go the RecyclerView/CardView/Palette route and make Toolbar a separate library FFS!!!
.
.
.
Oh hey, my first "actual" rant on devRant. Neat. -
The other day I was having a problem with a RecyclerView. A button was being drawn all the way on the top of the screen with a HUGE padding. Changed background of said button, fixed. I will never understand...1
-
In a hackathon, my team decided to work on a Android app as a challenge to ourselves. It was our first Android app development and we were very excited at first. But after awhile, one of my teammate (the usual problematic one) gives up implementing the recyclerview after few hours of struggling, and decided to 'fk it' and watch YouTube linustech. As such, I have to takeover and implemented it within an hour by just googling and following some tutsplus tutorial. What do you do with this kind of teammate?1
-
Android Interview question: "what would you use to display a large set of similar data?"
1) a linearlayout
2) a spinner
3) a recyclerview
4) a listview
The "senior" applicant picked 1)
He was not even considered.10 -
So... I just got to the next fase where I'm being asked to do a technical test. What they ask is for me to develop an Android App with 4 different tabs:
- First tab I need to receive data from a github url, parse it and show it on a recyclerview, save it on a database, and be able to search it.
- Second tab has to show 50 elements in a recyclerview, with a header that has to fill the entire screen and when the user scrolls down, the image has to fix to the top of the screen, and never go back when you scroll up.
and two more exercises with variations but almost same difficulty.
..... to deliver at 10 a.m at the 26th of October.
......It was 07:00 p.m when I got the email
FUCK MY LIFEundefined i'm so fucked fml always gonna let me down never gonna get this job never gonna run around and change jobs -
Question for devs who use Intellij IDEA.
How often do you use livetemplates?
I am a new android dev with ADHD and just discovered live templates. They make my life much easier, for example I have shortcuts for generating recyclerview adapter/viewholder/implementation boilerplate code.
In that way I am able to focus on implementation, and do my coding like building blocks, rather than memorizing every detail of implementation. Also I don't need to go to stackoverflow and copypaste basic things multiple times. Even for example during live coding interview having livetemplates seems awesome, copypasting from stackoverflow would be shameful (I think). Using my own custom shortcuts for livetemplates seems the best way for how my brain functions (I suck at memorizing tiny details, but I remember general idea/flow of a pattern and I would prefer memorizing what to use and when to use, instead of all small details of implementation).
Is getting to dependent on livetemplates a good practice to get used to? Do other developers frown upon a dev who has dozens of livetemplates and relies on them instead of writing all code from memory by hand?8 -
Learning Android dev recently, everything is going quite well but damn, I'm stuggling with those recycler views.. any tips?6
-
So i have learn android studio course (kotlin) for the basic.I've been practicing for some things, like recyclerview, ViewModel, bottomsheet, fragment, nav view,Firebase auth, intent and some other basic stuff.right now I'm confused what to do next, if it continues I don't know what to learn next, I know there's still a lot of things to learn, it's just that I don't know what it is, I'm trying to find out what apps a beginner should make like me, but most of the suggestions are still far from my abilities, such as making a calculator. So can you give a little advice to beginners like me, thanks6
-
I finally created a kotlin android app for a simple project idea, just personal usage. Beginner level. Quite a good and bad experience.
Functionality is done, just sucks with UI, as I'm not proficient enough with styling on android.
The result is a predefined purple action bar at the top, an almost white text section right below it with *very* light-grey textview descriptions (you can guess how visible they are on my phone...). Center is a big recyclerview, which in android studio has white background with dark grey text items, yet is black on my phone with white text items. At the bottom 3 text inputs and a centered purple "add" button.
... It's a mess as long as you don't know how to design and style on android studio.2 -
Why the fuck would Google promote Jetpack Compose as a stable toolset when it doesn't even support a basic feature such as a scrollbar.
A. Fucking. Scrollbar.
LazyColumn can't even come close to being as powerful as Recyclerview.
Here's an idea, before launching something and touting it as something usable, and encouraging people to drop the old, battle tested tool for the new shiny one, how about you make sure the new doesn't lack features present in the old one?
Seems logical, right?
Methinks somebody was just looking for a promotion because, clearly, Jetpack Compose is a half-baked product.
Now, developers will have to suffer because project managers will read about the new framework and ask devs to use it, then wonder why the app is suffering.2 -
Time for an actual rant.
3rd year of CS.
We have Mobile Systems course - Android & iOS development.
Lectures - 1hr of interview with Steve Jobs about greatness of iOS.
Practice - So far we had to write 2 android apps.
Seems wrong? No, it's perfectly fine for "Course Leader" (idk how the guy is called properly in English)
First app - 3 screens (it was forced to do it with Activities), data passing between activities, lifecycles
Second app - 2 screens - one with ListView (well, I asked about RecyclerView, luckily I was allowed), another one adds elements to that List plus Snackbars, Notifications, list item selection and removing them (I ended up adding retrolambda and streams to write it anyhow). We were asked to do it on Activities, I thought it was an overkill, in the end did it on Fragments.
What pisses me off - we were asked to do those two apps after watching one hour of interview, the guy who leads the practical part of course has no idea how to do things in Android (said it clearly), I was, and still am, only one who knows how to do anything.
I work as Android dev, so I want to help my colleagues. Decided to make tutorial streams where I explain how to do everything.
Troll colleagues come and dislike it on youtube, post lulzy comments into chat. Not that it bothers me much, but still, people who I'm trying to help are mixing my help with shit, great :)
If Polish devranters want to check out those streams (you can write a decent app after watching those 4 hours) I can post them in comment.2 -
Should I just give up? I keep trying to learn Android and can never seem to memorize anything. Like how to do a recyclerview. I know that it needs a adapter a view holder. Yet I always have to look up how's it's done. Either though docs or from other projects. Is that common? Or should I give up since I can't seem to remember how to do it.5
-
I've just joined a new company out of despair after several month out of jobs without being able to even get interviews.
I've been warned about the code being a bit behind with modern Android stack, they needed to migrate from rx to coroutine and compose is not a priority at the moment.
Fine with it, I like handling and planning migration, that's a nice challenge.
But if only that were the only problems !! Far from it, the code is a formidable mess, I've never seen so much amateurism... Most of it was written from the previous Lead Dev who stayed there for years and touched everything with their very bad practices.
I don't even know where to start honestly...
While the code is in Kotlin, it stink Java. Nothing wrong about Java, but if you code in kotlin, you need to understand what kotlin try to achieve. And that's not the case here. There is freaking nullable everywhere, for no reason at all, the data classes contains lot of var in their constructors, equals are override to compare only one or 2 params and no hashcode override with it.
Sealed class, what for ?! Let me just write a List<Pair<Enum, Any>> and cast your any depending on the enum !
Oh and you know what, let's cast everywhere, no check, and for once no null safe, there is enough nullable in the code !
What about the reactive part ? well let's recreate a kind of broken eventbus with rx ! Cause why not ?!
The viewmodel observable don't contain data, they just contain enum for the progress of the states we're checking.
In the viewmodel function we update that enum states and emit it to be observed and make the data available as a var for the view to pick it up when needed.
But why put the business logic in the viewmodel, let's put in the views, and grab and check the variable contain in the viewmodel whenever it fits.
Testing the business logic ? uh let me just test my variable initialisation in the viewmodel instead.
The vm, the views, make about 2000 lines, the test over 3000, and not a single test really test the business logic in it ! I've made big refactoring we're all the tests stayed green, while the function are full of side effects ! WTF ?!
Oh and what about that migration from rx to coroutine ? well better not break the existing code and continue writting like rx, everything is cold flow ! We just need to store a boolean saying if we already did our call to the data layer then we decide to start our flow or not.
As for the RecyclerView, having too many viewHolder is just so annoying, let's put all our different views in one, and hide what we don't need.
Keystore has been push on the repo, but it's private no ? So who cares ?!
And wait i'm not done ! Some of the main brick of the apps depends on library that hasn't been updated for years, and you know what... yes they were hosted on Jcenter and it's only now that they decide to do something about it, we we're warned about the sunset of jcenter 2 years ago !!!!
So what about compose ? What do you want with compose ?! there is no design system in that app obviously, so don't even think about it !
And there... among all of that mess, I'm supposed to do code review... how the fuck do you do a code review when all the code that is around stink ?!
And there is so much more but by now I'm afraid you're thinking i'm just pissing on the old code like everyone... but damn I guarantee, that's the worst code I've ever seen, and i've work on more than 15 app from small to big on different contract with a lot of legacy code, but nothing that bad !1 -
Fuck google, fuck android, fuck their engineers. Trying to implement paging library 3 from last 10 days. Hitting my head for 10 fucking days. I even created a REST api for this. Before it i was using firebase sdk. After trying everything. As last resort I put my code on their sample source code. still same problem. only god knows how their sample works but lookalike my code doesn't. My Problem is recyclerview keep loading more items without me scrolling.6
-
If anyone has followed the Android course by google, is it only me or “lesson 7: recycler view”
Is broken at? Every single time I try and compile I have to fix something cause the guy either adds something without telling or just straight says something and does something else... -
I have recently learned to use data binding with recyclerView in android. I need to make some network calls on the click of a button at the recyclerView, and based on response I need to update my UI. All my code for the view is in my ViewHolder. Bt all the code for my network calls are in repository which is accessed by my viewModel. how can I make the network calls from the viewHolder?question repository viewmodel best practice mvvm kotlin app recyclerview android sdk android development viewholder android2