As someone who is interested in Android, but is currently being scared off by Eclipse, does anyone know any good resources for developing for Android in something that isn't $BLOATED_JAVA_IDE?
I tried vim, but the command-line builds were horribly slow, and almost all documentation and tutorials I found expected me to be using Eclipse.
Using a popular internet meme, "I don't always code in Java but when I do, I prefer IntelliJ".
Seriously, give IntelliJ IDEA a try. Personally I think it's a lot nicer and snappier than Eclipse. It has a free edition. You might still decide that you don't like it but I think it's definitely worth a try. Also, the last time I checked (which was years ago, admittedly) it worked with Android perfectly.
Why is command line deployment horrible? Write some scripts, copy stuff with ssh, etc... I continue to be horrified at the refusal of modern app developers to write code to help them write code.
Except it clearly doesn't. For the use case in question, an IDE can build a .apk and install it on a single connected device. Can you run it in the same step? What if the app has a 10MB data set and takes 8 seconds to install, can you optimize that by copying only the binary? Can you wipe the data from the host machine? How about install a known data set for a test? Install on 5 devices and run a test suite without manual intervention?
Every one of these is a valuable optimization for some workflow somewhere. All of them reduce the compile/test cycle by seconds or minutes, speeding development. NONE of them are done by any IDE I'm aware of.
Seriously: write code to help you write code. If you aren't doing this, you probably aren't writing good code. And if you gave that answer in an interview, I for one wouldn't hire you.
How good is code completion in VIM for Android apps? I was an emacs guy for many years but since I started doing iOS I can't imagine writing Objective-C without really solid code completion. Maybe it's less necessary in Android?
Because you're writing Java, which is a very verbose language, all code completion and code generation (method stubs, auto constructors etc.) are a godsend when working with Android.
That's why I'm always wondering why anyone would so much want to waste time with typing Java on VIM (even though I DO use Vim for other programming tasks) instead of just using an IDE specifically customized to make such development faster and easier.
A few years ago I was having lunch with some of the guys from Franz Lisp and one of them said that his epiphany was that Java did have macros, but that they were write only and built into the IDE. I didn't really appreciate his insight at the time but I get it now.
I do all my Android dev in VIM, and I use ant on the command line for building... what do you find horrible about the command line build? I just use 'ant debug' for debug builds, and 'ant release' for release builds - and 'adb install -r' to install the package once it is built. Usually, it ends up being a couple of up arrows, and enter, on the command line to build / deploy.
Funny, that's exactly what I do. Eclipse for building and debugging; Vim for coding. It's a pretty happy combination especially considering that the switch between perspectives is, for me, much more disorienting than the switching between two applications [I feel lame saying this, but the perspective change is really disorienting for me...].
May be I have been doing it the wrong way all along. I've used 'ant install' for build/deployment. Is that a horrible way for deployment? Does Eclipse deploy it faster?
As someone who uses Eclipse pretty regularly, what don't you like about it? I'd never really used big IDEs before I got into Java either, so I'm curious.
Well, for someone that uses VIM/Emacs heavily, Eclipse might be fine as an IDE, but I don't like to use it as an editor. When I'm using eclipse to edit code, I feel like I'm using microsoft word -- user friendly, but not "coder" friendly.
Also, try using eclipse on very large projects -- it gets very slow. Sometimes I'm not sure if eclipse is hung, or if it's still stuck compiling something or fetching something in maven.
I too, would definitely recommend sticking with eclipse for now. When you really understand all the different steps of the build you could switch to emacs/vim + cli tools, but since it's pretty undocumented there's no reason not to stick with eclipse and do some work while you're figuring it all out.
are people complaining about eclipse because it starts up slow ? After initial startup, what are the issues that cause this person to be scared of using an IDE ?
Eclipse is frankly a poor text editor. After learning enough Emacs to get comfortable, it becomes clear that there is a better way. For example, undo. In Eclipse, type something, undo it and type something else. Now you can't use the undo/redo function to get the first thing that you typed back. In Emacs, you can, since undo is an undoable operation. Similarly, having things like i-search, align-regex and rectangle editing have become vital for editing code. These things either do not exist, or are difficult to discover or use in things like Eclipse.
people claim that Eclipse IDE is slow.. I run Eclipse IDE on Ubuntu under wmware VM on a 32 bit MS Vista 2.4GHZ AMD dual core cpu machine..and yet my eclipse start times beat theirs..part of java development is knowing how to tune VM settings..some just frankly do not know how..
I tried vim, but the command-line builds were horribly slow, and almost all documentation and tutorials I found expected me to be using Eclipse.