SVILUPPO DI UN'APPLICAZIONE CROSS-PLATFORM PER L'EROGAZIONE DI SERVIZI FAD
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università Politecnica delle Marche DIPARTIMENTO DI INGEGNERIA DELL’INFORMAZIONE Corso di Laurea Triennale in Ingegneria Informatica e dell’Automazione Sviluppo di un’applicazione cross-platform per l’erogazione di servizi FaD Development of a cross-platform app for the supply of distance learning services Relatore: Chiar.mo Laureando: Prof. Aldo Franco Dragoni Fabio Carosi Anno Accademico 2020-21
Sommario Il presente lavoro di tesi è volto a presentare e descrivere lo sviluppo dell’applicazione realizzata durante l’attività di tirocinio del laureando Fabio Carosi tenutasi all’interno dell’azienda NBS S.r.l. con sede a San Benedetto del Tronto (AP). Il tirocinio si è svolto per un periodo di 150 ore durante il mese di agosto 2021. La őnalità del lavoro sviluppato consiste nella progettazione e realizzazione di un’applicazio- ne cross-platform per l’erogazione di servizi FaD nel campo dell’Educazione Continua in Medicina. Il lavoro svolto durante il tirocinio è stato seguito dal tutor aziendale Gabriele Cardinale, dal tutor accademico Prof. Aldo Franco Dragoni, oltre che da Sandro Novelli, titolare della NBS S.r.l. Nel primo capitolo della tesi si analizza la Formazione a Distanza, studiandone la sto- ria, le caratteristiche e le diverse tipologie. Si esamina, in particolar modo, l’Educazione Continua in Medicina che rappresenta l’ambito per il quale si sviluppa l’applicazione, viene spiegato in cosa consiste l’E.C.M. e si elencano le regole principali per una cor- retta erogazione del servizio FaD. In seguito si presentano gli strumenti informatici per l’apprendimento a distanza maggiormente utilizzati al momento. Nel secondo capitolo si approfondiscono le diverse tipologie di applicazioni possibile, spiegando le varie differenze al őne di spiegare il processo decisionale che ha portato a realizzare un’applicazione cross-platform. Vengono dunque illustrati i possibili fra- mework utilizzabili per lo sviluppo e si espongono in particolar modo le funzionalità del framework adoperato per lo sviluppo. Nel terzo capitolo si espone tutto il lavoro di sviluppo che ha portato alla realiz- zazione dell’applicazione őnale, partendo dalla descrizione delle funzionalità desiderate, mostrando i mockup iniziali delle schermate e trattando distintamente le varie parti e i codici che compongono l’applicazione. In conclusione si elencano alcuni possibili miglioramenti per futuri aggiornamenti dell’applicazione e vengono esposti alcune opinioni personali sul lavoro svolto. ii
Indice Introduzione 1 1 Formazione a Distanza 2 1.1 Deőnizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Storia della FaD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Apprendimento misto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Educazione Continua in Medicina . . . . . . . . . . . . . . . . . . . . . . 6 1.4.1 Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Principali piattaforme per la FaD . . . . . . . . . . . . . . . . . . . . . . 13 1.5.1 Moodle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5.2 Google Classroom . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5.3 Microsoft Teams . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5.4 Zoom Meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 Applicazione ibride 19 2.1 Tipologie di applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.1 Applicazioni native . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.2 Progressive Web App . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.3 Applicazioni ibride . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Sviluppo di applicazioni cross-platform . . . . . . . . . . . . . . . . . . . 21 2.2.1 React Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.2 Xamarin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.3 Flutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.4 Ionic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3 Ionic Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.1 Framework Front-end . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.2 Cordova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3.3 Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.4 Versioni utilizzate . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 iii
INDICE iv 3 Sviluppo 32 3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2 Scopo e campo di applicazione . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Casi d’uso e funzioni dell’applicazione . . . . . . . . . . . . . . . . 32 3.3 Pattern architetturale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.5 Homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.6 I miei corsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.7 Presenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.8 Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.9 Offerta Formativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.10 Survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.11 Dossier Formativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.12 Notiőche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.13 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.14 Bacheca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.15 Proőlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4 Conclusioni 75 4.1 Miglioramenti futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.2 Opinioni personali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Bibliograőa 77
Elenco delle figure 1.1 I metodi di apprendimento misto basati sulla rotazione . . . . . . . . . . 7 1.2 Altri metodi di apprendimento misto . . . . . . . . . . . . . . . . . . . . 8 1.3 Schermata di esempio di Moodle . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Schermata di esempio di Google Classroom . . . . . . . . . . . . . . . . . 16 1.5 Schermata di esempio di Microsoft Teams . . . . . . . . . . . . . . . . . 17 1.6 Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1 Schema riassuntivo dei diversi tipi di app . . . . . . . . . . . . . . . . . . 22 2.2 Architettura dell’applicazione Cordova . . . . . . . . . . . . . . . . . . . 27 2.3 Ciclo di vita dello state management NgRx . . . . . . . . . . . . . . . . . 29 2.4 Life Cycle di una pagina creata con Ionic e Angular . . . . . . . . . . . . 30 3.1 Concept layout dell’app . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Diagramma dei casi d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3 Mockup di alcuni servizi speciőci dell’applicazione . . . . . . . . . . . . . 37 3.4 Mockup di alcune sezioni dell’applicazione . . . . . . . . . . . . . . . . . 38 3.5 Mockup di alcuni servizi trasversali dell’applicazione . . . . . . . . . . . . 39 3.6 Le prime schermate all’avvio dell’applicazione . . . . . . . . . . . . . . . 47 3.7 Sezione: I miei corsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.8 Sezione: Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.9 Schermate dell’applicazione . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.10 Sezione: Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.11 Ulteriori sezioni dell’applicazione . . . . . . . . . . . . . . . . . . . . . . 74 v
Codici 3.1 Routing dell’applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.2 Metodo ionViewWillEnter() della pagina di Login . . . . . . . . . . . . 41 3.3 Utilizzo di un all’interno della pagina di Login . . . . . . . 41 3.4 Validazione dei dati inseriti nel Login . . . . . . . . . . . . . . . . . . . . 42 3.5 Alcuni frammenti del metodo login() . . . . . . . . . . . . . . . . . . . 42 3.6 Section dell’Homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.7 Realizzazione di una griglia tramite . . . . . . . . . . . . . . 45 3.8 Codice per la creazione delle ion-card dei corsi . . . . . . . . . . . . . . 48 3.9 showAttivi() e showTerminati() . . . . . . . . . . . . . . . . . . . . . 48 3.10 Visualizzazione dell’elenco dei corsi terminati . . . . . . . . . . . . . . . . 49 3.11 Visualizzazione dell’elenco dei corsi attivi . . . . . . . . . . . . . . . . . . 50 3.12 File corso.ts, modello di un corso . . . . . . . . . . . . . . . . . . . . . 51 3.13 getCorso(corso) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.14 goTo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.15 joinMeeting(meetingNumber, meetingNumber) . . . . . . . . . . . . . 52 3.16 getAgenda() per la creazione dell’agenda da visualizzare . . . . . . . . . 57 3.17 Tag con i suoi attributi . . . . . . . . . . . . . . . . . . . . . 59 3.18 Metodo getOfferta() per l’ottenimento dell’offerta formativa dell’utente 61 3.19 Parte del codice per la realizzazione della lista dei Survey . . . . . . . . . 62 3.20 contenente le notiőche dell’utente . . . . . . . . . . . . . . . 65 3.21 Model di Notiőca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.22 swipeEvent(event, n) per la cancellazione di notiőche trascinate . . . . 66 3.23 cancellaNotifica(n: Notifica) per la cancellazione di notiőche . . . 66 3.24 Visualizzazione della lista dei video tutorial . . . . . . . . . . . . . . . . . 67 3.25 gotoVideo(string) per la riproduzione del video tutorial . . . 67 3.26 Visualizzazione della lista di F.A.Q. . . . . . . . . . . . . . . . . . . . . . 67 3.27 Model di F.A.Q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.28 Struttura della chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.29 Model di Messaggio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.30 Chiamata a getProfilo() all’avvio della pagina . . . . . . . . . . . . . . 71 3.31 updateProfilo() per la modiőca delle informazioni dei contatti . . . . . 71 vi
Introduzione La pandemia di COVID-19 ha cambiato rapidamente le nostre abitudini, uno dei settori maggiormente colpiti è stato senz’altro quello dell’istruzione. In breve tempo la digita- lizzazione dell’educazione è diventata parte integranti della vita di tutti gli studenti, la Formazione a Distanza è diventata őn da subito la soluzione per sopperire all’impossi- bilità delle lezioni in presenza e in molti hanno scoperto i beneőci di questa modalità di erogazione della didattica. La Formazione a Distanza non nasce, però, solo a partire dal 2020 ed è dunque importante capirne la storia e le modalità con cui si è evoluta őno ad oggi. Allo stesso modo si studia il funzionamento dell’Educazione Continua in Medicina, che utilizza anche la Formazione a Distanza tra le varie modalità di erogazione dei corsi. È necessario, inoltre, l’attenta valutazione di tutti i possibili strumenti per lo sviluppo di una buona applicazione che permetta di erogare correttamente tutti i servizi per una Formazione a Distanza ottimale. Solo al termine di questa disamina si può procedere allo sviluppo vero e proprio dell’applicazione, ponendo attenzione su tutti i diversi aspetti della programmazione. 1
Capitolo 1 Formazione a Distanza 1.1 Deőnizione La formazione a distanza (FaD) rappresenta una modalità di formazione caratterizzata dalla separazione ősica fra docente e discente, dalla distribuzione di materiale didat- tico con modalità e su supporti diversi. Per deőnire più rigorosamente un sistema di formazione a distanza possono essere considerate le seguenti condizioni fondamentali: • Nel processo didattico c’è separazione ősica fra docente e discente. • L’attività formativa non è (obbligatoriamente) contemporanea all’erogazione della medesima. • L’attività didattica è strutturata. • Insegnante e studente sono collegati da una struttura tecnologica. • Esiste una comunicazione a due vie. • Si considera una forma industrializzata dell’istruzione. • C’è chiarezza formale su criteri e regole di studio. Si possono elencare i seguenti fattori che depongono a favore di attività formative online: • Risparmio di tempo e denaro: la fruizione non obbliga a spostamenti che possono essere estremamente onerosi in caso di notevoli distanze. • Autonomia di elaborazione: permette di selezionare, senza condizionamenti dovuti a emotività o scarsa conoscenza dei fatti, i momenti per esprimersi e presentare le proprie idee; la ŕessibilità nei tempi fa si che lo studente può studiare a casa quando vuole e quanto vuole, anche seguendo itinerari personalizzati. 2
CAPITOLO 1. FORMAZIONE A DISTANZA 3 • Velocizzazione delle interazioni: non ci sono turni da attendere, il tutor può comu- nicare in tempi ridotti con più corsisti dislocati ovunque. • Memoria del percorso didattico: in rete facilmente si possono conservare dialoghi e tracce delle interazioni, al contrario di quanto accade negli incontri in presenza o nella formazione a distanza tradizionale. • Ampliamento delle risorse: si può facilmente ricorrere ad esperti anche remoti; i materiali hanno carattere dinamico, possono essere arricchiti, espansi mediante link, aggiornati, revisionati. • Flessibilità delle forme di cooperazione-collaborazione: si può lavorare a coppie, a piccoli gruppi, condividere altri momenti con gruppi più ampi. • Utilizzo dell’esperienza pregressa e delle competenze dei partecipanti: è una natu- rale conseguenza dell’apprendimento collaborativo tipico della formazione in rete. [1] Un tipico luogo comune prevede che l’e-learning andrà a sostituire l’insegnamento in presenza, infatti abbiamo sempre inteso l’insegnamento come un processo comunicati- vo che avviene tra due o più persone che si trovano nella medesima locazione spaziale e temporale. In questa visione, le nuove tecnologie rappresentano agenti intrusivi in un ambiente formativo standard de facto. In realtà è preferibile pensare all’e-learning come a uno strumento che si aggiunge a quelli disponibili e che può consentire al do- cente nuove soluzioni formative che possono migliorare l’erogazione delle conoscenze al discente. Il ruolo dell’insegnante non è sminuito dall’introduzione delle nuove tecnolo- gie. Anzi, il docente viene ad acquisire nuove competenze e capacità di coordinamento poiché coadiuvato da őgure professionali normalmente non presenti nell’insegnamento in presenza. Questo si può tradurre per il docente in uno stimolante e qualiőcante percorso di arricchimento personale e professionale.[2] 1.2 Storia della FaD Nell’arco di quest’ultimo secolo, la progressiva evoluzione delle tecnologie della comu- nicazione (mezzi di trasporto, telecomunicazioni, ecc.) ha condizionato costantemente l’altrettanto progressiva evoluzione dei sistemi per la formazione a distanza. Le prime applicazioni di una certa signiőcatività delle metodologie FaD si ebbero verso la őne del diciannovesimo secolo, quando le nuove tecniche di stampa e lo svilup- po del trasporto ferroviario resero possibile la produzione e la distribuzione estensiva di materiale d’insegnamento a favore di gruppi di studenti distribuiti su vaste aree geograő- che. Si trattava di interventi basati principalmente sulla corrispondenza, dove il medium era rappresentato dal materiale a stampa e l’interazione studente-docente, estremamente
CAPITOLO 1. FORMAZIONE A DISTANZA 4 lenta nella sua dinamica, era in genere circoscritta allo scambio di elaborati (per esempio questionari di valutazione) e a rarissimi incontri in presenza. A questi sistemi FaD, detti di prima generazione (o per corrispondenza), negli anni ’60 succedono i cosiddetti sistemi FaD multimediali/plurimediali o di seconda genera- zione, caratterizzati da un uso integrato di materiale a stampa, trasmissioni televisive, registrazioni sonore e in alcuni casi software didattico (courseware). Il processo di in- terazione fra docente e studente continua ad essere molto simile a quello della prima generazione, anche se include l’assistenza telefonica, le attività tutoriali in presenza e più recentemente i collegamenti via fax e posta elettronica. Gli approcci dei sistemi FaD di prima e seconda generazione si basano quindi prevalentemente sulla produzione e la distribuzione estensiva di materiali didattici nei confronti della popolazione da formare. La comunicazione con gli studenti (vista in un’ottica di bidirezionalità) viene mantenuta marginale e la comunicazione fra gli studenti è quasi del tutto inesistente o comunque non organizzata. Il riproporre anche a distanza l’apprendimento come processo sociale (seppur con l’inevitabile mediazione della tecnologia) sarà l’idea chiave che guiderà lo sviluppo dei sistemi FaD di terza generazione. Nella terminologia FaD i sistemi di terza generazione sono anche detti di online education (formazione in rete), proprio a signiőcare come la maggior parte del processo formativo avvenga in rete, attraverso l’interazione dei parteci- panti, in una vera e propria comunità di apprendimento che favorisca sia il superamento dell’isolamento del singolo sia la valorizzazione dei suoi rapporti con il gruppo. [3] A seguito dell’emergenza COVID-19, si stima che il 90% degli studenti di tutto il mondo abbia dovuto abbandonare i banchi di scuola. In particolare l’Italia è stato il primo Paese europeo in cui si è indetto un lockdown a livello nazionale. Le prime scuole e università hanno iniziato a chiudere a őne febbraio 2020, provvedimento che poi è stato esteso a tutta Italia a partire dal 10 marzo 2020. Per rispondere all’impatto delle chiusure scolastiche, in Italia il Ministero dell’Istru- zione ha stanziato ottantacinque milioni di euro per le attività di formazione a distanza, destinati per la maggior parte a fornire dispositivi digitali e connettività ai bambini e dei ragazzi provenienti da contesti socio-economici svantaggiati, ma anche per l’acqui- sizione di piattaforme educative digitali e per la formazione del corpo insegnanti. È stato riportato che al 18 Marzo 2020 il 67% delle scuole (inclusi asili e scuole dell’in- fanzia)aveva spostato tutte le proprie attività didattico-educative online, raggiungendo potenzialmente 6,7 su 8,3 milioni di studenti in Italia. [4] 1.3 Apprendimento misto L’apprendimento misto, in inglese blended learning, viene deőnito come un modo di studiare una materia che combina l’apprendimento in aula con l’uso di diverse tecnologie, comprese Internet. Durante la fase di apprendimento online lo studente ha la possibilità
CAPITOLO 1. FORMAZIONE A DISTANZA 5 di scegliere come meglio gestire le interazione con il materiale didattico. Il őne del blended learning è che l’apprendimento online e di persona siano complementari, ovvero che abbiano pari importanza nel processo di formazione dello studente. La Clayton Christensen Institute, istituto che ha őssato le basi del blended learning, deőnisce i seguenti sette modelli di apprendimento misto: • Station Rotation All’interno della stessa aula sono presenti diverse postazioni (o stazioni), una delle quali deve necessariamente essere dedicata all’apprendimento online. Gli studenti si spostano da una postazione all’altra attraverso una precisa schedulazione. È utilizzata soprattutto nelle scuole elementari dove gli insegnanti hanno già una maggiore familiarità sulla rotazione tra le postazioni. • Lab Rotation Così come i per la Station Rotation anche qui gli studenti si muovono tra le po- stazioni, in questo caso però l’apprendimento online non avvengono in aula, ma in laboratorio informatico dedicato. Questo modello consente una maggiore elastici- tà tra gli insegnanti e altre őgure para-professionistiche e consente alle scuole di utilizzare i laboratori informatici presenti. • Individual Rotation A differenza dei precedenti metodi, in questo la rotazione tra le varie stazioni è individuale, ma non libera. Ogni studente dovrà seguire un programma stila- to dall’insegnante o da un software e seguirlo spostandosi individualmente tra le postazioni. • Flipped Classroom Il modello de "l’aula capovolta" capovolge la tradizionale relazione tra orario scola- stico e compiti a casa. Gli studenti imparano a casa tramite corsi e lezioni online e gli insegnanti utilizzano il tempo in classe per esercitazioni o progetti guidati. Que- sto modello consente agli insegnanti di utilizzare il tempo in classe per qualcosa di più rispetto alle lezioni tradizionali. • Flex Il modello Flex consente agli studenti di muoversi su programmi ŕuidi tra le attività di apprendimento in base alle loro esigenze. L’apprendimento online è la spina dorsale dell’apprendimento degli studenti in un modello ŕessibile. Gli insegnanti forniscono supporto e istruzione su base ŕessibile, secondo necessità, mentre gli studenti lavorano attraverso il curriculum e i contenuti del corso. Questo modello può offrire agli studenti un elevato grado di controllo sul proprio apprendimento.
CAPITOLO 1. FORMAZIONE A DISTANZA 6 • A La Carte Il modello A La Carte consente agli studenti di seguire un corso online registrato da un insegnante, oltre ad altri corsi faccia a faccia,in modo da offrire agli studenti una maggiore ŕessibilità sui loro orari. Questo metodo essere un’ottima opzione per gli istituiti che non possono fornire particolari opportunità di apprendimento, come particolari corsi specializzati, rendendolo uno dei modelli più popolari nelle scuole superiori miste. • Enriched Virtual Il modello Enriched Virtual è un’alternativa alla scuola online a tempo pieno che consente agli studenti di completare la maggior parte dei corsi online a casa o fuori dalla scuola, ma di frequentare la scuola per le sessioni di apprendimento faccia a faccia richieste con un insegnante. A differenza della Flipped Classroom, i programmi Enriched Virtual di solito non richiedono la frequenza scolastica quo- tidiana; alcuni programmi possono richiedere solo una frequenza bisettimanale, ad esempio. [5] 1.4 Educazione Continua in Medicina Educazione Continua in Medicina (E.C.M.) è il programma nazionale di attività for- mative attraverso il quale ogni professionista della sanità si deve tenere aggiornato sugli sviluppi professionali, per poter rispondere ai bisogni dei pazienti e alle esigenze del Ser- vizio sanitario. L’E.C.M. serve dunque per l’acquisizione di nuove conoscenze e abilità al őne di mantenere una pratica competente del proprio lavoro. L’Educazione Continua in Medicina è stata sancita di fatto nel 1999, anno in cui con il D.Lgs 229/1999 è stato introdotto l’obbligo di acquisire crediti formativi per tutti gli operatori sanitari (medici, infermieri, farmacisti, odontoiatri, veterinari, biologi, chimici, ostetriche ecc.), l’E.C.M. è stata poi effettiva avviata solo dal 1° gennaio 2002. Durante i primi anni della lunghissima łfase sperimentalež, in cui la FaD in particolare si confrontava con due problematiche: da una parte non esisteva un livello nazionale riconosciuto se non per pochissimi progetti łspecialiž (ovvero non era possibile fruire di percorsi formativi online offerti a tutti gli operatori del territorio nazionale, con crediti che valessero certamente a livello nazionale, a maggior ragione se a pagamento, come per esempio avveniva per i corsi in aula), e dall’altra non tutte le regioni ś o per ritardi o nell’attesa di una normativa nazionale univoca ś accreditavano attività formative FaD. Durante questo periodo l’erogazione di formazione in ambito sanitario a livello nazio- nale ha avuto bisogno di un complesso controllo da parte del Centro Nazionale E.C.M del Ministero della Salute, e allo stesso tempo la dimensione regionale ha offerto a tutti
CAPITOLO 1. FORMAZIONE A DISTANZA 7 (a) Station Rotation (b) Lab Rotation (c) Individual Rotation Figura 1.1: I metodi di apprendimento misto basati sulla rotazione
CAPITOLO 1. FORMAZIONE A DISTANZA 8 (a) Flipped Classroom (b) Flex (c) A La Carte (d) Enriched Virtual Figura 1.2: Altri metodi di apprendimento misto
CAPITOLO 1. FORMAZIONE A DISTANZA 9 coloro con obbligo E.C.M percorsi accreditati localmente. La soluzione a una dichiarata complessità a gestire così sia le attività formative sia l’altissimo numero di organizzazioni, accreditate dal Ministero come autorizzati a svolgere attività formativa, era comunque da alcuni anni individuata: si trattava infatti di dichiarare provider łautonomož l’ente for- mativo ś in base a regole ben più stringenti ś assegnando a quest’ultimo la responsabilità relativa sia alla qualità del percorso formativo sia conseguentemente alla coerenza rela- tiva al numero dei crediti da assegnare, previa accettazione da parte del provider stesso del controllo relativo alla correttezza delle attività da parte del livello centrale. Si passa quindi da un controllo incentrato sulle singole attività formative a un controllo ś svolto con modalità random, ma particolarmente approfondito ś sul complesso dell’attività del provider stesso. Si tratta di passare, con questo approccio, alla łfase a regimež. Nel 2007 l’Accordo Stato-Regioni del 1° agosto disciplina questa trasformazione della gestione dell’E.C.M, prevedendo periodi triennali di programmazione e ponendo le basi per il passaggio dall’accreditamento dei singoli eventi formativi a quello di accreditamento di soggetti erogatori di attività formative da parte delle Regioni e del Ministero della Salute. Ma ancora nel 2009 veniva prorogata őno al 31 dicembre l’impostazione łsperimen- tale provvisoriaž, continuando a prevedere forme diversiőcate di formazione, da quella frontale (residenziale) a quella "on the job" (sul campo) e, ovviamente, alla FaD, essen- do forse quest’ultima l’attività formativa che ha fatto nascere gli interrogativi maggiori per la potenziale diffusione e łinvasivitàž che ś forse ś la caratterizza o la potrebbe caratterizzare. Di fatto, con molte difficoltà, l’uscita da questa cosiddetta fase sperimentale durata circa 10 anni si concretizza nei primi mesi del 2010.[2] Sempre nell’Accordo Stato-Regioni del 1° agosto è riportato che ogni operatore sa- nitario deve acquisire 150 crediti per ogni triennio a partire dal 2008-2010. A seguito dell’emergenza sanitaria per l’epidemia di Covid-19, per il triennio 2020-2022, per tutti gli operatori sanitari che hanno continuato l’attività lavorativa durante l’emergenza viene dato diritto di un bonus di 50 crediti E.C.M. 1.4.1 Provider Come riporta l’agenzia nazionale per i servizi sanitari regionale, le tipologie di Provider attualmente previste sono: • Università, Facoltà e Dipartimenti universitari • Istituti scientiőci del servizio sanitario nazionale • Istituti del consiglio nazionale delle ricerche • Società scientiőche e associazioni professionali in campo sanitario
CAPITOLO 1. FORMAZIONE A DISTANZA 10 • Ordini e collegi delle professioni sanitarie • Fondazioni a carattere scientiőco • Case editrici scientiőche • Società, Agenzie ed Enti pubblici • Società, Agenzie ed Enti privati Il Provider accreditato è responsabile del contenuto formativo, della qualità scienti- őca e dell’integrità etica di tutte le attività FaD cui ha assegnato crediti. Il Provider deve predisporre per l’utilizzatore un breve riassunto dei contenuti del programma FaD, distinti per argomenti principali e con l’indicazione degli autori e di eventuali procedure accessorie (őlmati, audio, links, etc.). Elemento essenziale della FaD è la veriőca della partecipazione al programma da parte dell’utilizzatore. Le possibilità di controllo della partecipazione sono limitate se la fruizione avviene con strumenti cartacei. Le tecnologie più avanzate consentono veriőche e controlli di partecipazione più stringenti. Nella FaD la veriőca della partecipazione all’attività formativa avviene di solito me- diante la predisposizione, da parte del Provider che ha prodotto il programma FaD, di strumenti di veriőca dell’apprendimento che l’utilizzatore, dopo la somministrazione, deve fornire al Provider, documentando di aver acquisito l’aggiornamento oggetto del programma. L’attività FaD non è quindi completata őnché l’utilizzatore non dimostri al Provider la sua partecipazione all’attività formativa inviando le risposte del test di valutazione dell’apprendimento che costituisce anche prova di partecipazione. In particolare, per la FaD cartacea la presenza-partecipazione viene veriőcata attra- verso la consegna al Provider della prova di veriőca in via cartacea o telematica. Nel caso, invece, di FaD mediante strumentazioni informatiche ( e-learning e sincrona) è ri- chiesta la veriőca della presenza ś partecipazione attraverso le operazioni tracciate dalla piattaforma, oltre che l’identiőcazione del discente; a tal proposito possono essere imple- mentate modalità di riconoscimento via webcam, biometrico, o procedure di veriőca a più canali come autenticazioni con credenziali + token a scadenza temporale (acquisito dal discente via app, mail o SMS) per accertarsi che l’utente collegato di volta in volta alla piattaforma sia effettivamente il professionista in possesso della login. La veriőca dell’apprendimento consente di valutare l’efficacia formativa complessiva del programma ed anche le singole aree in cui l’efficacia formativa è stata minore. Con- sente, quindi, eventuali correzioni della forma con cui i contenuti sono presentati, delle procedure e della strutturazione del programma. Le modalità di veriőca dell’appren- dimento degli eventi FaD sono descritte nel łManuale nazionale di accreditamento per l’erogazione degli eventi E.C.M.ž. Negli eventi FaD con strumenti informatici, la possibilità di effettuare la veriőca del- l’apprendimento deve essere data solo dopo aver fruito dei contenuti (es è ammessa la
CAPITOLO 1. FORMAZIONE A DISTANZA 11 possibilità di eseguire test di valutazione intermedia). Per una maggiore trasparenza durante lo svolgimento dell’evento FaD potranno essere comunicate unicamente le do- mande a cui è stata fornita una risposta errata. Nel caso di risposte ‘non superate’ potrà essere data indicazione di dove trovare l’argomento nel materiale dell’evento, ma non dovrà mai essere fornito ‘suggerimento’ in merito alla risposta corretta prevista. Solo dopo il termine őssato per la conclusione dell’evento FaD è consentito fornire ai discenti le risposte esatte. La qualità di ogni programma FaD deve essere valutata anche in base all’indice di gradimento ex-post manifestato dagli utilizzatori. Questo parametro deve essere rilevato mediante una scheda standard che deve obbligatoriamente pervenire al Provider FaD da parte di ogni utilizzatore insieme al questionario per la veriőca di partecipazione e di apprendimento (in mancanza non potranno essere assegnati crediti). Tale scheda, anonima nella sua compilazione, nel caso in cui l’evento sia basato su materiale ‘cartaceo’, sarà restituita al provider insieme alla prova di veriőca dell’ap- prendimento e può essere inserita in una busta chiusa non riconducibile al partecipante. Le buste saranno messe insieme e poi aperte al termine dell’attività formativa per una registrazione delle informazioni aggregate. Nel caso di compilazione su strumenti in- formatici/piattaforme, dovranno essere acquisite in modo da garantire l’anonimato del discente, non collegando la scheda compilata al discente, per il quale sarà registrata la sola informazione di ‘consegna’ della scheda, mentre i contenuti della scheda compilata saranno registrati separatamente. La scheda deve essere messa a disposizione (al termine della fruizione dei contenuti formativi) insieme al questionario di veriőca dell’apprendi- mento affinché chi non superi la prova di veriőca possa comunque consegnare la scheda di valutazione della qualità percepita. La suddetta scheda, analogamente a quella utilizzata per la formazione residenziale, costituisce parte della documentazione che il Provider FaD deve registrare, conservare e rendere, a richiesta, disponibile dall’Ente accreditante. Altri requisiti per la piattaforma e-learning per la FaD asincrona sono i seguenti: • caratteristiche di dimensionamento hardware e software adatte ad erogare il servizio di formazione al numero di discenti a cui è rivolto • affidabilità (continuità dell’erogazione) e sicurezza (al őne di garantire la riserva- tezza degli elenchi e degli indirizzi dei partecipanti) • garantire una facile fruibilità della piattaforma all’utente őnale (user-friendly) e garantire una capacità di banda minima per una fruizione multiutente • capacità di tracciare tutte le operazioni effettuate dagli utenti tramite log e report • mettere a disposizione del discente l’attestato con i crediti solo dopo aver veriőcato la presenza, il superamento della prova di veriőca e dopo la compilazione della sche-
CAPITOLO 1. FORMAZIONE A DISTANZA 12 da di valutazione della qualità percepita (nel caso in cui gli attestati non vengano inviati tramite P.E.C. o raccomandata) • mettere a disposizione dei discenti un canale di comunicazione con i tutor (eventi con tutoraggio) • mettere a disposizione dei partecipanti un ambiente di collaborazione (eventi con ambiente di collaborazione) • garantire la fruibilità delle informazioni al őne di ottemperare agli obblighi norma- tivi (export dati per l’invio degli elenchi dei partecipanti e delle informazioni sul superamento della prova nel tracciato XML da trasmettere all’Ente accreditante ed al COGEAPS) e garantire l’accesso alle sessioni da parte degli organismi di controllo e veriőca. Mentre per la FaD sincrona gli obblighi sono per la gran parte analoghi a quelli per la FaD asincrona: • affidabilità (continuità dell’erogazione) e sicurezza (al őne di garantire la riserva- tezza degli elenchi e degli indirizzi dei partecipanti) • garantire una facile fruibilità della piattaforma all’utente őnale (user-friendly) e garantire una capacità di banda minima per una fruizione adeguata • garantire la possibilità di creare una sessione sincrona/diretta con utenti discenti e utenti docenti/tutor • garantire la possibilità di far intervenire/interagire il partecipante con il tutor e gli altri discenti • garantire la veriőca della presenza e della fruizione dei contenuti nel periodo pre- visto (log di accesso, tracciabilità operazioni) • garantire che al termine della sessione di FaD SINCRONA sia possibile avere una copia/download della sessione formativa effettuata dal discente • garantire la fruibilità delle informazioni al őne di ottemperare agli obblighi norma- tivi (export dati per l’invio degli elenchi dei partecipanti e delle informazioni sul superamento della prova nel tracciato XML da trasmettere all’Ente accreditante ed al COGEAPS) e garantire l’accesso alle sessioni da parte degli organismi di controllo e veriőca. Tutto il materiale durevole, tutte le informazioni in merito a: veriőca della presenza- partecipazione, veriőca dell’apprendimento, veriőca qualità percepita, materiale didat- tico deve essere conservato per la tempistica prevista dalla normativa E.C.M. Nel caso
CAPITOLO 1. FORMAZIONE A DISTANZA 13 di erogazione attraverso strumentazioni informatiche, al termine della fruizione da parte dei discenti, la piattaforma può essere rimossa dalla rete internet, tuttavia il provider deve garantire il mantenimento di una copia digitale (tabelle, log, tracciati, report, etc) dell’intera attività erogata per i 5 anni successivi. Accertato che i requisiti (partecipazione, valutazione dell’apprendimento e scheda del- la qualità percepita) siano stati soddisfatti entro i termini previsti dell’attività formativa, il Provider attesterà che l’utente ha svolto la suddetta attività formativa E.C.M ed ha, quindi, acquisito i crediti E.C.M in numero pari a quanto previsto per quello speciőco programma FaD. Nel caso di mancato soddisfacimento dei requisiti per l’acquisizione dei crediti, è possibile consegnare un attestato di sola ‘partecipazione’. Nel caso di su- peramento della prova dovrà essere inviata, apposita attestazione attraverso strumento che ne tracci la consegna (raccomandata, P.E.C) o mettendo a disposizione l’attestato in un’area riservata (il provider dovrà tracciare l’acquisizione degli attestati da parte dei discenti). [6] 1.5 Principali piattaforme per la FaD 1.5.1 Moodle Moodle (acronimo di Modular Object-Oriented Dynamic Learning Environment, cioè "Ambiente per l’apprendimento modulare, dinamico, orientato ad oggetti") è il sistema di gestione dell’apprendimento (LMS - Learning Management System) più conosciuto e utilizzato nel mondo. Il sistema è gratuito e online, permette ai docenti di creare siti per i propri corsi in cui è possibile caricare materiale didattico. Moodle nasce da un’idea dello sviluppatore Martin Dougiamas e la prima versione rilasciata risale al 20 agosto 2002. Con Moodle è possibile pubblicare materiali didattici, ma anche progettare attività individuali e di gruppo, realizzare test ed esami di valutazione e comunicare con gli stu- denti. (acronimo di Modular Object-Oriented Dynamic Learning Environment, ambiente per l’apprendimento modulare, dinamico, orientato ad oggetti) All’interno del programma, ogni utente può avere differenti diritti di accesso, in fun- zione del ruolo che gli è stato assegnato. I ruoli standard dentro alla piattaforma Moodle sono: • Manager: può accedere a tutti i corsi e modiőcarli; • Creatore di corsi: può creare e modiőcare il corso; • Docente: gestisce i corsi e può valutare gli studenti; • Studente: iscritto ai corsi e può accedere alle risorse messe a disposizione dal docente;
CAPITOLO 1. FORMAZIONE A DISTANZA 14 • Ospite: è un utente non ancora iscritto ad un corso, con privilegi limitati; Tra le principali funzionalità di base troviamo: • Interfaccia responsive e di facile navigazione sia da desktop che su dispositivi mobili; • Dashboard personalizzabile con tutti i corsi presenti, passati e futuri a cui è iscritto l’utente; • Strumenti di collaborazione come i forum, il glossario, wiki e tanti altri; • Calendario multifunzione dove è possibile annotare eventi, riunioni, scadenze, ecc.; • Gestione dei őle in servizi esterni di storage come Dropbox, Google Drive e One- Drive; • Editor di testo facile da utilizzare e intuitivo; • Possibilità di attivare notiőche su messaggi, eventi, aggiornamenti, scadenze e tanto altro; • Monitoraggio del completamento dei moduli e dell’avanzamento nel corso; Le funzionalità per la gestione dei corsi sono invece le seguenti: • Lezioni studiate per essere guidate dagli insegnanti; • Strumenti di collaborazione tra gli utenti; • Inserimento facilitato di őle audio e video con le lezioni; • Implementazione di materiale didattico e compiti; • Valutazione del ŕusso di lavoro; • Gestione del gruppo con diverse attività; • Badge per motivare gli studenti; • Valutazione basata su competenze che possono essere impostate con piani d’ap- prendimento personalizzati. [7]
CAPITOLO 1. FORMAZIONE A DISTANZA 15 Figura 1.3: Schermata di esempio di Moodle 1.5.2 Google Classroom Google Classroom è una piattaforma per il blended learning [1.3, pag. 4] dedicata alle istituzioni scolastiche e le università. Il servizio ha l’obiettivo di facilitare la condivisione di materiale didattico tra insegnanti e studenti. Google Classroom si integra con diversi altri servizi forniti da Google come: Google Drive per l’archiviazione dei őle, Google Docs per la creazione e condivisione di documen- ti, Google Sheet per i fogli di calcolo, Google Slides per le presentazioni, Google Forms per la realizzazione di sondaggi e test, Google Sites per la realizzazione di siti Internet, Gmail come provider per la posta elettronica, Google Calendar per la sincronizzazione degli impegni nel calendario. In risposta all’emergenza sanitaria che ha portato ad un maggior utilizzo della piattaforma Google ha integrato anche i servizi di Google Meet per consentire un’efficace gestione delle lezioni sincrone online. La piattaforma è stata annunciata nel maggio del 2014 e rilasciata pubblicamente a partire dal 12 agosto 2014. Google Classroom è utilizzabile gratuitamente, alcune funzionalità aggiuntive richiedono però un l’iscrizione a pacchetti a pagamento. Google Classroom ha diverse funzionalità in base a chi utilizza l’applicazione. Gli insegnanti possono avviare riunioni video; creare e gestire classi, compiti e valutazioni; aggiungere materiali didattico; fornire dei feedback in tempo reale agli studenti durante lo svolgimento di compiti. Gli studenti invece hanno la possibilità di tenere traccia dei compiti assegnati del corso e possono inviare i propri lavori svolti; è disponibile un controllo contro i plagi sui lavori svolti; è possibile controllare i propri voti e condividere risorse con il resto della classe.
CAPITOLO 1. FORMAZIONE A DISTANZA 16 Figura 1.4: Schermata di esempio di Google Classroom 1.5.3 Microsoft Teams Microsoft Teams è un software sviluppato da Microsoft a partire dal 2016 e nasce come miglioramento e aggiornamento di Skype for Business, client di messaggistica istantanea per uso professionale sviluppato anch’esso da Microsoft e ritirato ufficialmente da luglio 2021. Teams combina chat istantanea con le funzionalità di videoconferenza e condivi- sione di materiale, si integra inoltre con diversi servizi offerti da Microsoft e contenute nel pacchetto Microsoft 365. È utilizzabile sui dispositivi desktop, mobile e su browser web. Si pone come concorrente diretto di altri servizi dedicati ai professionisti, tra i quali Slack. Microsoft aveva tentato di acquisire Slack nel 2016 per una cifra attorno agli 8 miliardi di dollari, ma anche a causa della contrarietà all’acquisto da parte di Bill Gates l’acquisizione non andò a buon őne e Microsoft preferì iniziare lo sviluppo dell’allora Skype for Business.[8] A seguito dell’emergenza sanitaria l’uso di Microsoft Teams si è espanso non solo nel mondo del lavoro, bensì anche in ambito accademico, soprattutto negli atenei che già utilizzavano i servizi Microsoft. Tra le funzionalità più utili ed utilizzate si possono citare: • Team: possibilità di creare gruppi di lavoro in cui condividere materiale con tutti i partecipanti e in cui avviare videochiamate di gruppo. Utile per creare gruppi speciőci per le classi o per un singolo corso. • Canali: all’interno di un team è possibile creare più canali per diversi argomenti di conversazione e all’interno di ogni canale i partecipanti possono comunicare con testi e immagini personalizzati.
CAPITOLO 1. FORMAZIONE A DISTANZA 17 • Chiamate: funzionalità cardine di Microsoft Teams, è possibile effettuare chia- mate VoIP (Voice over IP), videochiamate e anche previsto lo scambio di messaggi istantanei. • Riunioni: utili sia in ambito lavorativo sia in ambito scolastico, permette di ef- fettuare videochiamate di gruppo che possono essere programmate o create al mo- mento dall’admin della riunione. È possibile registrare le riunione che potranno poi essere revisionate e scaricate all’interno dei materiali condivisi del team. Inoltre si ricorda la possibilità di condividere materiale di ogni formato e permette anche il lavoro in contemporanea su un documento attraverso l’utilizzo di altri servizi Microsoft presenti nel pacchetto Microsoft 365. A partire da ottobre 2021, con il rilascio del sistema operativo Windows 11, Microsoft Teams è il programma per le comunicazioni istantanee presente di default nel sistema operativo, dimostrando la rapida espansione nell’uso quotidiano e non più solo in ambiti lavorativi e scolastici. Figura 1.5: Schermata di esempio di Microsoft Teams 1.5.4 Zoom Meetings Zoom Meetings, più brevemente Zoom, è un servizio di videoconferenza basato sul cloud. La società Zoom Video Comunications è stata fondata nel 2011 da Eric Yaun, ingegnere capo di Cisco Systems e di WebEx, il servizio di videoconferenza inizia a gennaio 2013. Le caratteristiche principali di Zoom sono:
CAPITOLO 1. FORMAZIONE A DISTANZA 18 • Chat istantanea: attraverso Zoom Chat è possibile scambiare messaggi e őle con una singola persona o con un gruppo. • Riunioni individuali: le riunioni individuali sono gratuite e illimitate. • Videoconferenze di gruppo: utilizzabile per l’erogazione di lezioni telematiche, è gratuito per gruppi di massimo 100 persone e per una durata di 40 minuti. • Condivisione dello schermo: come i principali concorrenti anche su Zoom è possibile condividere il proprio schermo in modo tale che tutti possano vedere. • Registrazioni e Trascrizioni: le riunioni di gruppo o individuali possono esse- re registrate, utile la funzione di trascrizione che permette di ottenere un testo attraverso il riconoscimento delle conversazioni tra i partecipanti. • Integrazione: Zoom si connette con altri servizi utilizzati nel mondo del lavoro come Slack, Okta, HipChat e Microsoft Teams e permette la pianiőcazione delle riunioni da e-mail e calendario attraverso plugin con i principali servizi del genere come Outlook, Gmail e i principali browser web. Figura 1.6: Zoom
Capitolo 2 Applicazione ibride 2.1 Tipologie di applicazioni Le applicazioni mobile si dividono in tre grandi categorie: • Applicazioni native • Applicazioni web (o PWA) • Applicazioni ibride 2.1.1 Applicazioni native La applicazioni native vengono scritte e compilate per una speciőca piattaforma utilizzan- do i linguaggi di programmazione e librerie supportati dal particolare sistema operativo mobile (es. Kotlin per Android), per questo motivo un’applicazione sviluppata per An- droid non sarà utilizzabile su un dispositivo Apple e viceversa. Le applicazioni native hanno però notevoli vantaggi: • Performance migliore: le app native vantano una performance di alto livello sia rispetto alle app ibride che alle app web. Le app native sono anche più veloci, efficienti e sicure, e funzionano perfettamente nei sistemi operativi dei dispositivi mobili. • Sicurezza: Grazie all’interfacciamento diretto con l’OS, le app native hanno stan- dard di sicurezza maggiori, risultando così più sicure rispetto a qualsiasi altro tipo di app mobile. Rafforzano la protezione dei dati degli utenti e sono molto usate da aziende e attori che mettono la sicurezza al primo posto, come nel caso delle app per le banche. 19
CAPITOLO 2. APPLICAZIONE IBRIDE 20 • Connettività avanzata: le app native possono usare più semplicemente i vari strumenti e le diverse risorse integrate nei dispositivi mobili, come la fotocamera, il Bluetooth, i contatti del cellulare, ecc. senza la necessità di dover integrare e sviluppare componenti esterni. • Miglior user experience: la UI (user interface) propria delle app native fornisce una migliore user experience. Questo perché le app sviluppate nativamente hanno a disposizione componenti ed elementi di UI tipici della piattaforma, utilizzati sia dalle app sviluppate dai produttori di device, sia da sviluppatori terzi. Questo fa si che l’utente őnale, nonostante navighi tra app diverse, abbia una familiarità con elementi, stili e comportamenti comuni . Ne sono un esempio esempio l’effetto ripple sui pulsanti in Android, la navbar su iOS, l’animazione di apparizione delle schermate diversa tra gli OS, lo stile della navigazione, il font usato, etc. . . A questi lati positivi si affiancano però anche alcuni difetti, come il dover utilizzare linguaggi di programmazione diversi per sistemi operativi differenti, il maggior costo per lo sviluppo e le difficoltà maggiori per gestire e mantenere un’applicazione nativa. [9] 2.1.2 Progressive Web App Progressive Web App (PWA, in italiano applicazioni web progressive) è un termine, coniato in origine da Google, che si riferisce ad applicazioni web che vengono svilup- pate e pubblicate come normali pagine web, ma che si comportano in modo simile alle applicazioni native quando utilizzate su un dispositivo mobile [Fonte Wikipedia]. Rispetto alle tradizionali web app, le PWA possono abilitare alcune funzionalità ag- giuntive. Supportano una UI più reattiva rispetto alle applicazioni web, un’alta velocità di caricamento e la possibilità interfacciarsi con alcune caratteristiche hardware, come ad esempio la fotocamera o i sensori del dispositivo. Inoltre grazie all’utilizzo dei service worker, le PWA possono controllare le richieste di rete, memorizzarle e conseguentemente migliorare le performance e fornire accesso offline ai contenuti memorizzati. Tutto questo fa si che le app web funzionino in modo più che soddisfacente anche su network di bassa qualità. A differenza delle App Native e delle App sviluppate attraverso Framework cross- platform, le PWA non sono però delle app autonome, proprio perché il loro funzionamento dipende dal browser che l’utente sta utilizzando. Ciò signiőca che, anche se queste app possono avere un icona sulla home del dispositivo, quando l’utente clicca su di essa sta in realtà aprendo il browser web, seppure senza accorgersene. [9] 2.1.3 Applicazioni ibride Le App Ibride possono essere viste come un’applicazione software che combina elementi di app native e applicazioni web. Le app ibride sono essenzialmente web app che sono state
CAPITOLO 2. APPLICAZIONE IBRIDE 21 inserite in una shell di app nativa. Una volta scaricate da un digital store e installate localmente sul device, la shell è in grado di connettersi a tutte le funzionalità fornite dalla piattaforma mobile tramite un browser incorporato nell’app. Il browser e i suoi plugin vengono eseguiti sul back-end e sono invisibili all’utente őnale. Le app ibride sono popolari perché consentono agli sviluppatori di scrivere il codice per un’app mobile una volta ed essere ospitate comunque su differenti OS. Le app ibride aggiungono un ulteriore layer tra il codice sorgente e la piattaforma di destinazione, risultando così leggermente più lente rispetto alle versioni native o web della stessa app. I principali vantaggi delle applicazioni ibride sono: • Sviluppo veloce: le app ibride possono condividere un singolo codebase su più piattaforme riducendo notevolmente i tempi di sviluppo delle app. • Più conveniente: le app ibride sono più economiche rispetto alle app native in quanto richiedono lo sviluppo di una sola code-base. A differenza delle App native, per le quali le code base sono sono due, i costi potrebbero essere quasi dimezzati. • Maintenance più semplice: la manutenzione delle app ibride risulta più sem- plice in quanto queste App utilizzano una singola codebase. • Integrazione più facile con componenti native: essendo un’applicazione che gira direttamente sul sistema operativo, è più semplice integrarsi con le componenti hardware e software degli smartphone degli utenti. [9] Analizzate le caratteristiche principali delle categorie di app è stato deciso, in accordo con l’azienda, di sviluppare un’applicazione ibrida in modo da accelerare lo sviluppo per entrambe le piattaforme mobile (Android ed iOS). Gli svantaggi di questo tipo di approccio, come una minore responsività o un’user experience meno curata rispetto ad un’applicazione nativa, sono trascurabili per l’obiettivo preposto. 2.2 Sviluppo di applicazioni cross-platform A differenza di Android Studio, il quale permette lo sviluppo di applicazioni per Android, e Xcode, per lo sviluppo di software per i sistemi macOS, iOS, iPadOS, watchOS e tvOS, per lo sviluppo del progetto alla base di questo lavoro di tesi si utilizza un approccio cross-platform, o multipiattaforma. Lo sviluppo cross-platform permette, a partire da un unico codice sorgente, di effet- tuare la distribuzione dell’applicazione risultante per più SO, in particolare sia per iOS che per Android. Si analizzano di seguito le varie tipologie di applicazioni e le principali piattaforme di sviluppo cross-platform, al őne di comprendere le motivazioni alla base degli strumenti di sviluppo scelti.
CAPITOLO 2. APPLICAZIONE IBRIDE 22 Figura 2.1: Schema riassuntivo dei diversi tipi di app
CAPITOLO 2. APPLICAZIONE IBRIDE 23 I principali framework che permettono la programmazione multi-piattaforma sono: • React Native • Xamarin • Flutter • Ionic Procedo con una rapida esamina di questi ambianti di sviluppo. 2.2.1 React Native React Native è un framework open-source e gratuito creato da Facebook, la cui prima versione è disponibile dal 2015. Il linguaggio di programmazione che utilizza è il Ja- vaScript e all’occorrenza consente di scrivere alcuni componenti in Swift, Objective-C o Java quando gli sviluppatori li richiedono; in questo modo le prestazioni fornite sono molto simili alle applicazione, ma allo stesso tempo alcune parti del codice non potranno essere riutilizzare tra le due piattaforme. I moduli React Native si associano ai controller nativi dell’interfaccia utente, il che offre un’esperienza utente molto simile alle app native. Utilizza inoltre la libreria ReactJS con ampi elementi dell’interfaccia utente e sempliőca lo sviluppo dell’interfaccia utente. La community di React è molto solida, la rete dei suoi sviluppatori è in rapida ascesa, questo sempliőca molto lo sviluppo di un progetto potendo dunque contare su un’ottima documentazione. Alcuni esempi di applicazioni sviluppare con React Native sono Facebook, Instagram, Aribnb, UberEats. [10] 2.2.2 Xamarin Xamarin nasce nel maggio 2011 e nel 2016 l’azienda viene acquistata da Microsoft che rende poi tutti i prodotti Xamarin Studio gratuiti e open-source. Utilizza C# con am- biente .net per sviluppare applicazioni Android, iOS e Mac; tutto ciò che può essere realizzato con i linguaggi nativo può essere replicato in C# con Xamarin, uno svilup- patore non può tuttavia utilizzare librerie open-source native per iOS e Android, ma è presente una vasta varietà di librerie .net che coprono questi bisogni. Xamarin si compone di tre componenti principali: • Xamarin.Android: Basato su Mono, permette lo sviluppo di app Android tramite un wrapping delle API native in C#; • Xamarin.iOS: Basato sulla libreria proprietaria MonoTouch, offre pieno supporto allo sviluppo di app iOS tramite un wrapping delle API native in C#
CAPITOLO 2. APPLICAZIONE IBRIDE 24 • Xamarin.Forms: Si pone al di sopra dei precedenti componenti e permette la piena condivisione del codice Grazie a queste componenti è possibile gestire in C# tutte le caratteristiche di An- droid e iOS, dall’interfaccia utente alle risorse hardware del dispositivo. Tale suddivisione permette di gestire la UI attraverso elementi tipici delle singole piattaforme (grazie al binding con le SDK native) e elementi deőniti in Xamarin.Forms nel caso di app cross- platform in cui è necessario mostrare agli utenti una UI più familiare. Xamarin.Forms permette inoltre di riutilizzare la quasi totalità del codice. [11] Tra le app sviluppate con Xamarin troviamo Olo, Alaska Airlines, The World Bank. 2.2.3 Flutter Flutter nasce grazie a Google nel maggio del 2017 per la creazione di interfaccia native di Android, iOS e web, nonché come metodo di sviluppo di applicazioni per Google Fuchsia. Flutter utilizza Dart, un linguaggio di programmazione molto recente che si basa su C/C++ e Java e gode di numerosi vantaggi. Proprio per questi vantaggi Flutter è in rapida crescita e si appresta a diventare leader del settore. Le prestazione delle app realizzate con Flutter sono le migliori rispetto agli altri competitors, il vantaggio è dovuto proprio alla potenza del linguaggio Dart e oltre alle prestazioni Flutter presenta anche le migliori interfacce utente. [10] Alcune tra le app sviluppate con questo framework sono Google Stadia, eBay, Grou- pon, Alibaba e molte altre. 2.2.4 Ionic Ionic è un SDK open source completo per lo sviluppo di applicazioni mobili ibride creato da Max Lynch, Ben Sperry e Adam Bradley di Drifty Co. nel 2013. Tra i framework őnora citati è l’unica che utilizza un approccio differente per la realizzazione di hybrid apps; mentre React Native, Flutter e Xamarin compilano le app in maniera nativa, Ionic utilizza Cordova (o Capacitor) per eseguire la distribuzione (deploy) in modo nativo sulle piattaforme Android, iOS e desktop o viene eseguito nel browser come una Progressive Web App. I linguaggi di programmazione utilizzati in Ionic sono HTML5, CSS (o SCSS) e Ja- vaScript (o TypeScript), il che offre il vantaggio essenziale di rendere le applicazioni "universali", infatti le applicazioni funzioneranno ugualmente bene su qualunque siste- ma operativa fornito (fatta eccezione per le componenti native inserite). Ionic inoltre supporta l’integrazione con i framework più popolari come Angular, React e Vue. Le prestazioni sono inferiori rispetto ai concorrenti, ma rimangono comunque soddi- sfacenti per applicazioni leggere.
Puoi anche leggere