Under the Bridge

Source: FJSTransitionController

Here’s a possibly handy piece of source from The Flying Jalapeño Lives — FJSTransitionController! Which is:

Well, FJSTC is a custom “top level view controller” to be used as a replacement for UINavigationControllers and UITabBarControllers. It handles transitions between view controllers, but with more flexibility.

Instead of managing a stack or an array of view controllers, FJSTC manages a Dictionary. You can associate VCs with keys and load them arbitrarily…

That would’ve been kinda handy, well last week actually, when we were putting a bunch (thirty-one, to be exact) of inconsistently hierarchical views into a navigation controller and winding up with hints of inelegance whilst doing so. But hey, it’s working-ish now, although we might consider retrofitting it, since FJSTC includes a few other nifty features like FTUtils-provided animations. If that sounds interesting, source on github and project on codaset!

Continue Reading →

Library: ASIHTTPRequest

We’re not quite sure how we managed to overlook this so far, but if you’re outgrowing NSConnection and figure that you need something CFNetwork based, there is an excellent library called ASIHTTPRequest that wraps it nicely, is compatible with iPhone and desktop both, and has plenty of features, some of the more nifty being:

Yes, that is indeed a comprehensive feature list. Source on github; group on Google; and Lighthouse bug base even. And BSD-licensed to boot. Why, it’s like an awesome sundae topped with awesome sauce!

[UPDATE: But ho! The very next day, we stumble across a purported good reason to NOT use it --

I'm sorry, I have to speak out against the ASIHTTP library. It's mostly quite good, but because it doesn't sit on the NSURL* classes it ignores any global proxy settings. This is particularly an issue in a VPN environment, but it comes up in other situations as well. Unless you're willing to deal with wonky support issues (and bad reviews as a result), don't use it.

Hmmm. That does sound like a worry ... but we could swear that CFNetwork can use CFProxySupport to get the global proxy settings, because we've done that. On the desktop, mind you. Perhaps CFProxySupport is not available/functional on the iPhone? Or this fellow is just making stuff up? If you have some actual iPhone experience to know one way or the other, please share!]

Continue Reading →

Touch To Give

Yes, here we are again: another exquisite troll production up on the App Store today — and, for a change, there is not one single scantily clad female in it! A shock, we know. And although the gestation was rather prolonged, not an instant of that was due to any deficiency on our part, so we’ll count this as another successful troll project. W00t!

So said project was for the GreaterGood Network, a collection of charities like, well, these,


that you go and tap on every day, and then advertisers donate to the various worthy causes. So hey, everybody should go download it right now, because this is something that we’ve put together just so you, yes you, that’s YOU, can make the world a better place. You’re welcome.


Continue Reading →

Monetization: .app/ads

Well, this looks like a remarkable step up in monetization functionality for the penurious iPhone app developer: the (still in beta) OPEN! and FREE! .app/ads “ad management platform for iPhone developers”. And what is an “ad management platform” exactly?

.app/ads gives you complete freedom over the ad space within your apps by providing an open and free ad management platform. There are a lot of revenue opportunities for app developers today, and you can count on even more direct ad and ad network opportunities being available in the future. Given the turnaround times on App Store approvals, locking your app into using just one ad network, or even just one ad network aggregator, could cost you substantial ad revenues. Take advantage of all the opportunities available to you now and in the future with .app/ads. You can easily manage and run third-party ad network and aggregator SDKs (AdMob, Mobclix, TapJoy, AdWhirl, et al.), direct ads, house ads, content (such as Twitter and RSS feeds), in-app purchases, and developer-direct marketplace offers from just one platform. Use one dashboard to manage your ad space and optimize what is going to make you the most money while maximizing your users’ experiences.

That does sound exceedingly comprehensive, indeed. We had been intrigued by the Flurry AppCircle idea, but since they’ve shown a distinct absence of willingness to answer any emails sent to them, we’ve kinda cooled on the idea of relying on them for any business purpose. [UPDATE: Why look at that, the AppCircle SDK arrived in our mailbox first thing the very next morning. How coincidental!] And these guys certainly do a great deal more, if the non-beta version lives up to the advertising (heh) here. Read more about them at TUAW and at TechCrunch.

Indeed, it would be an interesting exercise to see just how many of the ad providers listed in our increasingly disjointed advertising/analytics collection one could fit into this platform…

Continue Reading →


Well, apparently we’ve now established what phase 2 of the successful iPhone developers’ business plan is!

(If that’s a trifle obscure of a cultural reference, what we’re making there is an analogy to the South Park underwear gnomes‘ business plan:

Phase 1: Write iPhone app.

Phase 2: ???

Phase 3: PROFIT!!!

Sound like anybody’s business plan you know? Yeah, thought so.)

It seems that, perhaps not so surprisingly, Phase 2 is “charge $299 and up for joke apps”. No, seriously.

… Along with fellow prolific indie developer Adam Saltsman (Canabalt, Wurdle), Refenes developed a “joke game” for iPhone titled Zits & Giggles, consisting mainly of popping virtual pimples.

Like so many other iPhone games, Zits & Giggles launched at $0.99. Sales were never remarkable, and they eventually tapered off entirely. But rather than pursue a traditional marketing strategy like offering the game for free for a limited time, Refenes did just the opposite: he raised the price to $15, exorbitant by iPhone standards.

Shockingly, “the day I put it up to $15, three people bought it,” Refenes said.

“So,” he continued, “I said, ‘I’m going to put it up to $50.’ Four people bought it.”

After observing that fortuitous trend, Refenes decided to test its resilience by boosting the game’s selling price every time at least one copy was sold.

“I stopped paying attention to it for a while,” he recalled, then “I checked it on Valentine’s Day, and 14 people bought it at $299.”

The game has now reached a price tag of $350.

Based only on Refenes’ sales figures for a limited number of the game’s many price tiers, Zits & Giggles generated at least $4,431 at the $15, $50, and $299 price points alone. It currently holds an App Store customer rating of two and a half stars out of five, with only two written reviews, one of which reads in its entirety, “It’s hilarious.” (Its official description still claims it costs “a FRIGGIN DOLLAR.”)

“My conclusion to all of this,” Refenes said, “is that the people who you’re selling to on the App Store are not necessarily gamers.”

Not necessarily sane gamers, in any case, one suspects. We’re all in favor of preferring the upper half of the demand curve as a matter of policy … but tales like this make you wonder if it’s not actually more of a hyperbola than an actual curve. Or that people are just strange.

h/t: iphonesb!

Continue Reading →

APNS Update

So we’re just about to the point in That Big Project that’s been chugging along here where the server’s message delivery system moves over to an APNS basis, which will no doubt be very interesting indeed. So we’ve been looking around for some help with that.

The scale and immediacy of messaging envisioned makes reliance on third-party services potentially problematic for this project, so those are out. (Although as an aside, in the iLime vs. Urban Airship competition for your third party APNS needs, last fall we did an exploratory APNS-based project and picked iLime because it looked simpler at first glance and fit in with our Google App Engine prototype nicely, and had no complaints about how that worked out.)

So, since the last time we noticed an APNS roundup, anything new out there on the roll-your-own side of the things? Why yes, yes there is indeed. Here’s some more resources that look interesting:

Programming Apple Push Notification Services

A comprehensive walkthrough of how to implement the client side and “test” with an OS X-hosted faux server.


Open source PHP/MySQL application, looks very comprehensively documented indeed.

ApnsPHP: Apple Push Notification & Feedback Provider

Another PHP application.

pyapns — An APNS provider for your app

XML-RPC based with Python and Ruby native APIs.


Java? People still use that? Well, if that’s you, check this out.

[UPDATE: When we did our server, the pem/passphrase problem was the biggest hurdle: this post lays out nicely how to sort that!]

And hey, if any of you out there have anything good or bad to say about these various bits and pieces out there for the DIY APNS service writer, or if there’s anything of potential note we’ve overlooked thus far, please share!


mattt / rack-push-notification: “A Rack-mountable webservice for managing push notifications.”

Apple Push Notifications with Mule Cloud Connect

How to build an Apple Push Notification provider server (tutorial)

Sending Apple Push notifications in rails with Redis and apn_sender

Apple Push Notification Service Gem

Open Source Easy To Use Multiple App iOS Push Notification Provider (Python and Twisted Based)

Apple Push Notification Services in iOS 6 Tutorial: Part 1/2 and Part 2/2

Easy To Use GUI Tool For Debugging iOS Push Notifications

Continue Reading →

Platform: Z2Live

So this email showed up on the iPhoneSDK list today:

Hi Developers,

We’re excited to announce the availability of the Z2Live Multiplayer SDK for iPhone, iPad and iPod touch.


  • Multiplayer networking that works on WiFi, Edge and 3G
  • Voice Chat between players
  • Friend Invitations via Push Notification
  • GKSession API compatibility to make porting Bluetooth games to the Internet easier
  • No need for a game server (the devices connect directly to each other)

Please follow this link to begin building your next generation multiplayer games and set yourself apart from the pack:


Thank you and great gaming!

And why yes, if you follow that link, particularly to the features page here, it does look like quite the platform indeed for building your multiplayer games on. And as our biggest project right now (actually, our biggest iPhone project yet by a good bit) is putting together a multiplayer game, we’re keenly aware of just how time-consuming this stuff is to put together on your own.

Oddly enough, we do not see at first glance any hint as to pricing we are so blind that we completely overlooked the quite blatantly obvious and straightforward pricing on the terms of use page. And that would be: 30 cents per user per year. So you’re probably not interested unless the features are offered as part of a subscription package. And how well will that work? Well, we’ll have an idea sooner or later, as that multiplayer game we mentioned above is indeed meant to be monetized in precisely that fashion. It’s a pretty seriously server-centric the deal that wouldn’t be too appropriate for Z2Live anyways.

But hey, if you are putting together something that could use it, you probably want to check it out for a build or buy decision. And if you do, let us know what you think, k?

Continue Reading →

Freemium Pricing

Here’s an interesting read on how Ngmoco justifies the freemium model for being the only way they’ll release iPhone games these days. If you’re in a hurry, money quote (heh) is

We’re just finding that, with paid, you can’t make any money…

Now that, Dear Readers, is an absolutely classic line. Classic, we tell you.

… There’s only a handful of companies that are able to charge more than three dollars for a game. Gameloft, EA, Square Enix. Anyone else, they charge more than two bucks, no one’s even going to look at their game. There’s no way that we could have built Eliminate, for the cost per install or cost per SKU that we would have sold, to actually be able to make back that money in the timeframe that we wanted to. It’s funny, because people are saying that they’re willing to pay, but when push comes to shove, they’re actually not willing to pay. That person that says they’re willing to pay $10, they’ll probably wait for it to drop to 99 cents before they actually purchase it. What they really want is a $10 game for 99 cents. What we’re giving them is a $50 game for free. That’s really our stance right now.

Indeed. As it happens, we’ve just bundled off into review this morning a bit of an experiment into applying these principles to the non-gaming world; our IAP-centric reboot of the Poses series comes in free ‘Poses Sampler’ and paid ‘Poses Professional’ (with extra poses and features) versions, with the current three apps all being purchasable as content packs in either. It’s going to be just absolutely fascinating to see how that works out, indeed.

h/t: digg!

Continue Reading →

Source: FTUtils

Oooh, here’s some cool stuff: a bunch of nifty canned CoreAnimation routines called FTUtils:

The code in FTUtils is common utility code extracted from Free Time Studios iPhone projects. Currently, there is only one primary utility (FTAnimation) and some simple preprocessor macros. Some unit tests exist for the code, but more are needed.

OK, it could be described more enthusiastically, along the lines of “DOZENS OF TEH AWESOME CORE ANIMATION FX!1!one!”

But hey, if you want that little extra bit of groovy animation polish in your app — and who, we ask rhetorically, doesn’t? — it’s definitely worth checking out: see the video at the above link or just grab the source off github and run the demo!

h/t: The Flying Jalapeño Lives via iPhoneFlow!

Continue Reading →

Review: LifeGoals

Something a little out of the ordinary today: by request, we’re doing a review of the LifeGoals iPhone app from Reefwing Software. Mainly because, well hey we were asked and we’re an agreeable sort of troll, but also it was an opportunity for a little introspection and pontificating that we don’t do very much of and it’s good to on occasion, the unexamined life is not worth living and all that.

To break it down to its simplest, the idea of goal setting is to eliminate unproductive activity and develop productive activity through prioritization and autosuggestion. If you prefer those principles wrapped up in mystical nonsense, then you’ll enjoy books like The Secret. (Thanks, Mom! Great present! We love you, really!) But as most of you Dear Readers no doubt like us would prefer your self-help quota to be approached more in the nature of an engineering problem, we’ll direct you to what was and still is based on our browsing around this last week the best book ever on this subject:

Seriously, if you haven’t read it you should. If there’s any better primer on psychological success anywhere, we certainly are not aware of it. And you really do need to get the basic principles down so that tools to reinforce it, like the LifeGoals app we’re going to get around to talking about sooner or later, are going to be of any use whatsoever. In the meantime, the online help at Reefwing’s website is a pretty decent introduction.

Now, about those tools. We’re not big on rigid organization in anything, and especially not in goal setting. You’ve heard the “no battle plan survives contact with the enemy” aphorism? Or, to expand on that, perhaps you’ve heard Eisenhower’s quote on the Normandy invasion, “The plans were useless, but the planning was indispensable”? That’s pretty much the way we see it. Achieving your goals isn’t about laying out a rigid timetable and sticking to it, which is pretty much guaranteed to fail, it’s about having your Plan A, and Plan B, and Plan C, and on down the line, all ready so that whenever something serendipitous — or negatively serendipitous, whatever the word is for that — comes your way you have a range of possible actions already thought out and prepared. And in the worst case, you end up with what you’ve no doubt seen in large organizations attempting to manage projects what we can call “TPS Syndrome” — that uselessly wasting time on the superficial trappings of process managment becomes a substitute for, you know, actually managing the process. And we’re instinctively inclined to suspect any tool designed for management, whether of software development or life goals, of being an open invitation to fall into that trap.

Now, on the tactical level, a tool to organize immediate tasks has great value. But even there, we’d never found a piece of software worth the trouble of using until last fall, where you may recall our gushing paean to the near-perfection of Cultured Code’s Things task manager. And yes, we still pretty much stand by that, we are relying on it completely, as a matter of fact we’ve started to push long term goals into it, making it pretty close to competition to what LifeGoals is intended to be. Sooo, is there any place for it? Well, let’s — finally! — start to actually take a look at the application.

So it starts up, and there’s a pretty comprehensive list of categories one would set goals in: “Artistic”, “Attitude”, “Career”, … blahblahblah. Well, we’re a troll. There’s really only one thing that qualifies as an overriding goal in our life, and it would be summed up nicely as “finish mosttraveledpeople.com“:

According to our members, the world is made up of 871 countries, territories, autonomous regions, enclaves, geographically separated island groups, and major states and provinces. To visit all 871 would be to go everywhere.

Now that’s a goal worthy of a troll, indeed. And at 202 out of those 871 (23.19%) we’re not doing too badly, but some more formalization is quite possibly in order. So we go to the ‘Travel’ section, create a ‘Finish mosttraveledpeople.com!’ goal, and add a couple tasks towards that goal that we had in mind for the nearish future. And a third rather larger task.


That all goes smoothly, the editing process is well thought out. But well, there isn’t much room for LifeGoals to display its prioritization and balancing features if that’s the only thing we track. So let’s add something else. Well, as it happens there is something that could help with; we definitely do tend to spend more time at the computer than is optimal for peak health, so there’s a bit more troll around then we’d ideally like there to be, if you get our drift. Not enough for us to be bothered enough to actually pay attention more than sporadically to actually doing something about it … but that’s pretty much the whole point here, isn’t it? So, let’s add an appropriate goal and a couple achievable daily tasks towards it in the ‘Health’ section:


… and whoa, we run smack into the problem that there appears to be no way to set recurring daily tasks. Hmmmm. Well, perhaps we are thinking less strategically than the tool is really intended to be aimed at, but you’d think there ought to be some way to do that, wouldn’t you? So we dig around a bit, and heh, look at this on the Reefwing blog:

… Two obvious mistakes (in retrospect) was ability to edit/add categories and repeating tasks. Rest assured that I am continuing to improve and develop Life Goals…

… Yes repeating tasks will be added. This has been one of the most requested features…

Not just us that wants to use it as a task manager then! Arguably, just putting those tasks as daily tasks in Things would be a lot more sensible anyways … but we can see that putting in a comprehensive set of goals could be of use in filling out the prioritization matrix a bit. And it is pretty cute. Actually, we’re kinda amused how it splits our entries between pretty much trivial and off the chart.


Yep, it’s very pretty. That goes for the rest of the application too — very nicely designed and intuitively laid out and apparently well programmed, you can pretty much take all that for granted by our lack of observation that it’s not. But is it actually worth the effort to use? Hmmm-mmm-mmm. Well, if you actually need help balancing your various long term goals, why yes we can see this would be an excellent tool. If your strategic directions are pretty much set (that would be a politer way of saying “as one-dimensional as we are”) and you’re only really interested in some help with tactical management, not so much … and at the moment the lack of repeating tasks is a pretty hard block to that, although as mentioned above it looks like that lack will be remedied.

So, there you have our thoughts. If this sounds like something you figure could help you out — click away!


Continue Reading →
Page 70 of 115 «...4050606869707172...»