Thursday, May 28, 2015

Things I like in Eclipse that are missing or wrong in Android Studio

I used to use Eclipse for software development. Last year, Google announced that for Android development, Eclipse is no longer supported, I have to use Android Studio. The following is a list of things that I like a lot in Eclipse that are missing in Android Studio. I did select the Eclipse-compatible key layout, to make things easier after coming from Eclipse.
  1. Going through my code, in Eclipse I can hover over a method name with 'ctrl' pressed, this shows me "open declaration" and "open implementation". This makes it very simple to quickly go to the implementation of a method. In Android Studio, I have to select the method name, then press ctrl-alt-b, then I get implementations. Instead of using one hand for my mouse and the other for my keyboard, AS makes me switch between mouse and keyboard a lot, which eventually may cause Carpal Tunnel Syndrome.
  2. When there's an error in my code, Eclipse shows a red underline under the name of all classes in which there's an error. I can quickly find all code I need to look at. In AS, I need to run the code first, then AS gives me a list of errors and I have to click on each error and go to the code. A lot more cumbersome. Then, after I changed the code, I run the code, and new errors show up. Annoying.
  3. AS uses Java Swing for its UI. The font is pixelated, it doesn't look as good as Eclipse fonts do.
  4. Eclipse has an outline view on the right of the screen, that you can enable. This makes it easy to navigate through methods in your class. AS simply doesn't have this. Instead, you have to go to the menu, click through options, then an outline pops up, that you have to close before you continue editing. Annoying and cumbersome.
  5. In Eclipse, ctrl-alt-g gives you all occurrences of a class. In AS, you alt-click, select "find usages", then in the bottom of your screen a list pops up. More clicks than in Eclipse.
  6. In Eclipse and in Android Studio, ctrl-alt-F formats your code. In AS, the code is scrolled over your screen and leaves you looking at an entirely different part of the code than what you were working on.
  7. When you make a typo or an error, both Eclipse and AS show a red underline. In Eclipse, I hover the mouse over the word, and suggestions pop up. In AS, I double click the word, then press alt-enter, for the same suggestions. It's a few more mouse clicks, and what's worse, it requires going to the keyboard and back to the mouse.
  8. When an if statement has one line between brackets, AS suggests removing the brackets. That's bad programming practice.
  9. Finding text in a file in Eclipse is done by going to menu "Search", then "file", then type your text. In AS, it's "Edit", "find", "find in path". Just one extra click, but the box in "Search" is very wide, so often your mouse leaves the box when moving right, then the box closes, you have to click "Search" again.
  10. If you want to delete a line from your code in Eclipse, a suggestion lightbulb shows up exactly at the spot where you click to start marking the line. You can't select the start of the line, you have to select the line starting position 8 or so. Annoying.
  11. Starting an app takes for ages, for gradle to build it, on a wear device it takes many minutes. In the mean time, you start typing in a shell window or an email. Suddenly, AS has finished building, grabs focus, picks up your first keystroke, and starts the app on the wrong device. Grabbing focus after processing for minutes is evil.
  12. More often than not, the menu just doesn't work.
  13. I used ctrl-shift-O to organize imports, ending up with imports replaced by garbage strings all over my app. I did a "git reset --hard" to fix it.
  14. "Choose device" popups and other popups appear on screen with the "OK" button under the lower edge of the screen. Even when I drag it upwards, the next one appears low again.
  15. In AS, when you het ctrl-shft-R and you type the name of a class, you not only get all classes to select from, you also get a popup with the jar files that contain that class. Oh, wait, this is something that's better in AS than in Eclipse.
  16. I use a script to sign and zipalign apk files. In Android Studio, I can't find how to generate an unsigned unaligned release build. I'm sure it can be done, but the menu only offers "generate signed APK". The Jetbrains web site says
    Extracting an unsigned release Android application package
    
    Select File | Project structure from the main menu and click Artifacts in the left pane.
    if only there would be an "Artifacts" option in the left pane, or any pane.
  17. Eclipse lets me disable specific lint checks, like checking for translations. In AS, there's no menu option or setting to do so. I have a couple of strings that aren't visible to the user, or that are the same in all languages like ">" and "<". AS forces me to define identical strings in four different languages.
  18. Eclipse sometimes generates a build that crashes, saying "can't find class .class. Seems to be a bug in Eclipse. Oh, wait....
  19. Unit test results in Eclipse appear in a window in the IDE. In AS, you have to open an html file somewhere in your file system, to open an overview of test results. Why not just show the results in my IDE? The message window of the IDE shows the link, but it isn't clickable, you have to navigate to the test results manually. Ridiculous...
  20. When reformatting source code, AS does not recognize comments (/** style). It does not reposition the asterisks the way Eclipse does so neatly.
  21. When completing an Enum switch statement, for every case Eclipse gives me the remaining options. AS gives me all options every time. 
  22. to be continued....

No comments: