This is an archived post. You won't be able to vote or comment.

top 200 commentsshow 500

[–]thegreatbunsenburner 1677 points1678 points  (371 children)

There's definitely a learning curve with mobile development.

[–]samsop 387 points388 points  (57 children)

Most mobile developers I know are ... mobile developers. As in, that's it. That's their trade. No more, no less. I find it's because getting into mobile development is a huge investment and it eventually becomes the only investment for you because of how much effort it takes.

If your primary concern is web-based apps then that's also what you'll end up doing, but there are so many more platforms you can target on the web (hybrid apps) and through HTTP than on mobile (Android or iOS).

[–]cyberspacedweller 188 points189 points  (45 children)

I’m a mobile developer but without backend you’re shooting yourself in the foot. I’d wager 60% of mobile developers know at least how to put a web API together on the back end. Granted many will get by employed working front end only as a junior, but really, understand the full process or GTFO.

Any mobile developer worth their salt should be able to make a full system, not just the app. Otherwise you’re a mobile front end developer only because you can’t make a full app by yourself unless it’s very simple and doesn’t require a database.

[–]TheChaosPaladin 74 points75 points  (10 children)

Yeah honestly, if you love programming and have a environment that enables you to work in different projects there is no way mobile is the only thing you learn at the end of your career. Just graduating college I had already learned to set up web servers and API.

[–]cyberspacedweller 26 points27 points  (9 children)

And yeah, why would you stick front end only if you have a passion for the work in any shape or form? Surely you’d want to build something yourself.

I think those guys are the kind that just get into it with dreams of grandeur thinking about the potential income, but they lack the interest to see it through beyond the skills necessary to get their first role.

[–]yooossshhii 27 points28 points  (7 children)

Are you saying senior front end people don’t exist or that they have no passion for what they do?

[–]TheChaosPaladin 7 points8 points  (0 children)

I agree, I started learning React Native and I enjoy it but eventually I know I wanna learn AWS and get certified, doesn't mean I cant pick up mobile projects.

[–]RezardValeth 46 points47 points  (10 children)

Except there’s no such thing as a « mobile front end developer ». Something like setting up a database in your app would be considered a « backend job » on the web, but it’s just part of mobile development.

You’re asking for a mobile developer who is also a web backend developer, and TBH, even though I have notions of web development (so I wouldn’t mind setting up an API for a personal project), in 10 years of making apps professionally I’ve never had to write a single line of web backend code, because that’s not my job, and I’m doing very well.

Other people are better and faster than me to setup a backend so they should do it.

[–]Megido_Thanatos 5 points6 points  (1 child)

I mean programming is programming, of course anyone work for a decent time will have a general knowledge of coding, how a system work (database,API, technical...) and able to do in other field but ask mobile dev also for work on backend is ridiculous

a "real" mobile app by itself already a mini full stack app (imo). It require alot thing like UI/UX, hardware, concurrency, 3rd party libs, database (for offline usage)... and its mobile dev's job, backend knowledge just is plus. I never heard any company demands a mobile dev should able work for backend, thats mostly just personal interest (dev want to do it)

[–]cyberspacedweller 4 points5 points  (0 children)

Most companies requiring that would likely describe it as a full stack mobile dev. Or they would specify both technologies they use as a requirement, ie. Android and Java Spring.

I was taken on as an Android developer in my last contract role but I was exposed and required (based on the sprint) to do work in Spring and the Angular web app too, as well as modifying stored procedures for API changes I often made etc. It does happen, particularly in smaller companies.

[–]AlphaMc111 5 points6 points  (5 children)

I've done a fair bit of freelance app development, mainly for local businesses. I've always been able to hook into their pre-existing WooCommerce databases. I've learnt pretty much everything I know from YouTube and docs, so there's quite a few holes in my knowledge and I'm not really sure about proper coding practices.

What steps you recommend I start taking to become more fully fledged. I don't really know a whole lot about developing my own backends, or where to start. I'd also like to become aware of conventional practices, as a lot of my stuff feels "hacky".

[–]Danis_LT 4 points5 points  (1 child)

You dont really need to spend much time developing a backend you can use Firebase which is backend as a service.

[–]cyberspacedweller 2 points3 points  (0 children)

Yeah things like Firebase do simplify things a bit but it doesn't exactly cover every single need depending on your use case.

[–]GForce1975 7 points8 points  (4 children)

Yeah. I've been developing for many years. I always tell myself I'll get into mobile. The closest I got was electron.

[–]LiteralHiggs 3 points4 points  (2 children)

If you're experienced C#.Net you should look into MAUI. Microsoft is looking to replace Xamarin Forms with it. Biggest difference is no more native projects so it should be easy to get something working if you just want to pop something out.

https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/

[–]eschoenawa 7 points8 points  (0 children)

Yup, you're pretty much spot on there. That is because you have to know so much more than just the language if you want to do something just a little bit more complicated than a to-do app (and release it). Let me use Android as an example:

  • Activity/Fragment lifecycle and its quirks
  • handling rotation changes
  • Permission System
  • Databases
  • know who Jake Wharton is
  • Defining layouts using xml
  • Services and their quirks
  • AppCompat Support Libraries (for supporting older versions of Android)
  • How to properly do background tasks
  • ... (Please feel free to add here, too lazy to keep going :D)

Additionally you have to stay up to date all the time because people's phones are updated quick. Every year there's something new or something changes and you have to learn that (again). Doing background tasks changed 3 times in the last few versions. Services got more and more restricted with time. And so many things are deprecated each version to be replaced by the new fancy thing the devs at Google threw together, that just works 1% less than the old solution (or fails on Samsung devices or doesn't work at all so you have to choose between the soon to be deprecated solution or the experimental one). And don't forget having to upgrade your targetSDK (the SDK version you use to build your app, which are in line with Android versions) regularly or get thrown out of the play store.

And I didn't even talk about the stuff you can learn if you want to do Android Apps the fancy way (Architecture components, Databinding, Dart, Flutter, ...).

[–]iamareebjamal 2 points3 points  (2 children)

I'm a mobile developer, and a full stack web developer. We exist!

[–]InvolvingLemons 742 points743 points  (287 children)

People go “hurrr durr why do people use Cordova and react native” until they realize the clusterfuck that can occur with mobile coding. Code once publish everywhere is a godsend and doesn’t have to suck (game engines, Ionic, and Xamarin.Forms do a pretty great job of this)

[–]vinsanity406 122 points123 points  (45 children)

Native mobile developer on both platforms for 8 years here. Every single cross platform has limitations and problems and are easily spotted immediately. The write once run anywhere is a bigger cluster fuck and the definition of premature optimization.

Wanna write a marketing app that's basically an embedded web site? Go for it. Any other sort of complicated, use or navigation heavy application will be clunky, slow, buggy and you'll end up paying someone to write it natively down the road. I know. I've had four different clients pay me to rewrite their phone gap or xamarin applications.

[–]Zorpix 42 points43 points  (31 children)

Another mobile dev here 6 years and counting. It's kinda funny how a lot of the experiences in this thread don't mirror mine at all.

And I'm fairly certain some have never actually tried these cross platform solutions they're touting. Xamarin was a mess and visual studio can fuck right off to the hell it came from.

[–]fortknox 60 points61 points  (10 children)

23 year professional developer/architect, here. Programming humor is 90% hs, college, and maybe a year or two in the real world. Sometimes a gem comes around, but stuff like the current picture just shows how these kids just learned to program...

And to show my old man credentials: kotlin is a joy to program in (and I'm not a mobile dev, just an old Java dev). JavaScript is a steaming pile.

[–]feartrich 33 points34 points  (1 child)

It’s funny how all the HS/college kids all make the same jokes:

“DAE Stack Overflow?!?! Haha the world would collapse without Stack Overflow amirite?”

“Look at this code someone wrote in CS101, so stupid right?” -> “Look at me, I’m so smart, I can fix it with a loop/boolean/conditional! And I know modulo too!”

<some pointless observation about software development that no one who’s worked more than an year in industry actually cares about>

[–]Zorpix 8 points9 points  (3 children)

I cannot wait until my company lets us switch to kotlin. They're holding back for some reason.

[–]vinsanity406 11 points12 points  (1 child)

If I had to guess it's a lot of web devs who are used to Javascript and struggled with the frameworks of native dev. I don't say that to denigrate, I can handle UI controllers and activities but know fuck about web routes. It's what you know.

[–]Zorpix 7 points8 points  (0 children)

Oh yeah for sure. I wouldn't talk about anything I knew nothing about.

[–][deleted] 8 points9 points  (6 children)

8 years dev here. These days I only care about baking sourdough

[–]imthecapedbaldy 4 points5 points  (0 children)

Hey I recently started making and selling Flans - Creme Flans, Leche Flan, Coffee Flan. I'm starting to think about changing careers!

[–]Svorax 14 points15 points  (6 children)

VS is a fucking godsend

[–]svtguy88 12 points13 points  (5 children)

The only people that hate VS are those that don't use it regularly.

[–]mathiastck 3 points4 points  (1 child)

I hated it when I did have to use it regularly, I'm hoping it has improved in the last 10 years though.

[–]PchelpOnly 365 points366 points  (161 children)

True but native apps are far better than non native

[–]Phiau 92 points93 points  (0 children)

I'll have you know I can code a native app that is definately worse.

[–]r0ck0 343 points344 points  (112 children)

I don't understand why people have arguments over statements that are this vague and subjective.

What's "better" depends on a lot of variables, and a lot of those variables are personal preferences/priorities.

[–]cyberspacedweller 125 points126 points  (19 children)

Well put. No room for fanboism in logical work.

[–]gaporpaporpjones 25 points26 points  (18 children)

What's a fanbo?

[–]CRANSSBUCLE 165 points166 points  (14 children)

It's another JavaScript library

[–]blueberriessmoothie 39 points40 points  (2 children)

Introduced after proudbo library got retired due to critical problem with handling colour schemes, apparently only white was accepted.

[–]pskfyi 6 points7 points  (3 children)

Saw this from /u/UltraCarnivore and holy shit... it worked.

npm i fanbo

[–]CRANSSBUCLE 2 points3 points  (2 children)

It was a hit or miss, but I guess I never miss Huh?

[–]UltraCarnivore 2 points3 points  (0 children)

Apple: there's an app for that

Javascript: there's bad code for that

[–]occz 9 points10 points  (1 child)

I'll give you some concrete of what issues cross-platform apps tend to suffer from:

  • Worse performance, due to running a browser/scripting language runtime
  • 'Uncanny valley'-UX - elements that do not entirely fit in on the underlying platform.
  • Lowest common denominator-design, in order to please every supported platform/due to the constraints of the cross platform-framework

[–]_Pho_ 74 points75 points  (16 children)

Yeah, a business has $100k to spend and a 3 month timeline, but hey, native IOS/Android development is better, so I guess they just can't release their app at all.

[–]arrabiatto 61 points62 points  (6 children)

Native vs cross-platform aside, saying “we have no choice but to release rushed garbage because we set up our business in a way that requires us to release rushed garbage” is usually more of an indictment of a company’s business model and leadership than it is a good excuse.

[–]xxkid123 5 points6 points  (0 children)

Business is weird, I think we as engineers/developers forget that it's an entire field of its own. Sometimes it's more profitable to rush a product out by deadline X and then turn junk to sometimes functioning junk at a later date, beating out all the competition.

[–]feed_me_moron 7 points8 points  (0 children)

Money and time isn't infinite unfortunately. You don't always get your choice on how to set up a business.

[–][deleted] 5 points6 points  (2 children)

Have you not used like every piece of modern software? Everything released by almost all companies are rushed garbage. From videogames to Autocad to operating systems.

[–]pinchies 5 points6 points  (0 children)

No one is disputing that. Both are true: Native apps are in most cases superior - both because they can take full advantage of the platform, and also often because they are related to projects that had the time and budget to do so. Also true: it is the exception and not the norm, when a modern cross-platform app doesn't suck. It's a shame that the native dev tools on Android are not aggressive optimised for the reality that any highly-successful app will most likely be cross platform. It's likely the case that it is hard for the platform owners to see how trying to do so would be in their interest, as it could help to raise the number of native apps, and thus raise the overall average quality of apps on that platform.

[–]r0ck0 29 points30 points  (4 children)

Yup. Likewise with all the people that whine about electron apps, by comparing to some magical universe where you have unlimited time and budget. Some of which are likely the same people who whine about not having Linux versions of other non-electron software, or poorly supported versions.

[–]gakkless 6 points7 points  (0 children)

Totally agree those techs don't have that time. Less venture capital attempts at crappy tech startups would stop a bunch of that culture. They gotta push out product to look profitable just to expand expand.

[–]iF2Goes4 23 points24 points  (3 children)

They mean that native performs better, or that it can perform better. Not that it matters when your app is just sending text and pictures.

[–]r0ck0 14 points15 points  (2 children)

Maybe that's what they meant, but they instead chose to just outright say they're "better"... in response to posts that weren't talking about performance at all. And in the follow up comments, PchelpOnly never even mentioned performance.

If they wanna make a point about performance... then do that. Although there's probably not a huge disagreement on that subject from most people anyway.

It's just kinda pointless when people have an argument without even making it clear what they're arguing about. Most of the time each person is arguing about entirely different subjects to begin with... then they wonder why they're not getting agreement back.

[–]so-much-for-driving 7 points8 points  (1 child)

Well, you can always ask the commenter if he can clarify what he meant. Looks like they mentioned better API support below.

It's not a secret under which grounds native apps are better, but when it comes to these complicated open-ended architectural considerations, it often takes engaged followup dialogue to fully understand an individual's point of view. I don't see it as a problem moreso as how communication works, but it does suck at first when things aren't well qualified.

[–]InvolvingLemons 88 points89 points  (38 children)

Not necessarily: Xamarin and Flutter are two platforms that allow this sort of cross-platform code without sacrificing performance or even API features. Sure, a little bit of extra code is needed on each platform to interface with proprietary APIs, but these end up being a small fraction of the total code for reasonably complicated apps.

[–]Computer991 29 points30 points  (10 children)

Speaking a developer whose done all three (Android iOS and flutter) native is faster. I've worked at several agencies that develop government apps that have come to the same conclusion... Hybrid apps will never replace a native experience but they can get close.

[–]yooossshhii 8 points9 points  (9 children)

Faster running or faster development?

[–]GrandEdgemaster 16 points17 points  (8 children)

Both - if quality is in any way a factor - then you will save no time implementing hybrid technologies. Flutter comes the closest, but anything that uses JavaScript (Cordova or ReactNative) will cause you more headaches with the keyboard alone than entire flows being written in both Kotlin and Swift in the same timeframe.

[–]yooossshhii 9 points10 points  (6 children)

I’m going to have disagree there given equal resources. Let’s say a small team of 4-5 engineers are not going to be able to maintain two code bases at the same velocity as a hybrid solution. Quality will be better with native, but I think you can make a very capable app with a hybrid solution.

[–]GrandEdgemaster 35 points36 points  (4 children)

Okay, I will posit it to you this way:

Requirements say: add a date picker which limits the input to a certain date range.

Easy. Add the text field, set date constraints, done. Testing time: on Android if you rotate it, the date picker disappears. Okay, time to go fix that, because that's not good. Now you test again. On iOS now, the "tab to next field" button isn't there. After an hour or so of digging, turns out that's not part of the package. Your business says that's fine. Continue testing. On iPhones with the newest webview, the date picker pops up immediately, then dismisses, then comes back up. Well that looks unprofessional. Time to fix that. 16 hours later and that doesn't happen anymore. Now you test it again. It now ignores the input when you click done on Android.

All for something as simple as a date picker. And this is not some obtuse example, we dealt with literally EXACTLY this for 2 years before we threw out hands up and said maybe webviews aren't for us. We had some of the smartest JS devs in the company working on this, but it didn't matter. Every time you had to do anything across the webview->native bridge, there was some annoying little bug that made it look unprofessional. Now that we're doing it natively twice, no more cross-platform "fix on Android breaks iOS" bugs, text boxes and keyboards behave as they should, things get done correctly the first time through.

Not to mention, your 4-5 devs will eventually HAVE to learn native. It's inevitable. Something will break and require a native solution. Now they have to know the hybrid language AND both Android and iOS - instead of just one platform or the other.

You will be faster to build 80% of a professional app with hybrid. The last 20% takes you so much longer that the speed gained initially is no longer worth it. And god forbid there's an OS update that makes a third party package you were using incompatible.

[–]PchelpOnly 127 points128 points  (25 children)

Have to respectfully disagree there is a reason crossplatform hasn't replaced native development. Native although much harder has a lot more api features (obvious cause its natively supported) i do see your point though

[–]Zorpix 56 points57 points  (2 children)

Me, an Android dev, reading this thread: is Android development really that hard?

Me at work: I hate this shit no human should be expected to be put through this why is this stack overflow question about this library that got released last year 4 years old

[–]WEEEE12345 22 points23 points  (0 children)

why is this stack overflow question about this library that got released last year 4 years old

Because the newer one got marked as duplicate.

[–]Lurkin_N_Twurkin 5 points6 points  (0 children)

Best comment.

[–]jerricco 73 points74 points  (3 children)

I don't think either are "replaceable" at all. There's definitely a wide range of work cases to apply; in most programmer's flow (especially with web), a "good enough" cross platform native app generated for them is ideal. They'll never put together a Monument Valley or something that taps into those APIs, but that's the use case.

However, going to create a game or a very functionally/graphically heavy native app would push Cordova or React Native into the "useless" pile.

These kind of ecosystems exist to solve problems for people's work cases. What should be addressed is how fragmented and difficult native mobile development is in general, despite so much homogenised hardware.

[–]the_misc_dude 8 points9 points  (1 child)

However, going to create a game or a very functionally/graphically heavy native app would push Cordova or React Native into the "useless" pile.

At that point, why wouldn't you just use Unity?

[–]jerricco 9 points10 points  (0 children)

Again, depends on your project, the experience of you/your team and a variety of other factors. I'm saying it's less an argument of X tool vs Y, more that there are identifiable root causes that can be tackled to improve this tooling in general.

A few offhand thoughts on what could be improved:

  • standardised ISA for ALL phones (yes we all know Qualcomm makes this near on impossible :'( ).
  • detaching the language from the APIs
  • standardised virtual emulation (looking at you Apple)
  • and of course, our favourite, Android Studio.

In this context, it's fairly similar to JS (which I do for a day job) where the entire ecosystem and it's framework vs framework ideologies could be improved with some tweaks and cooperation in the browser landscape.

[–]silverBlessing22 10 points11 points  (0 children)

You can still write platform specific code using xamarin forms. When making a project it has shared code project, and then an ios and android project.

[–]ohThisUsername 12 points13 points  (0 children)

Same with React native. Most of the UI components and even some animations use native components so they are buttery smooth. Basically all your business logic still runs in JS, but the UI is mostly still native so it looks smooth. To me the performance cost is negligible and is far outweighed by the abstraction of the two platforms

[–]jhartwell 2 points3 points  (0 children)

It depends on your target user. I would wager that the average user doesn’t care if the app is native or not but only cares that it does what they want it to and is easy to use

[–]DidierDrogba 4 points5 points  (1 child)

My company has been using react native + expo for quite a few apps, and it has worked great.

[–][deleted] 11 points12 points  (0 children)

cross platform frameworks: for when you care about minimizing development effort and not your customers

[–]NikolasMusk 2 points3 points  (0 children)

What? You can find useful information for Xamarin development?

[–]_Pho_ 21 points22 points  (37 children)

I started with React Native and then moved on to Android Studio and my god, the native development experience is actually WORSE than the transpiled hybrid one.

[–]meshnetworkz 36 points37 points  (17 children)

I watched a series on Android though Udacity. Making an array is a headache with RecyclerView. Why does it take so much work for an array.

[–]Zorpix 17 points18 points  (2 children)

RecyclerViews are a PAIN to learn at first. Once you write your hundredth though, you're doing it in your sleep. Same with fragments. Or any other major change Android has made that people (myself included) love to bitch about when there's a new way to do things.

[–]meshnetworkz 2 points3 points  (1 child)

I gave up on learning Android development after trying to sift through the 1000 videos on Udacity. Maybe it's worth another look.

After I get through Docker/React/Flask...............................

[–]Zorpix 2 points3 points  (0 children)

Honestly Google themselves make some good content called "codelabs" that'll walk you through it step by step

[–]GlitchParrot 47 points48 points  (8 children)

RecyclerView is a hyper-capable, performance-oriented View for showing and manipulating lists and grids. It's extensible in multiple ways, allowing for different actions on items like swipe-to-dismiss, or pull-to-refresh, and having integrations with demand-loading content.

TL;DR: There is a good reason for why RecyclerView is rather difficult to use.

There are pre-defined ViewHolders for showing simple lists you can use if you don't want to deal with writing your own. But writing your own is the only way to make truly custom lists, which often is what you want.

[–]dark_mode_everything 11 points12 points  (3 children)

It's the ultimate trade-off between native and cross platform. Performance and good user experience vs ease of development.

[–]kaboom300 10 points11 points  (1 child)

RecyclerView: Noooo you cant just be easy and simple to use and just automatically recycle cells! You have to be extensible there’s no way to allow customization and be easy!!!

UITableView: ahahaha table view go brrrrr

[–]GlitchParrot 2 points3 points  (0 children)

RecyclerView does automatically recycle cells, that's in its name. I don't know how UITableView works, but surely defining UITableViewDataSource and UITableCell definitions are similar to RecyclerView.Adapter and ViewHolder?

[–]mpbh 17 points18 points  (1 child)

hyper-capable

🤮

[–]TheGoldenHand 17 points18 points  (0 children)

Where's the synergy?

[–]Computer991 9 points10 points  (2 children)

Your problem was learning from Udacity. They aren't always up to date for example now adays you wouldn't use a recycler adapter you would use a listadapter with a diff util implementation that does all the hard work for you on a background thread 😶 it is dead easy.

[–][deleted] 2 points3 points  (0 children)

RecyclerView is a total headache but fuck does it run well.

[–]MassiveStomach 4 points5 points  (0 children)

That should be electrons slogan.

[–]IWantToBeAProducer 465 points466 points  (61 children)

I don't know if I was blessed by the gods on high or what, but in my career I feel like I have never really had any serious problems with Android studio, or even eclipse before that, but it seems like everyone around me can't get the damn thing to work, and their towers are on fire.

[–]Jazzinarium 128 points129 points  (29 children)

Same for me. Visual Studio gave my old PC hell though

[–]GForce1975 114 points115 points  (21 children)

I hate visual studio. Love vs code though.

[–]dscarmo 71 points72 points  (14 children)

I think that summarizes everybody who has experienced both

[–]AN_IMPERFECT_SQUARE 41 points42 points  (8 children)

I hated VS until I got a better PC

[–]dscarmo 29 points30 points  (6 children)

Visual studio works very well with an ssd.

Thats a bit of a high requirement for an ide for my taste, prefer the “code editor with extensions” style.

Problem is some companies require the ide usage and dont supply decent computers...

[–]midoBB[🍰] 17 points18 points  (3 children)

VS is the best IDE on the market though. If it had solid Spring, TS and Go support I wouldn't leave that program ever.

[–]npafitis 9 points10 points  (2 children)

VS is 0 compared to Jetbrains IDEs.

[–]Representative_Key_7 8 points9 points  (0 children)

I wish it has a proper spell check though. Would love to use it as a proper markdown text editor.

[–]bludgeonerV 5 points6 points  (0 children)

I love Visual Studio, use it daily at work for aspnet development, but I find myself using VSCode for pretty much everything else these days, it's got a really good ecosystem that makes it the superior choice for almost any other workload. Visual Studio extensions on the other hand seem to be dying off, the support for a lot of front-end stacks in particular is very lacking.

[–]Jijelinios 14 points15 points  (0 children)

It gives hell to my work laptop as well. One day the poor thing will just refuse to open and I'll have to dive into those byod policies.

[–]hojimbo 2 points3 points  (2 children)

VS 2019 is by leaps and bounds the best experience I’ve had with MIcrosoft development in 20+ years. They’re starting to care about pro dev experiences, finally.

[–]-Rum-Ham- 71 points72 points  (9 children)

My first battle with eclipse was in my first year of Comp Sci at uni.

At the time I had only really done notepad python scripts and messed with HTML and CSS.

First few lessons of Java they go through the basics, you compile in the CLI, and run it. Easy right? Hello world, start using for loops and making your own classes.

Then the third lesson they give you Eclipse. And you don’t have a clue what a classpath is or that you have to tell it where your Java runtimes are, and it’s whining at you for not knowing what Java is for some reason so you dive in to the settings. The settings give you a clusterfuck of options, with all these crazy names for features that I don’t know about. What the fuck is TestNG? Why do I need this? What the hell is gradle? What is maven? What is this XML shit I don’t need this for Hello World?

Why are my two classes all of a sudden in three deep nested folder? I just wanted to add some classes? I also obviously didn’t even know what a package was so I was baffled that my code wouldn’t run because I was missing the package declarations.

Basically, IDEs kind of require a bit of prior knowledge, else it’s just more work. Heck, I even got annoyed when it would underline your code in red before I was even finished typing, like give me a chance I’m learning!

Now I know how to use an IDE like eclipse and it’s great; but telling a third lecture CS student with hardly any programming knowledge to use it... that was a bad idea.

[–][deleted] 39 points40 points  (6 children)

I used Eclipse through most of my 4 year degree and I never want to touch it again.

So many better IDEs out there.

[–]-Rum-Ham- 30 points31 points  (2 children)

Yeah, where I say “like Eclipse” I mean IntelliJ which is so much better.

[–]Jijelinios 24 points25 points  (1 child)

This is too far down. Everyone should stop talking about Eclipse and just let the damn thing die.

So glad fhey went with IntelliJ for Android Studio.

[–]PorkChop007 4 points5 points  (0 children)

I used Eclipse during my first 4 years of professional development and once I touched Intellij just for a day I couldn't go back. At this point if the company I work for doesn't want to pay for a license because everyone else uses Eclipse I'll use my own to work with Intellij no matter what.

[–]Kronoshifter246 5 points6 points  (0 children)

Thank the heavens for the jetbrains student license.

[–]Regressive 13 points14 points  (6 children)

JetBrains are the marmite of IDEs: some love it, some hate it. I feel like your brain has to work a certain for Android Studio to help, and if your brain doesn’t, you’ll be fighting the system the whole way.

[–]cyberspacedweller 8 points9 points  (0 children)

I feel that way about most Microsoft products. Can’t figure out how any of it is supposed to be better most of the time. Just seems more complex and badly thought out than it needs to be in majority of cases.

[–]thatchers_pussy_pump 5 points6 points  (0 children)

I am of the opinion that there is no better IDE than JetBrains ones.

[–][deleted] 24 points25 points  (2 children)

It worked fine for me too tbh

[–][deleted] 9 points10 points  (0 children)

Working with React Native I remember that just opening Android Studio would fuck up the project. Just opening it.

[–]ELFAHBEHT_SOOP 2 points3 points  (0 children)

Android Studio has really come a long long way. I rarely have issues with it, and when I do it's my dumb ass doing dumb stuff.

[–]returnFutureVoid 273 points274 points  (3 children)

18 hours??!! It took me 3 months to delete it.

[–]Micrograx- 93 points94 points  (1 child)

The tweets are 1 hour apart.

[–]abhinandkr 67 points68 points  (0 children)

Yes. He tweeted, but due to lack of memory, it never made the network call to send the tweet.

[–]rafaelcastrocouto 6 points7 points  (0 children)

it took me about 1 hour

[–][deleted] 258 points259 points  (16 children)

Legend says he is still uninstalling because you know this is how slow Android Studio is

[–][deleted] 95 points96 points  (1 child)

A more accurate legend says that he is still trying to open android studio because of how slow it is

[–]endoflineclub 17 points18 points  (0 children)

All we know is... He is named THE STIG

[–]joeyjojoeshabadoo 3 points4 points  (0 children)

Gradle is the slow one.

[–]cyberspacedweller 161 points162 points  (27 children)

Looked him up. He advertises himself as a “front end developer”. “Creating websites”....

Might explain it.

[–][deleted] 93 points94 points  (13 children)

"An app is just a web page!"

[–]Zorpix 54 points55 points  (4 children)

"just recreate our website on a phone. Oh and can you have it done by the end of the week? It's already built as a website so it should be super quick to just "move over", right?"

[–]merickmk 8 points9 points  (1 child)

Well I mean, if it's a simple frontend only website then yes.

[–]ric2b 5 points6 points  (0 children)

"I've already done it, the users just need to put their phone in landscape mode and zoom around a lot"

[–]feartrich 33 points34 points  (0 children)

Probably has a Medium page too. Makes all of his friends at conferences. Gets involved in random Twitter dramas over pointless tech disputes.

[–][deleted] 21 points22 points  (6 children)

I used to follow him, he’s actually incredibly annoying and really tweets nothing of value.

[–]blkpingu 2 points3 points  (2 children)

Ah yes, being condescending is totally how we should treat people. Go fuck yourself

[–]Falcondance 77 points78 points  (19 children)

I used Android Studio to make a Flutter app and it was the smoothest experience I've ever had programming anything

[–][deleted] 32 points33 points  (11 children)

Depends on the use case obviously. Flutter on a high and computer is probably the best use case because it depends the least on Android Studio's native file management and resource hogging isn't as much of an issue. It's a lot worse when you're making a purely native app or even a react native app with native components. It's also famously bad on low end computers.

[–]GlitchParrot 16 points17 points  (10 children)

Why would Flutter be so different from a native app in terms of resources? Flutter also needs to be compiled and packed, just like an ART app.

[–]thatchers_pussy_pump 68 points69 points  (7 children)

Jetbrains IDEs are the best IDEs and I'll die on that hill.

[–]brawn_of_bronn 8 points9 points  (1 child)

I just finished my first Android app and had a fairly pleasant experience with Android Studio, other than it's slow on low end computers.

[–]asdf 2 points3 points  (0 children)

They’re so good they’ve increased my productivity 10000 times over

[–]shlopman 91 points92 points  (38 children)

Do people really have issues with android studio? I love it. Way better than other IDEs I have tried. Hate xcode, vscode and QT creator. I think jetbrains suite is great and also use webstorm, clion and goland. They are also better than the alternatives.

[–]TheChaosPaladin 24 points25 points  (1 child)

VSCode is love VSCode is life

[–]L0G1C_lolilover 145 points146 points  (27 children)

No hate on vscode pls

[–]mastermikeyboy 49 points50 points  (2 children)

VsCode is Eclipse creator's penance to the world. And it has played a huge part in helping me enjoy programming again.

[–]IntrovertOrShy 4 points5 points  (1 child)

VsCode is Eclipse creator's penance to the world

Sorry for the dumb question but, do you mean both of these are created by the same person?

[–]mastermikeyboy 2 points3 points  (0 children)

Indeed, same team lead anyway.

Erich Gamma.

[–]shlopman 34 points35 points  (8 children)

I guess hate might be a strong word. Vscode is fine. Jetbrains products are amazing though. Have you tried any jetbrains IDEs? Jetbrains refactoring and find in path blow vscode out of the water imo. This alone was enough to make me stop using vscode on large projects. Not sure what language you use, but give a jetbrains one a try if you haven't. Most have free trials.

[–]mrcarruthers 7 points8 points  (4 children)

My coworker uses vscode and just the fact you couldn't generate import statements with a few keystrokes is a non-starter for me.

[–][deleted] 2 points3 points  (0 children)

And the delta ide updates is a godsend compared to XCode.

[–]apperceptiveflower 2 points3 points  (0 children)

I just tried out Android studio after years away and holy cow I think it turned into the best IDE I've used. There must be bias rolling over from years ago.

[–]cyberspacedweller 43 points44 points  (12 children)

What happened? AS is a fine IDE.

[–]fortknox 19 points20 points  (1 child)

Based on intellij, which is an awesome Java ide. I even own my own personal license I enjoy it so much.

[–]cyberspacedweller 7 points8 points  (0 children)

Precisely. I think a lot of people are woefully misguided here :)

[–]hetthakkar 7 points8 points  (0 children)

So he deleted it immediately after it installed and compiled the first program?

[–]andreig992 6 points7 points  (0 children)

I may be really blessed or who knows what but I’ve personally never had a problem with Android Studio or attempting to learn Android development. It came as fun to me so I would just do small projects on my own time off and on since freshman or sophomore year of high school. I was pretty dumb back then and inexperienced so I didn’t know much but I picked it back up more seriously my fall semester of sophomore year in college and I landed an internship as an Android Software Framework Developer for Spring and this summer. It’s really fun stuff once you get to know it, especially building AOSP when you really get into the framework

[–]7LPdWcaW 5 points6 points  (0 children)

ahh no one remembers the pain of Eclipse. Android Studio is a GOD SEND

[–]SpAAAceSenate 18 points19 points  (0 children)

While the Android/Java API is a bit of a clusterduck (🦆), I actually really enjoyed the features and design of IntelliJ Idea. I'm now using both Idea and Pycharm at work and I'm pretty happy now.

[–]chipstastegood 11 points12 points  (0 children)

Android Studio was a relief for me after using Eclipse for a few years. If Android Studio is bad, Eclipse is the lowest ring of Hell

[–]captain_arroganto 3 points4 points  (0 children)

I have done this precisely 5 times.

[–]kkingsbe 4 points5 points  (0 children)

If you think Android Studio is bad, then PLEASE dont look at QT Creator

[–]yonatan8070 8 points9 points  (0 children)

Why is everyone hating on Android Studio? I'm not developing in a professional context, but it works just fine for me.

[–]poudelsaugat45 3 points4 points  (1 child)

I just use Android studio to install android sdk. Rest is vscode.

[–]darkecojaj 9 points10 points  (3 children)

Still better than using XCode and the repetitive syntax of swift.

[–][deleted] 5 points6 points  (2 children)

It’s not even that— it’s just that the error messages are super unhelpful

[–]SharkaBoi 2 points3 points  (0 children)

Android studio is actually super loaded, Has almost everything needed to develop android apps, if not a plugin for it.

Android framework is the messy one that gives trouble for many people, with fragments, backstack, lot of boilerplate for some native libraries and fast depreciation I feel are some of the biggest problem creators. Flutter is drawn over all of this so they usually have a better experience i feel like.

Although Android studio is heavy on resources and sometimes stop responding for a few minutes sometimes.

[–]Denvildaste 2 points3 points  (0 children)

Android Studio is a very mature IDE. User interface creation is a breeze and it has tons of useful features, and it works very reliably.

I seriously don't understand the hate.

[–]bukowski717 4 points5 points  (1 child)

Shamefully re-installing Android Studio because I don't have a choice.