The personal blog of Stuart Breckenridge

Auditing My Apps for the App Store Cleanup

As I wrote a few days ago, Apple announced that they will be implementing new review procedures for already released apps and will remove those that meet any of the following criteria:

  • no longer function as intended; or
  • no longer meet current review guidelines; and,
  • apps which have not been supported with compatibility updates for a long time.

Analysing these criteria and taking the more detailed support page into account, I believe the following will be Apple’s general policy: Apps which haven’t been updated in the last 24 months and which crash on launch or no longer meet current review guidelines will fall into scope of being removed from the App Store.

What current review guidelines are applicable? My assumption is that this review process for historical apps will be automated and that Apple will not be conducting manual reviews to ensure, for example, UI modernity.1 That said, the red flags I think Apple will be looking for as a starting point are:

  • Apps that aren’t 64-bit;2
  • Apps that have iTunes metadata that is outdated (e.g. a privacy policy that returns a 404)

It is inevitable that the criteria will be updated over time. For example, I imagine that in a few years apps which don’t contain @3x assets will be considered abandoned.

Auditing my apps based on this analysis reveals the following:

App Updated within 2 years 64-bit Crash on launch Metadata intact
The FFI List Yes Yes No Yes
Baby’s Milk Yes Yes No Yes
Primes Yes Yes No Yes
Amazing Flag Quiz No No No Yes

Even though Amazing Flag Quiz still makes a small amount of money through in-app purchases, I firmly believe that it falls foul of the new rules. (I’ll be writing a new version of Amazing Flag Quiz as my next project.)

What would really help is if Apple didn’t leave so much of this to conjecture with only two days to go until they begin implementing. I am hoping for more information at their event on the 7th.

  1. Given the sheer volume of apps, I think manual reviews are a no-go. ↩︎

  2. Though not mentioned in the review guidelines, 64-bit has been required since 2015. ↩︎

Apple Hiking iPhone 7 Orders Due to Samsung Recall  

Tim Hardwick, via MacRumors:

Apple has reportedly hiked orders for parts and components required for the production of the upcoming iPhone 7 and 7 Plus, according to sources from the supply chain in Taiwan (via DigiTimes).


The hike in order volumes suggests Apple is increasingly upbeat about demand for the new devices among existing iPhone owners seeking to upgrade, despite relatively subdued interest in the iPhone 7 models compared to the pre-launch buzz of previous years.

Another potential factor in Apple’s upward revision is Samsung’s global recall of its Galaxy Note 7 smartphone last week, which followed numerous complaints that the device caught fire while charging. The news arguably couldn’t have come at a worse time for Apple’s biggest rival, which has pitched its Note 7 as a direct competitor to Apple’s 5.5-inch iPhones.

“What a lovely gift token. The question is, what do we buy with it?”, pondered the Apple SVPs.

My Backup Strategy

Roughly three years ago I lost all the data on my MacBook due to a hardware failure. I had no backup and I lost the source code to Lucky Dip, Amazing Flag Quiz, and Live@Troon. (For reasons that escape me, I hadn’t committed any of the code to GitHub.) These days, I’m not quite as careless.

Local Backups

My iMac stores everything. Photos, documents, source code, you name it.

It is backed up locally, using Time Machine, to a Synology DS216+. Time Machine keeps hourly backups for the last 24 hours, daily backups for the last months, and weekly backups for all previous months. The first backup will take a very long time, so I’d recommend using ethernet or USB, instead of WiFi.

My Synology contains two 3TB hard drives in a Synology Hybrid Raid (SHR) configuration, which allows one of the two hard drives to fail without experiencing data loss. Two Time Machine backups for the price of one.

Remote Backups

My remote backups take multiple forms.

Everything is continuously backed up from both my iMac and MacBook to BackBlaze. BackBlaze will backup everything, except items on the default exclusion list, or file types you exclude manually.

Photos and videos, with the introduction of iCloud Photo Library, are also stored in iCloud.1

Source code — including this website — is also committed to GitHub.

I feel as though my data is relatively well protected with these failsafes. Having experienced data loss in the past, I wouldn’t hesitate in recommending them to you.

  1. My photos are backed up to my Synology, to BackBlaze, and to iCloud. You can never be too careful. ↩︎

USPS Releasing Stamps to Celebrate Fifty Years of Star Trek  

This is pretty cool from USPS:

On September 8, 1966, Star Trek premiered. Centered on the interstellar voyages of the U.S.S. Enterprise, the prime-time television program’s mission was to boldly go where no man has gone before. With an intricate futuristic setting, multicultural cast, and story lines that touched on social issues, Star Trek pushed past the boundaries of popular science fiction and became a worldwide phenomenon.

Each of the 20 self-adhesive Star Trek stamps showcases one of four digital illustrations inspired by elements of the classic TV show: the Starship Enterprise inside the outline of a Starfleet insignia against a gold background, the silhouette of a crewman in a transporter against a red background, the silhouette of the Enterprise from above against a green background, and the Enterprise inside the outline of the Vulcan salute (Spock’s iconic hand gesture) against a blue background. The stamp sheet includes five of each design. The words FOREVER USA, separated by a small Starfleet insignia, appear along the top edge or the bottom edge of each stamp. The words SPACE… THE FINAL FRONTIER, from Captain Kirk’s famous voice-over, appear beneath the stamps against a background of stars.

Keeping Jekyll Build Times Down While Minifying Files

PageSpeed Insights annoys the hell out of me. For a long time this website was sitting — harshly, I thought — with a score in the 60s. I had a few issues:

  • Cache-Control headers not being set on images
  • Render blocking CSS
  • Unminified CSS

I resolved the Cache-Control issue by adding headers to those files using gsutil.1 I’m happy to live with render blocking CSS but I’ve minimised its impacts by moving to asynchronous loading of webfonts from TypeKit, rather than Cloud.Typography’s CSS method. Minifying CSS turned out to be a bit trickier.

I initially implemented a minifier using the Jekyll Asset Bundler plugin. This worked perfectly except for one flaw: it added around seven seconds to the build time of the website. I found that to be unacceptable, so in my search for another solution that doesn’t impact performance I came across a node package called Minifier. Minifier is able to minify CSS without impact to performance but it does require a bit more work to integrate than the Jekyll plugin I was previously using.

Integrating with the Build Script

I build my Jekyll site using a build script, so my first decision was where I want to integrate Minifier in the script. I’ve decided to add it after the Jekyll build is complete:

echo "1. Build Site"
cd ~/blog
bundle exec jekyll build

echo "2. Minifying"
cd ~/blog/public/css
minify poole.css
minify lanyon.css
minify syntax.css

echo "3. Copying Minified CSS to site"
cp poole.min.css ~/blog/_site/public/css/
cp lanyon.min.css ~/blog/_site/public/css/
cp syntax.min.css ~/blog/_site/public/css/

echo "4. Committing"
git add .
git commit -m "Commit via Script"
git push 

Reducing the Number of CSS Files

Using this approach, build time remains constant, and steps 2 and 3 take no time at all. However, there’s one further optimisation I made: combining multiple CSS files into one and then minifying the combined file. Steps 2 and 3 are updated as follows:

echo "2. Minifying"
cd ~/blog/public/css
cat poole.css lanyon.css syntax.css > combined.css

echo "3. Copying Minified CSS to site"
cp combined.min.css ~/blog/_site/public/css/

This reduces the number of requests the browser needs to make to get my CSS files and comes with no performance hit during build.

SUCCESS: These little tweaks keep the build time of this site to around two to three seconds on a 2016 MacBook (m5 CPU) and as a result of the changes above, this site now has a 91/100 score for mobile and 97/100 score on desktop.

  1. Most of the static files for this website are hosted on Google Cloud Storage. I’d recommend this approach as it will help greatly in the event you ever migrate your site to a different platform. ↩︎

App Store Improvements  

Apple Developer News and Updates:

Quality is extremely important to us. We know that many of you work hard to build innovative apps and update your apps on the App Store with new content and features. However, there are also apps on the App Store that no longer function as intended or follow current review guidelines, and others which have not been supported with compatibility updates for a long time. We are implementing an ongoing process of evaluating apps for these issues, notifying their developers, and removing problematic and abandoned apps from the App Store.

This is a long overdue move from Apple which I welcome.

(I’m quite sure I’ll be getting an email soon regarding Amazing Flag Quiz. I haven’t updated it since 2013!)

2TB iCloud Storage Now Available  

Juli Clover:

Apple today quietly added a new iCloud storage tier, offering customers 2TB of data storage space at a price of $19.99 per month in the United States. Apple now offers four iCloud storage tiers at prices that start at $0.99.

To me this suggests that photos are going to be bigger and, with macOS Sierra, Apple thinks a lot people will sign up for storing their desktop files in iCloud.

What irks me is that storage still can’t be pooled amongst Family Sharing members.

Removing Over the Air Updates from The FFI List  

Starting in version 1.3 of The FFI List, functionality that allows users to download updated FFI list databases will be removed. There are a few reasons for this, but it chiefly comes down to the following:

  • The FFI database barely changes from month-to-month
  • There is a small cost to hosting a new database file each month

The FFI List will continue to be updated through the App Store and, as part of those updates, receive updated versions of the database.1 The app will validate saved FFI’s GIINs against the newer database.

1.3 will be released in early September and will contain the August 24, 2016 FFI List. For those who have the in-app subscription, this has been removed from sale. To ensure you don’t miss out, there will be a 1.3.x that contains the September 24, 2016 FFI List.

Following the 1.3.x release, I plan to update the app each quarter. The next release will be in January.

  1. App Store updates are now approved in a timeframe of hours to a few days, instead of around a week. It makes this approach slightly more palatable. ↩︎

Full Dualshock 4 Functionality Coming to the Mac and PC  

From the PlayStation Blog:

We’re excited to announce that PlayStation Now is making the jump to Windows PC. The app launches overseas in parts of Europe soon and will come to North America shortly thereafter.


We’re also introducing a new device, the DualShock 4 USB Wireless Adaptor, which launches in early September for a suggested retail price of $24.99 ($29.99 CAD). This adaptor will let you connect a DualShock 4 to PC and Mac wirelessly, and will enable every feature of the controller you know and love: buttons, analog sticks, touch pad, light bar, motion sensors, vibration, and stereo headset jack – as long as the gaming application supports these features.