5 Gründe, warum Ihre App abstürzt und wie man sie repariert

Bevor wir anfangen, wenn du nicht aus der Tech-Welt kommst und eine App hast, die immer wieder abstürzt, solltest du vielleicht diesen Artikel lesen, wie man ihn repariert.

Im Jahr 2016, am Vorabend des Verkaufswahnsinns am Schwarzen Freitag in den USA, veröffentlichte ein Forschungsunternehmen namens Apteligent einen Bericht, der schätzt, wie viel Geld Firmen verlieren könnten, wenn ihre Apps am großen Tag zusammenbrechen würden. Der Report tall up die Geldsumme, die von den Einzelhandelsapplikationskunden am schwarzen Freitag des Vorjahres ausgegeben wurde und arbeitete aus, was passieren würde, wenn jeder Kunde mindestens einen Absturz während der Stoßzeiten erlebte.

Erstaunlicherweise fanden die Autoren heraus, dass fast 300 Millionen Dollar auf dem Spiel standen. Und das ist nur ein Land, an einem Tag des Jahres.

Diese überraschende Zahl zeigt uns, wie wichtig es ist, Apps so crashsicher wie möglich zu machen. Ihre App ist vielleicht nicht so bekannt wie Instagram, das Milliarden von Selfie-Enthusiasten in Rage brachte, als sie kürzlich abgestürzt ist. Aber es ist immer noch wichtig für Ihr Unternehmen. Wenn Ihre App ausfällt, riskieren Sie, ein kleines Vermögen an Transaktionen zu verlieren, ganz zu schweigen davon, dass Sie Ihre Benutzerbasis torpedieren. Einige Schätzungen deuten darauf hin, dass über 50% der Benutzer eine App deinstallieren können, wenn sie abstürzt, einfriert oder sich anormal verhält.

App Stürzt ab

Aber wie halten wir unsere Apps am Laufen und verhindern diese extrem schädlichen Ausfälle? Nun, bei Bugfender helfen wir Entwicklern auf der ganzen Welt, ihre Anwendungen so zuverlässig wie möglich zu machen. Deshalb haben wir eine Reihe von häufigen Gründen zusammengestellt, warum Apps abstürzen – mit Hacks, die Ihnen helfen, sie zu reparieren.

Schlechtes Speichermanagement

Einige Entwickler entwerfen und bauen ihre App, um sich wie Mariah Carey oder Cristiano Ronaldo zu verhalten. Ihre Apps verhalten sich wie kleine digitale Divas, die die ganze Aufmerksamkeit des Telefons auf sich ziehen – und seine Ressourcen erschöpfen.

Leider führt dies oft zu Abstürzen. Eine App wird nie alle Ressourcen eines Telefons für sich selbst haben, also wenn Entwickler Apps bauen, die einen großen Teil des Speichers eines Telefons verbrauchen, säen sie die Saat für zukünftige Probleme. Schlechtes Speichermanagement ist einer der häufigsten Gründe für App-Abstürze und auch Handy Video Abstürze auf mobilen Geräten, und das gilt insbesondere für Low-End-Handys und Tablets.

Wie man repariert

Das Wichtigste, woran Sie denken sollten, ist, dass Ihre App eine einzige Einheit in einem größeren Ökosystem ist, und Sie müssen über viele andere ressourcenhungrige Faktoren zusätzlich zu Ihrer eigenen wertvollen Kreation nachdenken. Bedenken Sie, dass viele Benutzer nicht die High-End-Telefone haben werden, die Entwickler besitzen, und Speicherzuordnungsprobleme sind häufig.

Interessanterweise bietet das Ökosystem von Android wirklich leistungsstarke Speicherverwaltungstools, was bedeutet, dass Entwickler die Freiheit haben, mit Speicher nach Belieben umzugehen (der Nachteil ist die Komplexität des Prozesses). Für iOS bieten die Programmiersprachen Swift und Objective-C sehr effiziente Werkzeuge zur Speicherverwaltung, weitgehend automatisch. Dennoch müssen iOS-Entwickler sicherstellen, dass sie verstehen, wie Speicherverwaltung funktioniert.

In Bezug auf spezifische Speicherprobleme können Apps oft in Schwierigkeiten geraten, wenn sie Dateien von

mehrere Megabyte, z.B. Bilder. Der Trick hier ist, nur die Teile der Datei zu laden, die zu jedem Zeitpunkt benötigt werden, anstatt sie in den Speicher zu laden. Am Beispiel von Bildern können Sie eine verkleinerte Version mit der genauen Größe erstellen, die sie auf dem Bildschirm haben wird.

Wenn Sie große Ansichtshierarchien verwalten, möchten Sie möglicherweise auch ausgeblendete oder nicht auf dem Bildschirm angezeigte Ansichten loswerden. Das prominenteste Beispiel sind Listen und Tabellen, mit denen Sie vorsichtig sein müssen, wenn Sie Views richtig recyceln wollen.

Denken Sie auch daran, dass, wenn Apps komplexe Berechnungen durchführen, Ihr Telefon in der Mitte des Prozesses Speicher freigeben muss. Bei Android-Geräten wird dies automatisch vom System verwaltet, aber unter iOS kann es notwendig sein, einen Auto-Release Pool zu erstellen.

Wenn Sie großartige Beispiele für kleine Apps sehen möchten, die über ihrem Gewicht liegen, schauen Sie sich Vanilla Music, einen einfachen Musikplayer und eine Wörterbuch-App namens Instadict an. Erstaunlicherweise wiegen beide weniger als 750KB. Einige der schwergewichtigen Apps wie Facebook, Pinterest und Instagram haben jetzt ihre eigenen „lite“-Versionen und es könnte sich lohnen, einen Blick auf diese Mini-Apps zu werfen, um einige Tipps zu erhalten, wie Sie Ihre eigene Kreation optimieren und das überschüssige Fett wegnehmen können.

Fehlerbehandlung

Egal, wie sehr Sie versuchen, Ihre App so widerstandsfähig wie möglich zu machen, es gibt einige Variablen und Parameter, die einfach außerhalb Ihrer Kontrolle liegen. Wenn z.B. das WLAN eines Benutzers während einer Dateiübertragung ausfällt oder er einfach einen falschen Wert in ein Feld eingibt, könnte es die App haywire senden.

Unerwartete Probleme wie diese können oft zu einem Absturz führen, was für den Anwender frustrierend ist. Es gibt jedoch Situationen, in denen eine App nicht abstürzt und einen Benutzer einfach hängen lässt, ohne zu wissen, was passiert. Diese Unsicherheit kann noch frustrierender sein als ein tatsächlicher Crash. Daher ist es wichtig, sicherzustellen, dass Sie solche Fehler berücksichtigt haben und die Handhabungsbedingungen einrichten.

Wie man repariert

Wenn Sie feststellen, dass Ihre App einen Fehler entwickelt hat, ist es empfehlenswert, alle Aktivitäten zu beenden und die Benutzer darüber zu informieren. Das mag kontraintuitiv klingen, aber durch die proaktive Verwaltung Ihrer Kommunikation mit den Benutzern und die frühzeitige Warnung vor Ausfällen werden Sie diese wahrscheinlich für einen viel längeren Zeitraum behalten.

Wenn Sie Ihre Fehlermeldungen erstellen, machen Sie sie informativ und nützlich. Vermeiden Sie Fachjargon und Entwicklersprache; erklären Sie einfach in Laiensprache, was passiert ist, damit jeder Benutzer es verstehen kann. Bieten Sie auch eine Lösung an, die es dem Benutzer ermöglicht, das Problem zu beheben. Eine gute Fehlermeldung konnte lesen: „Hoppla! Es gibt im Moment keine Internetverbindung, vielleicht suchen Sie nach einem guten Platz und versuchen Sie es noch einmal?“

Software-Lebenszyklus und Entwicklungsprozess

Das Konzept der iterativen App-Entwicklung – die Markteinführung einer frühen funktionierenden Version und die anschließende stückweise Verbesserung – bringt mehrere offensichtliche Vorteile. Sie können die Reaktion der Benutzer einschätzen, Probleme identifizieren, einen Marketing-Buzz erzeugen und sich einen Vorteil gegenüber potenziellen Wettbewerbern verschaffen, wenn Sie um die Einführung eines potenziellen Game-Changers kämpfen. Ressourcen können von der Dokumentation bis zum Design kanalisiert werden, und Änderungen am Projekt sind kostengünstiger als im traditionellen „Wasserfall“-Prozess von Build, Test und Release.

Aber auch die iterative App-Entwicklung stellt mehrere Herausforderungen dar. Die Komplexität eines schrittweisen Rollouts erfordert erstklassige Projektmanager, um den Überblick zu behalten. Jedes Mal, wenn Sie eine neue Version oder ein neues Feature veröffentlichen, müssen alle vorherigen Tests erneut durchgeführt werden. Die Notwendigkeit, Dienste und APIs von Drittanbietern zu integrieren, kann Ihrem Entwicklungsteam eine echte Last auferlegen, insbesondere wenn Ihr Unternehmen kleiner ist. Betriebssystemhersteller wie Samsung, Google und Apple veröffentlichen regelmäßig eigene Updates, die Sie wirklich vom Kurs abbringen können, wenn Sie noch an Ihrem eigenen Produkt basteln.

Einfach ausgedrückt, je früher Sie Ihre App auf den Markt bringen, desto wahrscheinlicher ist es, dass sie Fehler enthält. Leider ist es den Benutzern egal, ob es sich um einen Prototyp der ersten Stufe oder die endgültige Version handelt, wenn eine App immer wieder abstürzt. Sie werden es einfach vergessen.

Wie man repariert

Wenn Sie daran denken, den iterativen Weg einzuschlagen, müssen Sie sich darüber im Klaren sein, dass Sie über die Ressourcen verfügen und dass Ihr Projekt diese Strategie rechtfertigt. Bei Großprojekten kann iterativ vorgegangen werden, aber Sie werden feststellen, dass ein kleines Projekt teuflisch kompliziert wird, wenn es in noch kleinere Abschnitte zerlegt wird, so dass es besser für den Build-Test-Release-Touren geeignet sein kann.

Wenn Sie sich für eine iterative Entwicklung entscheiden, müssen Sie auf mögliche Probleme mit Betriebssystem und APIs von Drittanbietern vorbereitet sein. Wir meinen nicht, dass Sie diese Probleme im Voraus erkennen sollten – es ist für Entwickler fast unmöglich, das zu tun – aber Sie sollten über mögliche Probleme nachdenken und bereit sein, Ihre App zu aktualisieren, sobald eine neue Version einer OS- oder Drittanbieter-API veröffentlicht wird.

Schlechtes Netzwerkmanagement

Aufgrund der Art ihrer Tätigkeit haben die meisten Entwickler Zugang zu einer schnellen Internetverbindung. Aber das kann ein Problem im Planungsprozess sein; ein häufiger Fehler, den Entwickler machen, ist die Annahme, dass wir alle in einer 20mbs Utopie leben.

Tatsache ist, dass eine beträchtliche Anzahl Ihrer Benutzer eine viel langsamere Verbindung haben wird, und sie werden diese Verbindung für alle möglichen Dinge benötigen, von der Wiederholung von Erinnerungen über Donald Trump bis hin zur Frage, wann ihr Land bei der Weltmeisterschaft spielt. Wenn Sie dies vergessen, setzen Sie Ihre App einem Absturz aus, da eine hohe Abhängigkeit von Netzwerkressourcen in Kombination mit einem langsamen Internetzugang die Reaktionsfähigkeit einer App deutlich reduzieren kann. Dies wiederum führt zu schlechter Leistung, Instabilität und einigen unglücklichen Ausfallzeiten.

Wie man repariert

Wenn Sie Ihre App erstellen, versuchen Sie, die Netzwerkgeschwindigkeit zu reduzieren. Testen Sie das Produkt in langsamen Netzen und Mobilfunknetzen mit schlechter Abdeckung (wir können uns einige wenige vorstellen, wie es der Fall ist). Wenn Sie keine Lust haben, einen Berg zu besteigen oder Ihr Handy in Alufolie zu wickeln, finden Sie leicht Tools zur Simulation langsamer Netzwerkgeschwindigkeiten. Für iOS können Sie den Network Link Coordinator von Apples Entwicklerseite herunterladen. Für Android können Sie den Emulator vom Android SDK herunterladen. Beide Tools ermöglichen es Ihnen, Ihre eigene Internetgeschwindigkeit einzustellen.

Sobald Sie das Tempo gedrosselt haben, stellen Sie sicher, dass Ihre App für die Arbeit unter diesen Bedingungen optimiert ist. Und stellen Sie sicher, dass Sie aussagekräftige Benachrichtigungen für Benutzer anzeigen, wenn nicht genügend Geschwindigkeiten verfügbar sind.

Schlechte Tests

Es ist erstaunlich zu denken, dass das iPhone erst 11 Jahre alt ist. Seit dem bedeutsamen Tag am 29. Juni 2007, als Steve Jobs‘ berühmteste Kreation enthüllt wurde, hat sie fast 40 verschiedene iPhone- und iPad-Modelle hervorgebracht. Wenn Sie denken, dass das viel ist, schauen Sie sich die Anzahl der Android-Modelle an; bereits 2015 wurde geschätzt, dass es weltweit mehr als 24.000 Varianten gibt, und bei allen verschiedenen Herstellern ist es unmöglich, eine vollständige Übersicht zu behalten.

Da das Tempo der Rollouts ständig zunimmt, wird es für Entwickler immer schwieriger, ihre Anwendungen auf realen Geräten zu testen, insbesondere wenn sie ein kleines Budget haben. Es stehen verschiedene Simulatoren und Emulatoren zur Verfügung, die jedoch ihre eigenen Nachteile haben. Sie können die Wirkung von zu wenig oder zu heiß gewordenen Batterien, die Unterbrechung eingehender Anrufe oder die Interaktion mit der Kamera eines Gerätes nicht nachahmen. Die von einem Simulator erzeugten Daten können weitere Einschränkungen mit sich bringen, da sie im Gegensatz zu einem Emulator die Hardware einer Vorrichtung nicht replizieren. Es ist wichtig, eine App immer vollständig zu testen, und zwar auf mindestens einem Gerät.

Wie man repariert

Die Veröffentlichung von Apps auf dem Markt ohne adäquate Tests führt zu vielen Stabilitäts- und Performance-Problemen. Es gibt jedoch Maßnahmen, die darauf zugeschnitten werden können, Fehler effektiv zu bekämpfen, wenn sie unvermeidlich auftreten. Tools wie Bugfender helfen Entwicklern, ihre Anwendungen auf realen Geräten mit echten Benutzern zu testen, so dass sie Fehler leicht finden und Probleme so schnell wie möglich beheben können. Bugfender sammelt lokal Nutzungsprotokolle und sendet diese an unser Webportal, wenn eine Netzwerkverbindung verfügbar ist. Die Bugfender-Lösung ist mit einer Vielzahl neuer Funktionen ausgestattet, darunter ein Remote-Logger, ein Issue Tracker und eine Crash-Reporting-Funktionalität, was sie zu einer großartigen All-in-One-Lösung für das Debugging mobiler Anwendungen macht.

This entry was posted in Apps. Bookmark the permalink.

Comments are closed.