App crashes

47% van de apps crasht meer dan 1 op de 100 keer.

Wow, 47%! Maar laat ik eerst maar even beginnen met een introductie. We hebben er allemaal wel eens last van; een app die er spontaan mee ophoudt of die helemaal ‘vast’ zit. Ik ben zelfs bang dat we dit allemaal heel normaal vinden. Crittercism (een analytics tool) kwam 27 maart met een Mobile Benchmark en ik schrok van het hoge percentage crashes.

Maar is dit normaal? 47% van de apps crasht dus meer dan 1 op de 100 keer. Games crashen zelfs gemiddeld 4,4 op de 100 keer (ik ga zo dieper op het rapport in, incl. een vergelijk tussen Android & iOS). Ik denk dat het wenselijk is dat je zo weinig mogelijk crashes van je app hebt. Maar dan moet je wel weten dat de door jouw ontwikkelde app crasht.

settings diagnose en gebruikDoor privacy redenen worden crash reports vaak niet automatisch verzonden naar de servers van Apple of Google. Bij installatie wordt bijvoorbeeld bij iOS hierom wel gevraagd, maar gebruikers vinden het vaak ‘eng’ om informatie over ‘Diagnose en gebruik’ te versturen naar de servers van Apple of Google en selecteren ‘nee’. Daarnaast is de instelling ook nog ver weggestopt (iOS: Instellingen -> Algemeen -> Info -> Diagnose en gebruik -> Stuur automatisch’. Het aantal crash-reports wat ik zelf via ‘iTunes connect’ ontvang is (hierdoor) dus zeer beperkt.

Een alternatief is Google Analytics (Gedrag -> Crashes en uitzonderingen), maar Google Analytics is niet erg behulpzaam. Er staan crashes, maar ook time-outs van een netwerkverbinding. Het vertalen van de error code naar een regelnummer in je code is ook weinig succesvol.

Gelukkig zijn er goede alternatieven, denk hierbij aan Crashlytics of Crittercism. Met deze tools kan je makkelijk (realtime) zien hoe vaak je app crasht en waardoor. Je krijgt notificaties van nieuwe crashes het aantal gebruikers wat er last van heeft, etc. Tevens kan je een issue van een crash oplossen en het aantal crashes naar beneden brengen.

Het streven is natuurlijk 0 crashes! Maar dit vergt veel tijd & test-devices en die heeft niet elke developer tot zijn beschikking. In een simulator ontdek je niet altijd alle fouten die in een app zijn ontstaan, daarnaast zijn er veel factoren die meespelen, hieronder een aantal mogelijke oorzaken:

  • resources
  • incorrect geheugen management
  • internet toegang
  • bugs in productie (na toevoeging nieuwe functionaliteit)
  • back-end
  • database problemen

Het devies is dus: testen, testen en nog eens testen.

Sonos
Het is dan ook interessant om te zien dat Sonos haar gebruikers heeft opgeroepen om de app massaal te gaan testen. Sonos heeft inmiddels meerdere beta-versies aan haar testers beschikbaar gesteld. Het grote voordeel is dat je op deze manier een grote groep testers van je app hebt die elk op een andere manier met je app omgaat. Hiermee ondervang je mogelijke problemen die naar voren komen, nog voordat de app aan het grote publiek wordt vrijgegeven. Daarnaast kan je bijvoorbeeld ook usability tests uitvoeren.

Nu hoeft het natuurlijk niet op zo’n grote schaal als Sonos het nu doet, maar de app (uiteraard elke versie, ook al is het een bugfix) goed laten testen is altijd verstandig!


Android vs iOS
Ik had nog even beloofd om te terug te komen op de resultaten uit het rapport. Laat ik beginnen met Android vs iOS. Uit de resultaten blijkt dat Android Apps op het KitKat OS gemiddeld 0,7% van de tijd crashen, terwijl dit bij iOS 7.1 1,6% is. iOS Apps crashen dus ruim 2x vaker dan op het laatste OS voor Android. Dit terwijl de diversiteit van Android devices vele malen groter is dan van iOS devices. En dan ook nog te bedenken dat er Android devices bestaan met specificaties die (hoe zeg je dat netjes) ‘nogal verouderd’ zijn. Hoe komt dit grote verschil tot stand? Zijn Android Apps beter ontwikkeld of is er een andere reden? (*)

Overigens crashen de nieuwste besturingssystemen minder vaak dan oudere én crashen smartphones minder dan tablets. Opvallend is ook dat de iPhone 5s vaker crasht dan de iPhone 5, maar dit is wellicht te wijten aan de 64 bits processor? Niet dat ik het goed praat, maar dit kan een oorzaak zijn.


Crashes per categorie
Games crashen vaker dan e-commerce apps, dit heeft vooral te maken dat een game over het algemeen meer vraagt van het apparaat en vaak complexer zijn.

Crittercism report - crashes

Tot slot
Het lukt waarschijnlijk niet om op 0 crashes uit te komen, wellicht komt dit door het besturingssysteem of een library waar je gebruik van maakt, maar bijvoorbeeld een tool als Crashlytics kan je wel helpen om goed inzicht te krijgen in de crashes van je App. Op de site Ray Wenderlich is een uitgebreide tutorial te vinden hoe je jouw favoriete tool implementeert.

* Crittercism is gefinancierd door Google Ventures. Dit zegt niets, maar roept wel enige twijfel op.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *