views:

480

answers:

3

It's a small application, named Simon Basic Edition, and it is in the Apple Apps Store top 100 in Games > Kids.

The first version is pretty basic, but I made a bunch of improvements in 1.1. which was submitted a week ago to iTunes Connect.

Based on the same source, I have written another Simon Cards Edition which is also waiting for the approval on the App Store. There should be another edition jointly developed with an excellent and renowned artist.

I am looking for guidance about the pros and cons of Open Source for an iPhone application, and for the more practical aspects of publishing this code (license, repository). Since I am writing other applications too, I wonder if it makes sense as a strategy for multiple applications.

A: 

If you want to open source it, and you have the time, you may want to perhaps write a small e-book about writing an extensible framework for the iPhone using Mono, as that would be something that could benefit the community, and perhaps give you something considerable you can point to if you need more for your resume.

If you open-source it, you will be writing apps that are competing with apps written with your own framework, and, you would want to look at the licenses to see how people could modify your code. I would think that anything too restrictive would be problematic, but, if they use the framework and add to it, then perhaps require that the unmodified library be made available, but their modifications could be left private. For commercial apps this would work best but, then you may get fewer people submitting bug fixes.

You may want to look at a two-tier version, so for a small few they can have a commercial license, and if they use it for free then be more restrictive.

I guess the issue is, how much do you want the community to add to it, and how much do you want it used for commercial purposes, where people are adding to it.

But, the e-book I think may be quite useful, especially if you did it as a wiki where others can continue to add to it, so it could be more beneficial.

James Black
+2  A: 

Open sourcing for the sake of being open source is pure emotional decision. In the real world, open sourcing is a strategy that should be employed carefully with great consideration of its effect on your goals. And the main question is "How will I benefit from open sourcing my code?".

So you have to figure out what is your goal when writing these apps. Are you trying to monetize them or are you writing them for fun and learning?

If the answer is fun and learning, you can open source them and see what others would make from your idea. There's a lot to be learned from the community; and you will get valuable experience while actually trying to build that community. ("If you build it they will come" is not a valid principle in modern society, and double so in the software industry. Just open sourcing your code doesn't necessarily mean anyone will be interested; you will have to be actively building your community in various ways)

If you are trying to monetize these apps, open sourcing them can benefit you only in the case where the app is a commodity that drives traffic to your monetization channel (for example in-game gift purchases, incentivised advertising, writing ebook/blog posts/articles about the experience). If the apps are the main engine for the monetization channel, open sourcing them is direct invitation to others to cannibalize your profits.

Franci Penov
+4  A: 

I open-sourced my first iPhone application under the BSD license and haven't regretted that decision one bit. I wrote it to teach myself the particulars of developing for the iPhone, and figured that I'd release the code to help others doing the same. I've even written a couple of posts about what I learned in the development of this application. I also made this application free and open source because it relied on a taxpayer-funded scientific resource and it felt wrong to me to charge for anything connected to such a facility.

One benefit you will see from this is traffic to your website. First, having a free application will get you a lot of downloads and a significant number of visits from curious users. Since the launch of the App Store, my application has been downloaded over 500,000 times. Second, there are a lot of iPhone developers out there who are hungry for information (and that number is growing by the day). The source code has been downloaded tens of thousands of times and my articles about developing the application have been read by over 60,000 unique visitors.

That website traffic, and the links to your site from various places, will help you in the long run by providing exposure and dramatically increasing your Google page ranking. My second application, which I charge for, would not have done as well as it has if I hadn't built up the kind of recognition I did with my open-sourced application.

However, don't expect significant contributions to your open sourced application. From the tens of thousands of downloads of the code that I've seen, only three people have contributed anything back. With the exception of a French localization, those contributions have only been minor bugfixes.

As far as the practical matters of opening the source code, I haven't had too much of a problem with just hosting a tarball of the code for the latest version on my site. No one has complained about the lack of a repository for it. License-wise, I recommend a BSD-style license due to the problems with GPL and LGPL licenses on the iPhone, as well as my belief that GPL and LGPL licenses hold many open source projects back (as Daniel Jalkut articulates here).

Brad Larson