Perché un’app crasha: i 7 motivi più frequenti per cui un’app si blocca improvvisamente

Il vostro browser preferito continua a bloccarsi all'improvviso? Non è facile stabilire perché

Perché un’app crasha? Perché un’app si blocca frequentemente? Sono domande alle quali gli utenti Android spesso non riescono a trovare una risposta – ma non per via di limitate capacità cognitive, quanto piuttosto perchè i motivi che provocano il crash di un’app Android sono tanto vari quanto indipendenti (per la maggior parte) dalla volontà dell’utente.

Mancato supporto, evoluzione del sistema operativo e test poco frequenti ma anche RAM insufficiente e tante altre spiegazioni che oggi vi mostreremo per tentare di mostrarvi, una volta per tutte, perché un’app crasha. Siete pronti?

#1 – Problemi di memoria

Un’app che soffre di problemi di memoria non è un’applicazione che dimentica di attivarsi o di avviare una funzione, ma al contrario è un software che arriva ad occupare troppi processi contemporaneamente, sino a raggiungere lo zenit e di conseguenza il punto di rottura che porta al crash dell’app.

“Molti sviluppatori realizzano la propria app come se sia l’unica installata sullo smartphone, mentre l’attitudine corretta prevede la comprensione del ruolo dell’app in un più vasto ecosistema.”

Si tratta di una problematica comune specialmente nei giochi mobili che impiegano texture grafiche in alta definizione, appoggiandosi voracemente alle risorse dello smartphone in termini quasi egoistici. Come riporta Sachin Agarwal, VP Marketing presso OpsClarity, a Tech Beacon, “molti sviluppatori realizzano la propria app come se fosse l’unica” installata sullo smartphone, mentre l’attitudine corretta prevede la comprensione del ruolo dell’app in un più vasto ecosistema.

Per spiegare perché un’app crasha però non è sufficiente attribuire l’intera quota delle responsabilità allo sviluppatore, ma viene coinvolto anche l’utente che frequentemente si aspetta che un device dotato di un’insufficiente quantità di memoria RAM (1GB, o inferiore) sostenga l’impatto di applicazioni sin troppo pesanti.

#2 – Testing affrettato

Il lavoro dello sviluppatore di applicazioni non è conveniente quanto potrebbe apparire a prima vista: oltre alle strumentazioni tecnologiche da acquistare, software da reperire e conoscenze da acquisire, vanno conteggiate anche le spese da sostenere per comprare nuovi smartphone su cui testare la propria app.

Intetrix mette a disposizione i propri tool per prevenire i crash delle app

In realtà, sia Android Studio – la suite ufficiale di sviluppo di app Android – sia programmi di terze parti offrono la possibilità di testare su macchine virtuali le proprie app per sperimentare tutte le variabili che potrebbero spiegare perché un’app crasha, ma si tratta di un processo lento e laborioso.

Al contrario di iOS, dove sia il settore software che hardware sono strettamente limitati e controllati e dunque è possibile circoscrivere più facilmente i pericoli legati alla stabilità, Android è decisamente più caotico. Con centinaia di modelli, decine di produttori ed altrettante interfacce più o meno personalizzate, solo un testing accurato può portare all’eliminazione della maggior parte delle problematiche – e spesso ci si può avvalere di versioni Beta e relative community dell’app adatte all’uopo.

#3 – Aggiornamenti mancati

Uno sviluppatore di qualità si distingue immediatamente da un developer poco affidabile: il primo provvede ad aggiornare immediatamente la propria app al momento del rilascio di un update del sistema operativo, mentre il secondo ignora perfino i feedback collaborativi dei beta-tester.

Un’aggiornamento può tanto eliminare un bug quanto introdurne di nuovi

Si tratta dell’ennesima spiegazione al quesito iniziale (“Perché un’app crasha?”) che non dipende dall’utente, ma in massima parte alla software house. Quando infatti una nuova versione del sistema operativo viene rilasciata, è necessario effettuare della manutenzione straordinaria al codice della propria app per evitare che i pochi fortunati che riescano ad accedere all’update non vengano impossibilitati dall’utilizzo, spostandosi magari sulla concorrenza.

Per quale motivo? Le ragioni sono evidenti: una nuova edizione di un SO comporta nuove API, nuove funzionalità e di frequente anche sostanziali modifiche ai processi di gestione delle risorse – oltre che l’eliminazione sporadica di qualche vecchia feature. Stando così le cose, un’app che non si aggiorna si espone a malfunzionamenti e crash involontari: è il caso di Krypton Anonymous Browser, consigliato da noi come app alternativa a Chrome ma sfortunatamente privo di update dal 2015, e dunque presenta diversi problemi all’uso su versioni superiori ad Android Lollipop.

#4 – Esagerazioni di codice

Un’applicazione, perché possa essere ben gestita dal sistema, occorre che sia rapida, leggera e capace di eseguire le proprie task senza assorbire troppi processi contemporaneamente.

Parafrasando una famosa citazione, “il migliore codice è quello che non scrivi”: uno sviluppatore che infatti appesantisca la propria creatura con righe non necessarie che ne addensano la struttura sarà molto più facilmente esposto al problema dei blocchi continui. Il confine tra “codice necessario” ed “esercizio di stile” è inversamente proporzionale al tasso di crash dell’app: più il primo diminuisce, più il secondo aumenta.

#5 – Scuola per corrispondenza

Immediatamente dopo l’app che crasha perché appesantita da un codice troppo denso troviamo l’applicazione che si chiude automaticamente poiché, più semplicemente, mal programmata.

Esistono decine di tool che consentono di tenere traccia dei crash della propria app, ma occorre saperli utilizzare

Anche in questo caso, la responsabilità è dello sviluppatore: molti sperano infatti che, affidandosi a SDK differenti e pacchetti di API preconfezionati, questi si mescolino sapientemente senza alcuna necessità di modifica o rifinitura. Sfortunatamente, come già citato in questa classifica di spiegazioni del perché un’app crasha, gli aggiornamenti del sistema operativo e la varietà di dispositivi e processori in commercio riportano questa tattica alla sua dimensione originale: una scommessa rischiosa, una roulette russa che spesso penalizza il developer tanto quanto l’utente.

#6 – Mancata connessione

Android è una jungla di elementi eterogenei fusi tra loro che, miracolosamente, funziona: anche la connettività è uno degli aspetti che tende ad influire sulla stabilità di un’applicazione, e come il resto del SO è a sua volta composta da vari componenti.

La connettività è responsabilità dell’utente, ma la capacità di gestirla è compito dello sviluppatore

WiFi, 3G, 2G, 4G LTE: tutti standard di connessione che un’app che necessita della connettività deve saper gestire alla perfezione, pena il crollo della reputazione sia dello sviluppatore che del brand ad esso legato. Legando il proprio funzionamento alla rete dati l’app si rende dipendente dalla sua stabilità, e la perdita improvvisa del segnale (e dunque l’interruzione improvvisa del download dei pacchetti) può indurla a crashare.

Lo sviluppatore accorto saprà inserire un messaggio di allerta che avvisi l’utente di quanto accaduto in situazioni simili, ma viceversa l’utilizzatore più acuto saprà accorgersi da sé che, senza connessione Internet, un browser o un gioco online non può funzionare correttamente.

#7 – Problemi della piattaforma

Se non c’entrano gli sviluppatori né gli utenti, allora perché un’app crasha improvvisamente?

La spiegazione non può essere che una sola: il sistema stesso presenta dei bug. E non si tratta di un’ipotesi fantascientifica, ma di una realtà più volte presentatasi: da Android WebView – il tristemente noto tool per la visualizzazione di pagine web all’interno delle app – sino a Firebase (la suite di gestione delle applicazioni Android), in più di un caso Google ha involontariamente danneggiato la propria stessa base di sviluppatori.

In questo caso, non è possibile fare altro se non attendere che Mountain View provveda da sé a risolvere l’errore introdotto.

Vorresti scrivere per AppElmo? Mettiti in gioco: stiamo cercando collaboratori! Scrivi a myjob@appelmo.com, e dai un’occhiata QUI per le modalità di contatto. Non essere timido!

Se non volete perdervi nè le prossime puntate di Il Mercoledì di Kickstarter nè gli altri articoli di AppElmo (e sappiamo che non volete), allora potete iscrivervi alla nostra newsletter inserendo il vostro indirizzo email nel form qui in basso (tranquilli, vi assicuriamo che non vi invieremo spazzatura o spam; in caso contrario, vi saremmo immensamente grati se ci segnalaste il problema).

Oppure potete seguirci sulla nostra pagina Facebook, sul nostro account Twitter, sulla nostra pagina Google Plus, sulla nostra rivista Flipboard e sul nostro canale Telegram oppure, in alternativa, potete sempre scaricare la nostra app da Google Play, cliccando QUI o sull’immagine nella sidebar! Grazie mille!

App crash
Commenti (0)
Aggiungi commento