Monday, December 28, 2009

Where's My Boom?

According to this article:

The iPod touch is Apple's not-so-secret weapon when it comes to the App Store, especially come Christmas. This year was no exception, according to stats released by Flurry.

The company says that over Christmas, downloads from iPod touches 'eclipsed' iPhone downloads by 172% - and that downloads from third-generation iPod touches jumped by 900% on Christmas Day itself, compared to the average of previous Fridays in December.

Meanwhile, Flurry says December was a record-breaking month for the App Store, with downloads increasing by more than 50% compared to November based on average daily download figures.

The company also tracked Android Market over Christmas, revealing that downloads from the Motorola Droid jumped 93% on Christmas Day compared to previous Fridays in December.

This is a little weird, because I actually expected a bump on Christmas, and didn't get one. I saw a weird spike on Dec. 19-21, with the 21st being my best day of the month by far. But then revenue dropped back down to normal levels, and Christmas Day was actually the 5th lowest day of the month.

Now, the article doesn't break down paid vs. free app downloads, which is pretty important. I was hoping for a spike on or following Christmas, and haven't seen one yet. Not sure why, if these stats are to be believed. Maybe when people first get their phones, they're reluctant to immediately buy apps or click on in-game ads.

Ah well...revenue is still good. It's just not increasing quite yet. Maybe I'll see a climb over the next week or two. Dominoes has spent some time at over the past week, but is currently #2. And Golf Solitaire has dropped out of the top 5 to #7.

I'm hoping to get Puzzle Lords, the revamped version of Relativia, released this week. Hopefully it will be better received than it's predecessor.

Tuesday, December 22, 2009

2 Back in the Top 5

Last month I had two games ranked in the top 5 in their paid category, Golf Solitaire at #3 and Dominoes at #5. For a while, Golf Solitaire had fallen out of the top 5, but yesterday it wedged its way back, so that I once again have two apps in the top 5, Dominoes at #2 and GS at #5.

For those of you curious about what kind of numbers it takes to make/maintain those rankings, Dominoes has sold an average of 33.75 units/day for December, while Golf Solitaire has sold an average of 7.65/day for the same period.

Monday, December 21, 2009

Yes, You Can Make Money as an Indie Android Developer

For the past three months, my income from Android development has produced a livable wage. And the good news is that it keeps increasing month over month.

The past three days I've seen a very nice jump in the payment rate for my ads, which has generated my first three +$100 days in ads alone. Sales on top of that are putting me close to $200/day. I don't think there are too many indie app/game developers who wouldn't be happy with that revenue stream.

There are periodic dips in usage and sales day-by-day, but the week-by-week trend is sustained growth. I would expect some kind of bump from Christmas this week, though I honestly have no idea how many people gift smartphones (buy your loved ones an Android phone!). Hopefully tons of new users will activate their shiny new phones Christmas morning and take a virtual visit to the Android Market to buy a bunch of new apps.

I would love to hear reports from other Android devs. A few months ago it was mostly doom and gloom, but if I'm seeing this kind of growth, and none of my games are even ranked in the top 50 overall, then there have to be others who are making some respectable revenue.

I'm not dying to have a ton of new competitors, but in general I would like to see more devs come to the platform. The growth of the market is an indication that that's already happening. I think an increase in both the quantity and the quality of apps will in general be good for everyone, users and devs alike. And I'd like to hear more success stories...I know they're out there.

Friday, December 18, 2009

mid-December Recap

Revenue has not continued to rise from the end of November, but remains steadily in the $120-150/day range, which is just fine by me. I know of no way to track the number of sales through T-Mobile's new carrier billing system, so I have no way of knowing its effect. So far I haven't seen any kind of bump in sales. Dominoes remains at #2 and Golf Solitaire had spent most of the last two weeks at #8, with a little time at #7. But this morning it had bumped up to #6. For a couple of days in the last two weeks, the app rankings have been screwed up, showing double entries for some lower ranked apps and pushing the real top-ranked apps off the top. I don't know how many users are affected, but that can't help sales when it happens

Google, in partnership with carriers, is constantly working on revisions to the market, so I suppose glitches now and then are expected. I've never noticed being bumped more than 24 hours, so that's something. The carrier billing on T-Mobile is supposed to keep rolling out until the end of the month. And of course Christmas is just around the corner. So I'm actually expecting an increase in revenue, at least in the last week of December, but we'll see.

Friday, December 11, 2009

Carrier Billing Launches on T-Mobile

Apparently T-Mobile has begun soft launching the ability for users to charge paid apps directly to their monthly bill, rather than entering a credit card through Google Checkout. Users will begin seeing the option when they click the Buy button for apps, and the rollout will be staggered across their user base through Dec. 30, so by then everyone with an Android phone on T-Mobile should have the functionality.

I'm not sure why they did it in such a stealthy way. Users that may want to bill apps directly to their T-Mobile bill might not even be aware they have that capability now, unless they try to buy an app. And if they previously had a credit card rejected, they may not even try. And I just posted a question in the T-Mobile developer forums about how devs will be affected. I don't know if such transactions will also show up in our Google Checkout sales interface. If so, that's great. If not, where are we supposed to track such sales? In Google Checkout we had to manually set up sales tax for valid states. Is T-Mobile handling that now? Is there some transparent interface between T-Mobile and Google Checkout? It would be nice to know such things. It would also be nice to be able to track how many sales are a result of carrier billing vs. credit card.

Anyway, revenue so far in December has fluctuated between $120/day and $150/day, which is great. I wondered if revenue would continue to climb, but it seems to have settled somewhat in that range for now.

Dominoes is holding tight at #2 and Golf Solitaire has traded the #7 and #8 slots with Euchre all week, but is currently sitting at #8. InfusionCalc is sliding down the ranks for paid Health apps, but it continues to sell about the same amount. I released an update for Dominoes to be compatible with QVGA devices, such as the HTC Tattoo. I have no idea whether it's actually showing up on the market for folks with a Tattoo...if you have one or know somebody with one, let me know if you can see Dominoes in the market, please.

It would be great to have a tool that allows you to get a live preview of the market from the perspective of a particular hardware/carrier configuration, but I'll just add that to the list of nice-to-haves. I could embed analytics into Dominoes to see what devices people are running it on, but that would require adding internet permissions, which might adversely affect sales for an app that has no obvious need to connect to the internet.

Anyway, the European version of the Droid, the Milestone, apparently is selling incredibly well. One online retailer reports completely selling out of stock in less than 24 hours. And Time magazine just named the Droid as the gadget of the year, so hopefully they'll continue to see strong sales through the holiday season and into 2010. I'm certainly not complaining, but I sure wouldn't mind if the numbers kept rising.

Wednesday, December 2, 2009

Droid, Early Impressions

I got my Droid yesterday and was able to activate it month-to-month through Verizon over the phone. I've had it for less than 24 hours, but here are some early impressions:

--This thing is fast. I don't know a whole lot about processors, but the speed must be less dependent on the actual number and more on other factors, because I don't think the listed speed of the Droid is significantly higher than the G1, but there is a pretty huge difference in performance. I click an icon to open an app and it opens almost instantly. I didn't realize how slow screen transitions were on the I do.

--The network is strong. I'm getting 4 solid bars of 3G goodness at home. With TMobile I normally got 2 bars at home, and that's what I was getting yesterday, even with the upgrade to 3G.

--The hardware keyboard...I like it. The one thing I don't like about it is that it doesn't have room to give numbers their own dedicated keys, so they're ALTs on the upper row of letters. This is a bit annoying if you're entering in numeric or alphanumeric info, but I can live with it.

--I kind of miss my trackball, and to use the D-pad on the Droid you have to slid open the keyboard, so for basic menu navigation you need to use the touchscreen. Luckily the screen feels even more accurate and responsive than my G1. I still kind of miss my trackball.

--Android 2.0 is very nice. There are already a few little touches that make the experience better. The screen auto-orients to landscape or portrait depending on how you are holding the phone...this is nice. When you're on a phone call, if you take the phone away from your ear (e.g. to enter in a number) the screen becomes active. My G1 didn't do had to press the menu button and then pull up the dialpad to enter a number...annoying.

So far in terms of usability, speed, and functionality this thing is 3 steps up from the G1. Looks like it was a worthwhile upgrade, but I'm glad I'm month-to-month, because it wouldn't surprise me if in 6-9 months there's a shiny new phone I'd be interested in switching to. But so far I'm extremely happy with the Droid.

Tuesday, December 1, 2009

November Recap...Or How I Learned to Stop Worrying and Love the Droid

Android as a mobile OS is finally starting to take off. It's now on at least 2 phones on every major carrier except ATT, and the monster is the Droid. Initial reports indicated that Verizon/Motorola had sold 100K in the first weekend, 250K the first week, and estimated 600K by the end of the year. But new reports indicate those stats were lowballed, and that the Droid has actually sold between 700-800K already and will easily top 1M by the end of the year. Verizon apparently launched a $100M marketing campaign and it looks like it's paying off.

What does this mean for devs? Reports were that revenue from games jumped 53% from September to October. I haven't seen any numbers for November yet, but I'd be surprised if they didn't increase at least another 50%.

Personally, I saw an 80% increase from October to November, mostly on strong sales of Dominoes, but also on a boost from ad revenue. Here's a chart of daily revenue:

Notice the trend, as well. I expect another increase in December...possibly not as large as the one from Oct->Nov, but still an increase. But who knows? Either way I'm enjoying the ride.

Hopefully this means I won't have to worry about departmental funding for graduate school next year. Even if the numbers plateaued, that would still be a decent income for a single-person household. But I still plan on releasing new apps, so we'll see how high we can go and how long it will last.

I Finally Get 3G on TMobile in My Area...The Day I'm Cancelling Service

So I've had my trusty G1 for about 9 months now, and I had signed up on a month-to-month plan. Service has been reliable, over-the-air updates to Android prompt and clean, but I've never gotten 3G coverage while in Lafayette, which is where I live and obviously spend most of my time. When visiting other cities, like Baton Rouge, Lake Charles, or Boston, I'd seen the little 3G symbol appear, but it was nothing but Edge here at home.

But I wake up this morning and look at my phone, and what do I see? The little 3G symbol! I had talked to a TMobile rep a couple of weeks ago and he had said that Lafayette was supposed to get 3G by the end of the month. Guess he was right.

Unfortunately, I just ordered a Droid from Amazon and it's coming today. I plan to switch to Verizon on a month-to-month basis and see how things go. I liked TMobile, though. If I'm not happy with Verizon, I know I'll have a decent place to go back to.

Sunday, November 29, 2009

Well That Didn't Last Long

Dominoes was knocked from the #1 paid slot in Cards & Casino after only a few days on top. A solitaire collection is currently #1, but Dominoes looks like it's going to hang in solid at #2. It's still selling very well (30-40/day). Dominoes is #50 overall in paid games. Comparably, the #16 in Arcade & Action is #30 on the overall list, which gives an indication of the better-selling categories. Golf Solitaire is hanging tight at #7 with 3-10 sales a day, so it doesn't take much to stay in the top 10 in that particular category.

I'll do a recap at the end of November, but it was a very good month. I'd love to see the numbers go up as more and more people buy Android phones, but I certainly would not complain if they stayed right where they were for a while.

Sunday, November 22, 2009

Checkout Check

I'm just finishing up a new app that's probably the first one I've designed and built specifically for my own personal needs. It's called Checkout Check and it's an interface to Google Checkout that lets you generate simple sales reports. Here are some screens:

Here was the problem: If I want to see what my sales in the Android Market are for a given day or date range, I can log in either from the browser on my PC or on my G1. On the browser, the cookies make the login a two-step process. On the phone it's an additional step and each page that loads is quite slow. Either way, there is no way to sort sales for a given day based on the name of the app. You can export a summary to an .xsl file, but get can't export orders with the name of the app!

Let's say I sold 45 apps on a given day and I want to record the sales. If I want to know how many copies of each app I sold, I have to load up the market interface in the browser and manually count them. And like I said, you can't even sort them by app name. As my sales continue to increase, this becomes increasingly tedious.

So I've developed an app that let's me select a date range and an order state and generate a simple report that details the name of each app, the number sold, the gross revenue, and net revenue, and totals for everything. It's kind of amazing to me that I'm not able to generate such a report through the official market interface.

And let me tell you, it wasn't easy using the Google Checkout API, either. There's a Notification API, which works in real time to notify you of any changes to your account, a Notification History API, which allows you to get information on past notifications, and an Order Report API, which generates reports on orders.

But here's the thing...from what I could tell, only new order notifications contain information regarding item name. So what I had to do was send a query to the server for all the new orders for a given time range, returning order number and item name, then send another query for an order report for the given time range, which contained order number, status (CHARGED, CANCELLED, etc.), and cross-index the two to generate a report with the information I wanted. Sounds fun, huh? Because who would actually want to generate a report with the name of the items they're selling, right?

Anyway, it works. Sort of. It's a bit slow, but right now it's reliably fetching sales information for a single day for charged transactions. I'm still having some issues with other order states, and I'm also getting errors when I search for time ranges over a day.

Another fun property of the Notification History API is that you can only fetch 50 orders at a time. If a query return is longer than 50 orders, what you get is an XML response with 50 orders and a next-page-token. You have to send another query using that token to get the next page, and so on for every 50 orders. I'm probably either getting a time-out error or an issue with memory for queries longer than a day, but hopefully I'll figure that out soon.

Anyway, I know I'll find it useful, and I hope other Android devs do as well. I'm sticking ads in it to hopefully generate a little revenue. If the ad revenue just isn't worth it, I'll likely just open-source it and see if other devs can help make it better. Also, right now it only supports transaction fee structures for Android merchants. Google takes 30% per transaction for Android apps, but the normal cut for Google Checkout is a tiered structure, depending on your monthly revenue. For non-Android transactions they take a small percentage and a flat fee for every transactions, and the fee gets smaller the larger your monthly transaction total. If there's enough interest and demand I'll probably augment the app to handle non-Android app transactions, but there's no need to do that right now. Besides, non-Android merchants can still use the app to get a summary of units sold and gross revenue.

Dominoes Hits #1!

Yep, I've now got the #1 paid app in Cards & Casino in the Android Market. People must love their dominoes. And revenue continues on an upward trend. I could get used to this.

I'm definitely expecting growth through the end of the year. Black Friday is coming up and I would expect another bump from discounts on the current crop of Android phones, as well as another around Christmas when gifted phones are fired up and new users start looking for apps.

Supposedly Verizon/Motorola has already sold around 250,000 Droids, and I saw a report yesterday that estimated 600,000 would be sold by the end of the year. Good stuff.

On the flip side, Golf Solitaire has slid down to #7, but I'm not going to complain.

Wednesday, November 18, 2009

T-Mobile Carrier Billing for Apps

Apparently T-Mobile had announced that starting Nov. 17th users would be able to purchase Android apps by easily charging them to their mobile bill. They also announced a custom T-Mobile channel in the market. It's Nov. 18th, and browsing the market and searching for T-Mobile, I don't see either of these functions. I have T-Mobile service, but clicking "Buy" for a paid app still takes me to Google Checkout, with no other payment options.

I was excited when I heard they were implementing this, hoping that more payment options would facilitate more sales, especially impulse purchases, and possibly fewer returns. It's not up by the announced date...I do hope they get it up and running soon.

And another quick update: Dominoes has just moved up to #2, but Golf Solitaire has dropped a slot to #6. Having an app in the #1 slot would be oh so sweet. Just one more to go.


Well, a few days ago Golf Solitaire was #3 and Dominoes was #5. Now their positions are reversed, with Dominoes at #3 and GS at #5. Dominoes is still selling strong, making up about 30% of my revenue right now.

It's been a while since I've shared some hard numbers, so here they are in a pretty graph. This is net revenue by day for the past 6 weeks:

I had been steadily making about $50/day before the release of Dominoes, which gave me a very nice, and so far robust, increase.

As you can see, revenues had started to dip back down slightly before the release of the Droid on Nov. 6. According to reports, they sold 100,000 Droids in the first weekend after it went on sales, and about 250,000 in the first week. It looks like the Android market is poised for steady, sustained growth, mostly on the back of the Droid. Though the bulk of my users are still on the G1 and MyTouch, I'm seeing a steady rise of Cliq, Hero, Eris, and Droid users in my analytics.

My graphics probably look a little grainy on the Droid, though I have yet to confirm this...still wrestling with whether or not to get a Droid. The only confirmed technical issue was with Kilopod, my Centipede clone. I'd built it for trackball support, and hadn't built in controls for a d-pad, which is what comes on the Droid. A user alerted me to this and I fixed it within an hour.

And that's net revenue, after Google has taken their 30%. Revenue from ads makes up about 55% of the daily take, leaving about 45% to net sales. Ads have tended to make up about 50% of revenue since I started this.

In the works are a Google Checkout client for Android called Checkout Check (I'm not happy with the way Google Checkout exports data), a multiplayer version of Dominoes using Google App Engine as the server (Philip is working on this), a local version of Relativia which will be rebranded as Puzzle Lords, and a new game called Mobile Murder Mystery.

Sunday, November 15, 2009

2 in the Top 5

Dominoes has edged it way into the #5 slot in Cards & Casino in the Android Market. Golf Solitaire is wedged in at #3. So I now have two games in the Top 5 in their category, which is very nice. And Dominoes shows no sign of slowing. It might very well pass GS this week and take the #1 (currently held by Ahoy Matey).

Meanwhile, InfusionCalc had dropped out of the Top 10 in Health, but I've had a nice trickle of sales lately, enough to nudge it back into the #10 slot.

I've noticed now that a lot of my niche apps (like Concrete Calculator) are selling in low, steady numbers again, probably due to the infusion of Droid users.

Friday, November 13, 2009


Sales and ad revenue are still strong, so I'm happy. Golf Solitaire is still #3 in its category, and Dominoes has moved up one slot to #7, and is still selling briskly.

I came close to buckling down and buying a Droid and just going month-to-month on Verizon, but then I heard that there's a GSM version of the Droid called the Milestone that's released in Germany and will soon be released in Canada. See, T-Mobile, the carrier I'm on right now, uses GSM. Verizon uses CDMA. That means the phones don't run on each other's networks. However, even if the Milestone isn't officially released in the US, you should be able to use it on T-Mobile's network. So I'm going to wait a little bit and see if I can make that happen. That would really be the best option.

Wednesday, November 11, 2009

Gamers Apparently Don't Want to Roam

So after crapping out of the ADC2, I released a free, ad-supported version of Relativia on the Android Market. It's had about 500 downloads, with a subpar rating. Turns out that people don't really want to have to visit real-world locations to play a game...or at least not my game. The good news is that they do seem to generally like the puzzle combat system. Here are some comments from users:

Good idea but cant play because im not willing to travel around in real life to do so. Please fix!

Just make the game a world map. Battles are interesting though.

This is a good idea but is dumb that u have to go to real locations.

There are more like this. The general consensus seems to be that people like the game except for the part where you have to go to a coffee shop to enter a dungeon.

So, I need to think about retooling the game to just a local version, which would probably do well. In the meantime I've removed the current version from the market.

Tuesday, November 10, 2009

The Droid Bump

So Google and Verizon released the Droid on Friday, with a huge marketing push. And they must be selling the things pretty well, because a number of devs in the discussion groups are reporting an increase in downloads, in some cases up to 100% more than their daily average.

I'm not seeing that big an increase, but I am getting a bump. It's more in the 20-30% range, but it is significant.

I've seen +$100 net revenue every day since Friday, and Sunday was a record high. Here's hoping it keeps up!

The rankings in the market are weird. My Dominoes game (which has only been out about 3 weeks) is about to pass my Golf Solitaire game (which has been out about 6 months) in sales. They cost the same price. The only difference is the ratings...GS is about 4.5 stars, while Dominoes is nearer 4 stars. The retention rate for Dominoes is actually a couple of percentage points higher. I don't think anyone knows exactly how rankings are computed, but it has been speculated that it's likely a combination of downloads, ratings, and retention, hopefully with some way to filter out scamming. Meanwhile, Golf Solitaire is holding steady at #3 in its category, while Dominoes hasn't moved from #8 in about a week. It's going to be very strange if Dominoes surpasses GS in sales, has a higher retention rate, and is still ranked lower.

Anyway, it's very nice to have two apps in the top ten in their category, both selling well. And InfusionCalc has also seen a bump in sales and climbed back to #10 in its category after sliding out of the top 10. I was trying to find out if there was a review or mention of it somewhere, but I couldn't find anything new. It could just be that a lot of nurses and paramedics just bought Droids.

I was in a Verizon store yesterday and a guy in scrubs was buying a Droid, so who knows? Speaking of which, I probably won't be getting a Droid, at least not right now. Their price plan would have me paying $15 a more per month than what I'm paying with T-Mobile, which might be worth it to insure that I have 3G coverage here at home. The T-Mobile rep assured me that 3G would be in place in Lafayette by the end of November. Right now the network is a little slow, but it's fine for my and very light browsing. It's like being back on dialup. Unfortunately, I was not impressed with either of the reps at either of the two Verizon outlets I visited this weekend. What I really wanted to see on the Droid was how well it browsed the internet, rendered video, and I wanted to handle the hardware keyboard. The guy at the mall had let the battery drain out of the only test model they had and didn't have a working power cord. Okay. At the other store, the rep let me handle a phone fresh out of the box, but didn't have one with an account configured, so again I couldn't test how it performed on the network.

So I'll just wait. The G1 seems outdated, even though I've had it less than a year. But it's still a solid phone, and not worth ditching for the current generation. The Droid is the nicest phone out right now, but for me it's not worth either paying +%500 for the phone and going month-to-month, or being locked into a contract for $15 a month more than what I'm paying now. Android phones are coming out fast, and I'd like to be off-contract so I could upgrade and potentially move between carriers whenever I want. The current generation of Android phones are all sporting around 500MHz processors, but I know there are 1GHz phones in the pipeline, and hopefully one of those will be released by the end of the year and will be compatible with my T-Mobile service, which will hopefully be upgraded to 3G in my area.

Until then I'm staying put, but I'm certainly happy that lots of other people are either switching carriers or upgrading to new Android phones.

Thursday, November 5, 2009

Well Crap

I just got an email from Google notifying me that Relativia didn't make the cut to the second round of the ADC2. On the bright side, the email did inform me that my game was rated among the top 25% overall. That's something, at least.

I now need to figure out what I'm going to do with the app. Obviously I had hoped to place in the money and ride the wave of publicity to fame and fortune. The monetization plan for the app (besides winning prize money) was to form agreements with companies such that they would pay in order to have their business name incorporated into the game as a physical location to visit. I may still just release the game for free and pursue that option. Alternatively I could try to work ads into the game or try to sell it. I need to think about that.

No word on the actual finalists, yet. Someone in the Android Developers Group speculated that the winners have known for a while now, but were bound by an NDA. My guess is that this is probably the case. It would allow them to modify their entries using the 2.0 SDK for compatibility to coincide with the release of Droid tomorrow. I hope to be blown away by the top 20 in my category. That would make me feel less shitty about not moving on.

We'll see.

Google Implements Analytics for Android and iPhone

Yep. The SDK and documentation is here. This is pretty cool, but I'm currently using Flurry, and I'm extremely happy with their data and visualization. I may go ahead and use Google Analytics on my next app to see how things compare.

In other news, two sites that I used to rely on heavily to track the status of my apps have been down for a week. Cyrket is a site that provided an up-to-the-minute snapshot of the Android Market. It now directs to a blank page. Speculation in the dev forums indicates that Google may have changed something on their end that screws up the way Cyrket was scraping the information. Not sure if that's true or not, but I hope it's only temporary. In forum posts where people are asking about Cyrket, usually the first response is always, "just use AndroLib". AndroLib is okay. There are a couple of problems with it. One, it's much slower to update, as in days. Two, it doesn't display rank information just as the Android Market does. You can sort apps by date or by rating (which is kind of nice...the Android Market doesn't have this function), but you can't see a view of apps based on their current ranking (at least that I can tell). Want to find out what the #1 ranked app in a given category is? You'll have to actually go to the Android Market on your phone. Lame.

The other site that's currently down is AndroidStats. Actually, it's not completely down, it just hasn't updated with new data for a week. From what I've heard, AndroidStats gets its data via Cyrket, so since it went down, they both went down.

This wouldn't be a big deal if Google had a decent web interface to the market that displayed this information. One could possibly hope that the change they made might be related to implementing their own decent web interface to the market. We'll see. They've been pretty good about consistently updating Android itself, but not so much its web presence.

Another issue: I got an email today from a customer who had purchased Dominoes. She loved it, and wanted to give it as a gift to a friend. She asked that I simply charge her credit card again and send him a copy. Only problem is, I can't do that. And the Android Market doesn't currently support gifting apps. So I told her she could either buy him a gift card to let him buy the app on the market, or we could do an end around the Android Market via PayPal and email. Neither option is great. I have read that Google is considering adding this option. I really hope they could only increase sales.

So, daily movements: Golf Solitaire has dropped back down to #4, but Dominoes keeps inching's currently #8.

Wednesday, November 4, 2009

T-Mobile to Start Offering On-bill App Purchases This Month

This is welcome news:
T-Mobile will let its subscribers pay for Android applications on their monthly mobile bills starting Nov. 17, also introducing its own section of the Android Marketplace that day.
Very nice. One long-standing complaint with the Android Market has been the lack of payment options, only allowing users to buy apps through Google Checkout. Hopefully the on-bill purchases will be relatively streamlined, and it should only help with sales.

Speaking of which, Golf Solitaire has now moved up to #3 in paid apps in Cards & Casino, and Dominoes has moved up to #10 (and at the rate it's going, I would almost expect it to overtake GS).

Monday, November 2, 2009

October Update

Ah, October 2009 was a very good month. The combination of AdSense and Dominoes allowed me to make three times as much this month as my best previous month. I've now made more in the last two months than in the first six months I started publishing Android apps.

And the really good news is that things are actually picking up steam. The Motorola/Verizon Droid will be released this Friday, and it should do well, which should mean more downloads. Less well-hyped is the release of another Sprint Android phone today, the Samsung Moment.

In the meantime, Golf Solitaire has pushed up to #4 in paid apps in Cards & Casino, and Dominoes has vaulted up to #11. At this rate I wouldn't be surprised to see it in the top 5 by the end of the week, and it sure would be nice to have two top 5 apps in place for the release of Droid. Today I also released a new version of Dominoes with support for larger screens and for Spanish localization. I took Spanish as an undergrad, but it's not good enough to do translations. I relied on Google translate. Hopefully I won't get too many angry emails. At least if they're in Spanish I won't be able to really understand them. word on the Android Developer Challenge 2. Today is a Monday, which seems like a good day for an announcement. Then again, so did the last three Mondays. We're a day shy of a month since they announced the close of round 1 and said it would only be "several days" before the finalists were announced and round 2 would start.

If they aren't going to announce the finalists this week, it would at least be nice to get some kind of update regarding the delay and an estimate about when we might hear something.

Monday, October 26, 2009

The Future Looks Bright

The present isn't looking too shabby, either.

Reached a new milestone today...over 2,000 net apps sold for the year. Dominoes helped vault me over that particular benchmark. It's selling very briskly, and shows no sign of slowing. Dominoes has climbed to #27 in paid apps in its category, and I fully expect it to break the top 10 if it keeps this pace up much longer.

I revamped my business website to tailor it specifically to mobile browsing. It's pretty darn hard to make a website that displays well on a PC browser and mobile browsers. When push came to shove, I decided it was much more worthwhile for it to look and function well on mobile, especially Android, and I think that might actually be helping sales as well.

I'd be extremely happy if the current numbers stayed reasonably close to what they are, but it's difficult not to get too excited about the new phones coming out in the next few weeks. Here's hoping the numbers actually go up.

Saturday, October 24, 2009

Android Market Offers Paid Apps for Japan

I just happen to run across this from the Washington Post's online technology section:
Now it appears that paid apps have finally come to Japan.

As we wrote in May, the country?s largest telecommunications company, NTT, has picked up the rights to distribute the first mobile phone that uses the Android OS in Japan. The first paid apps hit the Android Market today for Japanese users. The apps are listed on the Japanese version of AndroLib, which lists applications and games for Android for various countries.

Android stands to be a huge deal in Japan, and we hear that 25 to 30 percent of AndroLib's visitors are from Japan, which could make the availability of paid apps in Japan a large market opportunity for developers.
I could handle a boost in sales from paid apps now being offered in Japan.

I checked out my developer interface and it looks like Japan is now listed as a target for paid apps. Now this is a little strange, because I've been working on a deal with a reseller in Japan to distribute my paid apps, and they supposedly starting selling this month. It will be interesting to see how the numbers compare.


So I released Dominoes this week, and happily it is selling briskly, despite a bug that I didn't catch before released that screwed up whose turn it was when the player couldn't play. I fixed the bug and posted an update. I've already found another minor bug (the quit button in a particular dialog isn't working right), but I'll wait another few days to post another update. I had gotten several requests for a Dominoes game back when I first released Spades, so I knew there was some demand, but it's nice to see that there is quite a bit of demand. People love their dominoes.

Based on a strong first day, Dominoes debuted in the Cards & Casino game category at #144 and then rose 14 positions to #130 the next day, placing it #36 in paid games in that category. Sales aren't slowing down, so I expect it to keep on trucking.

Golf Solitaire finally bumped its way up to the #5 paid game in Cards & Casino, which is nice because in the Android Market interface the screen holds 5 apps at a time, so now it's one of the first games you see when you sort by paid apps. Last month I sold an average of about 3.7 copies/day, and this month it's about 4.7 copies/day. I think the bump to #5 will only help.

And the Android Developer Challenge. Sigh. It was surprising when they closed voting for Round 1 early. I honestly expected user judging to take a lot longer. But the judging app then said that the break to tally the votes and prepare for Round 2 would be "brief", and that we would be able to start judging the finalists after "several days". Well, that was on October 6th, so we're going on several weeks now.

Who knows why it's taking so long. Maybe their having a difficult time finding good judges. Apparently there were some logistical issues equipping and preparing the judges for ADC I, though you'd think they'd have that smoothed out this time around, when availability of Android devices is much higher.

Another possibility is the snafu regarding the release of 1.6 concurrently with Round 1, which reportedly caused errors in some of the entrants' apps. Maybe they're having to decide how to fairly deal with such issues and/or working on updates to deal with 1.6. Maybe they're also considering letting devs perform an update before Round 2.

Another possibility that's been floated is that they're waiting for the release of Droid on Verizon, hoping that the convergence will lead to extra buzz. The latest rumors are that Droid is actually the name of an entire series of devices, rather than a single smartphone, and that the first Droid device will actually be available at Best Buy this weekend. On the discussion groups, some impatient and disgruntled devs have gone ahead and released paid versions of their apps on the market...not sure if this will disqualify some entrants.

Which is yet another possibility, that Google is spending all this time vetting the finalists for eligibility requirements.

Whatever the case, one would hope they announce on Monday...although I was absolutely sure they would announce last Monday. Only thing we can do is wait and see.

Piracy on the iPhone

This story from an iPhone game developer is getting a lot of interest. Their company is called Neptune Interactive, and they released a game called Tap-Fu in the iPhone App Store, along with an online high-score board and some code to determine whether the app has actually been legally purchased or not.

The results are very interesting. About 80% of the people who posted their high scores had pirated the app. They also looked at how many pirates then went on to actually purchase a legitimate copy. How many conversions from pirated copies? Zero.

This is not a widespread study across a variety of games over a long time span, so it should be taken with a small grain of salt. But it is highly suggestive and very interesting.

Now, for the paid version of my apps, I could install Flurry analytics and track the number of users versus the number of sales. That would involve adding internet permissions to an app that doesn't obviously need access to the internet, which might deter some people who would otherwise buy the app. Still, it would be an interesting experiment. I struggled with how to monetize my latest app, Dominoes. Eventually, I decided to go with a paid version over ad-based.

In the first few days it's selling very well. Maybe somewhere down the road if sales flatline I'll release and ad-supported version, but for now I'll stick with the paid version. And there's really no way to tell if and/or to what extent the app is being pirated.

As I mentioned in an earlier post, I've seen my Spades app in bundles of pirated Android apps on at least one torrent site. I would imagine that as the platform becomes more popular, pirating will become even worse. It's a problem that all developers have to deal with at some level. I've been happy with the performance of AdSense, so most likely I'll try to use that model when I can.

Wednesday, October 21, 2009

Dominoes for Android

I just finished working on my newest app for Android: Dominoes.

Dominoes was one of my favorite games as a kid. I'm from Texas, so we played what was called Straight Dominoes. Apparently it's closely related (if not identical) to the dominoes games Muggins, Fives Up, and All Fives.

The current implementation is two-player vs. a computer opponent. Each player takes turns playing dominoes, and you score when the open endpoints total to a multiple of 5. Here's a demo video:

There were some unique challenges in creating Dominoes for the mobile platform. The biggest challenge by far was the layout. I initially thought I was going to be able to display all played dominoes, but there's just not enough real estate on the screen to do that. Well, there sort of is, but the layout algorithm would have to be incredibly complex. The one I ended up coding was complex enough already.

I struck a compromise between showing some of the played dominoes, but clamping the ends, so that if a played domino goes off the screen, it basically overwrites the domino it was just played on. This doesn't look great, but I think it strikes a decent balance between only showing the endpoints and showing all played dominoes.

As you can see in the video, the user can pull up the Played Dominoes dialog at any time to see which dominoes have been played.

For the most part I wanted to have as much information available on-screen as possible, so that the user wouldn't have to navigate away from the main play screen in order to see:

1) How many dominoes their opponent has left
2) How many dominoes are left to draw
3) Whose turn it is
4) Each player's score

Also, if the player draws more than 7 dominoes, an arrow appears to the right of their hand, allowing them to scroll through their hand. I initially thought I would display all the dominoes in the player's hand at once, but this would simply take up too much space.

Anyway, I'll likely release it this afternoon and we'll see how well it does. Back when I released Spades, I got several requests for a dominoes game. When I wrote one of them back and asked what kind of dominoes, he said "Doesn't matter!" So we'll see what kind of demand there is.

Wednesday, October 14, 2009

Game Development for Android Article on Gamasutra

So about a month ago, the game industry website Gamasutra posted an open call for feature story ideas. I sent them an email saying I'd like to see an article devoted to game development on Android. The feature editor emailed me back and said "Go ahead and write it."

It was posted on Gamasutra yesterday, and Slashdotted today. It's meant to be a high-level, market-centric overview, rather than dealing with the technical intricacies of the platform.

Unfortunately, a number of programmers are not happy with this line from my article:
While iPhone apps are written in Objective C, the Android SDK uses relatively more programmer-friendly Java.
I even put a hedge term in there, but I guess I should have expected a backlash from iPhone developers (even though the article overall is very fair in discussing some of the advantages and disadvantages of each platform/market).

Jeff LaMarche, an author of iPhone development books, says overall he likes the article, but then says:
On the first page, for example, the article says that Android uses the "more developer friendly Java". What the hell does that mean? I've done both Java and Objective-C for a living, and neither one has ever waved to me or gotten me a cup of coffee. They're programming languages.
Well, so is assembly language. I think "programmer-friendly" is a fairly obvious term, and means more than just a lot more people program in Java (although a larger potential support community is a factor in making a language friendly to programmers). The first comment on LaMarche's post points out a few more reasons.

Ultimately, though, the designation is subjective, and the choice of programming language is certainly not a deciding factor for an experienced developer. However, it might be a factor for new, inexperienced programmers.

In any case, it's good to see the article getting some attention. I hope that it generates some interesting discussion and brings some focus to Android as a game development platform.

Wednesday, October 7, 2009

Golf Solitaire Free Passes 10,000 Active Installs

The free version of my Golf Solitaire app just reached a nice benchmark: 10K active installs. The retention rate is between 35-40%, which means about a third of the people who download it keep it on their phone for an extended period of time.

Spades Free actually has more active installs (close to 25,000), but GS seems to be gaining momentum and performing very well. I'm also happy with the conversions from the free to paid version. Sales of GS increased by about 30% from August to September, and so far this month they've gone up even more.

October looks to be a very good month already, and that's even before any new Android phones have been released.

Tuesday, October 6, 2009

ADC2 First Round Judging Complete?

I just opened up my ADC2 judging app to check out the next app, and got this message:

The first round of judging has concluded. Thanks again for all your reviews. Round 2 will commence after a brief scoring and review period, so there will be no apps to review for several days.

Don't worry, you'll start seeing those same notifications in the status bar soon enough.

Weird. Initially they said that judging would last at least 2 weeks, but the judging app went live on September 24th, which was 13 days ago. I'm wondering if this has anything to do with Android 1.6 compatibility issues. I can see cutting user judging short out of fairness to those whose apps aren't working under 1.6. But then, why would they resume user voting in a few days if that's the case?

It would be nice to get some official word on this.

There's a Map for That

Verizon apparently debuted this new ad last night during House:

It takes a dig at ATT's 3G coverage. The gloves are apparently coming off in the smartphone wars. This morning, Verizon and Google announced a strategic partnership centered around Android. Verizon plans to announce several new Android devices very soon that will be available through their network.

Looks like it's going to be ATT/Apple vs. Google and nearly every other carrier.

Monday, October 5, 2009

ADC2 and Android 1.6

So T-Mobile started rolling out the newest update to Android (1.6, code-named Donut). I got my update last week. Now normally this would be cool. I'm especially happy about some of the market improvements in 1.6.

The only problem is, voting for the first phase of the Android Developer Challenge II is going on right now, coinciding with the Android update. And developers were told to develop apps compatible with 1.5 for the contest (for most of the development period, the 1.6 SDK wasn't even available).

What this means is that because of the update, some percentage of the apps submitted to the contest will not be compatible with 1.6. I loaded Relativia to my phone with 1.6 and checked it out. Seems to be working fine, even all the map functionality.

But there are a few devs on the discussion groups that are reporting crashes and errors when running their contest apps under 1.6. This is not cool. I don't know of any feedback from Google about this issue so far either. I wouldn't think the number of people working on Android at Google is very large. It sounds like some people were not communicating, though.

User judges have the capability to skip apps they don't want to vote on. The fairest thing for a user to do would be to skip voting on apps that crash. But most users probably aren't aware that problems with the app could be due to OS version compatibility. Google could do a number of things to correct the situation, some which would require a lot of work (like testing apps for compatibility issues), to disable the voting app under 1.6, only allowing it to run under 1.5. They could cut short the user voting and rely on expert judges from the second round. Or they could simply do nothing.

I'd heard that devs complained about the administration of ADC1, but I don't think anything like this happened. Stay tuned...hopefully Google will actually address the matter soon. The issue doesn't seem to be affecting my entry, but I hate to see other devs get screwed over.

Thursday, October 1, 2009

September Recap

September was a good month. Most of it was just like the summer months, but a few really nice things happened to give me a boost going into October.

First, as I mentioned before, Google added a few new categories to the market, including Health. This allowed my infusion calculator to get a little more exposure. I sold 31 copies of InfusionCalc in September, compared to just 11 in August. Not mindshattering, but a nice little boost. That app is now #5 in paid apps in Health.

Many users were complaining about the lack of high score functionality in Golf Solitaire, so I added a leaderboard. That seems to have helped quite a bit, upping the overall rating of both the free and paid versions, and boosting sales a bit. Here are my all-time sales by month for the paid version of Golf Solitaire:

Again, not money to retire on (GS sells for $1.99), but the trend is nice. While the free version has remained fixed at #20 in its category, the paid version has climbed up the 6th highest paid game in Cards & Casino.

The most significant development is that I was accepted to participate in the Google AdSense for Mobile Apps Beta program, so I replaced my AdMob ads with AdSense in Spades Free and Golf Solitaire Free. I also put AdSense ads in PetBook and released it as a free app. I'm not going to give out specific numbers right now, but I will say that I am very happy so far with the results. I may be getting a boost just from the novelty of new ads and new placement. I hope ad revenues don't dwindle down to the $1-2 range like the did with AdMob. It would be nice if they plateaued off to a respectable level.

The news is that Donut (the latest Android build) started rolling out to users' phones last night. It's got some nice improvements to the market (screenshots!), which can only help downloads and sales.

Also, the new phones are coming out. The Motorola Cliq goes on pre-order October 19th and on sale the first week of November. The rumorly-named Motorola Tao is supposed to be announced any day now, and should be available (on Verizon, so the rumors go) by the holidays. I think the HTC Hero, available on Sprint, is also supposed to be available within the next two months. Of course I hope these things sell like hotcakes and lead to a corresponding boost in downloads and sales. We'll see.

Tuesday, September 29, 2009

Relativia and ADC II

Some developers are asking on the Android Developers Google Group for others to check if the apps they submitted to the ADC II are showing up. It does seem a little strange that devs didn't receive any indication that are apps are properly loaded for the ADC II judging app. Ah well.

I at least know that mine is being judged. I saw someone reference it and say something nice. So that's a good sign. Though it doesn't look like Google is going to give an indication of what the ratings are until Phase I of judging is complete.

So far the consensus seems to be that the game submissions are pretty good, while many of the applications are not all that great, lacking a lot of polish. So far I've judged about 10 apps (and only 1 game out of the ten). The game was probably the best app of the bunch. Some of the apps have interesting ideas, but almost none of them work as advertised.

Anyway, I'll post here as soon as I hear anything about the outcome of the first round.

Thursday, September 24, 2009

ADC2 Judging Begins

Google just announced on the official Android Developers Blog that the judging app for the Android Developer Challenge 2 is now available on the market. So judging has begun.

I'm not sure if it's kosher for entrants to judge, so I'm not going to download the app until I hear otherwise. A couple of things sound pretty interesting...

For one, it sounds like users can browse the various apps. I thought the way it was supposed to work was that random apps would be uploaded to their phones. Still not sure how this works, but I'm sure I'll find out soon.

And I believe this is new information:

During the second round, judging will occur through a combination of user voting and input from a panel of industry experts. User voting will continue to occur via Android Developer Challenge 2 and will account for 40% of the final score that each app receives in round two. The remaining 60% of the final score will be determined by the industry expert panel.

I thought the way it was supposed to work was that users determined who went on to the second round, but then their votes didn't count in the second round. Good to hear that they will have some influence in the final outcome.

And it also sounds like there's no set timeframe on judging. They say that judging will continue until "they have enough votes"...although that's left open ended. They say judging will last "at least" 2 weeks, though they don't put a cap on how long it might last.

If you're judging and you come across our app Relativia, give us an up-vote, please!

Saturday, September 19, 2009

Some Summary Stastics After 6 Months Developing Android

I've posted sales stats here before, but not many numbers in terms of downloads, active installs, and ratings.

Here are some summary stats, in case anyone's interested:

Total published apps: 25
Free: 9
Paid: 16

Total downloads: 112,505
Total active installs: 42,797

Total free downloads: 104,001
Total free active installs: 41,939

Total paid downloads: 1,986
Total paid active installs: 856

Average user rating for all apps: 3.37
Average user rating for free apps: 3.17
Average user rating for paid apps: 3.44

My app ratings follow a normal distribution:

Those aren't bad numbers, I figure, for 6 months on the platform. I don't have much to compare it to.

Of course, the bottom line is the bottom line. That's still not looking all that great. But hopefully things will pick up in the next few months, especially in the overseas markets.

Fun With Tabs in Android

So I'm attempting to implement my first multiplayer game, and I'm working off an example multiplayer chatroom as the basis. The idea is that the user logs into a lobby chatroom, finds someone to play, then either creates a new game or joins an existing game.

The sample app I'm working from uses tabs for navigation, which I haven't used in an app before, but it seems like a nice approach to the UI.

There's just one hitch...I'm having an unholy bitch of a time customizing the tabs, even in seemingly trivial ways.

What's wrong with the default tab parameters? Well, here's a look at the app with the default tabs:

One thing you might notice off the bat is that the tabs are monstrously huge. You could say "Well, they designed them that way for people with fat thumbs." Yes, but default button sizes are nowhere near that big, and they are easily customizable. Not so with tabs. There's just no reason why they need to be that humongous, taking up a quarter of precious screen space. Perhaps if I were designing apps for a race of sasquatches, this might make sense. But I'm not. Okay, some of the users might be sasquatch-like, but I digress.

It took a while, but I figured out how to resize the tabs to non-monstrous dimensions using the following line for each tab:

tabHost.getTabWidget().getChildAt(index).getLayoutParams().height = 40;

Hey, the size looks pretty good now. I load this onto my actual phone and I can very easily navigate between tabs. 40px is plenty tall for a tab. But wait...the background colors are messed up. That should be easy to fix, right? Guess again, dude. If you change the background color programmatically, it overrides the selected and unselected states, so all the tabs are the same color all the time, whether or not they're selected. You can define a custom set of images for selected, unselected, and focused states, but that's a pain in the ass. Why can't I just adjust the background of the unselected state programmatically? Or maybe I can, but I damn sure can't find out how to do that anywhere. Sounds like if I want to change one thing, I have to define a whole set of custom images, which is dumb.

In lieu of that, I thought "Well, the gray stripe on the tabs actually doesn't look half bad, if it weren't offset from the text. It shouldn't be that hard to reorient the text on a tab." Wrong again, dude. You want to align the text on a tab centered vertically? Or aligned at the top of the tab? As far as I can tell, there's no simple way to do this. Why not?

Oh Android...most of the time designing a UI is elegant and easy. In retrospect you make me glad I never worked with tabs before. And now that I am, you're making me want to claw my eyes out.

Tuesday, September 15, 2009

Android 1.6 SDK Released

They just released version 1.6 of the Android SDK. It's nice to see continued development and improvement in both the OS and its development tools.

Looks like they revamped the emulator as well:

Cool, huh?

Monday, September 14, 2009

Yay for New Market Categories!

So last week, Google added four new categories to the Android Market:

  • Themes
  • Comics
  • Sports
  • Health

This is cool, because it makes finding certain types of apps easier, not only by putting them in their own category, but by getting them out of overcrowded categories in which they don't belong.

I moved my two nursing/paramedic calculators to Health, and I'm seeing a slight uptick in sales, which is nice. I hope they keep up the improvements...they are sorely needed.

Friday, September 11, 2009

Selling in Other Countries Without the Android Market

Since I've started developing Android apps, I've been approached by a number of different companies in countries that currently do not allow paid applications via the Android Market, including China, Japan, and India.

I'm not sure if the time investment in dealing with these resellers is actually worth it. It seemed like a good idea at the time, but it is time consuming working out agreements, producing custom graphics for their market interfaces, and so on. I also signed up with Handango, and even though there are reports that Android games are doing well through Handango, my performance there so far has not made it worth the effort.

One school of thought is to simply wait until Google expands the Android Market to support paid applications to those countries that currently don't have them. Another is to try to get paid apps in front of people through alternative distribution channels as quickly as possible. One worry is that Android is going to be fractured, without the standardized hardware or distribution channel like the iPhone.

Apparently some people are doing well, at least through Handango, but I haven't heard of any alternative markets in other countries that are doing well. Perhaps it's too early. Japan, India, and China are just such huge potential markets, it seemed like a no-brainer to try to get in those markets early...but who knows?

If anyone else has had any experiences with Android app resellers outside of the US, good or bad, feel free to share.

Tuesday, September 8, 2009

Revenue for August and Golf Solitaire Update

Revenue for August went up a tiny bit over the previous month. At least it didn't go down. And my most consistent seller these days is still Golf Solitaire. I think it makes sense to focus on apps that are somewhat familiar, but still original enough not to compete directly with others (e.g. my Spades app).

Because one of the consistent requests for Golf Solitaire was a high score feature, I added a leaderboard for the front 9, back 9, and all 18 holes:

I'm still getting some people complaining about force closes, which I suspect may have to do with the SQLite database, but which I haven't been able to replicate. I wish I could directly ask users when the app crashed so that I'd have some idea how to fix it.

As for other functionality, at some point I plan to add in a mulligan (or undo) least 1 per hole.

I'm investigating multiplayer games, but it looks like it may just be far too complicated for me to mess with. I think it would be a nice way to edge out the competition for card games, though, so I'll keep looking into it.

Wednesday, September 2, 2009

The Long, Skinny Tail

A developer over at Larva Labs has written about the lack of profits from the Android Market, despite having to well-rated, high-ranking games.

Their app RetroDefense peaked at #1 (though I'm not sure whether this is within Games overall or their particular subcategory of games) and has a 5-star rating. Their game Battle for Mars is #5 with a 4.5-star rating. And they report an average daily income of $62.39 for the month of August.

This seems bad, but is it? There are no Cinderella stories for Android yet, like those of devs earning hundreds of thousands of dollars off a single app in the iPhone App Store.

There's no doubt that the very top echelon of games in the iPhone App Store are big cash cows. But it also seems clear that the earning of apps follows a function where very few apps make a ton of money while most apps make very little. Where is that cutoff? How steeply does it drop?

Here's another case to consider, from an iPhone app developer with 4 apps in the top 100 in each of their respective categories, with the highest-ranked app bringing in $20/day. He argues that his case demonstrates the long, skinny tail of apps that generate a small amount of revenue, while a very small number who sit in the top 10 or so generate enormous amounts of money.

I think the shape of the curve is probably very similar for the Android market, although I think because the number of users is much smaller relative to the iPhone app market, the whole curve is shifted down. I think the earnings for the top apps will continue to rise as new Android phones come out, and I think before long we'll have our own iShoot and Trism stories. A few will make it rich. Most won't. And there will be a small middle-class that earns moderate returns.

I would like to have a hit, especially when the market starts to peak. Let's hope it hasn't already.

I'm Being Pirated

I suppose this is karma of sorts, but I just found out that my paid version of Spades is showing up in a bundle of games on one of the popular torrent sites. I suppose on the one hand I should be somewhat flattered that my game is considered decent enough to pirate. On the other it kind of sucks.

I'm not going to rehash the old piracy debate. I've heard both sides and I'm not sure whether I'm convinced that it really does hurt legitimate sales. My Spades sales are virtually zero these days, but I attributed that to competition from a rival Spades app on the market. It would be interesting to know if piracy is negatively affecting my sales, but I'm not sure there's a viable way to quantify the effect.

Saturday, August 29, 2009

Relativia is Submitted

Well, I just submitted Relativia to the Android Developer Challenge II. It was a hell of a slog, and I have mixed feelings about the project.

I think the idea and the basic design was good. I think the puzzle combat system is fun, unique, and well-designed. I think the map interface is somewhat simple, but stable and good.

But here are some concerns:

1) Right up until submission I was getting a force close error in the emulator after closing the application for the first time. I don't get this on the hardware device, but it has to do with inflating views, and I'm a little worried about how it will perform on different devices. For the contest, the app may be on any of the currently released devices.

2) I'm worried about bugs in general. I wasn't able to do much testing, so there are probably errors. I'm sure users will find them. I just hope the core gameplay is intact.

3) I added music the last week, and the Android media support in the SDK is pretty horrible. I had several looping music tracks that are seamless when wrapped, but I was getting an audible gap when using the looping feature in Android's MediaPlayer. I read that .ogg files worked better than .wav or .mp3, so I used .ogg files instead. The pause was less pronounced, but still there. I thought about fading the audio in and out, but there isn't a native function for that either, and I didn't have time to mess with doing my own. Ah well.

Things I would have done if given more time/resources:

1) Added much more polish to the game, mostly in the form of custom interface elements, such as buttons and drop-down menus. I use a lot of pre-built stuff, and it doesn't look that slick.

2) Added sounds to nearly every user function, such as screen transitions and button presses. Just didn't have time.

3) Play tested in multiple geographic regions. The three search terms I'm using are "hotel", "coffee+shop", and "grocery". I didn't do any testing in Google maps for non-English speaking locales, and I don't know how it will perform.

I'm just worried in general about the overall complexity of the programming. There's a ton of code and a thousand things could go wrong. If I released it on the market and got feedback, I could make corrections, but the contest does not allow upgrades to submissions, so what I just sent in is the final deal.

Still, I learned a great deal this summer, and got a ton more experience with Android, some good and some bad. I learned how to handle multiple activities, to transition between a main activity and a map activity. I learned how better to handle data with XML, and I learned a lot more about handling media such as graphics and audio.

I can safely say I'm in no hurry to write another RPG, even as small-scale as this one was. I only have 4 species, 4 classes, 3 spells per class, 8 types of enemies, with 3 spells each, 12 items of armor and weaponry, and 5 quests, but it felt like a damn mountain of stuff to handle.

Still, I'm glad I did it, but even more glad to be done with it. If the game is stable and playable on most phones, I hope to do reasonably well, at least make it to the first cut, into the top 20 in the division. But I expect that my category Games: Casual/Puzzle will most likely be the one with the most entrants and the most competition.

Even if it's buggy and gets thrashed in the first round of judging, hopefully I'll get some feedback about how to either make it better. I've also considered massively paring it down and just releasing the puzzle game as a stand-alone.

We'll see.

Friday, August 28, 2009

Some Android vs. iPhone Stats

The Androinica blog points to some estimates of usage and purchases by Android and iPhone users:

* AdMob says Android users download about 9 apps per month with a ratio of 1 paid to 8 free. On the other hand, iPhone users report 10 apps with 2.6 paid.

* Only 19% Android users buy an app each month; 50% iPhone users buy at least one paid app a month.

* The estimated number of Android users is 3 million compared to 26.4 million iPhone users and 18.6 million iPod Touch users.

They point out that these stats should not be surprising. The iPhone user base is much more diverse, while Android users are still probably mostly early adopters, techie types much less likely to impulse buy.

Still, the numbers are a bit scary. Nearly 45 million people own either an iPhone or an iPod Touch? Holy crap.

I have to admit being impatient for the slew of new Android phones coming out and the talk of growth. I want to see it now, dammit.

Monday, August 24, 2009

ADC II Submission Site Opens...Finally

On the Android Developers Blog, they've announced the opening of the site to submit entries to the Android Developer Challenge II. They said submissions would start "beginning in August". I guess a week is plenty of time, but I'd expected it sooner.

Of course, Relativia is still not finished. I still need to finish some of the quest functionality, as well as add music and sounds. But that will be easily done in the next few days.

I'm also debating on whether or not to enter my new word game, Prolixity. It's very basic, and not too flashy, so I don't think it would have much of a chance to do well, but the exposure of the app through the contest might be a good marketing opportunity. Dunno. I have a week to figure it out.

Tuesday, August 18, 2009


I'm very nearly finished with Relativia. What still strikes me as strange is that the ADC II submission site is still not open, and there's been no word from Google. Ah well.

Anyway, I was getting a bit burned out working on the current game, so I started in a bit on a word game I've been itching to make. It's called Prolixity. Here's a screenie:

It's a very simple, straightforward game with the features I like most in a word game. Each round you're given 10 tiles. The interface allows you to reorder the tiles on your rack by clicking and dragging to swap two tiles. To move tiles up to the play area to form a word, you just tap them with your finger.

Easy tiles are worth 1 point, medium are worth 5, and hard are worth 10. The point value for a given word is the sum of the tiles times the length of the word (e.g. if you make "exempt" it's:

1(e) + 10(x) + 1(e) + 5(m) + 5(p) + 1(t) = 23 * 6 (word length) = 138 pts.

You hit submit to check if the word is in the lexicon. If it is, you earn points, your progress bar progresses, and you get fresh tiles. When the progress bar is full, you level up, and it takes progressively more points to reach the next level. You can redraw a fresh rack of tiles, but that costs 5% of your current point total.

The game will store every word you make for review later (a feature I never see in word games, but would like). I just finished Bookworm Adventures 2, and it was fun, but it really annoys me when I can't rearrange my tiles, and that's not allowed in BWA2. It also only saves your top 10 words and doesn't keep track of how much they were worth.

I like word games that are untimed, and that are Scrabble-like in that you have to manage your tiles by looking ahead to what your rack will be like after you've played.

Technically, the game has been pretty straightforward, with the exception of word checking. I found a linke to a nice word list from an old thread on the PopCap Developer's Forum. The file was about 3.5MB and contained about 350,000 words. I started out by trimming it down to words between 3-10 letters (words formed in Prolixity have to be at least 3 letters). That got me down to 2.4MB. I wrote the code to run the check when a word is submitted, and Android blew up. After browsing around a bit, it turns out that Android's file I/O doesn't like files larger than 1MB. Okay. So I broke it down into about 20 files, roughly by starting letter. Android would now work, but larger files like those for "c" and "s" registered a notable pause. So to optimize even further, I divided the lexicon even further, ultimately into about 40 files. Speed seems reasonably now.

Anyway, it shouldn't take too much more work to have it good to go, but I need to get back to finishing up Relativia. I've flirted with the idea of entering both...that would be ironic, to have a game that took about a week outperform a game that took over 3 months. I may just release Prolixity as a $0.99 app in the next couple of weeks. Not sure yet.

Thursday, August 13, 2009

Totemo: Competition for the ADC II

Android and Me has a vague semi-review of an upcoming release from Hexage, a game called Totemo. They've even got a teaser trailer. A teaser trailer? For a little puzzle game for Android? Okay. I guess that's one way to try to build anticipation. This is the same team that worked on Buka, which I played the demo for. It was kind of fun. Definitely had personality and polish, but wasn't really all that compelling...not enough for me to purchase, anyway.

Anyway, there's this bit in the article:

Look for Totemo in the Market as soon as the Android Developers Challenge (ADC2) submission site goes up.

Which is a strong indicator that the game is an entrant for the challenge. And since there are only two game categories:

* Games: Casual/Puzzle
* Games: Arcade/Action

That means that Totemo will in all likelihood be in the Casual/Puzzle category, which puts it in direct competition with my app. They will likely be tough competition, too. Like I said, their first game had a lot of polish, and has apparently done will in the market.

Booyah Society

Booyah is a new startup game company that just released their first iPhone app, Booyah Society, which is a social network app supposedly based on your real-life achievements.

Here's an interview with the CEO Keith Lee, who used to work at Blizzard.

How do you design the achievements and determine what's going to be appealing to people to try to get?

KL: Well, that's a two-fold thing. One thing we did is actually hire a lot of people in our company that have very diverse interests -- I think, hiring the right people, that understand the pulse of what's going on, is critical.

At the same time, we've been approaching it from a content standpoint: what could actually be the most mainstream achievements that people would want to share with their friends?

So, in this case, being able to go to the Louvre in Paris, that's Art & Culture; or to say that they've been to the Statue of Liberty. Those are the sort of things that we've seen that people would like to at least log and say that they've done.

That sounds kind of cool, and he talks about how the GPS functionality can actually validate achievements, but unfortunately the app is currently not very well rated on iTunes (2 1/2 stars as of this writing), though there does seem to be more recent positive reviews...maybe their updates have improved it.

A lot of the complaints seemed to center around the fact that you don't earn accomplishments by actually doing things, even on the honor system, but by posting to social networking sites like Twitter and Facebook. Honestly, that does sound a little lame. But the people who like the app really do seem to love it.

At least the app is free, so how are they going to monetize?

It's a free app, so what's the monetization route for the company?

KL: The great thing is that we have the digital, as well as we're overlaying the digital with the real world, and so that's really rare and unusual. Because we can almost make our world and all the content that's in there our playground.

And so the great thing is, there's no shortage of potential monetization opportunities. There's the opportunity to work with real-world partners that isn't possible with just, say, an alternate fantasy world. To be able to drive people to go to certain locations -- individually, as well as in a group -- so there's a lot of flash mob theory behind that.

There aren't new ideas, I suppose. This is, of course, very similar to the monetization plan behind Relativia, although from a single player, rather than a networked, multiplayer perspective.

I'm interested to see how well the app does, and if they actually make money. Booyah apparently got $4.5 million in startup money, so they're at least going to be able to pay the bills for a while. I wish them luck.

Friday, August 7, 2009


I'm not sure when the heck the submission site for the Android Developer Challenge II will open up. The official site from Google simply says "Beginning in August" developers will be able to upload their apps, and that the last day they'll be able to upload apps is August 31st. But they haven't said a word in a while. It seems a bit strange.

Anyway, I'm continuing to make good progress on Relativia. The combat game is looking much better now, the AI is done (although not particularly smart), and the logic for initiating combat, winning/losing, and updating experience/inventory based on the outcome is all done. I may post another video shortly showing some of the improvements to the UI.

There are several things I'd like to do, but might not have time. There's still a lot of polish that could be added to the combat game. Obviously there's sound, but animations showing actions/spell casts would be nice. But the core functionality is almost there, and until that's all in place, I can't worry too much about polish.

Right now I'm working on the dungeon logic. I've still got to work on the quest system, markets, and inventory...but I've still got three weeks. Stay tuned!

Monday, August 3, 2009

Revenue for July

As expected, it's down. I earned just under $250 for the month of July. Admob revenue continues to slide. Someone else released a dog whistle app this month. I had been earning about $75/month from my dog whistle app, but it's half that this month, presumably from the competition. PetBook continues to be a giant bomb. I had one sale in July. Ah well. The only steady performer was Golf Solitaire, which accounted for nearly half my earnings in July.

None of this is particularly surprising. I've put all my eggs in one basket for the Android Developer Challenge II. I haven't released a new app since the end of May. It would be nice to know what the summer would have been like if I'd spent all my time churning out games with a development time of 2-3 weeks, interspersed with more small utilities, such as medical calculators. Alas, we'll never know.

We'll see how Relativia does in the competition. If it does well, hopefully I can monetize it. If not, I can always chop it up and try to repackage the combat game as a stand-alone app.

This month is still trying to get Relativia finished, so my projection is a further slide in sales, somewhere between $100-200.

Saturday, August 1, 2009

Nondeterministic Search Results in Google Maps

While testing the map functionality in Google Maps, one interesting finding has been that the searches returned are not deterministic. That is, if I set the default location to my home address, enter specific search terms (e.g. "coffee+shop"), and click Search, the results vary from search to search.

Go ahead, try it yourself. Go to Google Maps, set your default location, search for "coffee+shop", and then after searching once just hit the search button again. I don't know if Google Map's search algorithm is somehow adjusting the search criteria from inquiry to inquiry, maybe under the assumption that the first search didn't yield good results because you're searching a second time?

I don't know what's going on here, but I find it a bit strange. I was a bit worried about the case in my game where the player searches for points of interests, locates one at a particular address, then closes the app and goes to the address. Upon arriving, they open the app back up, repeat the search, and then find that location is no longer being produced. That would lead to very frustrated players, and would suck. I may prompt the player to repeat the search if this happens, because I don't particularly want to mess with persisting locations if I don't really have to.

Anybody got any ideas on why results change from search to search on Google Maps? Google's regular search engine doesn't work this way.

Tuesday, July 28, 2009

PetBook Woes

The last app I worked on before focusing on the Android Developer Challenge II was PetBook, a little app that let's you store information such as groomer and vet info about any number of pets, and create photo albums for each pet. There's an analogous app for the iPhone, and I since DogWhistle had done so well, I thought this would be a popular app. I was wrong. The app has had 25 downloads, with 17 active installs. That's a flop.

Things got a bit worse. I'd tried to drop the price from $2.99 to $1.99 several times, but for some reason the price was not updating properly. So I thought I would toggle from free back to paid. Big mistake...that isn't allowed. If you change a paid app to free in the market, you absolutely cannot change it back to paid. I'm not sure why the market is built this way, but oh well. So I had to unpublish that version, change the package name, recompile the app, and resubmit it to get it back on the market in a paid version. Lame.

Recently this site posted a positive review of the app, but it certainly hasn't led to any sales. I'm tempted to just make it free so that people can use it. I worked pretty hard on that app and learned quite a few new things, such as using XML for persistence in Android and how to handle images and image galleries. I think it's one of my best apps and I hate to see it lay there unused.

Friday, July 17, 2009

Mark Murphy on ADC2

Mark Murphy has some advice regarding the Android Developer Challenge 2. Unfortunately it's coming about two weeks before submissions start, but it's still useful.

Basically he suggests publishing a draft of the submission app on August 1st on the Android Market, before submitting it in the contest, in order to get some early feedback to allow for revisions. That would be nice, but I'm just not going to have my app ready by then. Some version of it will be ready by the end of August, but I'm just not going to have enough time to solicit feedback.

He also says to make sure the app isn't buggy. Kind of obvious. And that might be a problem for me. Again, I don't have much time, and this is the most complicated app I've done so far, so there might be bugs. I'm especially worried about out of memory errors, since I'm using a lot of resources.

The four criteria for judging are supposed to be:

  • originality
  • effective use of the platform
  • aesthetics
  • indispensability

I think I'm doing well under each of those criteria. Murphy recommends focusing more on aesthetics, under the premise that judges will have a subjective bias for prettier, slicker apps and unconsciously weight that criteria more.

He also says to try to pick an underrepresented category. Again, probably too late with the advice there. My app most certainly will not fall under anything but a game category.

Another piece of advice is to localize the app, which seems a little strange. The rules state the app must be in English. Murphy thinks multi-language support would score brownie points...but how would you decide which ones to implement?

Finally the best advice is to keep things in perspective. ADC1 had about 1,700 apps and ADC2 will only have 30 winners. I think my concept and design is great, but the implementation will most definitely fall short of my original scope. The hope is that users and judges will enjoy what is implemented and will want to invest in seeing the game fleshed out. I would consider making the final cut (20 apps from each category, or 200 apps) a victory, but even if I don't make it that far, I will still have a workable prototype, will have learned a great deal while making the game, and will still have a viable app to release on the market.

Tuesday, July 7, 2009

Revenue for June

Despite not releasing any new apps last month, my revenue from sales and advertising was right at $400. Sales were actually up over the previous month by about $30, but advertising continued to slide by about $80. When it comes to advertising in apps, at least the way I'm doing it, the age of the app definitely makes a big difference.

Android devs received an email stating that free apps were now available in Romania and Bulgaria, even though Android devices aren't sold there yet. And the free market opens to Japan on the 10th of this month. I would simply be happy if my sales remained steady as new devices and new markets come online.

I have no doubt that I would have made more money in June if I'd continued along the same trajectory, releasing small utility apps while working on medium-sized games. I had requests for a Domino game app, and would likely have released that last month if I had not been working on my game for the Android Developer Challenge II.

So I'd be happy with another $400 this month, although it's probably looking more like $250-$300. I hope the investment in Relativia pays off.

Friday, July 3, 2009

Relativia Gameplay

I'm working on a game for the Android Developer Challenge II. I've hired an artist to work on character, background, and item art. I've got the basics of the combat system worked out, and I thought I'd share a short video demonstrating how gameplay will work.

The player is on the left side, the enemy on the right. Each turn, a player can use one action (an attack or spell, if they have enough of the right kind of energy) and they may drop one token into the playing grid. The game is very much like Connect 4. If a player matches 3 or more in a row of a given token type: gems (square), mana (round), or skulls, those tokens are removed from the grid. If gems are matched, the player gets gem dust, which is used to purchase items in markets. If mana is matched, the player gets energy corresponding with that mana type (blue, orange, green, or purple). If skulls are matched, damage is done directly to one's opponent. Actions can either cause damage to one's opponent, heal the player, or have some other effect (like gaining an extra turn). A given battle ends when one player reaches zero health points.

I'd like to add in more polish, e.g. feedback events for matching, smoother animations, etc., but the deadline is about six weeks away and I'm rushing just to get the basics implemented. I'm optimistic about the progress, but a bit worried about getting it in good shape for the contest. We'll see how it goes.

Tuesday, June 23, 2009

How to Change Your Spinner Typeface

Pretty much every widget in Android that contains text has a setTypeface method...except for Spinners. I looked around in vain for an example or tutorial that would demonstrate how to set the typeface for text in a spinner, so I asked for help in a couple of forums. Mark Murphy replied with a proposed solution, and Philip helped explain the answer to me, so for anyone who needs to do this in an Android app and doesn't know how, hope this helps.

First, create a new XML file in your res/layout directory called "my_spinner_style.xml", and put in something like the following content:

Then in your code, use something like this:

Spinner mySpinner = (Spinner) findViewById(;
mySpinnerArrayAdapter = new MyCustomArrayAdapter(this, R.layout.my_spinner_style); mySpinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Normally you would create a new ArrayAdapter for the second line, but in this case you need to create a custom ArrayAdapter and override the methods that get the TextView from our custom spinner style.

So, you need to put in the code for your custom ArrayAdapter, like so:
private class MyArrayAdapter extends ArrayAdapter {

public MyArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);

public TextView getView(int position, View convertView, ViewGroup parent) {
TextView v = (TextView) super.getView(position, convertView, parent);
return v;

public TextView getDropDownView(int position, View convertView, ViewGroup parent) {
TextView v = (TextView) super.getView(position, convertView, parent);
return v;

The font you want to use needs to reside in the assets/fonts directory, and you access it like so:
Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
And that's pretty much it. I always appreciate it when I'm having a problem and I Google around and find in someone's blog that they've already dealt with the same issue, so I hope this helps someone.