====== Environnements Logiciels pour l'Informatique Mobile ====== ==(4 ECTS)== {{ :cours:plim:mobile-app-design.jpg?200|}} ** Septembre 2018 à Février 2019 ** == Liste des Intervenants prévus == * **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 * **Laurent Pastorelli** : Ingénieur, Expert développement sur Mobile, Android * **Kinan Arnaout** : Ingénieur, Expert développement sur Mobile, IoS/Swift * **Macha DaCosta ** : Ingénieur, Expert développement sur Mobile, Kotlin {{ :cours:plim:google-glass-98440_640.png?150|}} {{ :cours:plim:smartwatch.jpg?110|}} ---- ====== PROJET PEDAGOGIQUE ====== ==== SUIVI DE PROJET ==== [[cours:elim:elim1819:suivi_proj|Pages Web, dépôt et suivi de projet]] ATTENTION : C'est sur cette page que vous trouverez les différentes pages à déposer sur le Wiki/Github de votre projet et les dates de rendu ==== GANTT du PROJET et du COURS ==== L'utilisation d'un GANTT sous Excel n'est pas indispensable selon les outils méthodologiques que vous utilisez. Pour ceux qui néanmoins ne seraient pas familier avec ces outils, un GANTT (modifié itérativement) et des backlogs justificatifs de ces modifications en fin de chaque sprint peuvent servir de documents de suivi minimalistes. {{:cours:plim:gantt_elim_17_18.xlsx| Exemple de GANTT 2017 2018 à compléter avec le planning de projet par groupe pour 2018 2019}} {{:cours:plim:edt_elim18_19_final.xlsx|Planning 2018-2019 du module}} ---- ======= PROGRAMME ET SUPPORT DU MODULE ======= ==== Séance 1 ==== ---- * Titre : [[cours:plim:17_18:seance1_elim_17_18|Plateformes Mobiles, Wearable Computers et Spécificités du développement pour terminaux Mobiles]] ==== Séance 2 ==== ---- * Titre : [[cours:plim:17_18:seance2_elim_17_18|Introduction au Cross Développement pour terminaux mobiles : Web responsive design, WebApp et Développement Cross Plateformes]] * Résumé : * Type d'intervention : Cours et Tutoriaux ==== Séance 3 ==== ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : [[cours:plim:17_18:seance3_elim_17_18|Applications Mobiles et Machine Learning]] * Résumé : * Type d'intervention : Cours et Conseils pour votre Projet * Supports de Cours : {{:cours:plim:intro_data_mining.pdf|Introduction au Data Mining et exemples d'application}} ==== Séance 4 ==== ---- * 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. * Supports : {{:cours:plim:patterns_logiciels_associes_au_developpement_sur_terminaux_mobiles-2017.pdf|Patterns logiciels}} || {{:cours:plim:introduction_aux_applications_mobiles-2017.pdf| Introduction app mobiles}} * Durée : 4h * Intervenant: Laurent Pastorelli ==== Séance 5 ==== ---- {{:cours:plim:logo_android.png?70|}} * Titre : Introduction Android * Présentation des environnements de développement * niveaux d'API et spécificités * Présentation de différentes cibles du marché telles que les Box Android TV (linback TV)avec leurs moniteurs, les lunettes Android, les montres android ... * Définition des Groupes de Projet Android et caractérisation de la cible utilisée pour le projet (Niveau d'API, version Android, caractéristiques de la cibles, capteurs utilisés) * Supports : {{:cours:plim:android_-_introduction.pdf|Android - introduction}} * Durée : 4h * Intervenant: Laurent Pastorelli * Outils Logiciels : Android Studio (a installer sur vos postes : [[https://developer.android.com/studio/install.html]]) * Autre références : * Contrôle de l'émulateur Android : [[https://developer.android.com/studio/run/emulator-commandline.html]] * [[https://developer.android.com/guide/topics/permissions/normal-permissions.html|Permissions normales]] * [[https://developer.android.com/guide/topics/permissions/requesting.html#normal-dangerous|Permissions dangeureuses]] ==== Séance 6 ==== ---- {{:cours:plim:logo_android.png?70|}} * Titre : Tutorial : Accès Web Service (accès synchrone / asynchrone) sous Android. * Supports : {{:cours:plim:synchronisation_des_applications_mobiles.pdf|Synchronisation des applications mobiles}} * Durée : 4h * Intervenant: Laurent Pastorelli * Outils Logiciels : [[https://developer.android.com/studio/install.html|Android Studio]] * [[https://developers.themoviedb.org/3/getting-started/introduction|The Movie Data Base API]] * [[https://square.github.io/retrofit/|Retrofit (HTTP Client for Android Java)]], [[ https://www.journaldev.com/13639/retrofit-android-example-tutorial| exemples de tutorial]] * [[http://www.jsonschema2pojo.org/|POJO generator]] * [[http://square.github.io/picasso/|Picasso]] * Exemple {{:cours:plim:tmbd_api_data_model.zip|TBM Data Model API}} ==== Séance 7 ==== ---- {{:cours:plim:logo_android.png?70|}} * Durée : 4h * Intervenant: Laurent Pastorelli * Outils Logiciels : Android Studio * Titre : Tutorial : SDK et accès aux capteurs/actionneurs sur les cibles Android * [[https://developer.android.com/reference/android/hardware/SensorManager|Sensor manager]] * [[https://developer.android.com/reference/android/content/Context.html#getSystemService(java.lang.String)|System services(from context)]] * [[https://codelabs.developers.google.com/codelabs/constraint-layout/index.html|Constraint layouts]] * [[https://developer.android.com/guide/topics/ui/custom-components|Custom views]] * Exemple d'application : {{:cours:plim:elimsensorapp.zip|A décompresser dans le répertoire de vos projets Android Studio et à importer}} * Autres Supports : {{:cours:plim:android_-_capteurs_actionneurs_et_vues.pdf|Android - Capteurs, actionneurs et vues}} ==== Séance 8 : 07/11/18 ==== ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : Revue de Projet * Durée : 4h * Intervenant: Jean-Yves Tigli Cette séance est ** une séance classique ** d'avancement de votre projet qui devrait déboucher sur un premier ou second prototype à partir des spécifications que vous aurez définies. ** Votre présence est donc requise de 8:00 à 12:15 **. Cette séance démarrera par un QCM avec des questions ouvertes sur les principales caractéristiques de votre projet histoire de diminuer la durée des entretiens. Une note individuelle vous sera ainsi attribuée. Elle sera ensuite ponctuée par un audit de l'enseignant responsable du module sur l'état d'avancement de votre projet. AUCUN TRAVAIL SPECIFIQUE N'EST DEMANDE. Vous aurez 15 à 20 min. pour présenter l'avancement de votre projet en utilisant * vos pages dokuwiki Github, * tout ou partie de l'application logicielle déjà développée, * un démonstrateur sur votre téléphone (pour les plus avancés). Une note de groupe de projet vous sera ainsi attribuée. ==== Séance 9 ==== ---- {{:cours:plim:ios_logo.png?70|}} * Titre : Cours et Démonstrations : présentation environnement de dev Apple : Xcode / Objective C / Swift * Supports : {{:cours:plim:iam_1.pdf|Cours IoS 1}}, {{:cours:plim:iam_2.pdf|Cours IoS 2}}, {{:cours:plim:iam_3.pdf|Cours IoS 3}}, {{:cours:plim:td_ios.pdf|Cours TD IoS}} * Durée : 4h * Intervenant: Kinan Arnaout * Outils Logiciels : Xcode * Autres références : https://swiftlang.ng.bluemix.net/#/repl [[cours:plim:archives1718:IoS|Archives]] ==== Séance 10 ==== ---- ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : Revue de Projet sur la partie machine learning * Durée : 2h * Intervenant : Séance non encadrée * Titre : Revue de Projet sur la partie machine learning * Durée : 2h (10:15-12:15) * Intervenant : Christel Dartigues ==== Séance 11 ==== ---- {{:cours:plim:ios_logo.png?70|}} * Titre : Tutorial 2 : programmation Swift, accès capteurs/actionneurs, création de listes - iOS - Notifications et SpriteKit * Supports : {{:cours:plim:iam_1.pdf|Cours IoS 1}}, {{:cours:plim:iam_2.pdf|Cours IoS 2}}, {{:cours:plim:iam_3.pdf|Cours IoS 3}}, {{:cours:plim:td_ios.pdf|Cours TD IoS}} * Durée : 4h * Intervenant: Kinan Arnaout * Outils Logiciels : XCode * Autres références : [[https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html|Liste des permissions (comprend également les permission MacOS)]] ==== Séance 12 ==== ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : Revue de Projet * Durée : 4h * Intervenant : Jean-Yves Tigli ==== Séance 13 ==== ---- {{:cours:plim:kotlin.png?100|}} * Titre : Développement avec le langage Kotlin * Supports : [[https://kotlinlang.org/|Kotlin programing language]] * Durée : 4h * Intervenant: Macha Dacosta * Outils Logiciels : Android Studio ou autre * Autres références : [[https://kotlinlang.org/|Kotlin programing language]] ==== Séance 14 ==== ---- {{:cours:plim:kotlin.png?100|}} * Titre : Développement avec le langage Kotlin * Supports : [[https://kotlinlang.org/|Kotlin programing language]] * Durée : 4h * Intervenant: Macha Dacosta * Outils Logiciels : Android Studio ou autre * Autres références : [[https://kotlinlang.org/|Kotlin programing language]] ==== Séance 15 ==== ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : Finalisation de Projet * Durée : 4h * Intervenant : Jean-Yves Tigli un QCM sur la partie IoS et Kotlin se fera durant cette séance la première après cette dernière session sur les environnements de développement logiciel pour mobile. ==== Séance 16 ==== ---- {{:cours:plim:project-puzzle-pieces.jpg?150|}} * Titre : Revue finale de Projet * Durée : 4h * Intervenant : Jean-Yves Tigli ** L'épreuve se déroulera sous la forme d'auditions par groupe avec des questions individuelles à chaque membre du grouge sur une durée de 15 à 20 min. ** AUCUN TRAVAIL SUPPLEMENTAIRE N'EST DEMANDE (pas de vidéo, de slides etc.), juste une organisation dans la présentation de votre travail. Vous aurez autour de 10 à 20 min (selon le temps consacré dans edt à l'évaluation de tous les projets) pour * présenter votre projet en utilisant vos pages Wiki de Github, et ce que vous aurez produit pour la présentation de votre projet * En particulier, à partir de la documentation du Wiki de GitHub sur d'installation et le déploiement de votre solution, vous montrerez sur un "nouveau" téléphone les étapes de sa mise en oeuvre. * faire une démonstration scénarisée avec un de vos téléphones afin de montrer la robustesse de votre solution et son réalisme. Vous répondrez ensuite, individuellement à une série de question afin d'évaluer votre investissement et vos compétences techniques personnels Une note de groupe de projet vous sera ainsi attribuée pondérée par les évaluations individuelles. ** Liste et Horaires de passage ** {{:cours:plim:planning_revue_finale_de_projets_elim_2019.pdf|planning de la revue finale des projets elim_2019}} ---- ===== Mode d'Evaluation du Cours ===== ||| 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 * ... * [[cours:plim:details_eval_elim|Rappel des Détails donnés en cours]] ===== Annexes ===== == Liste des Sujets de Projet 2016 - 2017 == * A titre indicatif : **Template de Page de Projet**, [[projets:plim:template_rendu| Template de Page DokuWiki de Rendu de projet (in english) ]] == Groupes, Projets et Sujets == ||| [[cours:plim:projet_plim_1516|Liste des Groupes et Projets ]] == 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 : * [[https://en.wikipedia.org/wiki/International_Symposium_on_Wearable_Computers|International Symposium on Wearable Computers (ISWC) depuis 1997]] * [[http://www.ubicomp.org/ubicomp2013/pastubicomps.php|UbiComp depuis 2001]] 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 == [[https://www.tigli.fr/doku.php?id=cours:plim:plim_2015_2016|Pages Web 2015 2016]] [[http://www.tigli.fr/doku.php?id=cours:plim:plim_2017_2018|Pages Web 2017 2018]] == Evolutions Futures == [[https://www.tigli.fr/doku.php?id=cours:plim:plim_2017_2018|Cours PLIM 2017 2018]] [[cours:plim:plim_18_19_other|others]] == Un rapide Survey de Plateformes == Ce module a pour objectif de vous former au développement natif. L'expertise attendue en sortie de module est la capacité de développer des portions de code natif pour des fonctionnalités très particulières (ex. accès à des capteurs spécifiques) que ne vous fourniront pas les plateformes du marché et que vous pourrez "wrapper" sur de telles plateformes. {{:cours:plim:flutter-mark-square-100.png?40|https://flutter.io/}} [[https://flutter.io/|FLUTTER]] Flutter is Google's mobile app for high-quality native SDK for iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source {{:cours:plim:react_native.jpg?40|}} [[https://facebook.github.io/react-native/|REACT NATIVE]] == Autres Pointeurs == * [[cours:plim:Tutoriaux_plim_1415_collecte_info_capteurs|Collecte des Informations Capteurs sous Windows Phone]] * [[cours:plim:Tutoriaux_plim_1415_GUI|Interfaces Graphiques sous Windows Phone * [cours:plim:Librairies_et_tutoriaux__plim_1415_Machine_Learning_sous_Windows_et_Windows_Phone|Tutoriaux de Machine Learning sous Windows Phone]] ----