In a couple of weeks I’ll be giving a talk at POSSCON with a title similar to that of this blog entry. It won’t be a long talk, only twenty five minutes, but I’ll try to touch on several factors that could seriously screw up the use and success of open source in the mobile space.
For this talk I’ll be primarily focusing on application development for devices, and not whatever open source might be used on the telecommunications carrier side of things. Indeed, there is open source used there, frequently Linux, but for this audience I want to concentrate on apps for devices and the role of open source in creating them.
It’s one thing to point out such land mines but I think I would be doing a disservice if I didn’t say something about how to avoid them. That will be the topic of another blog entry.
So without further ado, here are some potential problems for the increased adoption of open source in creating mobile applications. I welcome your discussion in the comments.
- No GPL code allowed in apps for the Apple App Store. I know there is some debate on whether this prohibition comes from Apple or the FSF, but that makes no difference. If you use GPL code in your app and it gets discovered, I think there is a good chance your app will be pulled. Other app stores or marketplaces may have similar or different rules, and you must know what they are.
- Sloppy open source license compliance. I don’t care whether you are a one person app developer or a half-billion person company, you need to follow the rules around using code under a given license and, especially, mixing code under different licenses. Writing for mobile does not change that. If you are creating apps for Android, read everything you can about the Apache license and what it says you must do.
- The right code is available under the wrong license. This might relate back in practice to the GPL situation above for the Apple App Store, but you may really have to reinvent the wheel if you need a body of code for your app and that great stuff you found on the web or in Koders has a license that prevents your using it. By the way, if you read the code and then rewrite it, you are contaminated. Don’t expect your “originality” to hold up in court. Also don’t think that you can change a few variable names and no one will notice you reused code from elsewhere. Scanning programs are getting smarter all the time.
- There’s not enough money in it. Ok, let’s for a moment get past the idea that open source involves sharing and freedom and all that. Assuming you did want to get paid something for your efforts, a $0 app price won’t give you much revenue, though it may give you the love and admiration of a few hundred people and a lot of personal satisfaction. If we believe that the trend is to charge $ .99 for an app, and the app store owner takes a cut of that, how many will you need to sell to make it worth it to you? If you net $ .70 before taxes and get 1000 downloads, that is $700. Nontrivial, but is it a day job? If you get 10,000 or 100,000 downloads, that becomes a different story.
- Getting heard among the noise of thousands of other app developers. I think a lot of people believe that mobile creates a great new opportunity for one or two people to create a successful app and get it to the masses with very little overhead and middlemen. That’s probably true, but somehow you’re going to have to get the word out about your app. To be blunt, you’ll need to do some marketing and that might go against what you think an open source developer should be doing (you don’t have to be doing open source to believe this). You also may need help to make your app more beautiful and usable. Remember that open source, volunteering, and sharing doesn’t just relate to code, but can also include design and documentation.


What do points #4 & #5 have to do with open source & mobile specifically? They seem to be advice in general. Points #1 through #3 are spot on. I’ve personally been bitten by #3 and chose to plain just leave a feature out because of license incompatibility.
I do think there is an interesting open source ecosystem for toolsets (both for native apps and mobile web) out there.
PS – I’m not a regular reader so I apologize if this question appears impertinent or I’m missing some back story. Found the link to your blog from a tweet.
Dave, I agree on #4 and #5 being more generally applicable, but I was trying to tease out the extra considerations in the open source situation. Thanks for the poke on it and I’ll think about it some more.