(4 ECTS)
Outils de développement pour le module
Préparation des séances par les étudiants
Chaque séance nécessite que votre PC soit opérationnel pour les travaux pratiques.
En conséquence tous les outils nécessaires pour chaque séance (Cf. les paragraphes sur chacune des séances)soient bien préinstallés. Toutes les indications pour ces installations vous sont normalement donnés. Si certaines difficultés venaient à survenir, prenez contact avec vos encadreurs plusieurs jours avant la séance concernée, par email avec pour sujet : “[PLIM INSTALL PB]”.
Matériel de TP
Pour les binômes d'étudiants ne disposant pas de smart phone, l'Ecole dispose de :
7 HTC S8
2 Nokia Lumia 900
Ces deux types de téléphone fontionne sous Windows Phone 8. La première manipulation sera donc de les upgrader si possible en version Windows 10 pour obtenir un environnement notamment utilisable avec Xamarin.
Les développements se feront alors avec Visual Studio 2015.
Environnements de Développement
Installation de Visual Studio 2015
Visual Studio 2015 permet maintenant de développer en C# pour des cibles microsoft mais aussi IoS et Android grâce à la plateforme de cross-développement Xamarin.
Visual studio 2015 with Xamarin
Android Studio
Xcode pour cibles iOS
Xcode propose aux développeurs l'environnement de développement intégré de référence pour la création d'applications pour Mac, iPhone et iPad. Le logiciel dispose d'une interface qui unifie design, programmation, tests et débogage le tout dans une simple fenêtre.
Xcode analyse les détails des projets afin d'y repérer de erreurs de syntaxe et de logique et vous aider à corriger le code en fonction.
Enfin, Xcode intègre d’autres outils tels que Instruments, iOS Simulator, les SDK iOS et Mac OS X, etc.
Calendrier 2016 - 2017 du module
APP & Projet
Dans le cadre d'une approche apprentissage par projet (APP) le module sera jalonné par le développement d'un projet en binôme . Pour cela il vous faudra identifier une cible, en choix d'environnement de développement justifié , un certain nombre de capteurs et/ou de sondes sur votre cible, accessibles au travers un SDK disponible dans l'environnement que vous aurez choisi.
Guidelines du projet :
Le projet a pour objectif de réutiliser l'ensemble des notions qui sont introduites durant le module. Etant donné les autres modules d'enseignement sur les IHMs, nous nous concentrerons sur les aspects architecturaux, gestion de l'énergie et des communications, collecte de données capteurs etc. Il ne sera pas interdit de prévoir une GUI sur le téléphone mais cela ne doit représenter qui petite partie du travail.
Le projet type doit ainsi :
Collecter des données capteurs (ex. température, GPS, accéléromètre, niveau de batterie …) ou issue de sondes systèmes (liste des SSID Bluetooth disponible, liste des appels téléphoniques, liste des taux d'utilisation des applications, etc.). Les difficultés sont alors :
la fréquence de récupération des données (ex. périodique de durée à fixer, sporadique sous conditions)
la minimisation de la consommation énergétique malgré une collecte permanente de données (ex. réveil de l'application voire du Smart Phone, …)
Stockage des données dans une base de données locale, à minima un cache pour anticiper sur des communications intermittentes et asynchrones
Client Web pour une transmission des données par paquets vers un serveur Web de stockage à distance (ex. Base de données)
Application sur le serveur pour l'exportation des données collectées au format csv et autres …
Application sur le serveur pour le traitement des données (ex. algorithmes de classification par apprentissage comme le K-means) et l'exportation des résultats format csv et autres …
Application Cliente (ici ça peut-être une Web App ou Application Hybride) pour le renvoi de résultats sur le Smart Phone au travers une interface graphique simple mais “responsive”
Groupes de Projet
Programme et Support du Module
Séance 1
Titre : Plateformes Mobiles, Wearable Computers et Spécificités du développement pour terminaux Mobiles
-
Durée : 3h
Intervenant: Jean-Yves Tigli
Outils Logiciels :
Résumé
Le développement logiciel pour Mobile repose avant tout sur le concept de marché.
Vos applications doivent cibler un nombre plus ou moins important de cibles comme Android, iOS et parfois même Windows Phone. Ce choix est à mettre en regard des efforts plus ou moins importants qui doivent être faits pour un développement multi-cibles.
Vos développement doivent réduire au maximum le “time to market” dans un contexte ou les applications sont parfois minimalistes, gratuites et vote obsolètes.
Le développement pour Mobile pose encore aujourd'hui de réels problèmes de choix de plateforme de développement. Si le développement sur terminaux fixes, connectés et alimentés en permanence permettent de converger vers des solutions bénéficiant de ressources génériques et illimitées au travers les connexion à distance, nombreuses sont les limitations sur terminaux mobiles.
La consommation énergétique : elle doit être limitée et donc peut justifié des développements natifs (code exécutable et IHM) moins confortables et portables pour optimiser la consommation à performance égale,
La gestion des connexions intermittentes : les connexions wireless sont souvent fournies par les opérateurs de téléphonie mobile (ex. 3G/4G). La continuité et/ou débit minimal n'étant pas garantie pour les applications sur terminaux mobiles, la gestion des connexions intermittentes rend complexe le développement d'applications mobiles (gestion d'un cache, fréquences des communications versus traitements locaux au terminal)
Des développements d'IHM plus ou moins spécifiques adaptées au “responsive design”, à l'optimisation des performances et la gestion des contraintes ci-dessus. Les choix de plateforme de développement peuvent alors s'étendre des WebApp (aussi mise en oeuvre sur des terminaux fixes) jusqu'aux applications natives en passant par des approches dites hybrides.
Les terminaux mobiles sont des cibles logicielles très hétérogènes de par leurs
OS, leurs frameworks liés à leurs spécificités matérielles. Alors que les constructeurs matériels cherchent toujours plus d'originalité pour rendre leurs produits attractifs, les constructeurs logicielles quant à eux essayent de factoriser au plus les développements. Cela conduit les concepteurs logiciels sur terminaux mobiles à gérer ce paradoxe depuis le développement très générique type HTML5, au développement très spécifique lié à chaque
OS et niveau d'
API, en passant par différentes solutions de cross développement. Tous ces choix dépendent des contraintes de l'application développée et des accès plus ou moins spécifiques aux fonctionnalités du smart phone.
Références
Séance 2
Titre : Patterns Logiciels associés au développement sur terminaux mobiles - Diffusion des applications mobiles et App Stores. Tout d'abord, nous nous intéresserons aux aspects architecture avec les patterns logiciels qui composent les applications mobiles. Ensuite, nous ferons un état des lieux sur les différents mode de diffusion des applications mobiles.
-
Durée : 4h
Intervenant: Grégory MARRO
Séance 3
Titre : Introduction au Cross Développement pour terminaux mobiles, démonstration sur Xamarin
Résumé :
Type d'intervention : Cours et Démonstrations
-
Durée : 4h
Intervenant: J.-Y. Tigli
Quelques liens sur la plateforme Xamarin :
-
Site des Composants Xamarin, pour télécharger composants, plugins, librairies pour toutes les plateformes IoS, Windows Phone, Android de toute sorte comme les Google glass (Glass Development Kit - GDK).
-
Préparer son environnement de travail pour Xamarin
Préparation Séance 4
-
Pour travailler avec des applications Windows et Android, il vous faudra un ordinateur de développement Windows où Visual Studio 2015 et Xamarin 4 sont installés.
Pour travailler avec des applications iOS, il vous faudra un Mac avec OSX Yosemite (10.10.5) ou ultérieur et où Xcode et Xamarin sont installés.
-
Séance 4
Séance 5
Exam Séance 4
La séance 5 démarrera par un test écrit sur le Cross Développement et Xamarin
Contenu Séance 5
Titre : Mini Projet : Collecte de données sur Mobile, Stockage et Traitement de données
Supports :
Durée : 4h
Rendu : Une fiche technique sera rendu par chaque groupe dans un délai de 5 jours spécifiant :
le nom des partenaires du projet
le sujet et le descriptif général du projet de collecte de données capteurs,
les caractéristiques techniques de la cible mobile du projet
l'
OS et le framework utilisé pour le développement du projet (Les groupes sont libres de choisir leur
OS/cible/framework préféré. Noton néanmoins que les tutoriaux suivant cette séance détaillent les différents éléments architecturaux sous android)
l'architecture logicielle de la solution
un planning de développement et de TEST associés au projet (le planning devra suivre une méthodologie qui ne néglige pas des phases d'expérimentation et de collecte de données réelles sur le terrain !)
Intervenant:
Outils Logiciels :
Autres références :
Rendu Séance 5
A l'issu de cette séance vous devez :
vous grouper par 2 sur votre sujet de projet
Définir le sujet de projet :
Ecrire un scénario d'utilisation sur 10 lignes max
Définir la cible mobile que vous allez utiliser
Définir l'environnement logiciel que vous allez utiliser
Définir l'activité que vous allez reconnaitre et utiliser
Définir les capteurs que vous allez utiliser
Définir les algorithmes que vous allez mettre en œuvre
Vérifier la faisabilité de vos choix en énumérant les solutions technologiques et surtout logicielles qui seront mises en œuvre (ex. accès à l'information à partir des SDK disponibles etc.)
TOUTES CES INFORMATIONS SERONT RASSEMBLEES DANS UNE FICHE QUI RESPECTERA CETTE STRUCTURE.
LES FICHES SERONT ENSUITE ENVOYEES sous forme d'un fichier .docx attaché à un mail destiné à tigli@unice.fr, dont le sujet sera : [PROJET ELIM] [Login_1_du binôme] [Login_2_du binôme].
Tout non respect de ces règles sera pénalisé par des points en moins dans l'évaluation de ce travail.
LA DATE LIMITE DE RENDU de CE TRAVAIL sera le 24 octobre minuit, l'essentiel du travail ayant été fait en séance.
Séance 6
Séance 7
Séance 8
Titre : Tutorial : SDK et accès aux capteurs/actionneurs sur les cibles Android
-
Durée : 4h
Intervenant: Grégory Marro
Outils Logiciels : Android Studio
Séance 9
Séance 10
Titre : Autres Tutoriaux Android:
Base de données light sur Mobile
Gestion des connexions intermittentes, gestion de mise en cache et des synchronisations
-
Durée : 4h
Intervenant: Grégory Marro
Outils Logiciels : Android Studio
Séance 11
Titre : Présentation du projet Android par les groupes de travail
Supports : Fournis par les étudiants : Vidéos, Démonstrations
Modalités : Auditions individuelles
Durée : 4h
Intervenants Auditeurs : J.-Y. Tigli, G. Marro, C. Dartigues
Autres références :
Séance 12
Pour ceux qui ont de l'avance, vous pouvez résoudre ces problèmes en utilisant Swift (issus du BattleCode Sopra Steria 2016):
Combien de nombre de Armstrong sont compris entre 0 et 10.000 ?
Exemple pour la borne minimum valeur 5 et la borne maximum de valeur 12. Indiquer:
“il y a 3 nombres premiers”
“les valeurs sont 5, 7, 11”
Donner les réponses pour les bornes :
- 18 à 38
- 123 à 234
Il serait né à Jérusalem en 37 ou 38. Il alla à Rome défendre des juifs déportés par ordre du procurateur Félix. De retour en Judée, il prêcha d'abord la modération à ses coreligionnaires impatients de secouer le joug romain mais finit par participer aux révoltes et fut assiégé avec ses compatriotes dans la forteresse de Jotapata en 67. C'est là qu'apparut, dit-on, le problème qui porte son nom.
La citadelle ayant été prise, il se retrouva bloqué dans une cave avec 40 autres compagnons ; les extrémistes du groupe persuadèrent l'ensemble de se tuer pour ne pas tomber aux mains des Romains. Ne partageant pas ce point de vue mais n'osant s'opposer au groupe, Josèphe proposa que l'on se mette en cercle et que chaque troisième personne soit tuée, la dernière devant se suicider.
Josèphe pas très enthousiaste à l'idée de mourir, trouva rapidement la bonne place pour rester en vie. L'histoire dit qu'un complice l'y aida…
Quelle était sa position ?
NB : le premier soldat tué est le premier de la ronde.
Séance 13
Titre : TP de programmation iOS : Prise en main de XCode, applications utilisant les Segues, Actions et Outlet
Supports :
Durée : 4h
Intervenant: Grégory Marro
Outils Logiciels : XCode
Autres références :
Séance 14
Titre : Tutorial 2 : programmation Swift, accès capteurs/actionneurs, création de listes
-
Durée : 4h
Intervenant: Grégory Marro
Outils Logiciels : XCode
-
Séance 15
Evaluation
Cette séance fera l'objet d'une évaluation de type QCM à la fois sur Android et sur iOS. L'objectif de ces questions est de valider votre compréhension du développement d'une application sur ces plateformes, ainsi que vérifier que certains concepts ont bien été intégrés.
-
-
Séance 16
Autres Pointeurs
Liste des Sujets de Projet 2016 - 2017
Groupes, Projets et Sujets
Mode d'Evaluation
Les modalités d'évaluation du module sont conformes au régime du “contrôle continu”.
En conséquences, les intervenants pourront évaluer tout ou partie des étudiants à chaque séance dans le but de leur retourner des indicateurs fréquents sur leur progression et leur degré d'assimilation des connaissances et compétences transmises dans le module.
Ces évaluations pourront prendre la forme de :
QCMs sur les cours, TDs et Projets
Suivi de Projet et de Travaux pratiques sur l'état d'avancement des étudiants en fin de séance
Soutenances d'avancement de TD et Projet
…
Principales Références en Recherche sur le Domaine
Pour suivre les avancées de la recherche sur les plateformes mobiles et les nouvelles applications les deux plus grandes conférences sont :
Les deux conférences sont regroupées depuis 2013 et permettent ainsi de suivre les évolutions du domaine avec une seule et grande réunion annuelle.
Bien sur le CES de Las Vegas est aussi une manifestation majeure du domaine annuelle et internationale. Il s'agit alors plus de présentations des dernières innovations industrielles que des dernières avancées en recherche.
Page Web années précédentes
Evolutions Futures