====== 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.