240 resultados para Android mobile application
Resumo:
Questo documento illustra la progettazione e lo sviluppo di un’applicazione Android in ambito aziendale. L’idea è stata concepita dall’azienda Vettore Rinascimento, la quale richiesta era d’implementare un’applicazione per la gestione di liste di prelievo in magazzini di strutture mediche. Lo scopo è di rendere il lavoro manuale più efficiente e affidabile aumentando così le prestazioni dei dipendenti. La tesi analizza le fasi tipiche di sviluppo di un software ovvero: l’analisi dei requisiti, la progettazione, la realizzazione e il collaudo. Durante ciascuna fase saranno analizzate anche le scelte progettuali e implementative. La discussione non si limiterà al solo sviluppo di un’applicazione mobile: siccome il prodotto sviluppato non sarà un software stand-alone, verrà anche spiegato il funzionamento del server preesistente e dello sviluppo di un’api per caricare e salvare i dati. Si presenterà inoltre il prodotto finale con tutte le sue features, alcune delle più interessanti sono la sua capacità di funzionare sia online che offline, di adattarsi a ogni tipo di magazzino, previa configurazione, e di poter scannerizzare i codici a barre degli articoli da prelevare con la fotocamera del dispositivo.
Resumo:
Le app mobile sono sempre più pervasive nella vita quotidiana delle persone: gli smartphone hanno rivoluzionato il modo di interagire degli utenti con le varie organizzazioni. Che sia per l'accesso al proprio conto corrente, per la visualizzazione delle notizie quotidiane o per il semplice svago, gli utenti usano sempre più il mondo mobile come canale privilegiato per la fruizione dei contenuti digitali. Il sempre maggior successo delle applicazioni mobile ha sempre più spostato l'attenzione dei malintenzionati sugli smartphone, che sono diventati così uno degli obiettivi più popolari per i cyberattacchi: ciò comporta nuove sfide per le organizzazioni al fine di garantire la sicurezza di dati e sistemi. Risulta fondamentale per un organizzazione in particolare mantenere un controllo sulle proprie applicazioni mobile: configurazioni errate, errori di programmazione, inclusione di librerie software vulnerabili o malevoli e la presenza di credenziali cablate nel codice o nelle configurazioni rappresentano un notevole rischio per la confidenzialità, l'integrità e disponibilità di dati e sistemi. Se risulta fondamentale nello sviluppo un approccio che utilizzi i principi della Security by Design, risulta ancora più importante un presidio costante sulle applicazioni e la costruzione di un ciclo di vita del software sicuro (SSDLC). A tal fine la proposta del progetto di tesi riguarda l'analisi delle principali minacce e vulnerabilità delle applicazioni mobile e lo sviluppo di uno strumento di analisi dei pacchetti mobile (su piattaforma Android o iOS) al fine di identificare possibili rischi prima della pubblicazione dei pacchetti sugli store ufficiali.
Resumo:
Distribuire un’applicazione che soddisfi i requisiti del cliente e che sia in grado di accogliere rapidamente eventuali modifiche è, al giorno d’oggi, d’obbligo per aziende che si occupano di applicazioni mobile che vogliano rimanere competitive sul mercato. Il principale fattore chiave in grado di mantenere un’azienda al passo con la continua evoluzione sia del mercato che delle tecnologie mobile è la continua innovazione e ottimizzazione dell’intero processo di sviluppo. La collaborazione e la comunicazione tra diversi team, l’utilizzo di cicli iterativi di sviluppo, i rilasci frequenti e l’automazione dei test sono alcune delle pratiche incentivate dalla cultura DevOps, adottabile con successo (si vedrà in questa tesi) anche per lo sviluppo di applicazioni mobile. Innovare e ottimizzare il processo di sviluppo non significa solo automatizzare l’esecuzione dei task. Un ruolo importante è giocato anche da aspetti legati all’applicazione: l’architettura, il paradigma di programmazione, e gli strumenti utilizzati. In particolare, al fine di applicare il principio “Don’t repeat yourself ” (DRY) e semplificare la manutenzione, diversi moderni framework per lo sviluppo di applicazioni mobile, detti multipiattaforma, propongono meccanismi che consentono di condividere codice tra piattaforme differenti. L’obiettivo di questa tesi è dunque quello di discutere (capitoli 1, 2 e 3) e mostrare, applicate ad un caso di studio industriale (capitoli 4, 5 e 6), l’uso di tecniche DevOps nell’ambito di applicazioni mobile, ed in particolare mostrando come queste siano applicabili in congiunzione ai framework di sviluppo multipiattaforma (in particolare, Kotlin Multiplatform).
Resumo:
La necessità di sincronizzare i propri dati si presenta in una moltitudine di situazioni, infatti il numero di dispositivi informatici a nostra disposizione è in continua crescita e, all' aumentare del loro numero, cresce l' esigenza di mantenere aggiornate le multiple copie dei dati in essi memorizzati. Vi sono diversi fattori che complicano tale situazione, tra questi la varietà sempre maggiore dei sistemi operativi utilizzati nei diversi dispositivi, si parla di Microsoft Windows, delle tante distribuzioni Linux, di Mac OS X, di Solaris o di altri sistemi operativi UNIX, senza contare i sistemi operativi più orientati al settore mobile come Android. Ogni sistema operativo ha inoltre un modo particolare di gestire i dati, si pensi alla differente gestione dei permessi dei file o alla sensibilità alle maiuscole. Bisogna anche considerare che se gli aggiornamenti dei dati avvenissero soltanto su di uno di questi dispositivi sarebbe richiesta una semplice copia dei dati aggiornati sugli altri dispositivi, ma che non è sempre possibile utilizzare tale approccio. Infatti i dati vengono spesso aggiornati in maniera indipendente in più di un dispositivo, magari nello stesso momento, è pertanto necessario che le applicazioni che si occupano di sincronizzare tali dati riconoscano le situazioni di conflitto, nelle quali gli stessi dati sono stati aggiornati in più di una copia ed in maniera differente, e permettano di risolverle, uniformando lo stato delle repliche. Considerando l' importanza e il valore che possono avere i dati, sia a livello lavorativo che personale, è necessario che tali applicazioni possano garantirne la sicurezza, evitando in ogni caso un loro danneggiamento, perchè sempre più spesso il valore di un dispositivo dipende più dai dati in esso contenuti che dal costo dello hardware. In questa tesi verranno illustrate alcune idee alternative su come possa aver luogo la condivisione e la sincronizzazione di dati tra sistemi operativi diversi, sia nel caso in cui siano installati nello stesso dispositivo che tra dispositivi differenti. La prima parte della tesi descriverà nel dettaglio l' applicativo Unison. Tale applicazione, consente di mantenere sincronizzate tra di loro repliche dei dati, memorizzate in diversi dispositivi che possono anche eseguire sistemi operativi differenti. Unison funziona a livello utente, analizzando separatamente lo stato delle repliche al momento dell' esecuzione, senza cioè mantenere traccia delle operazioni che sono state effettuate sui dati per modificarli dal loro stato precedente a quello attuale. Unison permette la sincronizzazione anche quando i dati siano stati modificati in maniera indipendente su più di un dispositivo, occupandosi di risolvere gli eventuali conflitti che possono verificarsi rispettando la volontà dell' utente. Verranno messe in evidenza le strategie utilizzate dai suoi ideatori per garantire la sicurezza dei dati ad esso affidati e come queste abbiano effetto nelle più diverse condizioni. Verrà poi fornita un' analisi dettagiata di come possa essere utilizzata l' applicazione, fornendo una descrizione accurata delle funzionalità e vari esempi per renderne più chiaro il funzionamento. Nella seconda parte della tesi si descriverà invece come condividere file system tra sistemi operativi diversi all' interno della stessa macchina, si tratta di un approccio diametralmente opposto al precedente, in cui al posto di avere una singola copia dei dati, si manteneva una replica per ogni dispositivo coinvolto. Concentrando l' attenzione sui sistemi operativi Linux e Microsoft Windows verranno descritti approfonditamente gli strumenti utilizzati e illustrate le caratteristiche tecniche sottostanti.