Ionic and Apple’s UIWebView API Deprecation

In typical Apple fashion, they recently announced that they would no longer accept any mobile applications that utilise UIWebView, from April 2020, and existing applications as of December 2020.

In response Ionic created this great post in how to overcome this decision, you can read about it here

If you’re running a collection of Cordova plugins a key step is to make sure these are up to date. We found that even after following these steps one of our applications was still returning Apple’s UIWebView warning.

We identified one or more issues with a recent delivery for your app, [App Name & version number]. Your delivery was successful, but you may wish to correct the following issues in your next delivery:

ITMS-90809: Deprecated API Usage – Apple will stop accepting submissions of apps that use UIWebView APIs. See for more information.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.

We found that Ionic’s original firebase plugin was causing the problem as it still contained a reference to UIWebView. The solution was to completely remove the no longer supported Cordova cordova-plugin-firebase and @ionic-native/firebase and replace this with FirebaseX

Your Ionic version will depend how you need to reference the new plugin. Everything is very well explained in their documentation

Hope that helps any of you struggling in getting your new or existing app approved.

Using Programming to renovate your house

Anyone that has gone through the motions of renovating know how expensive it can be. Material costs can really add up over the course of the job and having excess is something we want to try and avoid.

During a recent bathroom renovation we needed to work out the number of tiles required for a splashback in a herringbone pattern. The traditional way is to lay the pattern out and then determine the number of tiles and positioning from that.

Instead I wrote this simple tool that uses Fabric.js and some basic collision detection to work this out.

There are still a couple of features that I’d like to add including working out if I can reuse corners of tiles if only one corner is needed.

Work out how many tiles you need
Work out how many tiles you need

Subway Layout
Subway Layout

Checkered Layout
Checkered Layout