====== Progettazione di Applicazioni Web e Mobili ====== ===== News ===== ---- ===== Informazioni Generali ===== **Docenti**: Diego Bonura [[diego.bonura@unicam.it]] **Ricevimento studenti**: da concordare a fine della lezione **Link classroom**: https://classroom.google.com/c/MjM3NzQ2NzMwNTcx?cjc=ijjqhdr ---- ===== Obiettivi del Corso ===== Fornire le conoscenze di basi della progettazione di applicazioni web e mobile con particolare riferimento a * architetture software * strumenti di sviluppo * elementi di sicurezza ---- ===== Contenuti del Corso ===== Web: * Architetture software (MVC/SPA/frontend/backend) * Strumenti di sviluppo e testing(TTD Development e End2End Testing) * Version control * Servizi restful/SOAP - Interoperabilità * Html5 e Css3 * Linguaggi di Front end e Backend * NodeJS come backend framework * Framework frontend * Vulnerabilità nella applicazioni web Mobile: * Architetture software (native/hybrid/web app) * Strumenti per il mockup * Strumenti per la prototipazione * WebContainer e Javascript * Unit test e End2End test * Build e Deploy * Beacons / Image recognition / GPS Indoor / Realtà Aumentata ---- ===== Materiale ===== **Link a WebEx 2020/2021** * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/71ce35603f764dd4b6befa01cefcec0d|Lezione del 5 Ottobre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/2533c00fc69a4a0a81af00dc08c43a52|Lezione del 12 Ottobre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/5d1f9e7b39284d8db22ec15fc529ef4a|Lezione del 19 Ottobre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/4dc1c9802bb5408b966a26b22e87f2c4|Lezione del 26 Ottobre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/fd12bcb72c664a05adcba49afb266ddb|Lezione del 9 Novembre (prima parte)]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/7c0e0249c32441e99fb8192e2caa7799|Lezione del 9 Novembre (seconda parte)]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/bbb3e00ab58541148f10ce5d3d106db3|Lezione del 16 Novembre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/c8aea9365df14bcbb9938a664676e5d4|Lezione del 23 Novembre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/4b03f608e84c4ef3b3b9fe8ae83f9128|Lezione del 30 Novembre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/8a8c84e0040848e2b673bb1a113a5787|Lezione del 14 Dicembre (prima parte)]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/5611c189effc4d0d994469cd2ac53c38|Lezione del 14 Dicembre (seconda parte)]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/b12ca6564cfc41018f4ae41096740d64|Lezione del 21 Dicembre]] * [[https://unicam.webex.com/recordingservice/sites/unicam/recording/playback/c29566dc18eb469a8b29e6b2e0524245|Lezione del 11 Gennaio]] **Slide del Corso Anno Accademico 2020/2021** * {{ :didattica:triennale:pawm:ay_2021:lezione_del_5_ottobre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_12_ottobre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_19_ottobre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_26_ottobre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_9_novembre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_16_novembre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_23_novembre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_30_novembre_2020.pdf |}} * {{ :didattica:triennale:pawm:ay_2021:lezione_del_14_dicembre_2020.pdf |}} * [[https://github.com/meriturva/CorsExample|Repo esempio CORS]] * [[https://github.com/meriturva/XssExample|Repo esempio XSS]] * [[https://github.com/meriturva/jwtExample|Repo esempio JWT]] **Testi di Riferimento** All'interno delle slides sono presenti a molte risorse disponibili online per approfondimenti dei contenuti del corso. In particolare per approfondimenti sugli standard HTTP/HTML si può fare riferimento a: [[https://developer.mozilla.org/en-US/docs/Web/HTTP|Documentazione per Developer Mozilla]] Per quanto riguarda la conoscenza di Javascript può essere utile consultare il volume: **JavaScript: The Good Parts** Douglas Crockford Editore: O'Reilly Media, Inc, USA Anno: 2008 EAN: 978059 **MOBILE DEVELOPER‘S GUIDE TO THE GALAXY** : https://www.open-xchange.com/fileadmin/user_upload/Resources_Pages/Mobile_Developers_Guide/Mobile_Developers_Guide_17thEdition_Web.pdf Repository GitHub per l'applicazione Node JS [[https://github.com/mccalv/unicam ]] ** Alcuni canali twitter interessanti ** : @googledevs @windowsdev @aspnet @dotnet @VisualStudio @code @typescriptlang @getbootstrap @angular @ionicframework @xamarinhq @nativescript ---- ===== Esami ===== L'esame consiste nella presentazione di un'applicazione web su un tema scelto dai candidati (può essere condotta da una o più persone fino ad un massimo di 4) che abbia le seguente caratteristiche: * Sia fruibile in modalità web anche da dispositivi mobile oppure sia una app mobile (ionic, xamarin, nativescript, react native, flutter...) * Implementi un pattern MVC o Single Page Application * Abbia un backend ed un DBMS per il popolamento dei dati Per poter sostenere l'esame sarà necessario presentare una descrizione di base del progetto e delle tecnologie scelte (max 4 pagine) e link al repository github/bitbucket/gitlab (non si accettano allegati contenenti codice sorgente) almeno una settimana prima dell'esame all'indirizzo diego.bonura@unicam.it . Si ricorda che si potrà lavorare al codice del progetto sul repository github/bitbucket/gitlab anche dopo la consegna. Completeranno l'esame alcune domande orali.