Fabrizio Giudici is a Senior Java Architect with a long Java experience in the industrial field. He runs Tidalwave, his own consultancy company, and has contributed to Java success stories in a number of fields, including Formula One. Fabrizio often appears as a speaker at international Java conferences such as JavaOne and Devoxx and is member of JUG Milano and the NetBeans Dream Team. Fabrizio is a DZone MVB and is not an employee of DZone and has posted 67 posts at DZone. You can read more from them at their website. View Full User Profile

Pros and Cons of Modular Android Apps

  • submit to reddit
Android has got some powerful characteristics that, paradoxically, are posing me some serious decisional issues. For instance, the Activity/Intent facility is very suitable to create modular applications and to foster cooperation among multiple applications. For blueBill Mobile, for instance, I'm thinking of a number of enhancements and new features, among which:

  1. the capability of recording a complete path track, via GPS, rather than recording only the observation spots

  2. the capability of attaching a sound recording to the observation

There are already existing applications for Android that perform those tasks, so one might think that it's better to integrate them rather than writing the code by himself.  Not only you save time, but you also offer the user the choice of which helper application to use.

This raises two problems:

  1. integration tests. You need to test your application together the ones you're integrating, and this means that you have to pay attention not only to your own releases, but also to those of the external applications.

  2. user friendliness. While you might want to advertise "blueBill Mobile supports recording bird calls", then you have to explain to the user that he needs to install additional software. Of course, you can do that by means of a dialog box, but I fear this could be annoying in some cases.

It would be nice, indeed, if the Android Market could declaratively enforce a dependency relation, that is if it was possible for me to declare that blueBill Mobile needs GPS Logger Pro or HiFiCorder and automatically offer the user to install them. 

What do you think? I'm going to buy a directional mike for my Motorola Droid and decide which way to go. I have to add that I'm thinking of other very specific new features of blueBill where a plugin architecture, that could rely on other blueBill-XYZ applications, might be helpful; for instance, various plugins could bring in the capability of populating the birds fact sheets from different sources (WikiPedia and other ornithology-specific sites). But I'm a bit puzzled about the user friendliness thing.

Published at DZone with permission of Fabrizio Giudici, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Nicolas Jouve replied on Wed, 2010/05/26 - 5:11am

To depend on third parties application for functionalities seems to be a bad thing for android apps, except if those third party apps are kinf of "built-in". Transposing this to the Eclipse environment, it is OK to depend on core Plugins developed by the Eclipse Foundation , but not on others.

Having to deal with the transitive dependencies is definitely not an average user task. So unless google provides a very powerful and intuitive way of handling this, I think this is bad idea. I would hate to see that I must download something else when trying to use some function. This is a very bad user experience in my opinion. IMHO you should keep on the all-in-one track.

By the way, I have taken interest in your app cause I've had the desire to develop a vey similar app targetted at mushroom harvesters.

One killer function would be to answer the question "What kind of birds (or mushrooms) are observable right now given my GPS Position and day hour (season, day or night). The implementation could use either a dedicated database and/or data collected by users...

Fabrizio Giudici replied on Wed, 2010/05/26 - 6:38am

Thanks for the feedback, which is very appreciated. Yes, indeed I'm figuring out how to create specific blueBill Mobile plugins (they could be probably seen next week or the week after the next one) and have a tested ecosystem, as you said.

The idea of real time, geo-based queries is part of the original concept of blueBill Mobile. Indeed, the JavaFX version has got it (prototypical) as it can connect to a server where other birders can share observations in real time and eventually even share their current position (sort of Google Friends for birders).  If you search for bluebill Mobile JavaFX at my blog there should be a screencast showing a simulation of the feature. It dates back from one year ago, then the stall of JavaFX prevented me from "hitting the shelves". I'll also start talking with people who are already managing database services about observations - there are a number both in Europe and USA. By this August there will be a lot of more beef in blueBill Mobile.

And please let us know when your mushroom application is available. :-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.