Intelli-J makes Android Easy

On paper Android should have been a good fit for my previous experience in java and C#. I’m quite used to using the Eclipse development environment and, despite some of its more quirky configuration aspects, it has generally proven relatively painless. However, for much of the last couple of years, any involvement in Android has proven to be a bit of a heart-sink moment. Write the code…wait for the emulator…wait for the debugging to commence…wait…wait…wait.¬†

There is much to like about Android, as a developer, but somehow, compared to the slickness and immediacy of the iPhone emulator and debugging experience in Xcode, and the depth and sophistication of Microsoft’s Visual Studio, Eclipse has been the source of much heartache, cursing and premature ageing. Recently, however, I have moved from Eclipse to Intelli-J (IDEA 12 CE) – a free IDE from JetBrains that can be used for Android. This has revolutionised my Android experience – now I feel ¬†like I can focus on the job at hand, and on the well-thought-out Android Framework – in short, I feel like a developer rather than a software trouble-shooter. Moreover, with sophisticated code-completion and all the other whistles and bells you’d expect from JetBrains, coding productivity shoots up.

Now we have the three major platforms with very pleasant and capable development environments, I am more convinced than ever that the advantages of quick-adoption offered by PhoneGap and other HTML-based cross-over frameworks are more than outweighed by the power of having direct access to the underlying frameworks and better performance. Indeed, my current experience of porting over a complex application framework from iOS to Android suggests to me that whilst code might not be shared directly, the platforms have enough in common to make the translation reasonably painless.

As the mobile development market matures further, we will no doubt continue to see steady advances in the ease and productivity of native code development – something no developer is going to be sorry about.

With XCode 4, Apple Start to Love Their Developers!

As I mentioned on a previous blog, compared with Microsoft’s Visual Studio and the vast array of good quality reference material and samples available, the Apple development experience could easily be found wanting. With the latest version of their Development Environment – XCode, Apple is beginning to show the kind of love that developers, and in particular new developers, need.

For developers from a non-Apple development background, with a lot of experience in Java and .Net, one of the most awkward things about the older version of XCode and Apple’s Objective-C programming language, was the need to basically tell the computer when it should remember or forget things. In other languages, this is usually taken care of automatically, although sometimes you would choose to interfere in order to keep system resource usage down. The upshot was that a whole extra pointless layer of testing was added for something that provided no benefit to the end user.

Now Apple have introduced something called Automatic Reference Counting (ARC), which does the job of working out when to remember and when to forget about things. This does not sound revolutionary, but it has gotten rid of one of the more dangerous and common pitfalls of developing for iOS. Now, instead of worrying about the internals of the platform infrastructure, developers can just focus on giving the end user a great experience.

Having used XCode 4 for a while now, I can say this is probably the biggest single time saver, but Apple have put other things in too – including a helper that will suggest fixes for small problems on the fly. There is also a storyboard that allows developers to layout transitions between views visually. Overall, the improvements make the whole development experience more slick and less painful.

Why does this matter for people who aren’t developers? I think one of the upshots of this is that it makes native app development faster, easier and hence more cost-effective. Despite having spent time going down the PhoneGap route, these new development enhancements have persuaded me, at least, that native iPhone development is now actually faster and more convenient than HTML5 based frameworks. Indeed, even if you want to combine web content with your app, it is still, I would suggest, easier to hybridise properly by going native.

Whilst XCode is still not up to the level of Microsoft’s Visual Studio, it is getting very much better, which can only be to the advantage of developers and end-users alike. I look forward to more of the love in their next release!

%d bloggers like this: