In this ever changing development world I wanted to take a little snapshot of which ones are my tools of choice when developing Android apps, both at work and at home.
Design and prototyping
For prototyping and vectorial design I'm loving Sketch. It's not very expensive and IMHO it's very powerful for mobile thingies.
I hate Eclipse. I didn't liked it very much back then, and I really hate it now. The first thing I do when I got to work in a legacy project is creating a new one and importing all the classes by hand.
I switched back then to IntelliJ, and when Android Studio was unveiled it was like a blessing. It doesn't matter the little problems here and there we all developers had since it's birth, it's all worth it.
For logcat I use the very nice pidcat util from Jake Wharton, because it makes my life easier - the one embedded in Android Studio is too bloated and I prefer to have it in another screen.
I've used ant and maven in the past for my Android builds.
Nowadays the most clever thing is go with Gradle. The thing is, I'm enjoying the ride so far. I've never used Groovy for anything, but it's being quite fun fiddling with it.
I use a lot of opensource solutions, though there are a few that are a constant in all my latest stuff.
- AndroidAnnotations. It's really awesome. Though being that big and for almost everything had me limited in the past a bit, it's still lovable. I even published a little helper Android Studio plugin for its view injection stuff.
- UniverseImageLoader, it's very complete and powerful. I usually end up writing some displayers. Anyway, I want to give Picasso a try.
I use GitHub for everything. And I've come to love using its command line interface, it's just a few commands the ones you have to master to be effective. For merging I use the wonderful Kaleidoscope, linked to my
git mergetool command.
For editing Ruby files I use Sublime Text 3 mainly, though RubyMine is awesome when you are doing more complex things with it.
I have opensourced my Sublime Text 3 config, in case anyone might be interested.
Running the app
I don't really like to work with a simulator/emulator, I prefer using real devices. I have used a lot the x86 emulators shipped with Android, also Genymotion lately, and even Bluestacks. But I prefer to root and install something stock-like to my "ex-devices" (Galaxy Nexus now).
And, by using CM11 in it, I can pretty much stream all that's happening in the screen via AirPlay with Mirror to my other devices, usually my MBP running AirServer so streaming a live feed for client demos is a delight.
Of course, this is a VERY subjective list - if you don't agree it's fine! But IMHO this combo of applications provides a great productivity boost.