The growth of mobile devices, both in terms of units sold and performance offered, pushed the developers to raise the bar of their applications, which becomes more and more complex. Software engineers have developed a collection of methodologies and tools to analyze the software, assess its quality, and identify potential issues. Several studies proved the validity of these techniques, even when applied to the mobile world. However, especially for iOS, there is no tool capable of extracting all the necessary metrics to evaluate an application's quality. I worked with one of the best mobile software companies in Europe and developed SwiftStats, a program that can collect all the data of interest from an iOS app. Then, I analyzed ten applications provided by the company, evaluated the data collected and formulated some thoughts on the quality of the apps and the architectural solutions adopted. The results proved the quality of the applications and the approaches used. However, the growth of the main app showed less encouraging signals. Both the complexity of this application and the drawbacks of the frameworks used to implement it are increasing. I discussed the results with the company and decided that alternative solutions must be considered before it is too late.

La continua crescita dei dispositivi mobile, sia in termini di unità vendute che di capacità e performance offerte, ha spinto gli sviluppatori ad alzare il livello delle loro applicazioni, che diventano sempre più complesse e ricche di funzionalità. L'ingegneria del software, nel corso degli anni, ha sviluppato una serie di metodologie e strumenti mirati ad analizzare il software, con l'obbiettivo di valutarne la qualità e identificare potenziali segnali di allarme. Diversi studi hanno dimostrato la validità di queste tecniche anche nel mondo mobile, tuttavia, in particolare per iOS, non esiste uno strumento in grado di estrarre tutte le metriche necessarie a valutare in modo completo la qualità di un'applicazione. Collaborando con un'azienda leader del settore in Europa, ho sviluppato SwiftStats, un programma in grado di ottenere tutte le informazioni di interesse, e analizzato le sue 10 applicazioni principali. Ho quindi valutato i dati raccolti e formulato delle considerazioni sulla qualità delle app e delle soluzioni architetturali adottate dall'azienda. I risultati hanno evidenziato come il livello delle applicazioni e degli approcci utilizzati sia di assoluta qualità, tuttavia l'evoluzione dei dati dell'app principale ha mostrato dei segnali meno incoraggianti. La complessità di questa applicazione sta aumentando sempre più rapidamente e con essa i limiti e i compromessi dei framework utilizzati per implementarla. Discutendone con l'azienda, sono giunto alla conclusione che è necessario valutare soluzioni alternative prima che sia troppo tardi.

Analisi e valutazione di applicazioni iOS native

PRETI, MATTEO
2020/2021

Abstract

The growth of mobile devices, both in terms of units sold and performance offered, pushed the developers to raise the bar of their applications, which becomes more and more complex. Software engineers have developed a collection of methodologies and tools to analyze the software, assess its quality, and identify potential issues. Several studies proved the validity of these techniques, even when applied to the mobile world. However, especially for iOS, there is no tool capable of extracting all the necessary metrics to evaluate an application's quality. I worked with one of the best mobile software companies in Europe and developed SwiftStats, a program that can collect all the data of interest from an iOS app. Then, I analyzed ten applications provided by the company, evaluated the data collected and formulated some thoughts on the quality of the apps and the architectural solutions adopted. The results proved the quality of the applications and the approaches used. However, the growth of the main app showed less encouraging signals. Both the complexity of this application and the drawbacks of the frameworks used to implement it are increasing. I discussed the results with the company and decided that alternative solutions must be considered before it is too late.
ING - Scuola di Ingegneria Industriale e dell'Informazione
9-giu-2021
2020/2021
La continua crescita dei dispositivi mobile, sia in termini di unità vendute che di capacità e performance offerte, ha spinto gli sviluppatori ad alzare il livello delle loro applicazioni, che diventano sempre più complesse e ricche di funzionalità. L'ingegneria del software, nel corso degli anni, ha sviluppato una serie di metodologie e strumenti mirati ad analizzare il software, con l'obbiettivo di valutarne la qualità e identificare potenziali segnali di allarme. Diversi studi hanno dimostrato la validità di queste tecniche anche nel mondo mobile, tuttavia, in particolare per iOS, non esiste uno strumento in grado di estrarre tutte le metriche necessarie a valutare in modo completo la qualità di un'applicazione. Collaborando con un'azienda leader del settore in Europa, ho sviluppato SwiftStats, un programma in grado di ottenere tutte le informazioni di interesse, e analizzato le sue 10 applicazioni principali. Ho quindi valutato i dati raccolti e formulato delle considerazioni sulla qualità delle app e delle soluzioni architetturali adottate dall'azienda. I risultati hanno evidenziato come il livello delle applicazioni e degli approcci utilizzati sia di assoluta qualità, tuttavia l'evoluzione dei dati dell'app principale ha mostrato dei segnali meno incoraggianti. La complessità di questa applicazione sta aumentando sempre più rapidamente e con essa i limiti e i compromessi dei framework utilizzati per implementarla. Discutendone con l'azienda, sono giunto alla conclusione che è necessario valutare soluzioni alternative prima che sia troppo tardi.
File allegati
File Dimensione Formato  
2021_06_Preti.pdf

non accessibile

Dimensione 1.62 MB
Formato Adobe PDF
1.62 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/176156