Under The BridgeUnder The Bridge

Musings
Gesture Recognizers

So no doubt as your projects move to requiring iPad/4.x you’ve been considering using those newfangled UIGestureRecognizer thingies to save a bit of code; and here’s a few pieces to help bring you up to speed.

Nice gentle introductory walkthrough:

Implementing Gesture Recognizers

More detailed introduction, with sample project:

Gestures Recognizers in iOS

Dr. Touch has a couple handy tips for mucking around with default UIScrollView behaviours, and simplifying cell interaction:

Hacking UIScrollView Gesture Recognizers

Tap&Hold for TableView Cells, Then and Now

UPDATES:

Couple more good introductions:

The Joy of Gesture Recognizers in iOS and followup Adding subgestures to iOS gesture recognition

AppStore Review Links Redux

[UPDATE: How did you get here? This is way obsolete — go read iTunes Affiliate Changes!]

If you’ve been including direct review links in your apps — personally, we’ve found the itms-apps:// URL scheme described here to be the most reliable for that — here’s a subtlety for iPad-only apps that may have escaped you:

… The above link takes you directly to the review page, which is one layer down below the main app description page on the iPhone. If you have an iPhone-only, or a universal app, this link will also work on the iPad (however, it will give you the iPhone AppStore review page for the universal app). Unfortunately, this page does not exist in the iPad AppStore. All reviews are listed at the bottom of the description page, similar to the desktop iTunes AppStore, without having to drill down.

When setting up a review link to an iPad app, it makes more sense to link to the main page of the app (just change the appname and id#–the id# is optional):

http://itunes.apple.com/us/app/serving-sizer-pro-for-ipad/id364168890?mt=8

This time, we use “itunes” instead of “phobos” because on iPad, the “itunes” link knows where to go, and doesn’t have any redirects, opening the iPad AppStore directly.

Good to keep that in mind, whatever scheme you use for non-iPad only apps. Of which, besides the itms-apps:// that works for us, and the http://phobos.apple.com scheme in the above link, another popular one is https://userpub.itunes.apple.com as mentioned here. Hopefully one or the other of those will have some chance of working no matter what changes Apple makes in the future…

BONUS TIP:

h/t the last link there, this article tells you how to provide a single URL for redeeming a promo code, in case like us you’d managed to overlook that so far:

There’s a little-known iTunes Store URL that enables you to easily provide promo codes that can simply be clicked or tapped to be redeemed (replace “REPLACEWITHPROMOCODE” with the actual promo code):

https://phobos.apple.com/WebObjects/MZFinance.woa/wa/freeProductCodeWizard?code=REPLACEWITHPROMOCODE

And the great thing is that these URLs work in both in iTunes on the user’s computers and on their iPhone/iPod touch devices.

That’s significantly easier than trying to explain “OK, this is what you do with a promo code…”, indeed!

UPDATE:

Here’s another take on the etiquette and practice of requesting reviews:

Asking for App Reviews

iOSDevCamp Hackathon

Just in case you missed it, the iOSDevCamp Hackathon Winners are posted; worth reading through all the winners, but here’s some particularly interesting open source bits:

Coolest App: SuperRover “Want to control a Lego Mindstorm NXT rover with an iPad over bluetooth? There’s an app for that!”

Most Accessible: Accessible TableView Library “Open source library to make table-view apps more accessible to people who are blind or visually impaired”

Best Open Source: DragKit “DragKit is an opensource framework to help developers implement drag and drop within their app. DragKit also allows for drag and drop between applications that implement the framework.”

That last one does sound like there’s some interesting possibilities there, indeed.

OpenAppMkt

[EDIT: Discontinued.]

So, looks like there’s a new App Store alternative around these days: OpenAppMkt! Basically they’re doing their best to replicate the App Store experience with HTML5 apps; and they seem to be getting a little bit of traction. As well as a good deal of frenzied yammering about “loopholes” and the like, from people whose memories apparently are not good enough to extend back to 2007 when we were all being told that HTML5 would be the only way to write iPhone applications. My, my, how things do change.

But, as we’ve pointed out before, Apple has continually improved the HTML app capabilities and development experience right along with SDK development; it’s just that people almost completely ignore that alternative … even when an HTML app makes scads more sense for what they have in mind. As well as being potentially cross-platform and all, especially as WebKit-based browsers continue their apparently inexorable march towards complete dominance of the mobile landscape.

But the thing that actually intrigued us whilst reading around on OpenAppMkt is that although several commentators have mentioned that Apple has their own web app directory, absolutely not a single piece we read seemed to have any idea of the existence of the first HTML app marketplace, that we posted about pretty much exactly a year ago; Hottrix and their Premier App Shop,

Screen shot 2010-08-21 at 10.34.35 PM.png

another genre-specific shop that blushing modesty bars us from mentioning, and Your App Shop for creating your own store.

Why that initiative hasn’t, in a year, seemed to go anyplace in particular and OpenAppMkt seems to have pretty solid interest out of the gate rather escapes us. Maybe the timing was wrong before, maybe the technology is better now (although the Premier App Shop webapp actually seems like the superior user experience to us) or maybe … well, we dunno. if anyone has any insights, please share!

iGoalKeeper

My, it’s been a while since the last time we had a new trollish trifle for you to try, isn’t it? Our recent projects do just seem to be wandering off into the weeds in every direction, cha. But hey, here’s one today; yet another in the ever expanding collection of trinkets for those great Wayz guys, it’s … iGoalKeeper!

mzl.rdpiyioi.320x480-75.jpg

Just your basic catch the falling balls kind of thing,

mzl.sjekcuwx.320x480-75.jpg

but hey, if you’d like a momentary diversion … there you go!

[POST-MORTEM: Now withdrawn from store…]

Integer Trigonometry: trigint

This’ll be handy if you need to do some trigonometry on older hardware, especially when compiling non-thumb code:

trigint: An Integer-based Trigonometry Library

… Or, you could avoid floating point altogether. Thus, I wrote trigint, a 100% integer-based trigonometry library. It uses a 16-entry lookup table plus linear interpolation so it’s quite memory efficient, yet still accurate enough for most purposes. Since it’s written in ANSI C99, it can be used on 8-bit microcontrollers, like an Atmel AVR with avr-gcc. Here’s the code and the API documentation.

How fast is it? Take a look at the numbers on a 1st generation iPod Touch:

sin16_perf.png

In summary, trigint_sin16() is about 4.4 times faster than sinf() and 6.7 times faster than sin() in Thumb mode. Without Thumb mode, the gap closes a bit to 3.8 times faster and 6.2 times faster, respectively…

Yes, that certainly is a striking difference indeed. Probably not as striking with modern ARMv7 hardware, as you may recall from this ARM architecture discussion … but hey, sometimes every cycle counts!

Implementing NSCoding

Yep, we’ve had a bit of a break wandering around some odd bits of the backyard, as you may have noticed from the recent dearth of posts, we’ll get back on track soon no doubt; but here’s a good read from the last week that jumped out at us flipping through what everybody else was posting while we were off playing with the seals (and whales, and dolphins, and leatherback turtles, …):

Friday Q&A 2010-08-12: Implementing NSCoding

Even if you’re pretty sure you know how to implement NSCoding already, it’s probably worth a read for subtleties that may have escaped you so far.

App Exchange

[EDIT: Discontinued.]

Want to buy an app? No, not just a copy of it, the whole app? Well, look what’s here, App Exchange!

Why buy an app?

  • Have an app idea and know how to make the app successful? May be someone already made a basis for your app and is looking to sell it.
  • There are a lot of apps in AppStore, which came close to greatness and require just a touch up (pr, marketing, design) to become bestsellers.

Why sell an app?

  • Have a great app but do not have much time to promote and support it? With App Exchange you may find a new home for your app.
  • Have a technology savvy app, which can become a base for number of other great apps? List your engine for sale at App Exchange.

Indeed. I imagine most of you, Dear Readers, are more interested in selling than buying, so let’s see what the submission process is:

If you have an app for sale, please send an email to contact@iphoneapplicationlist.com describing the app details for potential buyers. Please include history facts such as release date, number of downloads, number of active users (where applied), specify if you provide the app with the source code and whether maintenance is possible.

Note: Apps that have been released more than a year ago and haven’t achieved significant sales/downloads results will not be listed in App Exchange gallery.

Hmmm. Kinda seems that would be the only kind that would be for sale at a reasonable price … but hey, you never know. There’s 14 apps listed there as we type, so maybe one of them is just the kind of thing you’re looking for!

Bandwidth Testing

[EDIT: Discontinued.]

Here’s a handy tool for simulating slow network connections:

speedlimit is a Leopard preference pane for limiting your network bandwidth to one of a couple different speeds—768k DSL, Edge, 3G, and Dialup. This is really handy for testing your iPhone app under normal Edge network conditions in the iPhone Simulator. The new version allows you to restrict the slowdown to only a specific set of hosts.

SpeedLimit.png

Download it here or check out the source code.

h/t: iOS Development Goodies!

Numbers Posts

So in case you missed @rwenderlich‘s tweet, here is an informative article if you’re interested in

Everything You Need to Know About Being an Android App Seller

The money quote, or more appropriately the lack of money quote (Ha-ha! We slay us, we do!) is:

… even high-profile, highly rated Android titles generate “much lower” revenue than iPhone equivalents. Despite having one sustained top-selling $5 game (Retro Defense), a consistent fifth place seller (Battle for Mars) and being highlighted by Google, the company’s daily average revenue was just $62.39 for all its apps combined…

Ouch. Well, that certainly alleviates any annoyance we might have considered feeling that Canadian developers can’t sell Android apps YET (seriously, Google, WTF?) doesn’t it now? By comparison, this article says

… an iPhone app with a fifth place position in the App Store is predicted to earn about $3,500 per day, or more than what the same Android title would generate in 56 days…

Yep, 56x that’s a pretty big difference. Of course, most of us do not have a fifth place position anywhere in the App Store, at least not for very long. Here’s some numbers posts that we’ve idly noted over the last little while to give some more data points than that fifth place seller. Of course, we’d fairly confidently predict that anyone not at fifth place would find Android development just as comparative a massive debacle, but hey you never know.

iPhone App Sales, Exposed

Winning The App Store Lotto: What A Week At No.1 In The App Store Looks Like

Making A Living (Comfortably) On The App Store

Paperless So Far – The Apple App Store

The Anatomy of an Epic App Store Sale: 1.1M downloads in 1 WEEK

Big Mountain Snowboarding history and sales

Camera+ first month sales: Setting Sail in a Sea of Games

UPDATES:

Story Tracker – A Year on the App Store

And for a full post-mortem on a really quite stunning indie game debut, check out

Chopper 2 Postmortem

Our most gracious thanks to all of those sharing their sales for our edification and fascination. And as always, if there’s any recentish posts of this sort we’ve missed, be sure to let us know!