The application development for mobile devices is a very actual and discussed topic. There are three main approaches, and each of them has its advantages and disadvantages. These approaches are the native app development, the hybrid app development, and the web app. The native app is more performing but available only for one operating system at time. The hybrid app is not as performing as the native app but it can be allocated for all the operating system. The web app can only be found online. In this work of thesis we take into account especially the native and hybrid development. These two ways of developing for a mobile device are the only ways for packaging and deploying an app on a online store. There is not a better way of developing an app, and the developers have different opinions about the topic. Usually the choice of the approach is given by several factors. The most important are economical and human resources. The purpose of this work is trying to explain our idea about this matter, decide which approach we would generally choose, by developing an app with both approaches. We developed our native app for iOS and consequently we tested our hybrid app on an iPhone for comparing the user interface and the performance. We used the tool Xcode. The native app has been developed in the programming language Swift. The hybrid app has been developed using PhoneGap that is exploiting HTML, CSS and JavaScript technologies. The app we developed is facing a very modern issue: the repartition of common expenses in a group of work. The user of the app is allowed to add friends to a group of work, exploiting the Facebook APIs. The friends who are part of the group are allowed to add some financial movements they do. Each financial movement can exploit the device’s native APIs of the camera and the APIs of Foursquare for checking-in to a place. During the whole process, the app is calculating step-by-step if a person present in the group must give or receive money. During the development we faced different issues for the two approaches. The main problem of the native approach is that the programming language (Swift) is new and not known. But, on the other side, it’s very intuitive. Besides, with Swift there are not problems related to the native APIs compatibility. The main problems of the hybrid approach are the complexity, even for easy operations, and the compatibility with the APIs in general. Finally, we give our evaluation on both approaches, and we carefully explain which approach is, in general, better for us.

Lo sviluppo di applicazioni per dispositivi mobili è un argomento molto attuale. Si conoscono, ad oggi, tre diversi approcci per avvicinarsi a questo tema e ognuno di questi presenta vantaggi e svantaggi. Questi sono lo sviluppo di applicazioni nativa, ibrida e web app. L’applicazione nativa risulta essere più efficace ma è disponibile solo per un sistema operativo alla volta. l’applicazione ibrida non è efficiente come quella nativa ma può essere dedicata a tutti i sistemi operativi. La web app si trova solo online. In questa tesi prendiamo in considerazione soprattutto lo sviluppo nativo e quello ibrido. Questi due metodi di sviluppo per dispositivo mobile sono gli unici due modi per impacchettare e caricare un’applicazione su un negozio online. Non c’è modo migliore per sviluppare un’applicazione e gli sviluppatori hanno pareri contrastanti. Di solito si tengono in considerazione vari aspetti per decidere quale sistema utilizzare. Di questi, i più importanti sono risorse umane ed economiche. L’obiettivo di questo lavoro di tesi è illustrare il nostro punto di vista sull’argomento, valutare quale approccio riteniamo sia il più corretto, sviluppando un’applicazione per testare ognuno di questi approcci. Abbiamo sviluppato l’applicazione nativa per iOS e di conseguenza abbiamo testato l’applicazione ibrida su iPhone per comparare l’interfaccia dell’utente e le prestazioni. Abbiamo usato lo strumento Xcode. L’applicazione nativa è stata sviluppata usando il linguaggio di programmazione Swift. L’applicazione ibrida è, invece, stata sviluppata utilizzando PhoneGap che sfrutta, a sua volta, tecnologie HTML, CSS e JavaScript. L’applicazione che abbiamo sviluppato si trova a dover fronteggiare una questione alquanto attuale: la ripartizioni di spese comuni in un gruppo di lavoro. All’utente dell’applicazione è permesso aggiungere amici a un gruppo di lavoro, utilizzando le API di Facebook. Agli amici facenti parte di tale gruppo è concesso aggiungere i propri movimenti finanziari e ognuno di questi può sfruttare le API native della fotocamera e quelle di Foursquare del dispositivo per fare il check-in in un posto. Per tutta la durata di questo processo, l’applicazione calcola passo a passo se un membro del gruppo debba dare o ricevere denaro. Durante lo sviluppo abbiamo riscontrato varie difficoltà per ogni approccio. Quella predominante nell’approccio nativo è che il linguaggio di programmazione (Swift) è nuovo e poco conosciuto ma molto intuitivo e, inoltre, non presenta alcun problema di compatibilità con le API native. Le difficoltà maggiore dell’approccio ibrido sono, in generale, la complessità nello svolgere operazioni semplici e l’incompatibilità con le API. In conclusione diamo la nostra valutazione a entrambi gli approcci e spieghiamo dettagliatamente quale di questi riteniamo essere il più valido.

Experience and comparison between native and hybrid development approaches for mobile devices

COLOMBO, GIONA
2013/2014

Abstract

The application development for mobile devices is a very actual and discussed topic. There are three main approaches, and each of them has its advantages and disadvantages. These approaches are the native app development, the hybrid app development, and the web app. The native app is more performing but available only for one operating system at time. The hybrid app is not as performing as the native app but it can be allocated for all the operating system. The web app can only be found online. In this work of thesis we take into account especially the native and hybrid development. These two ways of developing for a mobile device are the only ways for packaging and deploying an app on a online store. There is not a better way of developing an app, and the developers have different opinions about the topic. Usually the choice of the approach is given by several factors. The most important are economical and human resources. The purpose of this work is trying to explain our idea about this matter, decide which approach we would generally choose, by developing an app with both approaches. We developed our native app for iOS and consequently we tested our hybrid app on an iPhone for comparing the user interface and the performance. We used the tool Xcode. The native app has been developed in the programming language Swift. The hybrid app has been developed using PhoneGap that is exploiting HTML, CSS and JavaScript technologies. The app we developed is facing a very modern issue: the repartition of common expenses in a group of work. The user of the app is allowed to add friends to a group of work, exploiting the Facebook APIs. The friends who are part of the group are allowed to add some financial movements they do. Each financial movement can exploit the device’s native APIs of the camera and the APIs of Foursquare for checking-in to a place. During the whole process, the app is calculating step-by-step if a person present in the group must give or receive money. During the development we faced different issues for the two approaches. The main problem of the native approach is that the programming language (Swift) is new and not known. But, on the other side, it’s very intuitive. Besides, with Swift there are not problems related to the native APIs compatibility. The main problems of the hybrid approach are the complexity, even for easy operations, and the compatibility with the APIs in general. Finally, we give our evaluation on both approaches, and we carefully explain which approach is, in general, better for us.
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2015
2013/2014
Lo sviluppo di applicazioni per dispositivi mobili è un argomento molto attuale. Si conoscono, ad oggi, tre diversi approcci per avvicinarsi a questo tema e ognuno di questi presenta vantaggi e svantaggi. Questi sono lo sviluppo di applicazioni nativa, ibrida e web app. L’applicazione nativa risulta essere più efficace ma è disponibile solo per un sistema operativo alla volta. l’applicazione ibrida non è efficiente come quella nativa ma può essere dedicata a tutti i sistemi operativi. La web app si trova solo online. In questa tesi prendiamo in considerazione soprattutto lo sviluppo nativo e quello ibrido. Questi due metodi di sviluppo per dispositivo mobile sono gli unici due modi per impacchettare e caricare un’applicazione su un negozio online. Non c’è modo migliore per sviluppare un’applicazione e gli sviluppatori hanno pareri contrastanti. Di solito si tengono in considerazione vari aspetti per decidere quale sistema utilizzare. Di questi, i più importanti sono risorse umane ed economiche. L’obiettivo di questo lavoro di tesi è illustrare il nostro punto di vista sull’argomento, valutare quale approccio riteniamo sia il più corretto, sviluppando un’applicazione per testare ognuno di questi approcci. Abbiamo sviluppato l’applicazione nativa per iOS e di conseguenza abbiamo testato l’applicazione ibrida su iPhone per comparare l’interfaccia dell’utente e le prestazioni. Abbiamo usato lo strumento Xcode. L’applicazione nativa è stata sviluppata usando il linguaggio di programmazione Swift. L’applicazione ibrida è, invece, stata sviluppata utilizzando PhoneGap che sfrutta, a sua volta, tecnologie HTML, CSS e JavaScript. L’applicazione che abbiamo sviluppato si trova a dover fronteggiare una questione alquanto attuale: la ripartizioni di spese comuni in un gruppo di lavoro. All’utente dell’applicazione è permesso aggiungere amici a un gruppo di lavoro, utilizzando le API di Facebook. Agli amici facenti parte di tale gruppo è concesso aggiungere i propri movimenti finanziari e ognuno di questi può sfruttare le API native della fotocamera e quelle di Foursquare del dispositivo per fare il check-in in un posto. Per tutta la durata di questo processo, l’applicazione calcola passo a passo se un membro del gruppo debba dare o ricevere denaro. Durante lo sviluppo abbiamo riscontrato varie difficoltà per ogni approccio. Quella predominante nell’approccio nativo è che il linguaggio di programmazione (Swift) è nuovo e poco conosciuto ma molto intuitivo e, inoltre, non presenta alcun problema di compatibilità con le API native. Le difficoltà maggiore dell’approccio ibrido sono, in generale, la complessità nello svolgere operazioni semplici e l’incompatibilità con le API. In conclusione diamo la nostra valutazione a entrambi gli approcci e spieghiamo dettagliatamente quale di questi riteniamo essere il più valido.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2015_04_Colombo.pdf

accessibile in internet per tutti

Descrizione: Thesis text
Dimensione 2.65 MB
Formato Adobe PDF
2.65 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/103425