"Eclipse is my favorite IDE", said nobody ever. It's far from perfect and yet I continue to use it. Eclipse has had some updates over the years that has made it more usable, but the overall end product is still everyone's least favorite IDE. The other options like Xcode, Visual Studio, Android Studio, make Eclipse look like something from the 90's, and yet here we are still using it.
I became acquainted with Eclipse for Android long before Android Studio was ever announced. Sure I can make the switch, but we all know how much it slows down the work flow when you do switch to a new IDE. If you are using Eclipse for Android development, you cannot just use it 'right out of the box'. You need to download all the things! You need the NDK, then the SDK, then ADT and probably a Java plug in. And once you get all that downloaded you have to link some of the downloads to Eclipse. But then it still doesn't work! So you scratch your head, get more coffee and realize you downloaded the wrong version of something. Eventually, after about six hours, you will get the downloads right, linked up and all your errors will disappear.
It's such a great feeling when you can hit that 'Run' button and it's free of any errors. But what happens next? Do you run it on a device or do you need an emulator? Setting up an emulator has many option, it's like being a kid in the candy store, except your not in a candy store your in a licorice store because who wants to set up a million emulators? This is a product of having too much fragmentation on Android, it cannot just have every device ever manufactured built in like iOS can. So, once you pick that nasty black licorice off the shelf you are ready to run! Now you have to play the waiting game, because those emulators take forever to start up. This whole AVD thing is a major PITA, so I've usually just ran it directly on devices just to avoid this process. There are some pretty cheap Android devices, like the Kindle, that are capable of running light weight games. Even if you run on a device you will have to unlock that device to enable "Developer Mode". In some cases, especially Samsung devices, you might run in to USB debugging issues, but that is a rant for another time. For now, you are running your game, yay!
Once you see your game running on Android you will feel like you've accomplished so much, until you hit a crash in your game. Here's the most awesome part of Eclipse [sarcasm]… it will throw out some useless errors and point you to the most random place in code sometimes. Awesome! Then as you scroll through all the error messages (that are about as useful as PC LOAD LETTER), Eclipse wipes the output for no reason at all! UGH! Here's a word of advice, do not invest too much time in the Eclipse debugger, just use Terminal instead. You have a whole world of options and commands you can use by debugging with Terminal and it will make your life that much easier. You will get a load of information from the device, but you can filter it so that you just receive the output you want and the logs in your code.
If you've gotten this far with out Eclipse crashing, then thank your luck stars! I've made it a habit to save frequently, because I've been burned before from Eclipse crashing at random. I think Eclipse has a built in anti-procrastination feature too. If your computer goes into stand-by while Eclipse is up, and you come back from your coffee break and wake up your computer you cannot expect Eclipse to wake up too. It will crash and you will lose any unsaved changes. So save early and save often to avoid this headache.
We all love free software, but is free software really free? In our case, Eclipse has a time and convenience cost. Eclipse is a capable IDE for almost any coding language, but the set up is a long process. It has a built-in debugger, but the output is sometimes useless and buggy itself. Eclipse isn’t completely stable and even crashes, but maybe that's my fault for running it on a Mac. Regardless, it has made it possible for us to publish Android apps and is that not all that matters?