Archive for June 30, 2015

Tuesday, June 30, 2015

The Age of Writing iOS Apps for Love

Brent Simmons:

If I estimate the number of iOS apps in the App Store, and get the difference between the estimate and the actual number, that difference will be larger than the number of successful apps.

(I define successful as a good-faith “makes enough of a profit to make it worth continuing to work on the app.” Most apps fail to make a profit at all, of course.)

I haven’t done an actual study. But do any developers doubt that I’m right? And when developers think this way, they take their app ideas and toss ’em aside.

Cabel Sasser:

Crushingly, maddeningly, this is very correct.

Update (2015-07-03): Allen Pike:

However, when expressing frustration with the current economics of the App Store, we need to consider the effect of this mass supply of enthusiastic, creative developers. As it gets ever easier to write apps, and we’re more able to express our creativity by building apps, the market suffers more from the economic problems of other creative fields.

John Gruber:

But the bottom line is that indie development for iOS and the App Store just hasn’t worked out the way we thought it would. We thought — and hoped — it would be like the indie Mac app market, only bigger. But it’s not like that at all.

Curtis Herbert:

I’ve long felt that we as a community let our enthusiasm for building something we love and stories of days past blind us to a simple fact that other industries realized long ago: being independent is hard and many of us that try will not succeed.


What we don’t always consider is that the customers looking to buy software for Mac were already paying a premium for hardware (remember when the Apple Tax was a real thing?), so we had a self-selected audience of customers willing to pay for premium goods. Mac devs didn’t yet have to appeal to the mass-market cost-obsessed Dell users.

They were willing to pay a premium for hardware because it came with the promise of every detail being obsessed over, and that appealed to those kinds of people. Customers hence expected the same attention to detail from their software. Back then they weren’t overwhelmed with choice, so new apps with this focus on quality were something to talk about.

Jason Brennan:

The problem is that people aren’t paying for apps because people don’t value apps, generally speaking (I’ve written about this before, too).


What I am saying is if you want a sustainable business, you’ve got to provide value for people. Your app needs to be worth people paying enough money that you can keep your lights on.

Charles Perry:

We developers need to get over it and stop blaming the App Store for our business troubles, because when it comes down to it, the App Store has only two purposes: credit card processing and software delivery. That’s it. Yeah, I know the App Store was originally sold to developers as a marketing channel, but it hasn’t been that for many years.

This is true, but I think the reason people are tempted to blame the store is the sense that it doesn’t have to be this bad. People don’t expect it to be easy, but it’s frustrating that Apple has stacked the deck against the kinds of apps we want to see. There is no obvious reason to do this, and Apple has not been forthcoming about why it is doing so, even as it apparently does not like the results. Yet we assume this is purposeful because there has been no change of course in six years. As Simmons writes:

I’d add, though, that each market has a shape, and the shape of the iOS App Store is in Apple’s control. They can’t control the behavior of people, but the shape of the market has an impact.


There’s no silver bullet, but there are numerous good ideas that, taken together, could make a significant difference.

Manton Reece:

However, if you take everything Charles says as truth, it reveals an even more serious problem: the 30% that Apple charges for distributing bits on their truck is outrageous. It’s flat-out wrong to charge such a high percentage if they are providing no value above credit card processing and file hosting.

Update (2015-07-05): Kevin Walzer:

I’ve done enough work on Windows and Linux to know that I can certainly develop for those platforms, but there’s a reason I stay with the Mac--even using a cross-platform toolkit. It is by far the best environment for developers. I absolutely love developing for the Mac, even in spite of Apple’s many restrictions, even as I move out of the Mac App Store for good.

If my work on the Mac isn’t very rewarding financially, it can at least be rewarding in terms of enjoyment.

Update (2015-07-12): Oluseyi Sonaiya:

This outcome was entirely predictable.


Put more bluntly, Apple is not your friend.


This is an unpopular opinion among Apple fans, users and developers alike, and I think it’s because of Love. The iOS indie space is filled with and shaped by former and current Mac indies, especially from the years when Apple was not the dominant platform vendor, as well as lifelong fans of the company and its products. These are people who love Apple, and I think it blinded them to the fact that Apple now works at cross-purposes with them.


Yes, Apple is just people, but Apple is also a corporation and corporations are rather ambivalent about people. Despite the sincerity of individuals at nearly any level of a large corporation, the aggregate force of shareholder interest, profit and competition will frequently drive a corporation to act against you. Dijkstra warned us not to anthropomorphize our programs. Neither should we anthropomorphize our platforms, or the corporations that control them.

Michael Burford:

I saw a report (and promptly forgot where) that about 12,000 new games come out each month. […] Right now, Apple features about 15. And they do want to mix it up so it is not all the same type: some action games, some puzzles, some driving ones, etc. So you don't have to be in the top 15 out of all 3,000 to get featured, its more like the top one or two out of the style of game you make, so say the top 2 out of 500.

Matt Henderson:

People who buy Rego love it, and discover all sorts of interesting ways to use its versatility. One guy journals his travels. Another tracks her photo shoots. And yet another tracks drilling locations in Kuwait!

But if I divide our development time by the revenue we’ve made, it works out to an hourly rate of about 1/4 of minimum wage.

Mac OS X 10.10.4 “Improves Networking Reliability”

John Gruber:

OS X 10.10.4 shipped today, and as expected based on the developer betas, Discoveryd is gone, replaced by an updated version of good old mDNSresponder. At WWDC, word on the street was that Apple closed over 300 radars with this move. Not dupes — 300 discrete radars.


Debugging Exceptions in Xcode

Natasha Murashev:

Just type po $arg1 into the debug area to get the human-readable version of the error (in this case, the nib is invalid) […] Finally, you can add the po $arg1 command to your Exception Breakpoint so it’s just automatic.

Whereas, otherwise Swift will crash with no useful information when there’s an uncaught exception.

Safari Is the New IE

Nolan Lawson (comments):

I think there is a general feeling among web developers that Safari is lagging behind the other browsers, but when you go to a conference like EdgeConf, it really strikes you just how wide the gap is. All of the APIs I mentioned above are not implemented in Safari, and Apple has shown no public interest in them. When you start browsing, the list goes on and on.

Even when Apple does implement newer APIs, they often do it halfheartedly. To take an example close to my heart, IndexedDB was proposed more than 5 years ago and has been available in IE, Firefox, and Chrome since 2012. Apple, on the other hand, didn’t release IndexedDB until mid-2014, and when they did, they unveiled a bafflingly incompetent implementation that was so bad, it’s been universally derided as unusable. (LocalForage, PouchDB, and YDN-DB, the major IndexedDB wrappers, all ignore Safari’s version and fall back to WebSQL.)


In recent years, Apple’s strategy towards the web can most charitably be described as “benevolent neglect.”


To circle back to IndexedDB again, it was fully implemented by Google well before the Blink fork, and for several years, Apple could have just flipped a bit in their build script to include Google’s implementation, but instead they decided to waffle for a few years and then replace it with their own broken version. There’s no guarantee they wouldn’t do the same thing for other outside contributions.


I think the analogy is very clear. If you want to code like it’s 2000, supporting IE6 is easy, because IE6 is a very good 2000 browser. If you want to code like it’s 2010, supporting Safari is easy, because Safari is a very good 2010 browser. But in both cases, if you want to use any new features that have been standardized and are supported by other browsers, you’re fucked.

The main difference I see is that IE6 didn’t get any updates at all. Safari gets updates, but many new features are missing or broken.

Another difference is that MS never blocked you from installing a better browser, but Apple does that on iOS. That policy is becoming increasingly ridiculous…

Update (2015-07-03): Nolan Lawson:

Looking thru public-webapps, I see @ryosukeniwa from Apple has been super active on WebComponents/ShadowDOM. I was dead wrong! Apologies. :(

Update (2015-07-06): John Gruber:

What irks the open web crowd isn’t that Safari is the new IE, but that Apple wields utter control over iOS—and most users are happy w/ that.

It’s not clear to me how the second part is any different from what the situation with IE was. At least Windows let you install Firefox (and later Chrome) if you didn’t want IE. You could even set them as the default browser.

Update (2015-07-07): Don Melton:

Folks keep asking me to comment on that article today. Let me be clear: Safari is not the new I.E. There is so much wrong with that piece.

Rene Ritchie:

What Lawson is mistaking for complacency is actually an evolution of perspective. Safari and WebKit won the battle for better web technology. Now they’re fighting the battle for better security, privacy, and performance (including energy efficiency).

None of this is new—the culture of zero regression has been ingrained into the WebKit and Safari teams since their founding—It’s simply moving from purely technical features to user-facing features.

I don’t find this very convincing because it assumes that Web technology is static. In fact, the Web is evolving apart from Safari, and I have lately seen more sites that don’t work with it. And the culture of “zero regression” is exaggerated because the Safari team made huge performance and stability regressions when they sandboxed the rendering engine. Apple’s priorities for its browser have changed, just as Microsoft’s did.

Nolan Lawson:

I thoroughly enjoyed the resulting debate, though, and yes, there are valid arguments on both sides. So I’d like to pick up where I left off, and respond to my detractors while doubling-down on my claim that Safari is acting as an anchor in the web community. I’ll also end on a hopeful note, with some suggestions for reconciliation with Apple.


That being said, my point was to compare Safari to IE in terms of 1) not keeping up with new standards, 2) maintaining a culture of relative secrecy, and 3) playing a monopolistic role, by not allowing other rendering engines on iOS. Those accusations are pretty undeniable.


Personally what I want out of this whole debate is for Apple to realize that the web is starting to move on without them, and that their weird isolationism and glacial release cycle are not going to win them any favors in this new, dynamic web community.

Update (2015-07-11): See the discussion on Accidental Tech Podcast, although it focuses more on whether Apple’s Safari decisions make sense, rather than on whether the analogy with IE is correct.

Kenneth Auchenberg (comments):

The problem isn’t Safari. It’s a somewhat modern browser that in the eyes of some might lack some important features, but overall is still pretty good and modern.

The real problem is Apple’s lack of browser-choice in iOS, and that’s a problem for several reasons[…]

Update (2015-07-30): On the Debug podcast, Don Melton responds to Nolan Lawson. His argument essentially is that Safari is not in stasis like IE was, but that Apple has its own very different development priorities. The corporate secrecy policies make it seem like the Safari team is not participating, but there are channels such as mailing lists and Twitter where you can interact with them.

Update (2015-09-25): John Gruber:

The difference is that IE 6, at its peak, wasn’t just so popular that it allowed Microsoft to unduly influence the direction of the web — IE 6 was so popular that it allowed Microsoft to define the web. It was as though IE 6 was the web. When banking sites required ActiveX plugins, they were making websites that only worked in Internet Explorer, only on Windows. In the eyes of many web developers and publishers, it was the one and only browser that mattered.


There is no official “Web Standards Security Council”, but web browsing market share creates a de facto one. Apple (or Google, or Microsoft, or Mozilla) can’t single-handedly veto a new API from becoming an official W3C standard, but if any one of them decides not to implement it, it can’t be relied upon by web developers.