====== Environnements Logiciels pour l'Informatique Mobile ====== ==(4 ECTS)== {{ :cours:plim:mobile-app-design.jpg?200|}} ** Septembre 2017 à Février 2018 ** == Liste des 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 * **Gaëtan Rey** : Maître de Conférence UNS-Polytech, chercheur dans le domaine de l'Intelligence Ambiante dans le laboratoire I3S-CNRS {{ :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.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 ==== * 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}} == Préparation Séance 4 == ||| Xamarin est maintenant un package intégré dans Visual studio 2017 Community. En lançant une installation ou une réinstallation de Visual Studio, vous n'avez qu'à sélectionner les packages liés à Xamarin. N'oubliez pas de tous sélectionner dans le détails pour ne pas oublier les simulateurs. ==== Séance 4 ==== Titre : [[cours:plim:17_18:seance4_elim_17_18|Développement Cross-plateformes pour terminaux mobiles, exemple Xamarin]] {{:cours:plim:logo_xamarin.jpg?70|}} Xamarin est un exemple d'environnement de développement multi-plateformes. Le principe est de factoriser au maximum tout ce qui peut-être développé en commun pour un ensemble de cibles plus spécifiques comme Android, IoS mais aussi toutes les cibles "Universal Windows" pour tous les terminaux Windows (PC, Tablet, SmartPhone, TV ...). Cette séance : * vous assistera pour la configuration et la mise en œuvre des outils de développement Xamarin * vous assistera pour le développement d'une première application avec une GUI minimaliste mais une consommation d'un Web Service (l'accent est mis dans l'esprit du module et pour votre projet sur les interfaces IP/Web de votre téléphone) * vous permettra de développer un service web REST basé sur un serveur Web minimaliste sur votre SmartPhone ==== Séance 5 ==== * 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: ==== Séance 6 ==== {{: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 7 ==== {{: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]] ==== Séance 8 ==== {{:cours:plim:logo_android.png?70|}} * Titre : Tutorial : SDK et accès aux capteurs/actionneurs sur les cibles Android * Supports : {{:cours:plim:android_-_capteurs_actionneurs_et_vues.pdf|Android - Capteurs, actionneurs et vues}} * Durée : 4h * Intervenant: Laurent Pastorelli * Outils Logiciels : Android Studio ==== Séance 9 ==== * Titre : Revue de Projet * Durée : 4h * Intervenant: Jean-Yves Tigli ==== Séance 10 ==== {{:cours:plim:logo_android.png?70|}} * Titre : Mobile applications & Cloud Computing, Gestion des connexions intermittentes. * Supports :{{:cours:plim:cours-ferry-elim.pdf|}} * Durée : 4h * Intervenant: * Outils Logiciels : * [[http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transferutility.html|AWS Mobile SDK]] * Les message queues pour une solution « provider-independent » [[https://jclouds.apache.org|jclouds]] ==== Séance 11 ==== {{:cours:plim:logo_android.png?70|}} * Titre : Développement Natif : Autres Tutoriaux Android * Durée : 4h * Intervenant: ==== Séance 12 ==== {{:cours:plim:ios_logo.png?70|}} * Titre : Cours et Démonstrations : présentation environnement de dev Apple : Xcode / Objective C / Swift * Supports : {{:cours:plim:ios_-_introduction.pdf|}} * Durée : 4h * Intervenant: * Outils Logiciels : Xcode * Autres références : https://swiftlang.ng.bluemix.net/#/repl 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 donne un télégramme -> Une phrase. On souhaite compter le nombre d'unités de paiement du télégramme sachant qu'il se termine par le mot "stop", qu'un mot de longueur L coute (L/10)+1 unités et que le mot "stop" ne coûte rien. Indiquer le prix des phrases suivantes : - "ça compile ça marche stop" - "mon chien s appelle rodi stop" ==== Séance 13 ==== {{:cours:plim:ios_logo.png?70|}} * Titre : Tutorial 2 : programmation Swift, accès capteurs/actionneurs, création de listes * Supports : {{:cours:plim:ios_-_capteurs_listes.pdf|iOS - Capteurs & Listes}} * Durée : 4h * Intervenant: * 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 14 ==== {{:cours:plim:ios_logo.png?70|}} * Titre : iOS - Notifications et SpriteKit * Supports : {{:cours:plim:ios_-_notifications_spritekit.pdf|}} * Durée : 4h * Intervenant: * Outils Logiciels : XCode * Autres références : ==== Séance 15 ==== {{:cours:plim:ios_logo.png?70|}} * Titre : * Supports : * Durée : 4h * Intervenant: * Outils Logiciels : * Autres références : ==== Séance 16 ==== * Titre : Examen écrit sur le module * Durée : 3h * Intervenant : * Sujet : {{:cours:plim:td_note.pdf|}} * Autres références : ---- ==== 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]] ===== 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 * ... * [[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]]