Aleksandar • Vacić

iOS bits and pieces

Store your Love

On the episode 112 of Release Notes podcast (certainly one of the most useful ones for this business) Charles Perry emphasized his view of the App Store as delivery truck for our apps. He wrote more elaborately on his company blog about that same topic.

The gist of the argument is that App Store is what it is and should not be confused with the actual business we do. I strongly disagree with this.

The iOS App Store is not just a delivery truck. For starters, it is the delivery truck, the only one out there. Here’s fun thought experiment: imagine there’s only one worldwide delivery service. No DHL, UPS, Fedex, USPS, Royal Mail etc – just one. Imagine how glorious would be to start a business like teespring on it and being faced with monopoly offers of “we can give you 5% discount if you ship over 1M a month”. Try to compete with the more established business then. Or imagine there’s only one payment processor.

The App Store is the only marketplace where you can compete as indie iOS developer. As such, the way it works and behaves strongly influences everyone’s business on it. You can’t just say – I don’t like this, I’ll pack up my stuff and go to some other place. There’s nowhere to go.

The App Store is also your storefront which, for some time now, strongly favors early comers and big-budget apps not interested in earning money. The App Store is also a dominant discovery truck where it fails spectacularly due to its abysmal catalog search.

When Brent Simmons published Love blog post, the there-can-be-success posts were almost exclusively from either the Mac or Mac/iOS devs. Apps like Capo or Coda or RapidWeaver are success due to their quality and upgrade revenue. iOS devs in the successful bracket are those who were doing business for a very long time and thus have the monopoly on the search rankings (say HoursTracker) and/or have amazing press goodwill and connections (say Tapbots or Flexibits).

The fact that there’s no viable way to re-monetize your existing customer base – no, subscriptions are not the solution for vast majority of non-game software – severely limits available business options. The usual retort of “well, you just failed to market properly” is wishful thinking, usually said by people who already have a successful app. In most cases, these developers achieved success pretty early in the App Store’s life. The reality of just how hard it is today hits them when they try to make the next app into a business.

I dare you to find me more than single-digit examples of iOS only apps who became solid, sustainable business in last year or two. @radiantav me, I will be glad to be proven wrong and possibly learn from those examples.

App Store is a market where app success as business is an exception, not a rule. More than anything else, that’s a sign of the business-unhealthy market. It’s a market to show off your skills and then earn your living somewhere else.

I find that really sad. That for me is the underlying sentiment of Brent’s post.

UICollectionViewCell woes with bounds change

Back in August last year I wrote about the issues I had with UICollectionViewCell and how it’s was impossible to have them behave properly when bounds of their container (UICollectionView) change.

These days I’m trying to get to the bottom of this and have to say – it still escapes me. I have actually found a combination of calls that somewhat resolve that issue, but it’s stupid-ass workaround. There has to be something I’m missing here.

Update (Jul 6th): fixed, see bottom of the post.

There’s a demo project on GitHub and here’s a video demo of the issue inside my app Unitica.

How to support landscape mode in your app on iPhone 6

In your AppDelegate file, add this:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

  if (window && window.bounds.size.width <= 320)
      return UIInterfaceOrientationMaskPortrait;
  return UIInterfaceOrientationMaskAll;

This will force portrait only in iPhone 5s or older and enable all orientations in iPhone 6 and up and all iPads.

Reconcilable Differences

Oh man… I am siting here in my favorite coffee shop listening to this awesome podcast featuring two great people. Barely holding my tears. These guys are so obviously the same age as me. They speak about PPP, SLIRP, 2400 baud modems and the ecstasy of being directly connected to the dawn of the Internet. Those first, crazy long email addresses featuring five sub-domains, personal URLs with ~username, living online either at home (lucky bastards!) or at the University terminal room. Learning HTML with Navigator 1.1 , Javascript and frames with 2.0. And all that.

Oh, wow. I had “I was there, I did that too!” moments, like 20 times in the last hour.

And more than anytime in the last several years, I can’t help feeling absolute rage about how much we here in Serbia wasted those moments in the 90s. So much wasted.