Lorenzo Villani

(╯°□°)╯︵ ┻━┻

Unsolicited Advice

Apr 4, 2015

Earlier last year I went all-in to the Apple ecosystem after a 10 year-long relationship with Linux and a four-and-a-half one with Android.

One thing that struck me the most was how Apple is handling its developer community and how inefficient some processes appear on the outside.

Bug Reporting

Apple’s bug reporting tool suffers from one critical flaw: each ticket is private between me and Apple. Because of this, I don’t know if someone else encountered the problem I’m about to report.

Reports are confidential because they may contain sensitive data, like pieces of proprietary code.

All of this means that I often report bugs that will be closed as duplicates. Rumours say that Apple internally uses this “duplicates count” to prioritise issues that need to be fixed.

I usually spend about fifteen to thirty minutes on each issue I report to make sure it is reproducible with step by step instructions, screenshots or screen recordings. Then someone at Apple has to waste some more time closing the influx of duplicate bug reports.

The whole process is terribly inefficient.

Many bug reports don’t contain private information. I would welcome a checkbox that gives me the ability to make the bug report public and searchable.

Most of the time I’m not the first experiencing an issue. I would rather find the original bug report and participate to the conversation with Apple engineers. Also, a simple way to help with prioritisation would be a mechanism similar to “stars” on Google Code’s issue tracker.

Additionally, since I don’t get notifications when the original issue has changed state, each time a new product release comes out, I have to go through these steps:

  1. Check all bugs in “Open” and “Closed” categories and try to reproduce them in the latest release.
  2. If it is still present, then I add a comment like “Still present in iOS 8.2”. If it is fixed I add a comment like “Fixed in OS X 10.10.2” and then click the “Hide” button to move it to the “Hidden” category. Adding a comment is useful since it is shown in the bug list on the left.

Now multiply this process for each developer working with Apple products with enough time and patience to open bug reports. Think about all the wasted manpower at Apple to read incoming bug reports and mark them as duplicates.

Recap

  1. Add a checkbox to make bug reports public and searchable by other users.
  2. Add a vote system so that developers can help prioritise bug reports, in a manner similar to “stars” on Google Code.
  3. When I report an issue which is then closed as duplicate, send me notifications when the original bug report changes state.

Unified Developer Subscription

The Watch, along with Continuity and Handoff on iOS and OS X, contributes to create experiences spanning multiple devices.

We expect developers to create applications that work across multiple screen sizes and environments.

Developers, however, are still split between two camps: iOS/Watch and OS X, with separate subscriptions and developer portals.

Many iOS developers, myself included, would love to create products encompassing all of the Apple ecosystem but the thought of having to activate yet another yearly subscription is often off-putting.

Unifying both the iOS and OS X ecosystem under a single 99$/yr subscription would encourage the large pool of iOS developers to start developing applications for the Mac App Store, too, stopping the chronic lack of applications on that front.

Microsoft is doing it, with improved unification expected this year, and Google has always used a one-time $25 for Android and a one-time $5 fee on the Chrome Web Store.

There’s no excuse to still have a fragmented ecosystem.

Unsustainable Software Development

Mar 4, 2015

The downward pricing spiral of recent years, pushed by “app stores” on all major platforms, is creating the false perception that software is free to make.

Not so long ago, it was common to pay a couple dozen bucks on a productivity application. Healthy businesses flourished around small software shops crafting great applications, supported by a steady income.

Today, even a 0.99$ price tag is met with resistance and fear of a bad buy.

I see some small businesses managing to keep up on OS X and (somewhat) Windows. Everywhere else, especially on mobile, there’s a strenuous race to the bottom and you can’t go much further than zero 1.

The majority of developers publishing on app stores make less than 1000$ a month. Many earn less than 500$. That isn’t enough to sustain a single developer, let alone a small team.

I increasingly see people publish apps just to have something to show on their portfolios, so that they can sell their experience to larger businesses which can afford to sustain the cost of app development thanks to other revenue streams or VC money.

To make a living with thoughtfully crafted indie applications is becoming more a dream and less of a reality. Many startups with mobile apps either burn VC cash and fail or work towards an exit strategy driven by an acquisition. In either case the product is often shut down.

This dynamic is devaluing software to the point that most people don’t feel compelled to pay for it, forcing developers to publish free apps and depriving them of the resources to sustain a business, sparking a vicious cycle of VC rounds and acqui-hires, with users caught in the middle.

Hence the fear that most independent software developers will be crushed between large companies and the current mindset of the general public.

Being on the other side of the fence helped me to understand the value of software and appreciate all the work behind it. I’m happy to pay reasonable money for good stuff. It is our duty2 as technical people to educate our friends and family that paying for software is good and that lots of great products come from small shops, as long as we are willing to support them.

Further Reading


  1. Despite selling more than half of our total units, iOS represents just 17% of our total revenue. […] It’s really hard to say for sure. One thing is for certain: we are more likely to increase the price of our iOS software over time in an effort to make it make sense. And we’re less likely to tackle any huge new iOS projects until we get this figured out.

    The 2014 Panic Report

  2. Put another way, we’re going to charge something sane or die trying. We tried following the iOS App Store trend by pricing Vesper at just $2.99 for months. It didn’t work. Prices like that are not sane, and not sustainable, at least for well-crafted productivity apps.

    Vesper: Now With Native Support for iPad and Landscape

Apocalypse Now! Android User Switches to the iPhone

Feb 4, 2015

In June Apple announced OS X Yosemite and iOS 8. With them came Continuity and Swift. In September they announced the iPhone 6, Apple Pay and the Apple Watch.

Then Google announced the Nexus 6, a giant phone priced like a premium one. Clearly, Google was trying to steer the Nexus line away from “decent phones at modest prices”. Recent rumors that the Nexus program might disappear altogether, and the recent cancellation of “Play Store Edition” devices from third party manufacturers 1, convinced me to look elsewhere for alternatives. I didn’t want to spend 600€ for a plastic-y Samsung phone, nor buy a Moto X (too large) or Moto G (good, but not exciting) either.

Suddenly, I had more than one reason for desiring an iPhone. Swift looked like an interesting programming language. Continuity freeing me from having to think where my stuff is. The prospect of being able to securely complete a credit card transaction with a tap, with Apple Pay, was the proverbial icing on the cake.

I decided to bite the bullet and buy an iPhone 6, sacrificing my own freedom in the process.

I had to order the damn thing from the website because there was no way I could get the model I wanted by going to the Apple Store.

Was it worth it?

Absolutely.

Nowadays, if you are looking for a phone with decent build quality, good camera, nice assortment of apps and great ecosystem you will be spending money. Sure, the iPhone is a tad more expensive than the competition, but a Samsung Galaxy, an HTC One or a Moto X isn’t cheap either.

Here’s a laundry list of the thinks I like:

  • Full disk encryption, by default!
  • The camera is great! Miles ahead of any Android phone I’ve ever had.
  • TouchID is amazing and it works without a hitch. Unlike Samsung’s crappy implementation.
  • The Mail app automatically proposes you to create a new contact based on information included in the signature and the email’s “From” field.
  • I can squeeze two days of battery life with moderate use. The surprising thing is that the iPhone 6 manages to do so with a battery smaller than most Android phones and with the motion coprocessor constantly recording my steps, all whilst keeping both Bluetooth and WiFi on.
  • Reachability is useful. I wish that all Android phones larger than 4.5 inches would come with something similar. I use it all the time.
  • I rarely, if ever, have to lock the orientation of the phone. I don’t know what kind of dark magic is involved, but the phone never goes to landscape mode unless I want it to do so. All my other Android devices, however, have a tendency to change orientation without reason.
  • When it works, Continuity blows my mind. I seamlessly transfer phone calls from my Mac to the iPhone and I can read and reply to SMSes directly from the Mac. Without having to install or configure anything.
  • Spotlight is good. I miss a couple of features from its OS X counterpart but it fast and gets the job done.

Then there’s the promise of Apple Pay to deliver a safe experience when dealing with credit card transactions. Once it comes to Italy, I’ll give a strong preference to all venues that allow me to use it. The nicest thing is that the technology isn’t even specific to Apple. I will be able to use Apple Pay anywhere EMV contactless payments are accepted 2.

Thanks to the iPhone, I was naturally drawn to develop applications for it. Swift isn’t a mature programming language by any stretch, but there are already tons and tons of resources readily available. Sure, Xcode crashes a lot but this is to be expected for a brand-new toolchain 3.

I’m also worried by the fact that this phone is a black box. I cannot unlock it, I cannot downgrade iOS 4, I cannot install my own apps on it without acquiring a “Developer Certificate” that costs 80€ per year. It’s a tightly controlled platform but the benefits I’m having by using it counterweight this lack of freedom, for now. As soon as Apple starts pissing me off, though, I think I will switch back to CyanogenMod 5 or Firefox OS.

I’m also bothered by the amount of bugs I found in the latest crop of iOS and OS X updates. Blatant UI problems and rendering glitches that I managed to systematically reproduce in the first five minutes I spent with both operating systems. But this is an argument for another post.

In the end, would I recommend the iPhone to someone else? If you already have a Mac (or an iPad) and are going to spend 6-700€ on a phone anyway, then buy it. I believe there’s no competition in the “high-end phone” space. If you don’t want to spend too much though, then go for a Nexus 5, a Moto G or the latest crop of Huawei phones: they are a big bang for the buck and good enough in most cases.

  1. http://arstechnica.com/gadgets/2015/01/dont-cry-for-the-google-play-edition-program-it-was-already-dead/ 

  2. “Apple Pay does not require Apple-specific contactless payment terminals and will work with Visa’s PayWave, MasterCard’s PayPass, and American Express’s ExpressPay terminals.” Wikipedia 

  3. Even though, given the current state of Apple’s software quality, I worry that it will never improve. I prefer to draw conclusions on this matter next year. 

  4. The “Secure Element” in the phone prevents it. The rationale is to disallow users from installing a vulnerable version of iOS once a security hole has been patched. 

  5. Android proper, the one made by Google (not AOSP), is slowly becoming as closed and proprietary as iOS. I see no big advantage going back to that.