10 Year Update - Part 2

My semiannual update on the Marco Arment 10-Year Challenge. See Part 1 in the series.

The Red Ace

The Red Ace got a significant update in October: insurance and surrender support, both of which are a major part of counting cards. I also added split view support for iPad, hoping it might boost my search rankings or increase the odds of getting featured in the App Store.

Biggest disappointment from updating the app was the inevitable decline in sales. Starting around 27 December 2016, the current version finally had enough reviews for the App Store to display and sales resumed.


In 10 months, I’ve produced 20 screencasts. An okay number, but I really need to stick to a once a week schedule. The past two months have been much closer to that with six screencasts produced, only missing weeks around holidays.

I’d love to eventually run sponsorships à la Railscasts. Need to keep producing content on a consistent basis to get there.

One stat I want to track between these updates is number of followers on my @seedsofelm account. Currently at 211. I have other analytics to help gauge the number of video plays, but at this point, I’m more interested in the number of people who opt-in to updates.


My Elixir and Elm app is nearing launch. I have a lot of eggs in this basket, so a strong launch will go a long way toward keeping up my enthusiasm and monetary ability to pursue it.

User-testing has gone well so far. Every test is still revealing some pretty great insights. I’m looking forward to having some beta customers onboard within a week. They should drive the final changes necessary before the public announcement.

The Update Slump

I am certainly not the first to experience it, but if you were looking for hard data on the update slump, look no further. Below are two iTunes Connect App Analytics charts from before and after I released an update in the App Store.

Several things could be happening here.

  1. Lack of reviews turns buyers away.
  2. Latest version crashes a lot and is getting negative reviews.
  3. Updated keywords/description with new version destroys SEO.

I can’t prove number 1, but judging by these charts, I don’t think it’s number 2 or 3. Product page views and crashes are pretty consistent, implying people are finding the app, but not pulling the trigger on purchasing it.

"App Analytics, 9 September 2016 through 9 October 2016"

"App Analytics, 10 October 2016 through 14 November 2016"

Because I’m not the first to see this trend, I think it’s safe to say this is because of my lack of reviews. Five stars to no stars is a rough way to go.

If you’ve purchased the app and would like to help out, please write a review.

Convincing Myself

To buy a new MacBook Pro. Apple is unlikely to drop the price of this MacBook Pro or update its specs for at least 12 months, if not 18 or 24. Given that, right now is the best possible time to buy one. Every month I wait, I’ll get less value for the same price. If I buy it now, I can start getting some value from it rather than suffer through another several months of slow MacBook usage.

Exploit Prices

Zerodium’s Exploit Acquisition Program:

Product / Exploit Type New Price Previous Price
Apple iOS 10 (Remote Jailbreak) $1,500,000 $500,000
Android 7.x/6.x (Remote Jailbreak) $200,000 $100,000

An iOS remote jailbreak exploit is worth 7.5 times as much as an Android jailbreak exploit.

We know prices get set by supply and demand, so what drives up the prices for iOS? A greater demand or a lower supply?

I’ve never been interested in remotely exploiting someone’s phone, but I can muster a few guesses as to why someone would: to steal credit card data, distribute ransomeware, or form a botnet, to name a few. Are any of those worth more on iOS than Android? I don’t see how given Android’s greater market share. I expect the demand for Android jailbreak exploits to be greater, and thus drive the price up.

If we’re conservative and say the demand is equal for iOS and Android exploits, then the supply for iOS jailbreak exploits must be lower, implying they are more difficult to produce. I don’t know if any Apple engineers are patting themselves on the back, but this is a major testament to the iOS security team.

Ceramic Jet Black

Brian Roemmele via Quora:

Why is Apple moving to Zirconia Ceramics?

  1. Strength
  2. Radio Transparency
  3. Heat Conducton[sic]/Dissipation - with Alumina / Aluminum Nitride
  4. Scratch resistance
  5. Ease of manufacturing

The Apple Watch Edition Series 2 only comes in white, but it stands to reason a ceramic iPhone would come in both black and white. I’m a little surprised Apple would release the Jet Black iPhone this year rather than surprise us with a brand new color along with the ceramic housing.

Headphone = VGA?

Apple may wield significant sway in the industry, but is it enough to get other phone vendors to remove headphone jacks? In an apples to oranges comparison, HP and Lenovo still make laptops with VGA output. They may not be phone vendors, but I think it’s safe to say, if you really like headphone jacks, you’ll be able to buy a phone with one for a very long time.

Swift Subclassing

I’ve enjoyed watching the debates, but haven’t sided with one team yet. It’s hard to believe that you can be productive with subclassing unavailable by default, but looking at the Swift I’ve written the past couple of years, subclassing has not been my tool to solve problems.  Other than classes like NSManagedObject and UIView, I have hardly any subclasses, and each instance could use protocol extensions and remove the need for subclasses.

Even though I’m not convinced final by default is the best option, the evidence is pointing to it. I love Swift and am looking forward to spending more time in Swift 3 over the next year. Only real experience in the hands of developers will tell us if this is the right decision.

2FA Backups

Read the reviews for Google Authenticator. Here are a few good ones:

If you have saved codes don’t update.

23 Mar 2016

Lost all my codes in a backup/restore

9 May 2016

Lost all sign-in data upon upgrading.

7 July 2016

Losing your two-factor authentication codes is a very serious problem, whether it’s from losing your phone or an app update gone bad. See Github’s answer on what to do if you lose your 2FA code:

If you’ve lost access to your account after enabling two-factor authentication, GitHub can’t help you gain access again.

After reading these reviews, I realized a bad update could lock me out of Gmail, Github, Dropbox, AWS, and many other services. I save recovery codes in 1Password, but if I need to regain access away from my computer, I’ll be SOL.

Rather than rely on luck and recovery codes, I’m changing how I use 2FA. From now on, all 2FA codes will go in Google Authenticator and 1Password. This combination gives me the speed of Google Authenticator and the peace of mind knowing my codes are backed up in a second app.

App Store Search

The App Store needs more smarts and better search…

– Om Malik in Should Apple Buy Netflix?

A common refrain, but I have yet to see an objective measure of it. Does App Store search really suck, or are developers upset their apps aren’t ranked as highly as they think they should be?

I devised a simple experiment to try to answer this question.

The Setup

Pick Three Apps

I’m looking for apps with similar profiles. Ideally I could find 3 apps in different categories, each paid upfront for the same price, and all updated around the same time.

  1. Popular game that’s not a household name.
  2. Wide-appeal app in a crowded category (not a game).
  3. Obscure app in an obscure niche.

Perform several identical searches in the App Store and on Google. Google searches are prefixed with site:https://itunes.apple.com/us/app to filter results. Searches are performed on an iPhone 6s running iOS 10 Beta 5.

Queries are from the following categories:

  • Exact name
  • Partial name
  • Misspelled name
  • App topic (not category name)

The Experiment

The Apps

Game: Alto’s Adventure - $3.99 paid upfront. Last updated 2 June 2016.
Crowded Category: Clear - $4.99 paid upfront. Last updated 27 October 2015.
Obscure: The Red Ace - $4.99 paid upfront. Last updated 27 January 2016.


Alto’s Adventure

Query App Store Rank Google Rank Does App Store Search Suck
altos adventure 1 1 No
alto 1 1 No
adventure - 1 Yes
alltos adventure 1 1 No
aldos adventure 1 1 No
ski game 1 1 No


Query App Store Rank Google Rank Does App Store Search Suck
clear 1 1 No
cleer 11 - No
todo app 31 2 Yes

The Red Ace

Query App Store Rank Google Rank Does App Store Search Suck
the red ace 1 1 No
red ace 1 1 No
thered ace - 1 Yes
the read ace - - No
card counting 7 5 No
blackjack trainer 20 15 No

* A ‘-‘ denotes the app was not found in the first 50 results.


App Store search has a few weak spots compared to Google, but not enough to blame your app’s discoverability issues on “the App Store needs better search.” Even as Apple improves search, increases discoverability, and better curates lists, you can’t rely on it to generate all of your customers.

Should Have Been 1.0

Anytime you think to yourself “The 2.0 update to Product X is great. This should have been 1.0”, you’re probably wrong. You’re not wrong that 1.0 was subpar, you’re wrong on the assumption that 2.0 could have existed without the release of 1.0.

Picking on watchOS for a minute, we all know 1.0 was slow, clunky, and certainly not Apple-like. But is that proof that it was released too early? Would Apple have known that one of the best features of the Watch was fitness tracking when only a handful of engineers were wearing them? Would Apple have known that some spare memory capacity existed without millions of people recording usage patterns?

Regardless of how much user-testing and dog-fooding a team does before a product launch, it will never have the same impact as real users with the product in real situations.

I, for one, am happy watchOS 1.0 shipped when it did. 3.0 wouldn’t be as great without it.