Hacker News new | past | comments | ask | show | jobs | submit login
Problems with Android Studio (techcrunch.com)
142 points by antfarm on Feb 23, 2017 | hide | past | favorite | 164 comments



I am a coach for an FTC robotics team of high schoolers. We control the robots with Android phones, so we develop with Android Studio. (This is FTC's recommended tooling, and for all intents and purposes the only option). Teaching high schoolers to work with Android Studio was almost impossible.

1 - The author is right: The WYSIWYG GUI tools are buggy as hell and I have just have the kids dive into the XML - which brings its own set up problems.

2 - The gradle system is hard to configure but once it is right and you check in the configs you don't need to change it.

3 - It basically requires 8GB to run with any reasonable performance. Getting a set of laptops with 8GB for a non-profit is a challenge! Even with 8GB, build and deploy cycle can take 3 - 5 minutes.

4 - I do like the remote debugging. It is essential for debugging a robot with a phone that is driving around on the floor.

Android 2.0 was an improvement, but it is still a challenging environment.

I am a competent programmer who uses IntelliJ at work, so I don't know how other FTC coaches could possibly get a team up and running with Android Studio.


Can't agree more. The problem might not be Android studio, it might be the state of development and needing to understand a dozen tools before you can even click "run", but either way you could spend all year teaching the students how to use the tool and still never make anything. Ironically FRC tooling is easier to use than FTC. We ending up using the browser based blocky tools and it has been great. Students don't need anything installed on their computers and can just start building.


You will find the situation far more tolerable if you just forego Android Studio tools entirely and just create GUIs in code.


I agree with all of these points, but I think we might need some other tool to solve them.

Getting students up and running with Android Studio seems similar to trying to teach HTML+CSS+JS, by having students start with Grunt/Gulp + WebPack/NPM + Ember + Bootstrap and more.

We don't usually do that, because it's a crazy amount of complexity for someone just starting out. Most students begin with something like "edit a single HTML file to learn basic HTML+CSS+JS", and get gracefully introduced to the rest as they learn.

I imagine we need an equivalent of that for Android. I don't know what specifically that would be, but it's probably not Android Studio.


AIDE is tolerable enough at the Android development complexity level equivalent to "just edit an HTML file in a basic editor" level of web front-end development (and maybe beyond, that's just about all I've done in AIDE) and it actually runs on Android, which is nice.


100% on the 8GB thing. I have been wanting to contribute to a free Android app that I use heavily, but on my 4GB home machine, I can't even compile it, much less run the emulator at the same time. I realize that's a low end machine, but seriously.


I used to work with below AS 2.0 on a 4GB machine with poor performance. but after updating to 2.2+,I think it won't work without 8GB.


Not a direct solution to your problem, but maybe try React Native? Getting the tooling set up initially is still a bit involved (but way easier than React for the web or Android Studio) but once you have your first view rendering to the screen there's a lot less ceremony required to actually add more features/functionality, when compared to the smorgasbord of required concepts involved in normal Android development. Also, the 2-5 second save-reload deploy cycle (down from 1+ minutes for a standard app) is even MORE important when you're first learning and just throwing stuff at a wall to see what sticks.

PS FRC was my life for 2005-2009... great memories, an incredible program. Definitely instrumental in getting me to where I am today. :)


Upvoted because FTC is awesome and we need to encourage more people to volunteer. (FLL coach and FTC judge here, at some point those will swap)


I hadn't heard of FTC before this thread and I did some Googling. The first link I found was the FIRST Tech Challenge. Is this the FTC that you're speaking about??

http://www.firstinspires.org/robotics/ftc

If so, what a seriously amazing group....if not, I'll update the link!


Not the OP, but yes, that's FTC (my kids are in it).


Excellent - thanks so much!! What an immensely cool organization...I want to get my kids, especially my stepson involved in this....


Fellow FTC Coach here.

Couldn't agree with you more.

Point 4 - Remote Debugging is an especially important one. Not only not having to connect using the cable but saving the tremendous amount of wear and tear on the phone USB connector. This is usually a big factor in robot failure due to loose connections during a competition. Thank God for inventing Duct Tape.

If I didn't personally use Android Studio before it would have been a huge hurdle to teach my team to use it. Too many moving parts, the android ecosystem and the wide variety of SDKs and tooling. What would be considered as a great selling point otherwise is a burden to get setup for a bunch of middle and high schoolers.


Try to look into RFO BASIC. You will find all the required links on http://rfo-basic.com/ and links to various tools with even a compiler for that BASIC dialect that runs on the device itself. Note - Hacker's keyboard is preferred over the standard Android keyboard.


Used 4GB DDR3 sticks based on 2Gbit DDR3 are not that hard to find.


At scale, used anything is hard to find, because you need to keep buying individual items from individual sellers.


I am an Android Developer, and I actually like Android Studio. At least, I far prefer it over anything else I've ever used (especially Eclipse).

Yes, the Visual Layout editor is wildly inaccurate, and yes, the emulator sucks. There's definitely room for improvement.

But if you look past those two issues, the rest of it is pretty nice. I certainly wouldn't call Android Studio or IntelliJ a "gruesome embarrassment". (Is the author aware people willingly pay money for IntellIJ? Even for non-Android, non-Java work? That there's an entire company around IntelliJ and various versions for various languages.)


I disagree that the emulator sucks. With HAXM enabled it boots up at least as fast as the iOS emu and I can customize it to run different images of android.

Overall I love it. Compared with Xcode and the work I was doing before on iOS Android Studio is a dream.


Based on how the Android EMU used to run early on, it is much better. Even then, it is still 50/50 when starting if it will actually boot (and then if Android Studio will connect for debugging). HAXM has helped, but the whole process is very buggy.

Xcode is not the greatest development environment, but the iOS simulator/debugging actually works.

Android development is painful unless you have an physical device to develop with.


> Android development is painful unless you have an physical device to develop with.

Does anybody develop a serious Android application without testing it on an actual device?


Not testing, developing.

The IDE talks to the emulator via ADB. It does not have to talk just to the emulator, though. You can replace it with a physical device, the IDE doesn't care.

When you replace the emulator with a physical device, it gets much better.


I do a huge chunk of my development with physical devices. It would just be nice to have a quick and reliable emulator as a fallback for those times when you don't want to carry a development device, or when attaching it to your machine would be awkward, risky, or horrifically dorky looking.


Testing no. Develop yes. The people with Android phones in the office can add entire features to our iOS application using only the simulator and then test on a device once they are almost done. Trying to do the same on Android is an exercise in frustration.


My main complaints are - 1) The updates for GPS versions have been quite bad recently. 2) Can't run VirtualBox and Haxm on the same machine.


> Can't run VirtualBox and Haxm on the same machine.

That's exactly what I do. Didn't try it on the same time, though.

What I had problem with in the past, was running Hyper-V and HAXM. Both require their own hypervisor, both need a reboot to activate it and they cannot be active at the same time.


Interesting. Doing work on both platforms, I have had the exact opposite experience. I used to feel like an empty shell of false hope when on the Android side of things, like trying to babysit a rebellious teenager. I suppose it comes down to preference.


I definitely think preference is a lot of it. Just figured I'd share my experience as a happy android dev!


Can you please tell more about your hardware? CPU, GPS, RAM and motherboard? I am genuinely interested. Would like to know the configuration which makes Android development pleasant.


My emulator runs great although I still have a HDD(vs SSD) which bottlenecks emulation once in a while. My setup is a Core i7 3770K, 32GB of DDR3 RAM, and Windows 7 Enterprise. My emulator is currently consuming 2.7GB of RAM.


Thanks for sharing.


Not the above, but it runs great for me on both my desktop (Intel i5-6600K, 32GB RAM, SSD, some random ASUS ROG mobo), my old desktop setup (Intel i5-2500K, 16GB RAM, HDD) and my laptop (Intel i7-4760HQ, 16GB RAM, SSD).

It certainly runs far better than Xcode, since that won't even start on any of those!


I had a higher end Mac Pro when I was doing iOS development and Android Studio is way more stable than XCode and the emulator is at least as fast.


4.2ghz OC'd i5 4690K, 16gb ram (would like more though), Asus Maximus VI Hero ATX mobo, GTX 970 card. It's not a terribly fantastic setup, it's mainly the HAXM integration on the emulator. If you haven't tried the emulator since that was included you need to. It went from 5 minute startup to 30 seconds tops. And if it's already running then rerunning the app is nearly instant.


I am also an Android Developer (who has lots of experience on other platforms like Linux [embedded and desktop], Windows, etc) and like Android Studio mostly just fine.

It is all relative, I guess. I started writing Android apps when the Android SDK on Eclipse was the official solution and compared to THAT Android Studio is an incredible improvement...

It does have its warts, for sure. I don't even bother trying to use the GUI layout designers and just stick to hand-writing the XML. I don't use the emulators, I stick to testing and debugging on-device. (I have had the emulators in states where they worked just fine, but the requirements for lower-level HAXM support to get them running at an acceptable speed do cause a lot of problems in the real world).

I don't understand why it ships with "Instant Run" enabled by default since in my experience that feature still cannot be trusted in any but the most featureless demo apps. That feature should still be treated as very experimental and disabled by default so as not to cause serious confusion among people who don't understand the implications of using it.

All-in-all my list of complaints is pretty small, though... smaller than the list I've had for any IDE I've used regularly since Visual Studio 6.0.


The old layout editor is indeed awful .. I don't think anybody has tried to use it for more than 5 minutes. You just forget about it and write xml instead. Since Intellij is great at assisting you in auto-writing the cruft in xml, this is very efficient.

The New Visual Editor is pretty good, as well as the new emulator. The layout editor has been rewritten from scratch and it really shows.

There is definitely room for improvement, but "gruesome embarrassment" is ridiculous.

Especially with all my cross platform colleagues hoping that they could use Intellij instead of xcode on iOS.


I have issues with the Emulator due to needing virtualbox to run my ArangoDB instance. So I moved to just running Android as a VM instance within VirtualBox. The end result is a fairly nice setup.

Edit, here's a good source for an image. http://www.osboxes.org/android-x86/


IntelliJ might be a bit slow, but it still kicks ass.

What I see in this rant is another spoiled new-school dev who wants everything handed to him on a silver platter. That's not to say Android Studio could use improvement; more that this guy seems to lack the mental tools needed to reason about complex software


If the author is a spoiled new-school dev, then you are a grumpy and bitter old-school programmer.

I don't see any devs, old or new, using HTML table tags to build grid systems just because "Hey, I'm so smart that I have the mental tools needed to reason about complex TR, TH and TD tags". It's 2017, if the author is asking for a more competent dev environment then he has the right to his opinion.


You don't need all that many mental tools to reason about TH, TR and TD tags.


I think he was referring to having the only method to alter frontend components is through the raw data which is XML. It sort of fits how things were done decades ago.

I'm not totally against it, but his point stands. Even C# and .NET with WPF has XAML data to modify directly, but it's much more robust. iOS puts a spiffy dev GUI in front of everything and tailored in a way that doesn't really restrict, but still allows the option to dig into the raw side of things. However, it's still very necessary to reference the raw data on AS, so much so that there's a UI for the raw data.


What do you mean? do you need drag and drop to build UIs ?


If they're there, why should they not work well, and why should I not use them? Using tools like that does not diminish your ability as a programmer, just like refusing to use tools like that does not somehow make your e-penis bigger.


Sure, use them but in most cases using WYSIWYG tools you get a lot of extra garbage then if you write the layout by hand,especially with html. GUI tools are great for new developers though, they can build a GUI fast and learn the under the hood markup gradually, I am not sure if there is such a good GUI tool that makes good markup without the developer understanding under the hood.


> If the author is a spoiled new-school dev, then you are a grumpy and bitter old-school programmer.

Yer damn right I am! Kids these days!


Yeah man, I don't get it. There are shitty parts of android development, and there are great parts of android development, but android studio is fine. (I didn't say great, I said fine. Perfectly adequate.)

NDK programming still sucks, although it's been slowly getting better. Android's activity/fragment lifecycle/state restart is a bugfuck. There are legitimate grievances to be had here, but this guy isn't hip enough to the system to make them.


Yeah, bit by bit a lot of the rough edges are being worn away. The one thing in addition to the bananas lifecycles and execution models that really gets my goat is how hideously slow the modify-deploy loop is, and that there's no good way to modify running code.

I do a lot of custom UI work and then you really don't have much choice other than to run your app every time you make some small adjustment. And no amount of fast CPU, Genymotion, or super fast devices has made this fast enough. Web devs don't know how good they have it.


From your lips to god's ears, man. Having a tight development feedback loop is truly a blessing. They've been working on it little by little, but compiled languages just kinda hurt in that regard.

That said, native is one of those places where you just have to have a lot of compiled code. Those lil phones try hard, but battery life being what it is, performance is a factor. Javascript can only go so far. Especially for consumer development, when you are going to get taken to the woodshed if somebody's piece of junk twenty dollar android special can't hold it together.


I wouldn't lay the blame solely on the fact that Java is a compiled language. The loop is way faster both in iOS with their simulator and even with C# on Windows Phone/UWP, even though all those platforms use compiled languages as well. Like everything else with Android, the build process is a bit of a convoluted rube goldberg machine and compilation is just one of many steps that eat time.

Also, check out Xamarin Workbooks for a good demo of how developing with a compiled language can actually be interactive.


Well, the iOS simulator is leveraging it all running on the same box. Putting an apk up to the device can be arduous, depending on how big your app is and how bad your device is. Those swift... (edit) playgrounds, I wanna say? Those were really nice when I played with them. Getting better all the time too, although you have the obvious problem of maintaining broader application context in a non-RESTful environment. Still, slow but steady progress on hard problems is more than enough for me personally.


Google is aware of that.

Meanwhile, check out Flutter: https://www.youtube.com/watch?v=Mx-AllVZ1VY


Have you tried Instant Run with Android Studio 2.0?

You can build your code deltas and re-deploy your app, even restarting the current Activity you were on before.

This has made worlds of difference for me when tweaking custom, finicky UI pieces as you describe. It's on the same order of magnitude of speed as the web devs F5-ing their browsers.


Preface: I understand the uselessness of the comment I'm about to make to someone with presumably a functioning android app they're developing on...

I've found this to be one of the brightest spots of working with React Native. Having most of the application code in Javascript and good debugging tools really reduces that cycle. I use an app called Frappe and it's just shift-cmd-r to reload the app's javascript.

There are still some parts of the app we're using native code for, and it doesn't help there.


Addendum: The performance/memory tuning tools way suck in android studio compared to iOS. Mobile performance still matters, guys.


I'm not an Android developer, but I installed Android Studio a few nights ago just to play around with Android.

I'm not sure where the author's coming from, but the IDE seems fine to me. I use IntelliJ at work, so that's what I'm used to. Maybe there's stuff that an actual Android developer would have issues with -- more advanced features, but I thought that the tool was leaps and bounds better than the Eclipse extension that used to be supported.


> but the IDE seems fine to me.

What? How can you declare this after spending at most a few hours in the environment?


I do mainly iOS development, fulltime for about 4y. Before that, I developed Android, mostly in Eclipse; so I know both worlds. And before Swift I actually preferred AppCode to XCode, which is also based on IntelliJ. XCode is stuck in the nineties, while IntelliJ is such a beast, functionality-wise. Sure, it's less snappy and the font rendering is bad, but if you can live with that, it will make you a better developer. You will start "intent driven" development, where you define algorithms with method placeholders first and only afterwards declare the methods. Your classes and vars will have better names because renaming is a joy instead of being a shot in the knee. You will get a better grasp of the architecture by looking at call hierarchies. You will never again miss an instance of a renamed method in some selector, because searching for references in AppCode is perfect.

And you get all this with Android Studio, too. Let's not forget Kotlin, which might not even exist without JetBrains' involvement in Android Studio.

BTW I sometimes fell back to XCode even when I was a heavy AppCode user, e.g. when the battery was running low. Switching is mostly seamless, because both watch the filesystem and seldomly complain about clashes. Perhaps one could use some lightweight Java editor alongside Android Studio, too?


It does not seem like the author of the article has spent a lot of time with AS either.


> I'm not an Android developer...I'm not sure where the author's coming from, but the IDE seems fine to me

You seem wholly unqualified to make this type of judgement


He's probably as qualified to make this type of judgement, as someone who opens Android Studio twice a year.


The author has 100% more experience than someone who opened it up one time last week for funsies.


Do they? Nothing they've demonstrated shows that they do.

But I will say that if someone is accustomed to A, and they are forced to use B for a short period, it is incredibly common for those users to bitch and gripe about how terrible B is simply due to lack of acclimation. The fact that they develop for Android infrequently makes their observations less valid to me, not more.


I'm saying someone who has tried to actually build a product using a particular tool has a lot more experience than someone who poked around for a bit. The author has legitimate grievances with the product confirmed by many comments in this thread.


Yet the people who report using it frequently have the most positive assessment of it. Shouldn't those people have the most relevant observations?

Yes, Android Studio requires a lot of memory, but welcome to 2017 where entry computers have 8GB. Beyond that, their complaints are whiny "this is strange and unfamiliar and threatening to me" bullshit.


No is saying anything even remotely positive about the gui editor. Gradle is extremely complicated.

There are real complaints here.


I despise gradle, but Android Studio is well above the "average" point. And as anecdotal evidence, multiple people I know and work with have switched from iOS to Android or vise versa in just the past few months - they've unanimously preferred Android Studio.

A significant part of that is because XCode has loads of magic incantations that you have to perform when it starts flaking out (which it does much more often). Caches to clear, library files to delete, etc, sometimes one works and sometimes another does and it doesn't help you figure it out. XCode has such a problem with mishandled caches that multiple community tools have sprung up to aggressively delete it, e.g.: https://www.cerebralgardens.com/watchdog (and they're still insufficient! they just address the most common annoyance)


I mean, gradle vs cocoapods... I gotta go with gradle. Yes, it's a new configuratio language to learn, and yes, that is an odious chore, but honestly, if I'm leveraging ecosystem library projects, I don't think I've seen a better compiled alternative (excepting the super mature web ecosystems, of course).


> gradle. Yes, it's a new configuratio language to learn

Don't forget Gradle has the choice of 2 languages to use for configuration -- Kotlin and Apache Groovy. If you use Kotlin you get:

* full Android Studio support for auto-complete hints because Kotlin is statically typed, and Kotlin and Android Studio are both created by the same company, i.e. Jetbrains. (Groovy is dynamically typed and auto-complete only works 80% of the time.)

* Kotlin can also be used to build actual Android apps instead of Java, so you can use the same language for building the app and writing the scripts for builds, tests, etc. (Groovy had Android support added, but 2 yrs ago the programmer who do it was retrenched from VMware and no other business wanted to hire him to continue the work, so it's a bit dated.)


Kotlin has been on my list of new languages to investigate for a minute, just haven't really found a use case for another JVM language that isn't really pushing the envelope. (That's not a dig, it seems like a nicer iteration of java all around, I just don't have many major grievances with java for doing java-y things.)


Sure, it's better than nothing. And it does function, and it has (vastly) simplified adding third-party libraries. And there are much worse alternatives.

But it's not debuggable. It's not introspectable. When things go wrong, you're left hoping Stack Overflow has a magic piece of copypasta to save you from days of guessing. To integrate with it you practically need to do what Android Studio has - work directly with the Gradle team to expose enough information to custom-build an IDE that can make use of it.

It feels like it could've been achieved more simply by other means. Instead we have a truly massive, very slow build system that few understand, and for a long time (including after Android Studio's adoption) didn't support basic, long-standing features of the Java build environment (like "provided"-scope code (common in many languages! arguably universal!) and annotation processors).


Especially compared to the Ant/Maven build system that pre-dated it, gradle feels great and is so much easier to do complicated stuff like different build configurations, etc. I shudder just thinking about Ant.


Can you please talk about your frustrations with Gradle?


As an Android developer, this article is clickbait. However, had this been written just a few years ago it would have definitely rang true. Android development was truly in a gruesome state - based off of Eclipse and clunky build and a mishmash of tools that weren't well integrated. Perhaps that set the bar low, and there are still more improvements to make, but it's a great platform to build on.


I tried android development few years ago and IDE it was horrible. I tried a month ago again and it was still horrible even though it was different IDE.

It still feels like doing MFC windows app in some ancient Visual Studio.

Why can't all new GUI IDEs start at least at level that Delphi was 20 years ago?


What is it that delphi did that you want? The gui designer? The speed of compilation?


Gui designer mostly. And the ui of the IDE itself.

I want to feel that I'm in control of building an app.

Android Studio (and Eclipse before that) made me feel like I'm taking unguided tour over bad decisions of android API creators and lack of giving a damn of IDE creators.


I don't know if you've looked at modern delphi, but it's not that different from IntelliJ. It seems amazing that delphi 1 was perfectly usable on a 640 x 480 screen, showing a complete IDE with a GUI designer, code editor, panel, menu and toolbar.

Delphi 1: https://winworldpc.com/res/img/screenshots/1x-1a684e073c9048...

Delphi 10: http://uimg.in/images/2017/01/05/e4vC6sN.png

When I break apart the UI differences it's obvious delphi's UI had to grow to accommodate the growing complexity of the projects built with it, and that delphi 1 could get away with being simple because it wasn't expected to do all that much. Still, when I look at that delphi 1 screenshot all I can remember was how fun it was to program in it.


One of the feature I really liked is specifying anchors and size constraints for all elements of the ui. This is so intuitive and behaves so beautifully that I'm at loss why it wasn't done like that in CSS and in all of the IDE gui designers that came after Delphi.


You know that Delphi is available nowadays also for Android and IOS ? afaik it should also have a working Gui-Designer.. but it uses its own Framework Firemonkey


Great news! Is it any good? I'm bit afraid since the genius behind Delphi now does Visual Studio (Code) for MS and his touch is incredibly visible there.


Intelij IDEs are not slow because are made with Java, are slow because they have tons of functionality, they are not simple text editors, when you start it, from what I noticed it builds in memory a representation of your entire project so it can help you with intellisense but also with warnings for mistakes,other nice feature is you can set a code convention and it will show you in real time if you did not respect the conventions.2 The IDE is confusing if you are new to it, but I used Eclipse too and is similar, maybe the author should try a text editor instead.


What features does Intelli J have that a combination of Visual Studio + Resharper doesn't have to make it so much slower?


VS + Resharper is slow as shit for me and I have a workstation with a Xeon and 32 GB of RAM.


Resharper is made by Jetbrains, the makers of IntelliJ, so they are the ones behind the intelligence in both editors.


Why do you say it is slower then Visual Studio, I think VS was slower when I used it. Edit: About features, I do not know, I used VS a few years ago when I was doing C# , then I worked with Adobe AIR and after that with PHP/Web , after using Eclipse I got IDEA Ultimate and use it under Linux and it is fine, but I can't compare how PHP/Web works now vs how VS works now, maybe someone could try the new C# IDE vs VS and tell us if thee is a noticeble difference after the project is fully loaded.


As someone who rarely does Android development (but does a little bit here and there) I agree that Android Studio can feel heavy when you're barely using any of the features. And the quantity and depth of menus you almost never use can seem Byzantine.

Conversely, it's also surprisingly easy to just install and run with, though it does take time to download all the components and the first Gradle build can take a while if your machine is older.

The first time I used it I was shocked at how painless it was to get going (I came into it expecting it to be an endless nightmare of configuration and headaches a la Eclipse).

I continue to use it occasionally and without trouble on a more than three year old Inspiron 3000 with only 4 GB of RAM and a cpumark score around 1700. (Of course I'm also not really using the emulator on that machine and just debugging on an actual device.)

I've also almost never used the visual layout editor (after seeing that is existed) just because the layout system reminded me of flexbox and CSS, so I felt comfortable just writing layouts. So maybe it's bad, but I've also never felt like I needed it.

Could it be better? Probably. Is it completely terrible? Not really.


This article is about as embarrassing as Android Studio is. Multiple areas are plain incorrect, and zero effort seems to be made to do any kind of investigation or provide any actual information.

Maybe we should stick to only posting techcrunch articles about finance or insider startup news, and find better sources for critiques in development environments.


Android development has regressed heavily

I've been building Android software since about 1.5, and these days I can't even create an empty project that builds with Google's toolkit

-> create an empty project, hit build, get weird gradle error messages, .so issues, compilation problems, internal IDE errors, UI previewer doesn't work due to some old .jar that gradle has pulled down, and so on.

and pressing "build" takes 60 seconds on an empty project!

vs. the old ant system that seemed to work out of the box, and would build under a second

(and I pay the Jetbrains subscription for IntelliJ for my non-Android work! and love IntelliJ!)


No it hasn't, its just you I'm sorry. Full time Android dev, ith no problems ... But yes the preview isn't great. Hotswapping with Jrebel, no bugs under 3 seconds. Fuck eclipse and ant, really. God I hate this thread.


This author, per his own unintentional lede, opens Android Studio twice a year. Why does he have any authority on this? This article is a bunch of reactionary first impressions written by a novice.

I use AS every day, and have been since it was 0.8. It's powerful and makes everything I do easier. About the only point I'd give him as accurate is that you've got to have the powerful laptop to run it.


This sounds like a developer who is merely more proficient in XCode than Android Studio.

I find BOTH of them to be much more difficult than I feel like they should be. Many things in each are not intuitive.


i quit android development a few years ago because of that awful eclipse plugin environment. I recently started writing a little android code and Android Studio is a breath of fresh air for me. The biggest pain for me is the SDK manager but almost all IDE's are awful for stuff like that.


Wow.. maybe if this guy "fired it up" more than once or twice a year? And the comment about it being based on IntelliJ (which I actually use rather than Studio) and thats bad because IntelliJ is for java(1) ... hmm.. what language are virtually all Android apps written in? And as others note, HAXM works well to speed emulation.

1. the platform does far more than just java as well.


> it’s based on the long-in-the-tooth IntelliJ IDEA platform

I don't do Android development but I've fired up Android Studio to look at android code another team writes from time to time but with the above statement you lost me 100%. IDEA is awesome and and I gladly pay for it. It is, in my opinion, the best IDE out there right now.


I've been using Android Studio ever since the first public alpha, and while it used to be a hot mess, they really cleaned things up since 2.0

I personally think that AS/Intellij are the best IDEs I've ever used. That includes Visual Studio Pro.

The article seems to be complaining about WYSIWYG not working well, and slow emulators. I've never found WYSIWYG to be an acceptable solution, but that's just my opinion. But to throw the whole IDE under the bus because of that is just irresponsible.

Also the emulators are blazing fast on my machine.


I personally like Android Studio better than dealing with Xcode and their project and storyboard files. I don't think Xcode is designed well for small to medium teams -- having to merge those files is a "gruesome embarrassment".


I think the problem is that coming from Eclipse, Android Studio is ABSOLUTELY GREAT. It's an order of magnitude better that what we had.

Personally I think it has a few rough edges (memory/CPU usage, designing weirdnesses) but it's mostly fine. It's Android development itself that still has some pointy bits, especially in regards to building and dependencies.


I am really sick of hearing "technologists" constantly shitting on not-even-very-old tech-slash-software because it doesn't jive with their cloud-infected view of the world. We devs are real assholes in this regard -- if an app doesn't work perfectly we rip it to shreds over incredibly arbitrary and fussy criteria.

Like the Tools > Android thing. Not the best design decision? Sure. But jesus christ does this guy seem to hate that. A lot of us grew up using programs like this and I find the location of the Android submenu in Tools to be perfectly fine. I mainly use IntelliJ for Ruby and all my Ruby tools live in the Tools menu too. If you understand IntelliJ as a Visual Studio-style polyglot platform, then the design makes sense. If this guy would take a moment to understand what he is working with, perhaps he would have much less difficulty.


What's most baffling though is that there is a search bar. You don't have to actually navigate the menus to find each and every setting. Type in your term, and every sub-menu with an applicable setting will be displayed. From there, just use a bit of logic to filter through the incorrect options.


No, this rightfully deserves to be ripped apart. (Not specifically the Tools > Android thing.) This isn't a small company struggling to put something out. This is Google. There is no excuse for the defects and faults that Android Studio has.


This is a rather ridiculous article to write. Android Studio/IntelliJ/JetBrains IDEs have better linting and code completion than XCode. Not to mention optimizing/auto-imports rather than typing them out in XCode.


As someone who has to deal a couple of times a year with building and deploying Android and iOS apps, the third-last paragraph is 100% agreeable:

Android is better for testing and distribution but sucks at development (well, that's natural given that everything is written in f..ing Java, I've never seen a Java application that is both complex and fast/resource-saving), and Xcode/Apple is better for development but sucks so much for delivering, even for testing.


Professional android (and previously ios) developer here.

If you know what to do then AS is pretty great. If you want to compare it with xcode then xcode is a sad state of affairs imho, lacking a lot of features that AS has.

It was a bit painful to have to see my ios colleagues have to resort to textsearch to find out where a certain member was being accessed, i mean come on.

The little ios dev I still do I do in Jetbrains' AppCode. Much better for actually coding.


[quote]It was a bit painful to have to see my ios colleagues have to resort to textsearch to find out where a certain member was being accessed[/quote]

I can imagine. Especially when it's one of the few features that actually exists in Xcode.


Put cursor on the method. Tap the icon of a 2x2 grid for the file. Tap the callers menu item.


Yeah now I read my post again the sarcasm wasn't completely obvious. Sorry. Still I was working today in Xcode and the reason I still use CMD+SHIFT+F and T so often is because it's so blazingly fast. Instant. Other IDE's have a full text search that is much slower than a more exact method anyway.


I'm with you on AppCode. Waaay better editing/completion/navigation than XCode.


Lately I've been hearing more complaints about xcode then android studio. Though xcode's visual layout editor and simulator are still miles ahead.


Well, one of the difficulties of Android development is one of Android's strong points as a user - multiple device configurations. If Android were like iPhones (x models, each with precise specs), life would be much easier - you wouldn't need all the LayoutManagers - everything can be written with precise pixel specs (although you'd have to upgrade your code when a new model comes out).

My biggest gripe is more to do with the language. It's somewhat surprising how a company which can invent a simple language like Go created a monstrosity like the Android API, and while I understand that in the first couple releases they had no choice and no experience, I would have expected them to rethink their API model in post-lollipop.

My personal gripes:

1. Lifecycle management - how many entry points are there into your app?

There should be an entry point (app started) and one exit (app ended). And don't get me started on Fragments.

2. Callbacks - Why Why Why WHY?! I understand that closures are a new feature and were not available for most of Android's cycle, but inner classes are so ugly, I'd rather write it manually (using a single on-event function with a switch/case on events firing) than use inner classes.

3. Not fully OO. Why can't I pass object around? Why only strings?

4. File/Stream dichotomy - Some things are done by file, others by stream.

5. Library - Practically, almost all modern "Native looking apps" (meaning, not Q or OpenGL based) rely on appcompat, and will always require appcompat (Google recommends using AppCompat even if you're not targeting old phones, since they fix bugs in AppCompat which they can't in Android). So why make a "native" library? Keep the basic "native" library small and keep the code in appcompat?


So as someone who does mostly scientific computing but within programming-flavored editors (like sublime), I find XCode/ Android Studio/IntelliJ/Visual Studio sort of terrible in their own special and unique ways. But IntelliJ never struck me as being all that bad to be honest.

Eclipse, on the other hand...


It's clickbait to get an Xcode vs AS flame war going, aka Mac vs PC for today.


Reading through the first few comments here, I haven't seen anyone say that they prefer Android Studio over XCode or Visusl Studio.

When I had a choice years ago to go down the Java path or the .Net path, I chose the .Net path partly because of the quality of the development tools. Also I trusted MS to evokve the language more than I trusted Sun and now Oracle.

I launched Android Studio and it still had the "Java stink" to it that all Java based GUIs have.

But XCode and IOS development definitely is a lot more polished experience than Android development.


I think it's more that it doesn't really need to be said.

I use Android Studio, Xcode and Visual Studio daily. I prefer Android Studio by a mile because of the great integration with testing, build tools and command line. It's slightly more productive than Visual Studio, and both Visual Studio and Android Studio are leaps and bounds better than Xcode which spends 10 minutes trying to make sense of C++ code and then crashes when you scroll around a storyboard while throwing up bouncing colored doom balls every few minutes.

EDIT: Choosing a job because of those things sounds like something you'll regret in the future. There are far more important considerations than 'Java stink'.


There is nothing more important than not being stuck with using a tool everyday for 8 hours a day that you hate.

After using R# everyday with Visusl Studio for years, I got a job that wouldn't provide Resharper for developers. I bought it myself without a second thought. I want the tools I use to be seamless as possible.

As far as the other reason I chose to base my career on .Net rather than Java once I decided to move away from C++ bit twiddling - that I trusted Microsoft to evolve the platform more than Sun, in hindsight it seemed prescient.


Ah interesting. To me that just sounds like saying there's nothing you hate more than using a hammer when you could be using a screwdriver, and this is from using a lot of VS and Eclipse/idea. I can see where you're coming from though, and of course, different people are different.

At the end of the day, all that matters is what matters to you.


> I haven't seen anyone say that they prefer Android Studio over XCode or Visusl Studio.

I'll say it, I vastly prefer Android Studio over XCode. And I'm an Android Developer who uses Android Studio every single day.

I do like Visual Studio a lot as well, it has been a nice experience for all of the times I've used it. But I prefer to develop in the languages and environments supported by IntelliJ + Android Studio (Java, Android, Ruby) over Xamarin-based .NET work available in Visual Studio.


I, too, work in Visual Studio predominantly. That being said, I've used and liked WebStorm and IDEA. I've played around with Android Studio and as a non-Android developer (someone who just gets an itch to dabble), it is orders of magnitude better than the same experience in Eclipse. An IDE I actually like (or liked. Haven't done Java development in a while, but that web hosted IDE thing looks promising) for regular Java application development.

Android Studio I probably like better than XCode because it feels more akin to Visual Studio. XCode I really want to like, but it feels incredibly foreign vs Visual Studio-like UIs. Though I hear people that love it, so there you go.


I do IOS development, Android Development and used to but no longer do Windows/XBox/PS3 development. My preference by best overall to worst would be Visual Studio/Android Studio/command line/XCode.


Here's mine:

Visual Studio > XCode > Notepad > driveway chalk and a hose > Android Studio > Eclipse


The last time I installed Visual Studio it was a bloated pig that spayed over 30GB of data all over my SSD.


Now it's just 400MBs if you only want C# (WPF + WinForms) Desktop apps. My workloads add up to around 12GB (C#, UWP, ASP.NET, .NET Core, NodeJS, Python, F#).


Android studio has improved a lot and I think it is easily the best Android IDE out there. It is in-fact hell lot better than Xcode in my opinion.

There are indeed some issues with Android studio mostly related to visual design but I have never found that to be a handicap because you are generally better off hand coding all your layouts.

I would love to see tighter integration with Firebase, Azure and AWS though something that is missing right now.


Having used it on windows and linux, i still find the experience more fluid on the later. Don't know why.


In the words of an Android team member I talked to recently, "You use Windows??"


This is a little off topic, but has XCode really gotten that much better? When I was using it back in 2013 it was, by far, the worst IDE I had ever used. Less functional than eclipse with the same ability to consume all my ram. It also crashed constantly and randomly.


XCode got better, then with XCode 8 it suddenly got a lot worse, at least as far as crashing and speed was concerned. I think it's gotten a little better again with the most recent version, or at least I haven't noticed as many problems.

See "Is XCode 8 the worst release in recent memory, or perhaps ever?" https://www.reddit.com/r/iOSProgramming/comments/54r9ro/is_x...


My mileage was different. I started using XCode in 2010 and thought it was one of the better IDEs for the Mac. Spent a week watching WWDC videos in that summer and never had any major problem with XCode thereafter.

And yes, it got a lot better year after year too. Everyone's experiences vary I guess. I personally don't like most of the heavy IDEs for Java.


This guy should have tried coding for Android before Android Studio...then he would realize how much better things have gotten. Oh don't forget about unit tests... I get frustrated with it sometimes, but It's still much better than before...


I think this is 1000 times more embarrassment for the writer than Android Studio is. Too many factually incorrect things in the article it was so hard to finish.

I can understand why someone who opens it twice a year would think this way though.


Probably cause they don't need to bring it to the hybrid Chrome/Android notebooks that's emerging - I'd expect a more elegant solution to accompany that given the massive school student focus.


My 8GB Macbook Air could make an omelette if the build goes on for 3/5mins.

Theres is commented out line in one of the grade flies about HEAP size, I read about uncommenting it & poof my build times noticeably reduced.


Eclipse is free and let's you develop whatever stuff for different platforms. It's slow, yes. But can you use XCode to write some Java servers that has thousands of classes?


With the existence of IntelliJ Community Edition, there isn't really any good reason to suffer along with the bloated carcass of Eclipse.

And buying IntelliJ is only $150. Everybody has their own calculus of convenience versus money, but for me at least, that hits a spot where better tools and the time I save is more valuable than the money they cost.


This isn't about Eclipse. It's about Android Studio which is based on IntelliJ.


There's also Kivy (http://kivy.org). Not with a sizeable sponsor like React or Xamarin, but it's Python :D


Commenters here who say Android Studio is fine, I suspect you haven't tried developing for iOS, I did (I develop for both for a long time) and I totally agree to the criticism.


I also have, for a while, and think the article is bull. Every time I have to use XCode I dread it, it has the worst linting, its symbolic icons make no sense to me and I keep forgetting what they mean, finding settings is a pain, and worst of all I've had it crash on me a lot, as well as refusing to parse my code at all. It's a nightmare IDE.


xcode isn't particularly great, friend.


Yeah, uh, does the syntax highlighter crash every minute in Android Studio? Does the Java compiler regularly segfault? Beating Xcode is not difficult.


I'd much rather hop to the finish line with 1 leg than roll and drag my torso across the ground.


I take it as part of the price of being portable. It is also easy to set up the toolchain in a build environment (no need to have an AndroidDesktopOS to build Android apps).


The most wonderful thing about Eclipse was how much its name annoyed Sun.

If only Google could come up with a name for Android Studio that annoyed Oracle that much.


This is why mobile devs get paid more ;)


I wish they would just kill Android after 7, since nothing new/overhauled is on the horizon, the other project OSes that google is working on should debut(Fuchsia/Magenta) & have performance (Go/Swift anyone?) as the core priority instead of crossing over Java apps from the previous behemoth.


someone just starting out...what tools can I use to make the dev experience better than just using android studio? Typically I make a small UI change and rerun it to my device....rinse and repeat. Is there better ways?


Sadly, Android Studio is now the only game in town. My advice would be use AS as close as possible to how the tutorials recommend. Technically you can still build android apps with Eclipse or the cmd line but, as a new user, this will be difficult.

Personally I'm going to skip Android Studio and wait until Google changes their mind again and moves to a new IDE. Should be only a year or so. ;>


Better than Eclipse


My PC happens to disagree.

I have to configure Studio in laptop mode and prune several pkugins, to have a similar performance level.


Yeah - Eclipse is often referred to as the monstrous, slow, feature-full beast. But Android Studio is significantly further down that track than the ADT was on Eclipse.

AS is an enormous RAM hog, for instance. I have the space, so I prefer that - unused is just wasted. But it's wholly incapable of running on lower-end hardware that can run Eclipse just fine.


I used to bash Eclipse, but AS made me change my mind to never use InteliJ, unless I really have to.

Unless this is a side-effect of Google's doing.

My PC runs VS 2015, Eclipse and Netbeans just fine.


I'm curious: Is this an effect of complexity in Android programming, or has IntelliJ gotten bloated and complex?


Bloated and complex is definitely fitting for IntelliJ, IMO. It handles its complexity pretty well from a user standpoint, but (like many mature IDEs) it has mind-boggling feature-creep. And then you add Android's quirks on top of that.

I mean, I mostly like it that way - I'm not saying that's a bad thing. The more my IDE can do for me the better, and there's rarely a reason to remove those abilities. But it has costs.


Agreed. I use Eclipse daily and Android Studio, fresh install, one project, feels mybe 50% as fast as Eclipse with several plugins, several projects open.

The delay between typing and actions is just too much.

Maybe I'll try it again when Android Studio v3 comes out.


If anyone is interested, I could bring in a kind of fresh and neutral point of view on Android Studio, as I have never done Android nor iOS Developement before, but have seen many other IDE's, and just 2 days ago I did a fun project with Android Studio for the first time.

The goal of the project was to control a Lego Mindstorms via Bluetooth, over a attached Android Smartphone which can be remote controled by a WebInterface...

Luckily someone else did this allready, http://www.smartlab.at/articles/android-wifi-htm5-nxt-robot-... so I thought I can just import his Project and then start modifiying it a bit ...

I was curious if I could manage it, without reading a Tutorial or doing a Hello World for Android or something similar first ... because I have some Java and Eclipse experience and Android is basically just Java, right?

In the end, well, yes I kind of managed - but it took me about 4 hours messing with configuration files and reading help sites, before I had the whole project running (and not stable, though)

Main problem was, that the Project I used was quite old and for Android 2.2(which I did not know in the beginning) and Android Studio just imported it without warning, but ignored all the old configs and just set the sdk of the Project to the latest Android - and therefore just didn't run on, nor connect to my old Android 2.3 nor 4.x Devices - without telling me why not)

Otherwise, many things did worked out of the box (that means after a lot of downloading and waiting and then downloading again ...) and in a expected way ... and unlike what some people here think, I had the impression, that there was indeed quite some work and polishing behind it. (yes, IntellIJ seems nice) Even though - it did felt adopted to and not made for Android in many situations.

And it is slow.

So very, very slow.

And even though the hardware I used, is quite old, other IDE's like Visual Studio(Code), or my main tool: Chrome Developer Tools, run fast enough.

And the UI is unfortunately not very intuitive. Too much buttons and information, I did not needed for the tasks I had and the ones I did needed were allmost burried under all that mess. In the end I usually found, what I searched for and it never took too long, but probably more because of my previous Eclipse(and similarish)-Experience, than because it was where I would expect it intuitively.

So to summarize I would say, it is indeed quite better than how Eclipse was in my memory, and I disagree with "gruesome embarrassment", but still, I am so glad, I don't have to actually work with it ... and I decided to not use it any further and rather do the mindstorms project again from scratch, but with HTML5. But this also might be, because I never really liked Java in the first place, so Android Studio maybe did not had a real chance to change this. But while thinking about it, it is also very possible, that I never enjoyed Java programming BECAUSE of Eclipse/NetBeans...


The answer is simple: Google honestly does not care. The parts that are IntelliJ are great and work as well as IntelliJ does. However, the parts that Google is responsible for (the emulator, the GUI designer/layout preview, the gradle plugin) just absolutely stink. And there's really no excuse for it, other than Google doesn't care enough to put people on the project. If they wanted, they have the manpower and the brainpower to make top notch developer tools; tools so great that men would fall to their knees at the sight of them. But instead, we get something who's selling point is, "It's better than the Eclipse plugin" because they simply do not care.


That's the vibe of the entire Android project, though. At least the developer-facing side of it.

Lots of the SDK feels poorly-thought-out, even relatively recent additions.

Some things that exist for both Web and Android are worse on Android, inexplicably (Location for instance).

Lots of Googling a problem, finding a bug report for it from 5 years ago, and reading in the comments saga of "not a bug, intended behavior", "no, seriously, it's a bug, learn to read (x10)", then a stretch of months of "will you please fix this? It's a big problem.", "here's a workaround", "thanks!", "here's the fix, it's a trivial 2-line change, please pay attention Google!" then a silent "CLOSED DUE TO BUG BEING OBSOLETE", then several, "but wait, this still happens in the latest. Do you guys even test?", the last of which dates to a week ago.

[EDIT] Oh, and mediocre technically-complete-is-the-best-kind-of-complete documentation full of bad examples (to the point of being outdated and broken, sometimes) and bad advice.


Couldn't disagree more. The Tools team has made huge progress - the new emulator is so much better than the old one, ConstraintLayout is a huge upgrade for using the layout editor, and there's a huge push to fix performance with the Gradle plugin.


I'm seeing pushes to do this, and promises of that, but this is all stuff that should have been there from the beginning. The Preview window still stumbles on views imported from the Support Library, the emulator is a little better but still not great, Instant Run is a disaster, and Constraint Layout just now came out of beta.


You only need to read the comments section to see how many things the author didn't seem to know. So much so that I almost thought it was a fake news story. His comments about the emulator were baffling to say the least. On my MacBook the emulator is extremely fast with the Intel HAXM driver. In fact, I'd even say that it's just as fast as the iOS simulator.


I saw this nonsensical opinion piece on here before with a large number of comments, the primary being that this is yet another "I'm Not Comfortable With This, So It Sucks" bit of noise.

Guy seldom uses tool, thus finds it illogical and confusing. Story of every casual user in the history of time. I seldom use XCode or OSX, and I find both of them to be unintuitive messes, yet I have the wisdom to realize that's mostly just lack of acclimation.


A lot of it has to do with the inherent problems with the Android platform.


Is it still Eclipse? Anything Eclipse based is always going to be a clunker.


No. It has been based on IntelliJ for quite some time now


> One problem, of course, is that Android Studio was not built from scratch; it’s based on the long-in-the-tooth IntelliJ IDEA platform, a Java IDE… and, well, you can tell. It feels like fifteen-year-old software, and it’s all too apparent that it was adapted to, rather than built for, Android development. (Again: “Tools / Android.”) And, of course, it’s written in Java, which makes it multi-platform… but slow.

If you get the feeling IntelliJ is a 15 year old software because it is slow, you should upgrade your computer. Get at least 8 gigs of RAM, an i7 or equivalent processor, and an SSD. If you do programming to earn your livelihood, that is a far better investment than switching to a text editor for speed.


IntelliJ IDEs are bloated compared to VS2017. VS2013 and older were the slowest and most unreliable IDEs, followed by Eclipse and IntelliJ but VS did manage to wake up and VS2017 is a breeze while IntelliJ haven't made much user-facing improvements.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: