Wednesday, March 18, 2009

Live Video Streaming on iPhone 3.0!

Title says it all. My job just became a million times easier to get that working. No more porting FFmpeg, SDL, etc. or paying for a 3rd party streaming sdk. This is quite simply awesome!

That's all, can't say more since it's still under NDA.

Wednesday, March 11, 2009

App store reviews now separated by version!

Since the last two posts were complaining (about apple) I'll restore some balance...

Apple really does seem to be listening to developer feedback. One of the annoying things for developers and reviews of their apps is that they are cumulative for all versions of the app, so if someone has a rough start, it's hard to shake the early reviews. Well, now in the reviews, they've added "Average for all versions" as well as (presumably) average for the current version! This will of course also mean that it works the other way, if for some reason your app blows up after the second update (after having lots of great feedback) then would-be buyers will also see that the the current version maybe isn't as good as it used to be. It doesn't go as far as letting developers actually RESPOND to the feedback, but it certainly is a step in the right direction. Here's a couple of images from my own app's page.

Also of note, it appears that they now show the total number of ratings, not just those with actual textual reviews. Though I still think they should separate the non-text reviews from the averages since they are highly biased downward by asking for a rating when an app is deleted :(

Note, I haven't yet upgraded to iTunes 8.1 yet so this is a feature for everyone, not just the newly upgraded.

I hope they also made the dang thing load a bit faster (and cache old pages a bit less) but I won't hold my breath since those are typically mutually exclusive demands.

Oooh, it also has a last modified date by all the reviews, I like it!

One more request (since I'm pretty sure steve jobs read this blog): LET DEVELOPERS SEE THE INTERNATIONAL REVIEWS FOR THEIR APP please, instead of having to resort to some crazy screenscraping hack which is undoubtably slowing the store down for everyone else...

Friday, March 6, 2009

Blogs... where people go to complain...

iTunes app store feedback is a fun little forum. It's like the rest of the internet, mostly garbage, some nice spots, and of course, noone really controls it. Well, I've been a bit baffled by some of the reviews I've had for the ooTunes Radio iPhone app. So I almost posted this as feedback (with a 3 start "neutral" rating). Then I decided against it (thanks rob :) Instead, I've resorted to using more *'s and ALL CAPS to make sure people don't just skim over my app store description (hey, some people are liking it enough to buy it without thinking twice... actually over 2000 people :) The beautiful thing is that I'm getting much more feedback directly than in the app store. However, I'd love for more people to contact me... customer service can be a real adventure (and time sink!) but I've always liked talking to people.

Here's what I'd post as my own feedback. It was fun to write:

My goodness gracious! Hi, this is Oogli. I don't exist as a real person. But really, I would be a nice guy if I did!
Okay, I've spent the last 2 years of my life, in every waking moment working to make this app and the server a reality. Some may call me an idiot, great. Please do it to my face (see the "ooTunes Radio Support" link). I cannot honestly believe the number of people who are still "surprised" that the ooTunes server costs extra money! I can't believe it (unless you bought my app on day 1) there are two places in this long (poorly written) description that have stated in no unclear terms (sold separately see:

I don't understand why people are able to read all about all the features (many of which require using a server, not because I'm trying to get rich from it, but because they are TECHNICALLY IMPOSSIBLE TO DO without having a server running on YOUR computer) but FAIL to see the SOLD SEPARATELY text??? I'm not trying to rip people off!!!! I want everyone to be happy, I want to keep working to make my software perfect, I want to live a long(ish) and happy, not-overly-stressful life. However, I'm finding that it is quite difficult given the circumstances:

  1. I can't advertise my Server software here more than I already am, this is Apple's store, they don't get anything from people purchasing my server software, this is not an advertisement.
  2. I can't respond to people here. Please contact me!!!! (see the "ooTunes Radio Support" link) I answer every email I get! I want to help you!!! I want you to tell me why I'm a fool, then you can tell the rest of the world.
  3. If you feel as though you were ripped off, tell me to my face (or by electronic mail, rather)! I'll make it right!
  4. Please check your facts before you post reviews. I've heard several people tell me that "all these streams are available elsewhere for free". Please tell me (and any potential customers where, so we can move on with our lives!), or that the web-browser is only available with the server? It's not. Try again, or ask me how to use it.
  5. If you have trouble with the software, it's my fault. Please tell me so I can improve it. I'm listening, and working hard on it. See the "ooTunes Radio Support" link.
  6. If you like my software, thanks! I sincerely appreciate your business. I'd still love to hear what I can do to improve it! (then you can tell the world)
  7. That feels better...

Wednesday, March 4, 2009

A bug report for the app store review process


Horrible subjectivity, inconsistency and unpredictability of app store review process.

Steps to Reproduce:

-(BOOL) willAppleDoTheRightThingForDevelopers{
App *myapp = [App appWithMuchHardWorkAndLateNights];
while ([[Users of:myapp] count]){
do {
[myapp submitForReview];
if ([Reviewer feelslikeapproving:myapp] && ![Reviewer insteadOfReviewingUpdatesChoosesToRejectForSomethingPrevious2ReviewersMissed] ) return YES;

[I WTF];
[I cantFindReferencedAttachment];
[I respondToRejection];
[I hearNothingBack];
[I didntInfringeTrademark];
[I haveNoRecourse];
[I curseApple];
[I prayAndroidSucceedsImmensely];
[I franticallyMakeChangesAndResubmitSoMyUsersWillStillRespectMe];

} while ([I amSane]);
return NO;

Expected Results:


Actual Results:




While the tone of this is somewhat sardonic, the realities of the frustration are 100% accurate.

Suggested improvements:

Some sort of estimated time til review (there has to be an internal queue for reviews why can't we see something giving us a rough estimate that becomes more accurate as it gets closer to review?)

A more thorough review upon first submission, so that future updates can focus on what's new, not digging up old skeletons.

If old skeletons must be brought into the matter, why not also review the actual update so fixing the first won't result in a second rejection when the new features are actually reviewed?

Since it's expected that a review can't possibly be 100% thorough for all apps, give developers a "warning" for something that's already been accepted but shouldn't have been, by saying "fix this by the next submission (if the issue is NOT serious... which in most cases it wouldn't be or it would have been found in the first n reviews!

Some means of quick turnaround with questions on clarifications from the review. I honestly got a review that said "see attached image" with no attachment! I responded asking for the attachment and still haven't heard back. In fact, I have never heard back from anyone about any requests for clarification I've made. Going on weeks now!

Provide a more concrete set of review guidelines. It was very frustrating to have an app rejected for using the word "demo" on a button, when nowhere do the guidelines state this, and the only place I could find information on it was on ars technica!

While I'm going, how about a way to respond to reviews, or more encouragement for people to contact the developers before leaving a damning review.

That's all for now, if there's a better venue for this, please let me (and all the other developers) know!