Rappels sur les technologies de base
- Présentation des familles de terminaux : Smartphones, tablettes, leurs spécificités.
- Rappel sur les technologies HTML, CSS, JavaScript.
- Rappels sur les outils de développement modernes (NodeJS, NPM, Bower, Gulp...).
- Présentation des moteurs Webkit, Gecko...
- Importance et intégration du useragent.
- Communication Ajax : importance et limite selon les mobiles.
- Outils de développement, de test, de simulation.
Travaux pratiques
Mise en place d'un environnement de travail dédié au mobile.
Solutions embarquées
- Présentation des technologies existantes et leurs environnements de développement : limite, coût, portabilité.
- Objective-C et Swift (iPhone, iPad), Java (Android), C# .Net (Windows 10, Xamarin), Tizen, Firefox OS.
- Méthode de publication d'une application dans les catalogues officiels des opérateurs (Apple Store, Google Play...).
- Démarches administratives (iPhone Developer Program, Certificats...).
Différence entre application Web traditionnelle et mobile
- Différences entre les navigateurs : moteurs JavaScript, CSS, limite des plug-ins (Flash, PDF...), autres spécificités.
- Différence des tailles des écrans et solutions.
- Différences matérielles (CPU, mémoire).
Construction XHTML, HTML5
- Les balises META et spécifiques : Viewport et paramétrage dynamique des CSS.
- Balises traditionnelles de construction de pages.
- Constructions de tableaux.
- Les liens et les options dédiées accesskey.
- Les images et l'importance des images sur les terminaux (format, poids des images).
- Les textes p, span. Les blocs div et les blocs canvas en HTML 5.
- Les formulaires. Nouveaux types de données (daterange, slider...). Activation du clavier numérique.
- CSS, importance en mode multicanal. Positionnement des éléments, navigation entre les éléments (zindex, display...).
- Apport des CSS3 en HTML5. Simplifier la création et la maintenance des CSS avec Bootstrap, Sass, Compass et Less.
- Importance du DOM pour un portage multiterminal.
- Environnement mobile (sensors, battery, détection réseau...).
- Evénements multitouch spécifiques aux terminaux (gesture, touch, drag et drop...).
- Protocoles de communication (websocket, ajax), avantages de Node.js.
- Bibliothèque graphique : API de dessin (rectangle, ligne...), palette de couleur, manipulation des images.
- Tests de conformité au W3C : outils de validation.
Travaux pratiques
Mise en œuvre de formulaires de saisie, de boutons et composants, de rotation du terminal par CSS, de gestion dynamique des événements "touch", de drag&drop, de mini gestionnaire de dessin. Mise en place d'un serveur websocket avec Node.js. Détection des coupures réseaux.
Framework multiplateforme
- Avantages d'utilisation d'un framework.
- Choisir un framework mobile.
- Cordova (PhoneGap) et ses outils de publication.
- AngularJS 2.0, un framework orienté développement mobile.
- Mobile Angular UI : construire des Apps Mobiles HTML5 avec Bootstrap et Angular JS.
- Ionic, construire des applications natives avec Cordova et Angular JS.
- Les frameworks pour le Material Design (Polymer, Materialize CSS...).
Travaux pratiques
Mise en œuvre et découverte des différents frameworks disponibles sur le marché. Réalisation d'un projet Material Design, intégration Cordova et génération d'une application multi OS.
Stockage des données dans le mobile
- Mise en place d'une stratégie "mode déconnecté".
- Manifest et la montée en cache des ressources du site mobile.
- Bases de données SQLite, indexedDB intégrées au navigateur.
- Langage SQL et outils d'administration.
- Gestion et pilotage en JavaScript (création de table, requêtes...).
- Usage de Google Gears pour les terminaux non compatibles HTML 5.
- Gestion du cache côté client pour un travail en mode non connecté (localStorage, sessionStorage).
Travaux pratiques
Création d'un gestionnaire de notes avec stockage dans la base embarquée.
Cartographie et géolocalisation
- Gestion de la carte Google Maps.
- Options pour la prise en charge de la géolocalisation du mobile.
Travaux pratiques
Affichage de la carte par rapport à la localisation du mobile et affichage de markers sur la carte.