Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:plim:plim_2016_2017

Environnements Logiciels pour l'Informatique Mobile

(4 ECTS)

  • De Septembre 2016 à Février 2017
  • Encadreurs et Intervenants :
    • Jean-Yves Tigli : Maître de Conférence UNS-Polytech, chercheur dans le domaine de l'Intelligence Ambiante dans le laboratoire I3S-CNRS (responsable de l'enseignement), tigli@unice.fr
    • Christel Dartigues : Maître de Conférence IUT de Nice Sophia Antipolis, chercheuse dans le domaine de la fouille de données dans le laboratoire I3S-CNRS
    • Gregory Maro : Ingénieur Sopra Steria, expert développement sur Mobile
    • Nicolas Ferry : Chercheur du SINTEF (Norvège), expert en ingénierie logicielle

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
  • utiliser votre compte Dream Spark Page d'accueil Dream Spark
  • Télécharger Visual Studio Community 2015 (si le téléchargement s'avère trop long nous ferons, utilisez les connections ethernet dans la salle Ubiquarium ou une clef USB sur le PC de l'enseignant)
Visual Studio 2015 : le développement cross-plateformes

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

Pöur le développement logiciel sur des cibles Android nous pourrons utiliser Android Studio Site de téléchargement et installation.

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

  • Introduction sur le développement d'applications mobiles :

support

Séance 1

  • Titre : Plateformes Mobiles, Wearable Computers et Spécificités du développement pour terminaux Mobiles
  • Supports : support
  • 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

Séance 3

Préparer son environnement de travail pour Xamarin

Préparation Séance 4

  • VOS PCs doivent être configurés avant la Séance ! Vous devez pour cela vous référer au Guide d'installation et Configuration.
  • 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.
  • N'oubliez pas de récupérer aussi une licence Xamarin sachant que xamarin est gratuit pour les étudiants Site de téléchargement gratuit de Xamarin Studio pour étudiants.

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
    • Exemples de traitements de données collectées : Algorithmes et Démonstrations (en liaison avec le cours Data Mining)
    • Une première Architecture Logicielle de la solution
  • 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.)
  • Les algorithmes sont alors de deux types :
    • Traitement du signal et de la mesure
      • Échantillonnage
      • Filtrage
      • Calcul de la mesure
    • Reconnaissance d'activité
      • supervisé ou non supervisé ?
      • quelle métrique ?

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

  • Titre : Tutorial sur Android et les différentes API Graphiques pour cibles hétérogènes telles que les Mobiles, les montres, les Android TV.
  • Durée : 4h
  • Intervenant: Grégory Marro
  • Outils Logiciels : Android Studio

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

  • Titre : Tutorial : Accès Web Service (accès synchrone / asynchrone) sous Android
  • Supports :
  • Durée : 4h
  • Intervenant:
  • Outils Logiciels :
  • Autres références :

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):

  • Un nombre est dit de Armstrong (ou narcissique) un entier naturel qui est égal à la somme des cubes des chiffres qui le composent. Par exemple 153 (153 = 1^3 + 5^3 + 3^3) est un nombre de Armstrong.

Combien de nombre de Armstrong sont compris entre 0 et 10.000 ?

  • Rechercher des nombres premiers entre 2 bornes fournies. Indiquer leur valeur et les dénombrer.

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

  • On connaît plus Flavius Josèphe comme historien du premier siècle de notre ère que comme l'initiateur d'un problème de mathématiques.

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

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.

  • Titre : Introduction à SpriteKit et tutorial sous iOS
  • Durée : 4h
  • Intervenant:
  • Outils Logiciels :
  • Autres références :

Séance 16

  • Titre : Examen écrit sur le module
  • Durée : 2h
  • Intervenant :
  • Outils Logiciels :
  • Autres références :

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

cours/plim/plim_2016_2017.txt · Dernière modification: 2017/05/07 11:13 par tigli