Last year I was lucky enough to attend the DroidCon Android conference in London, impressed by what I saw, I presented my case to return again for the second year, to scout out information on Android developments.
As usual, the format of the event is a 2 day barcamp, where various representatives from all areas of the industry present a topic which they feel strongly about, ranging from anything about UI design, design patterns, right through to commercials such as marketing and business considerations when releasing an application.
The first day consisted of informal discussions on various topics, I attended those mostly aimed at the developer (wasn’t too interested in gaming or the “boring” business talks).
I could drone on about each talk and what it covered, however it’s probably best that I just highlight some of the key talks and topics I found of interest:
Implementing analytics with AspectJ
Obviously one of the main drivers of putting an application to market is generate downloads, which, if priced correctly, will create revenue. However, being able to understand what users actually do with your application could enable you to target specific features even more, and produce even more downloads, revenue, and general happiness in the development team knowing their applications are doing well.
Wouldn’t it be great if you were able to track what users are doing in your applications? Being able to see which screens, features, or even which buttons are being used most in your application? The ability to know this information would allow you to back up business decisions, and enable product managers to decide and target upon new features.
Fortunately, the Google analytics framework is able to assist us with such issues, it can be integrated into applications and you can track events where you feel necessary. Additionally, the analytics API is also cross-platform compatible, so if you have iPhone and blackberry versions of your application, you can also track statistics there too.
To read more about this, you can access the slides from the presentation here.
Innovative UI with GreenDroid
I’ve developed a few android applications in my own time, both for hobbyist curiosity, and for Smart421s’ marketing curiosity (this one is yet to be published, watch this space!), and one of the things that takes a considerable chunk of development time, is designing and implementing the UI. Quite often, the application code is incredibly simple, sometimes even less than 50 lines, but arranging the UI into something remotely usable can often take double, if not more time than the original business logic for the application did.
Fortunately for us android developers, a pioneer named Cyril Mottier has forged an API from the depths of developer frustration to help, named GreenDroid. When developing UIs, its important to make the interface responsive, smooth, fast and polished, which can be somewhat an involving task if developing manually.
GreenDroid is a library, that can be included into your applications, which you can then depend on to create clean, attractive and accessible UIs easily, without having to manually design them in XML yourself. You can read more and see examples here : https://github.com/cyrilmottier/GreenDroid#readme
I can see a great many applications, and developers benefitting from this venture, particularly smaller scaled applications that are primarily interested in delivering functionality, without imposing corporate branding and color schemes across their application, however I wouldn’t be surprised if Cyril hasn’t already taken that into account and exposed some options for modifying color schemes and anything else to “brand” the UI.
I did try this on one of my applications that’s in development at the moment, it was incredibly easy to set up and use, if you’d like to see what this library can offer, checkout an application on the market called GDCatalog, Cyril released this as a showcase for the GreenDroid API.
Test Driving android with Robolectric
TDD is a development principle that most developers should consider, or at least be aware of. This is a practice that Smart421 actively pursue, so I was keen to see how this can be applied in the Android world.
Android applications are written in Java, however they don’t run on the standard JVM, but a mobile specific Dalvik VM, which can make standard unit testing somewhat frustrating, as the application code has to be built, the emulator started, application deployed and then started, that’s all before you can run a measly JUnit test. Fortunately for us developers, Robolectric saves the day.
Robolectric allows us to write simple JUnit test cases, against android components, which can be executed on the JVM, enabling a much faster TDD cycle. Robolectric works by intercepting android framework calls, and re-writing the method bodies, essentially allowing us to run a mocked android platform on the JVM for testing purposes.
Ultimately, Robolectric enables us to black box test, fastly, without need for mocking frameworks. I’m using Robolectric in two of my android applications and it has proven to be an easy to use API, and has helped me catch several potential issues, thus serving its intended purpose.
I attended around 10 discussions over the 2 day period, here are some other talks that I found of interest.
Often, development teams want to release a trial, and a full (and often paid for) version of their application. Ultimately they would want to use the same code base for both versions of the application (you’d be crazy not to). There was a talk from the company TouchType on how they have implemented a build framework to disable or remove certain features from a build.
Mark Murphy’s predictions sure to go wrong
Whilst no one can predict the future precisely, Mark Murphy is quite the celebrity in the android world, so he’d be a reliable source to give us a steer in what may pan out in the future for the little green robot. Marks’ talk covered some of the things we may encounter, such as e-readers merging with tablets (which we’re already starting to see now, with the Kindle Fire), Amazon to be the #2 tablet maker (which we may also see now the budget Kindle Fire is on the way) and the inevitable introduction of ever more cross-platform technologies, hoping to obtain 100% cross-platform compatible apps, such as PhoneGap from Adobe, and pure HTML5. There will always be subtle differences in platforms and hardware, so these may prove slightly less forthcoming than hoped.
Hacking the android market for private betas
Currently, the android market doesn’t support betas, or private listings. However the devs over at LightBox have devised a way of “bending” the rules to cater for this.
Before they released their LightBox camera application, they ran a private beta on the android market, by publishing the app under an undisclosed name, locking all features, and requiring an authentication key to unlock the application. This enabled a select number of users to easily access the application, trial it, and provide feedback, without releasing the application to the wider market, for often preempted flaming from the general android community because it doesn’t play Super Mario, or because it’s not free.
I don’t know how legally correct, or even ethically correct this usage of the market is, but I found it an interesting topic of discussion.
A startup from a young Spanish entrepreneur, to develop and market an android device, created by developers, for developers. The Geeksphone project is also intended to be community driven, whereby the users have a voice and direction in the development of future productions. Geeksphone do provide one unique feature, that I found rather appealing, that users are free to develop and create their own Android ROMs, submit these to Geeksphone where they will run their own in-house tests on it, and give it a seal of approval. Users can then use the ROM without voiding their warranty, and it is fully supported by Geeksphone from then on, quite an appealing promotion to users who intend to do slightly more than checking emails, and using Facebook on their devices.
To summarise, the conference was very informative and provided a wealth of information on all things happening in the android world. I’d certainly like to attend again next year, it would also be fantastic if we could muster up some Smart421 presence on site too….
All DroidCon seminars were recorded on video, and should be freely available here : http://skillsmatter.com/event/os-mobile-server/droidcon-2011