.Lo sviluppo dell’IoT (Internet of Things) sta generando un notevole mercato per gli sviluppatori software object oriented che, conoscendo i principi architetturali del contesto su illustrato, siano in grado di sviluppare App dedicate a specifici problemi in grado di dialogare con dispositivi esterni (Esempio RFID Bluetooth o sensori di varia natura) e comunicare con il Cloud (o server locali) per eseguire procedure locali e/o trasferire dati e informazioni.
In questo contesto è perciò necessario restare aggiornati e non perdere le opportunità offerte dal mercato e un buon modo per farlo è acquisire tutte le conoscenze e competenze necessari a progettare e realizzare App.
Il mercato degli SmartPhone e Tablet indica Google Android come tecnologia più diffusa sia per l’area consumer che per quella industriale seguita da Apple iOS nell’area consumer. Microsoft al momento sta cambiando tecnologie e ha un mercato ridotto sui Windows Phone ma ha un buon mercato sui PC.
Osservando la diffusione dei sistemi operativi per SmartPhone e Tablet in Italia da aprile 2016 ad aprile 2017 (secondo StartCouter) è la seguente: Google Android 63%, Apple iOS 32,14%, Microsoft Windows 4,01, gli altri sono sotto 1%.
Queste informazioni ci spingono ad affermare che volendo sviluppare un’App sicuramente Google Android è un buon candidato tenendo conto che molti ambieti IoT usano Android.
OBIETTIVI
Il corso si pone come obiettivo quello di far acquisire le competenze necessarie allo sviluppo di App n-tier in ambiente Google Android funzionanti in un contesto complesso Client Server, utilizzando come ambiente di sviluppo Java con Android Studio.
ARGOMENTI
A) Paradigma Object Oriented e Java: utilizzando diversi esempi pratici verranno ripresi i concetti di oggetti e classi in particolare si specificheranno i concetti di incapsulamento, ereditarietà e polimorfismo. Si utilizzerà il linguaggio di programmazione Java e le principali librerie di classi. Verranno introdotti le funzionalità per scrittura e lettura file, la serializzazione e deserializzazione XML e Json di un oggetto, la gestione delle eccezioni e la programmazione asincrona multi thread e multi processo. Verranno fornite tutte le indicazioni sui siti Web di documentazione ufficiale per tutti gli argomenti che verranno tratti nel corso. Per le lezioni ed esercitazioni si useranno diagrammi UML, Eclipse con Java#. Gli esempi verranno gestiti tramite metodologia Agile.
B) App Android - Attraverso esempi pratici verranno illustrati i seguenti argomenti: 1) Creare un progetto in Android Studio e scoprire la struttura di un’App Android e delle Activity; 2) Come debbuggare e monitorare un’App; 3) Ciclo di vita di un’Activity; 4) Creare una semplice interfaccia tramite una gerarchia di “ViewGroup” e “View” con TextBox, EditText e Button; 4) Eseguire l’App; 5) La rappresentazione AXML delle interfacce; 6) La gestione degli eventi; 7) Modificare l’App per attivare un’altra Activity e passargli dei dati tramite “Intent” e ricevere dati di ritorno dall’Activity attivata; 8) Inviare messaggi a video; 9) Il Manifesto Android e le Autorizzazioni; 10) Supportare diversi devices, diverse definizioni di video e diverse versioni di sistema operativo; 11) Salvataggio dei dati; 12) Creare la distribuzione dell’APP tramite la creazione del file .APK.
C) Interfaccia, http e Job in backgroud - con l’uso di diversi esempi pratici verranno illustrati i seguenti argomenti: 1) Gestione delle Immagini e dei video; 2) Approfondimenti sui layout ed i widget per la gestione dell’esperienza utente; 3) Creazione e gestione delle barre di sistema, di stato e di navigazione; 4) Separazione tra interfaccia utente e applicazione; 5) Dialogare con il Web inviando e ricevendo dati attraverso le code di messaggi Volley; 6) Gestire lo stato della rete; 7) Gestire i dati GPS via Location in un’App in Backgroud; La distribuzione dell’APP ad Hoc o via Google Play.
PREREQUISITI
Conoscenza almeno delle basi di programmazione Object Oriented con C# o Java o C++; Completa autonomia nell’uso di PC con Windows 10, nell’uso di SmartPhone Android o iOS o Windows, nell’uso di Internet, nell’uso di Strumenti di Office quali Word ed Excel.
Durata ore:
80