Jumping to the Android bandwagon is not an easy jump and for some reason it seems harder than it actually is. Developing for Android poses a number of additional issues that you nearly never face for other “stricter” platforms such as iOS and Windows Phone. At the same time, I don’t even think that the “freedom” of the Android world is a real benefit for the majority of developers.
Fact is, at some point you may face the need of writing Android apps. When it happens you then need to learn the basics of the programming model as well as the tools and frameworks that are either required or helpful. You may be pleased to know that JetBrains and Tuts+ managed to bring (me to bring) you a FREE (yes, free) course of Android programming just designed for the busy developer.
Busy means you “need” but hardly “have” the time to learn it step by step. So we created a learning path that doesn’t magically turn you into a guru; likewise, it won’t make you able to fork the Android OS or create drivers for it. However, if all you need is an app that does most of things that 80% of the apps out there do (things like data binding, remote data download, a bit of UI, preferences, menu, input forms, dialogs, page navigation) then your money (just kidding, it’s FREE) is well spent 🙂 The course includes about 3 hours of content and illustrates examples in the context of IntelliJ IDEA Community Edition–the free IDE that Google’s Android Studio is based on.
Get “Android for the Busy Developer” today!
I liked this article on the notorious Android’s matrix of pain. Of course, I’m very well aware of it, I do recognize it as a problem and I prefer not to have it right under my nose. But that’s it.
Winston Churchill was reported to say that democracy is not great but nothing better is currently known. Greek Peisistratos was also a fairly popular tyrant who managed to rule the country all alone without having to mediate with too many other positions. In software Peisistratos should be the rule as it makes things easier. Apple approach to mobile is like Peisistratos. The Android’s take is pure software democracy.
This is an imperfect world.
I approach the task by mostly writing apps for Android 2.2. Social login is web-based or requires external libraries (i.e., Janrain) but everything else is doable and workable. It is not great but nothing better is currently known. And we can’t avoid having Android apps around.
For a developer approaching Android programming the message is clear: get all set for Java development, get the Android SDKs you need, and get Eclipse. At least for Windows, the downloadable package contains already the Eclipse bundle. Eclipse is the Java IDE and it comes with a plug-in for Android programming.
Why looking elsewhere?
Speaking for myself, when I started on Android I immediately started looking for an alternative to Eclipse. The nice thing is that I can hardly find one compelling reason for dismissing Eclipse. Eclipse does nearly everything you need and it does it fairly well. Hey, that’s probably the point. It does everything fairly well, but no more!
An alternative to Eclipse is IntelliJ IDEA from JetBrains and for Android developers the (free) Community Edition of IntelliJ IDEA is more than enough for coding effectively. In which way is IntelliJ IDEA better than Eclipse? It’s not a matter of features, but it’s all about how features are implemented and little details around the overall usability of the product.
Writing a formal whitepaper comparing and contrasting Eclipse and IntelliJ IDEA is confusing and probably useless like splitting hairs. But this post offers an interesting list of reasons why developers should look into IntelliJ IDEA at some point.
Not a list of features, but a (long) list of small things that all together save time and gain a better experience.
Wiser (not elder…) developers like me will certainly remember Love-is comics. In my software design classes, for a time I used a few slides rephrasing the slogan to Architecture-is. Today, I want to share a couple of thoughts on the theme of what usability means to people.
Don’t worry! I’m in a rush so I won’t take the long and winding (and annoying) road of arguing around philosophy, models, behavior, central role of users in modern software and all those known-and-boring things. I just report a glimpse of reality topped with a couple of personal considerations.
Yesterday I was looking into IntelliJ IDEA and Eclipse. For years, Eclipse has been the free IDE for tons of Java developers. IntelliJ IDEA appeared a few years ago and being a paid product (at least in its Ultimate edition) it managed to offer more. What more? Mostly usability.
What’s usability then?
For the most part, usability is a large collection of many little things. It’s something you can easily recognize but hardly describe in a formal way. Usability, I think, is also an absolute value and not subject to personal preferences. Here’s a little example of usability that Eclipse first provided and IntelliJ IDEA improved on.
Eclipse comes with its own Java compiler and doesn’t use javac–the compiler you get with the Oracle SDK. The Eclipse Java Compiler (EJC) exists for two main reasons: supporting incremental builds and producing binaries out of code with errors. The second point sounds intriguing, isn’t it? It means that ECJ always tries to give you an executable; if you submitted code with errors you get a run time exception only if the execution flow reaches the buggy code.
Architects of IntelliJ IDEA took a different and more traditional route to it. IntelliJ IDEA defaults to the classic javac compiler and uses pieces of logic within the IDE to implement incremental builds. But IntelliJ IDEA also lets you switch the compiler and use ECJ instead of javac so that Eclipse users can feel at home and just enjoy as much as possible of the other IDE.
Paraphrasing the comincs, usability is … letting her choose your Java compiler!