The sustained growth of the Flutter framework since its first stable release has drawn the attention of companies from all sectors and sizes, enabling them to build cross-platform applications from a single codebase. This thesis aims at providing tangible insights derived from the development of large-scale Flutter applications. In particular, its purpose is to analyze essential architectural choices, patterns, and opinionated best practices affecting its maintainability, testability, and scalability. This thesis work introduces a research work about the relevant software techniques, concepts, background, and decisions applied within the scope of the empirical part of the thesis. Said research includes, but is not limited to, knowledge of Cross-platform App Development, Application State Management, Software Architectural Patterns, Software Modularization, and Software Testing. Furthermore, this thesis work leverages a large-scale Flutter project developed in a distributed software environment for a world-leading company in the domotics and home automation industry. Thus, readers will find detailed descriptions of the choices taken throughout its development, discussions of production-ready code samples, contributions to the existing Flutter literature from an empirical perspective, and carefully argued solutions to non-trivial problems. Ultimately, this document presents a thorough study and conclusions focused on a specific project. However, its contents are sufficiently general and valuable for other developers to incorporate its applicability into their own by extrapolating the gathered information and adjusting it to their particular requirements.

La crescita sostenuta del framework Flutter dalla sua prima versione stabile ha atti- rato l’attenzione di aziende di tutti i settori e dimensioni, consentendo loro di creare applicazioni multipiattaforma da un’unica base di codice. Questa tesi mira a fornire approfondimenti tangibili derivati dallo sviluppo di applicazioni Flutter su larga scala. In particolare, il suo scopo è analizzare le scelte architettoniche essenziali, i modelli e le migliori pratiche supponenti che ne influenzano la manutenibilità, la testabilità e la scalabilità. Questo lavoro di tesi introduce un lavoro di ricerca sulle tecniche software rilevanti, i concetti, il background e le decisioni applicate nell’ambito della parte empirica della tesi. Tale ricerca include, a titolo esemplificativo, la conoscenza dello sviluppo di app multipiattaforma, della gestione dello stato delle applicazioni, dei modelli architettonici del software, della modularizzazione del software e del test del software. Inoltre, questo lavoro di tesi sfrutta un progetto Flutter su larga scala sviluppato in un ambiente software distribuito per un’azienda leader a livello mondiale nel settore della domotica. Pertanto, i lettori troveranno descrizioni dettagliate delle scelte effettuate durante il suo sviluppo, discussioni su campioni di codice pronti per la produzione, contributi alla letteratura Flutter esistente da una prospettiva empirica e soluzioni attentamente argomentate a problemi non banali. In definitiva, questo documento presenta uno studio approfondito e conclusioni incentrate su un progetto specifico. Tuttavia, i suoi contenuti sono sufficientemente generali e preziosi da consentire ad altri sviluppatori di incorporare la sua applicabilità nella loro estrapolando le informazioni raccolte e adattandole ai loro requisiti particolari.

Development of a large-scale flutter app

FERRERO LIGORRED, ALEJANDRO
2021/2022

Abstract

The sustained growth of the Flutter framework since its first stable release has drawn the attention of companies from all sectors and sizes, enabling them to build cross-platform applications from a single codebase. This thesis aims at providing tangible insights derived from the development of large-scale Flutter applications. In particular, its purpose is to analyze essential architectural choices, patterns, and opinionated best practices affecting its maintainability, testability, and scalability. This thesis work introduces a research work about the relevant software techniques, concepts, background, and decisions applied within the scope of the empirical part of the thesis. Said research includes, but is not limited to, knowledge of Cross-platform App Development, Application State Management, Software Architectural Patterns, Software Modularization, and Software Testing. Furthermore, this thesis work leverages a large-scale Flutter project developed in a distributed software environment for a world-leading company in the domotics and home automation industry. Thus, readers will find detailed descriptions of the choices taken throughout its development, discussions of production-ready code samples, contributions to the existing Flutter literature from an empirical perspective, and carefully argued solutions to non-trivial problems. Ultimately, this document presents a thorough study and conclusions focused on a specific project. However, its contents are sufficiently general and valuable for other developers to incorporate its applicability into their own by extrapolating the gathered information and adjusting it to their particular requirements.
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2022
2021/2022
La crescita sostenuta del framework Flutter dalla sua prima versione stabile ha atti- rato l’attenzione di aziende di tutti i settori e dimensioni, consentendo loro di creare applicazioni multipiattaforma da un’unica base di codice. Questa tesi mira a fornire approfondimenti tangibili derivati dallo sviluppo di applicazioni Flutter su larga scala. In particolare, il suo scopo è analizzare le scelte architettoniche essenziali, i modelli e le migliori pratiche supponenti che ne influenzano la manutenibilità, la testabilità e la scalabilità. Questo lavoro di tesi introduce un lavoro di ricerca sulle tecniche software rilevanti, i concetti, il background e le decisioni applicate nell’ambito della parte empirica della tesi. Tale ricerca include, a titolo esemplificativo, la conoscenza dello sviluppo di app multipiattaforma, della gestione dello stato delle applicazioni, dei modelli architettonici del software, della modularizzazione del software e del test del software. Inoltre, questo lavoro di tesi sfrutta un progetto Flutter su larga scala sviluppato in un ambiente software distribuito per un’azienda leader a livello mondiale nel settore della domotica. Pertanto, i lettori troveranno descrizioni dettagliate delle scelte effettuate durante il suo sviluppo, discussioni su campioni di codice pronti per la produzione, contributi alla letteratura Flutter esistente da una prospettiva empirica e soluzioni attentamente argomentate a problemi non banali. In definitiva, questo documento presenta uno studio approfondito e conclusioni incentrate su un progetto specifico. Tuttavia, i suoi contenuti sono sufficientemente generali e preziosi da consentire ad altri sviluppatori di incorporare la sua applicabilità nella loro estrapolando le informazioni raccolte e adattandole ai loro requisiti particolari.
File allegati
File Dimensione Formato  
Development of a Large-Scale Flutter App.pdf

accessibile in internet per tutti

Descrizione: Development of a Large-Scale Flutter App
Dimensione 5.03 MB
Formato Adobe PDF
5.03 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/186288