iBooks and the Future of Learning

Apple made a couple of key announcements this week regarding iBooks 2.0 and their attempt to disrupt the textbook publishing market through partnerships with the major textbook publishers and the release of iBooks Author software.  Having played with the new iBooks Author software, and the new iTunes U iPad App I’m pretty excited about the future.

TechCrunch ran an article yesterday about why iPads don’t belong in the classroom.  It brought back a memory for me of grade 8.

When I was in grade 8 our school was just getting it’s first few computers installed in a lab in the library.  There were around 10 PCs – not enough for a full classroom to have a class there.  Only 1 of them had a modem and could connect to the internet.

Several of the top students in grade 8 were selected to self study on these computers during math class.  There was a simple algebra program installed on there that had math questions appropriate for grade 7,8 and 9.  I remember getting just one hour per week to go down on the computer and spend an hour learning.

For the few months that I was able to do this in grade 8 I was able to essentially zoom ahead and master the math concepts for both grade 8 and 9.  It sparked my interest in education and my love of math.

Without those computers and the time alone to focus on solving problems I probably would have been bored and idle in the classroom.  With the computers I was solving quadratic equations while my peers were still working on 1/x=2 solve for x.

The problem I had was a year later in grade 9 when I wasn’t able to use the computers during math class. I was so bored that it was impossible to pay attention. Math class became a time to sleep, doodle and day dream.  By the time I was in grade 10 I was back in sync with the other students in my grade – having lost nearly a year of potential learning.

I believe there will be a transition to self-directed learning but that it will not be easy.  The resources will become easier to access but continually being pegged in the classroom to your grade level is going to be a challenge to overcome.  Alternative teaching methods will take longer to evolve, and current teachers will resist changes.  The model proposed by the Khan Academy is probably close to what the future of school will be.

 

Custom Push Notification Server

My mobile app control server is turning into a bit of a powerhouse.  The latest and perhaps most exciting addition to the server has been support for sending Apple Push Notifications and registering devices for those notifications.

The goal of this is to make use of the push notifications for updating the apps, and cross promoting new apps to help build bigger and bigger launches.

One of the things that’s possible to do (but which I have not seen very many examples of yet) is having an alert open a link.  It’s a very powerful feature when you consider how easy it is to link directly to the App Store, – With a LinkShare affiliate link (aff link).  So when I find out about any hot new game release, or sale event I can let my users know about it.

It took a while to figure out how to handle the notification payload so here’s the code snippet:

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSString *link = [[launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"] objectForKey:@"link"];
    if (link != nil) {
        //abort app startup and goto link
        NSURL *url = [NSURL URLWithString:link];
        [[UIApplication sharedApplication] openURL:url];
    }
...

With that bit of code in the App Delegate I can send a notification with a {“link”:”http://halotis.com”} custom payload and when the user clicks the alert it will direct the user to the website. Because the openURL call can handle lots of custom URL types it becomes possible to link directly into the Facebook App (if it is installed), or link to the app rating page to ask for the user to rate the app in iTunes, open a map location, or even dial a phone number.

Why not use something like urban airship to do all this? Well mostly because I want to consolidate app management as much as possible. The more features I put into my custom server the more likely I will leave it open and make use of it.

Creating A Custom Ad Server

Over the holidays I somehow found the time to code up an advertisement server for use with my mobile Apps.  The reason for writing a custom solution for this is that I wanted to use non-standard image sizes which I can then pull into the apps and games in unique ways so that they don’t have the look and feel of an ad.

The custom ads will be popped up in a balloon, animated across the screen or hidden in a drawer waiting to pounce.  With a unique delivery of the ad I hope it can stand out without getting in the way or feel annoying.  With the non-standard sizes I hope it won’t get the immediate “this is an ad” response from people who see it.

One of the things I have learned about doing print advertising and direct mailers is that to be noticed you have to do things unexpected.  Show someone something that they simply can’t ignore.  That’s why the classic 5 cent letters work so well – a nickel attached to a letter will immediately get noticed, and you will surely open it up.  Getting outside of the normal bar style ad along the bottom of the screen is just one simple way to break out of the expected.

Going with the standard ad services out there such as Admob or one of the many other networks is a good way to get paid, but (from my testing) is a terrible way to advertise.  Erroneous and fraudulent clicks are rampant on phones and paying for clicks simply doesn’t come close to breaking even in most cases.

I needed ads that could be targeted and integrated with the look and feel of an app.  To do that I wanted the flexibility of an image. but I also wanted the ability to provide both app specific ads as well as network wide ads.  So for example if there is a free and paid version of the app I can always advertise the paid version on the free app.  But moving the ad to the server allows me to test different images, or run special promotions.

Looking forward to seeing how it performs live in January.

Dealing with iOS App Rejections

Over the past few months I have released a number of apps to the Apple iTunes Store.  It’s been interesting to go though the submitting process so often and YES I have had some apps be rejected.

In most cases rejections are legitimate omissions on my part.  Missing a support link, not setting up game center correctly and things like that.  Apple does a good job of combing through apps for problems.  And I’m thankful for that because when it gets approved I’m more confident that I didn’t screw things up too badly for people that download my apps.

But on two occasions now I have had apps rejected because of the core content of the game itself.  This is really frustrating.  In one case we were able to rename and tweak the graphics to make it less offensive but it took away most of the fun as well.  The second app may not be salvageable.  It’s a couple weeks worth of work lost.

What options do I have for those rejected apps?  not too much.  I could release them to the jailbroken App Store with an ad supported version.  It would be an interested experiment to see how that would play out.

Having an app rejected sucks, there’s no denying that.  But to put things in perspective, if the iTunes store was a giant supermarket and you went in there some Saturday morning, walked up to the service checkout, put a tray of your home made peanut butter and jam sandwiches on the counter and asked them to stock your sandwiches in the store would you be shocked when they said no?

My suggestion?  Read the guidelines and if your app could be on the edge of one of them, submit it early to get feedback from the Apple gatekeepers.  You don’t even have to publish it – Leave it for developer release.

 

Updating iPhone Apps Without Submitting Again

Having developed a few iPhone/iPad apps now there has been a few things that have tripped me up and created more work than necessary.

One of those is that small bugs in the program such as a bad link, misspelled words or game play tweaks like speeds and frequencies that you want to change after the app has been submitted usually require fixing the code and re-submitting the new binary which takes another week to get reviewed.  Depending on the error it could delay the marketing push on the app and cost you a week of lost revenue.

The week long delay in fixing what can be trivial typo errors can be frustrating.

To counteract that it can be useful to move some of these settings to a plist file and update the values from a website.  It can be as simple as putting a json/xml file on a web server somewhere and loading/parsing that file every time the app comes into the foreground.

This feature has become central to a few of my apps.  allowing me to update the content of the app with fresh information, it has also allowed me to test various minor changes in some games in production, and allowed me to fix a link to include an iTunes affiliate link after it was published without one.

This merging of what makes native apps so great (speed, better controls etc) with what makes web apps great (always up to date, easy to deploy fixes, and tracking) is what I find most interesting about mobile apps.

Always be Shipping

The last few months have been absolutely mad and it all comes down to one difficult change that I have made to the way I do things.

Always be Shipping is a mantra I have started to follow.  It means that I’m focused on finishing things and putting them into the market as quickly as possible – even if it’s not perfect or has  features missing.  Test the market with a real product or service and then revisit and improve the experience later.  The benefits have been shocking.

Over the last couple of months I have started and finished roughly 8 different software products.  They are all now in production and the ones that are for sale have been selling.  The more I do the easier and more comfortable the process becomes.  Each product is a chance to test a bunch of new ideas and evolve the code to include new features.

There are many skills that go into releasing a software product.  There’s the programming stuff,  server stuff, then there’s websites, graphics, and perhaps video or sound recordings.  If you get all that done there’s still the other half of the work involved in finding a marketplace to put it in and arranging for payment methods, and all the marketing and promotion to make sure people can find out about it.  Each task poses a risk that it could de-rail a project.

Shipping is the inflection point where you can take a break from product creation and start to find ways to bring money in from all that work.

There are two things to be aware of that can prevent shipping a product

  1. Focus reducing the scope and limiting feature creep.  There are so many great ideas to implement but being able to cut back on things so that there are a manageable number of difficult technical objectives before it’s ready to sell it critical.
  2. Being familiar with the process of shipping so that you know what needs to be done and how to do it efficiently enough that it’s not so tedious you avoid the work.  Ship your products regularly enough that it becomes routine.

It is a real rush to have something for sale that you can check the stats on every morning.  Read the reviews, test ideas, run sales, and compare revenue models.  It is exciting and as addictive as gambling.

Whack A Turkey

Late last week my latest game “Whack A Turkey” made it into the App Store.  It’s a really simple game that took just one weekend start to finish to write and do all the graphics for.  I also managed to pull Michael Snow in for a music loop to give it a unique and humorous soundtrack.

The game is just a seasonal take on the whack a mole genre and managing to get it out just in time for the American Thanksgiving was pretty interesting.

Initial downloads were pretty shocking and the reviews were surprisingly good for such a simple game.

Whack a turkey was really just to help me learn how to use Inkscape.  which is what I used to create all the graphics in the game.  I have to say that I was pretty impressed with how easy it is to create interesting vector graphics with the program.  I’ll be continuing to practice with inkscape so look for more games in the future with even more polished animations.

It was a bit of fun to develop Whack a Turkey and it’s currently free, but I may try to change the price in order to help pay for the music assets.

My thoughts on Freemium

For those that haven’t heard the term before freemium is a business model becoming popular in mobile apps, though it is also used extensively in web services.  The idea is that you give away the product or service for free and then charge for the extra things.  Dropbox is an example, you can sign up for free but if you want more space and a few extra features you can pay to upgrade your account.  I think it is a superior business model.

For UFO Invader I started the game as a paid app for $0.99.  With that low price I was only making one sale every other day.  Over the course of that first month it made just 32 sales, including sales to friends and family.  That simply wasn’t good enough for me so I decided to test a freemium model.

I added a few things to the game that could be bought in the game through in app purchases at various price points and released the update, while dropping the price to free.  The change to the number of installs was dramatic (5 paid apps one week up to 3500 free apps installed the next) and it wasn’t long before some of these new players were buying things in the game.  The same week I switched to freemium I made roughly 5x the revenue from the previous week.

Enough time has passed now that I can start to compare numbers:

  • During 8 weeks as a paid app it made 50 sales @ $0.99 price tier
  • During 8 weeks as a freemium app there has been 43 transactions at various price points
    • 27 @ $0.99 price tier
    • 14 @ $3.99 price tier
    • 2 @ $39.99 price tier
  • 50 paid installs vs. 5200 free installs in 8 weeks
  • Ignoring currency differences, roughly $50 in revenue as a paid app, vs $163 as a freemium app

Even for a game like UFO Invader that was my first attempt at an iPhone game and which has never made it up into the top 100 freemium has proven to be significantly better way to get paid for the weeks of work that went into it. Going freemium more than tripled my revenue directly, and increased my installed base by 100x.  The value of that installed base cannot be underestimated since several thousand players opted in for push notifications which I will use to help launch my next game.

My advice to App developers is to try freemium if it can work with your app.  It’s a bit more work to add IAP, but in my case it proved to be worthwhile for me, and beneficial to the thousands of people who got to play for free and otherwise never would have bought it.  Obviously this is just one case study, different things may happen in other apps, but I think it’s worth testing.

Weekend Challenge

As a way to help encourage me to learn how to use Inkscape to draw vector art I set myself a challenge over this past weekend to re-skin an iPhone/iPad game.  I wanted to completely finish it and submit it to Apple.  Which I did manage to accomplish.

The result was Whack A Turkey.  A very simple game which is finished and currently waiting for approval into the App Store.

I must say that using Inkscape was surprisingly easy especially after reading through the tutorials that inspired this endevour.  2D Game Art For Programmers over at Gamasutra.

Quality vs Quantity

For a long time I was firmly on the side of quantity when it came to business products.  Get as much stuff out there as quickly as possible to test different ideas and markets.  The more stuff I could get out there the less risk there was that I would be devastated if one of them didn’t work out.

But it doesn’t work.  Most people are pretty good at identifying cheap crappy products and they won’t buy them no matter how inexpensive they are.  If products are below a certain quality threshold they simply don’t sell, and the market testing will produce no results.

Since the beginning of this year I have changed my goals.  The focus has changed to creating only great products.  As good as I can possibly make them.  And it has completely changed the way I feel about my business.

Until I have the financial security to run my business the way Apple Inc. does where they only take on new products if they know for sure that they can do it significantly better than anyone else.  I will instead be focusing on releasing products that are as good as I can possibly accomplish and learning how to do them better each time around.  Building just a handful of the best programs I can craft, and putting significant effort into those final touches that take the most time.

The end result is a product that I will feel good about, that others will enjoy, and that I can proudly put my name and reputation on.

I’m looking forward to getting one new App published before the end of the year.  It will either be great, or it won’t be released.