Initial Enthusiasm for Development
If you just want to see the app then skip through to the end.
For a long time I had been wanting to teach myself the art of Android App development. Not being new to programming (previous VB6, VB.NET & C# .NET experience) I decided to finally give it a go.
Now to say this was my first attempt would be a small lie, quite some time ago I got the relevant development environment setup (Eclipse, the SDK, AVD etc….) but got fed up. It seemed that rather than spending time learning the language (Java) and about Android generally, I spent most of my time troubleshooting Eclipse IDE problems, which seemed a mile away from Visual Studio! After a couple of weeks I grew tiresome of Eclipse and the AVD for testing.
So what changed this time round?
Firstly I stumbled across this Google+ post, which renewed my enthusiasm. The key things I extracted were:
- Avoid using the emulator (AVD) and use a real device for debugging.
- Try a different IDE other than Eclipse such as IntelliJ.
- Use android libraries that are available to you.
- Build your app in small pieces and don’t try to run before you can walk.
Secondly, Google have really improved the overall look of the Android UI from 3.0 and up (especially 4.0+) which can only be a good thing when trying to develop an application that looks aesthetically pleasing.
Thirdly, the platform is far more mature than the last time I tried.
Before jumping straight back into using Eclipse I decided to give IntelliJ a glance, whilst it looked excellent I decided that it would be far easier to learn using Eclipse which most tutorials are based on (such as adding 3rd party libraries etc….). Once I got Eclipse up and running I was pleasantly surprised to find that a number of the Android App wizards had been hugely improved since I last used it, which filled me with confidence that the process had matured.
I decided to make a fairly simple app to enable users to set their Microsoft Exchange Out of Office reply without logging into OWA. For me it was the perfect “starter” app, I only really needed one main activity for the main UI and one for settings. Having such a basic app meant that being overwhelmed wasn’t going to happen this time round. A 3rd party library would also be used to provide connectivity to Microsoft Exchange.
Having started using Android 1.5 (HTC Hero) and now 4.2 (Google Nexus 4) I was very keen to provide compatibility to older devices. Whilst this can be a minefield (won’t go into this here), there are a number of great libraries available to help bridge the API differences between versions. Such as ActionBarSherlock which provides the action bar part of the UI introduced in Android 4.0. I decided initially that whilst I would learn how to implement ActionBarSherlock for compatibility, I would still target 4.0+ for initial launch.
I won’t go into much more detail here, but these are a few key points that helped me along the way:
- Always test on a physical device where possible, if not use the x86 emulator images.
- Learn how to deal with screen rotation from the outset and don’t cheat.
- Stackoverflow.com is your best friend for finding examples and solutions to problems.
- Learn how to use basic layouts and controls, this will come in handy later.
One brand new app called Out of Office (Exchange) made by myself.
Ironically we use Google Apps here at ProCo IT. A similar app is in the works but in the meantime try out:
Vacation Responder (Gmail)