A new major version of ID-Photo is now available on the App Store. Here are the technical release notes:

  • It was built against the iOS 11 SDK and should work on the iPhone 8 / 8 plus and – supposedly – the iPhone X. In the coming weeks I will optimise the UI for iPhone X. It does look somewhat odd on some screens.
  • I had to raise the minimum iOS version to 10.3. This is because devices still supported by iOS 9 are becoming too slow for some features, but also because I really didn’t want to have the additional support overhead of three iOS versions. Why 10.3? Because every device that can run 10.0 can also run 10.3 (and you really, really should upgrade), and I wanted to get rid of the pesky version checks for SKStoreReviewController.
  • Anticipating an OLED display on the new “premium” iPhone, I added a dark mode a couple of weeks ago. This is now live. I personally don’t see the benefit of using a passport photos app in the dark, but I was asked for this feature many, many times. So there you go. Additionally, I added accessibilityIgnoresInvertColors annotations to all views showing images, so devices using the new “smart invert colors” accessibility feature won’t invert photos, which looks odd.
  • I’ve added a new editing feature, “Face lift”. This feature slightly smoothes the skin of the subject, removing blemishes, spots etc. It won’t turn you into a super model, but you should look a lot better on a tiny passport photo. Technically, “Face lift” is a high-pass skin softening filter, implemented as a custom GPUImage filter. I actually had this feature ready to go a year ago, but decided to hold it back until I could shut out the iPhone 4s–it was unusable slow on this device.
  • As always, this version has several bug fixes, included a fix for a nasty crash happening only on some iPads.
  • Apple now enforces the length of names on the App Store, they need to be 30 characters or less. Previously my App Store title was “ID-Photo – Biometric ID/passport photos”. This, of course, doesn’t fit anymore. So the “Biometric ID/passport photos” is now in the newly introduced subtitle, and the title is just “ID-Photo”. In the German version, some name squatter is blocking the German name “Passbild”, so I had to call it “Passbild DE”. This bothers me more than it should.
  • Thanks to Swift 4, I was able to remove Marshal and use the native Codable instead. Deleting code feels great, man.
  • Every new Xcode 9 beta required me to rebuild all my Carthage modules, which took forever. So I went on a third-party removal spree and implemented the functionality of three third-party libraries myself. Now I only have four dependencies, one which is still in Objective-C.
  • I had to wrestle with UIVisualEffectView again. I use it to blur out the parts of the camera image not covered by a biometric mask. Back in iOS 9, it was necessary to apply the cutout mask to the effects view layer mask. Then, in iOS 10, Apple changed it so that an additional view was necessary, which had the mask applied to it, and which was then set to the mask property of the effects view. Having to dance around iOS versions like this sucks, but starting iOS 11, it got even more fun: the iOS 10 way of applying this mask failed again, and it was necessary for me to use the iOS 9 way. Here’s hoping it won’t change again in the next (major or minor) version.

That’s all, folks! Hope you’re enjoying ID-Photo 4, and please leave a nice review on the App Store!