Oplossing: hotfix voor bug in UIWebKit in iOS9

Op woensdag 16 september 2015 komt iOS9 beschikbaar voor het grote publiek. De upgrade verbetert o.a. stabiliteit, snelheid en veiligheid van iPhone en iPad, maar heeft ook een nadeel: hybride apps functioneren soms niet meer naar behoren. Softwareontwikkelaars moeten dus aan de slag om dit op te lossen. Gelukkig is daar een hotfix voor beschikbaar.

Wat is het probleem met hybride apps in iOS9?

Hybride apps maken gebruik van een browser. Dit kan met Android, iOS, Windows en tal van andere platformen. Het voordeel voor developers is dat ze de code in de webbrowser vaak met geen of minimale aanpassingen kunnen gebruiken op die verschillende platformen. Met de komst van het nieuwe besturingssysteem komt ook een update van UIWebKit (dit is het onderliggende onderdeel van de webbrowser Safari), waarbij er kleine veranderingen zijn in de navigatie.

Bij het navigeren naar een andere pagina in een hybride app vinden verschillende acties plaats. Een paar softwareontwikkelaars hebben echter geconstateerd dat de volgorde van die acties net iets is aangepast, waardoor hybride apps die gebruik maken van Ionic of Angular (of andere frameworks) problemen ervaren en pagina’s bijvoorbeeld verschillende keren over elkaar heen geladen worden. Uiteindelijk crasht de app.

Is Apple op de hoogte van de problemen?

Ja. Het probleem is bij Apple kenbaar gemaakt. Tot groot ongenoegen van veel ontwikkelaars heeft Apple het echter nog niet opgelost in de versie van iOS die woensdag verschijnt. Apple zal het probleem überhaupt niet aanpakken, beweren leden van sommige discussiegroepen. Het is dus aan de ontwikkelaars om deze bug in UIWebKit te gaan omzeilen.

Is er een andere oplossing voor programmeurs?

Programmeurs hoeven het wiel gelukkig niet opnieuw uit te vinden, om hun hybride apps te herstellen. De ontwikkelaars van Ionic en Angular hebben al een hotfix uitgebracht. Hiermee kunnen bestaande apps relatief eenvoudig worden geüpdatet zodat ze weer naar behoren werken onder iOS 9. Ook voor gebruikers van andere frameworks is deze hotfix handig, omdat hij inzichtelijk maakt waar het probleem zit.

Ga direct naar de hotfix

De hotfix is te vinden op Github.com: ga naar de hotfix.