Programme détaillé
formation 'Développeur Java web Mobile' OBJIS Congo
Objectifs : fournir les connaissances théoriques et pratiques permettant d'intégrer un projet JAVA Entreprise Audience : toute personne déterminée à exercer un métier porteur de développeur Java Web Mobile Prérequis : connaissances de base en informatique
Durée : 600 heures en cours du soir (sur 2 ans) ou cours du jour (sur 1 an) Contact : 00 242 04 490 55 12 / contact@objis-congo.com
Table des matières
Vous allez apprendre à :...2
Programme détaillé 1ère année : fondamentaux Java et Jee...2
Programme détaillé 2ème année: perfectionnement Jee et mobilité...5
Vous allez apprendre à :
•
Maîtriser les concepts clés de la Programmation Orientée Objet (POO)• Développer des applications JAVA type 'client lourd'
• Accéder à une base de données avec JAVA
• Développer des applications Web en JAVA
• Valider votre expertise à travers des mini-projets en binôme
• Augmenter la productivité de vos développements
• Développer des applications Mobile avec ANDROID
•
Valider votre expertise à travers des mini-projets en binômeProgramme détaillé 1ère année : fondamentaux Java et Jee
Introduction
Atouts java : portabilité, sécurité, réseau, gestion mémoire Comparaison Java et C/C++, PHP, C#, Visual basic
Lien entre java standard (jse), java entreprise (jee) et java micro (jme) Notion de JSR : Java Specification Request
Notion de JCP : Java Community Process Historique : java a 20 ans !
Développement Java
cycle : coder, compiler, exécuter, déployer outils clés de java : javac, java, jar, javadoc Byte code, machine virtuelle Java (JVM) Ramasse-miettes Java : Garbage Collector Gestion des exceptions dans java
Différence entre JRE et JDK Environnement Eclipse
Valeur ajoutée d’un environnement de développement Comparaison Eclipse / Netbeans
Notions de vues, perspectives, plugins , MarketPlace Génération de la Javadoc,
Génération d’un livrable Jar API Java
java.lang, java.util, java.io Librairies de base
Java Virtual Machine (JVM)
Technologies d’intégration (JDBC, RMI, JNDI) Technologies de déploiement java
Généricité, bouche for étendue Javadoc API JSE 8
Bases du langage
Types primitifs, types Objets Tableaux dans java
Chaînes de caractères dans java Opérateurs et Instructions
Notion de package
Gestion des exceptions java
Programmation Objet : Définition de classes Java Définitions de classes et fichiers source java
méthodes, arguments,
Champs, portée public, private, protected, default Organisation des fichiers et packages
Importation de classes java Constructeurs , this, super
Conteneurs du JDK et classes string Méthode toString()
Méthodes main() et points d’entrée Concepts objets
Classe et Objet Encapsulation Héritage (super) Interface
Polymorphisme Surcharge, redéfinition Classes utilitaires
Classe de base : Object, Integer, String, StringBuffer, Math
Les Collections : Vector, List, HashMap, … Entrées / Sorties
Lectures / écritures dans un fichier Sérialisation
Accès aux données Introduction java JDBC
Différences api java.sql et javax.sql
Approche classique : Connection, Statement, ResultSet Interface Rowset, et comparaison rowset/resultset Notion de transaction. Autocommit JDBC
Gestion Exceptions
Création Interface Graphique Présentation AWT et SWING Méthodologie création IHM Conteneur, Layout,
Composants Ecouteurs Architecture
Nouveautés Java 8
Programmation fonctionnelle Expressions Lambda
Multithreading Introduction JEE
spécifications JEE 7 (JSR 342)
architecture, conteneurs, services, APIS, roles, clients, livrables, serveurs services clés : JNDI, JPA, JTA, JCA, JAAS, JAX-WS, EJB, JSP, Servlets différences Tomcat, JBoss, WebSphere, WebLogic
Services spécifiques JEE 7 JEE et HTML5 : WebSockets JEE et le Cloud Computing JEE et JSON
Servlets
Le protocole HTTP (en têtes, gestion de l’état, pile TCP/IP)
Servlet : entre le réseau et votre programme L’API servlet et le cycle de vie (init, service, destroy) Configuration web.xml et déploiement dans WAR Controlleur J2ee : le RequestDispatcher
Design pattern MVC JavaServer Pages (JSP)
Historique et comparaison avec Servlets Cycle de vie d’une page JSP
JSP et l’intégration des JavaBeans
Comparaison des modèles MVC 1 & MVC 2 Gestion des sessions
Cookies EJB 3
Architectures distribuées création EJB Session sans état communication servlets / EJB Injection avec CDI (JSR 299) JSTL et EL
Valeur ajoutée de balises jstl c:out , c:foreach
variables implicites Langage EL
Mise en oeuvre
Optimisation JSP avec Jstl/EL DataSource JNDI
Problématique de création et fermeture de connexion Pool de connexion
Service JNDI
Mise en oeuvre DataSources JNDI sous Tomcat.
context.xml, web.xml Sécurité
Spécification JAAS Authentifier et Autoriser
balises security-constraint, web-resource-collection fichier web.xml, server.xml, context.xml
Notion de royaume d’authentification (Realm)
Notion de LoginModule (BASIC, FORM, DIGEST, CLIENT-CERT) Filtres
Comprendre les filtres JEE Interface Filter
Création filtre configuration filtre balise filter du web.xml Listener
Comprendre les listeners JEE Interface Listener
Création listener configuration listener balise listener du web.xml
Introduction aux frameworks de présentation Qu’est ce qu’un framework ?
Panorama frameworks de vues : struts, Spring MVC, JSF, Wicket Quel framework choisir ?
Programme détaillé 2ème année: perfectionnement Jee et mobilité
•
Framework JSF•
Framework Hibernate•
Web Services•
AndroidIntroduction JSF 2 Rappels clés JEE 7 Les 8 Objectifs de JSF
JSF : un framework orienté ’composant’
Spécifications JSF 2.0, 2.1 et 2.2 (JSR 344)
Nouveautés JSF 2.2 : Faces flow, MultiTemplating, HTML5 Implémentation de référence : Mojarra
Jar : javax.faces-2.2.1.jar
Les concurrents directs et indirects de JSF 2 Configuration JSF 2
fichiers clés : web.xml et faces-config.xml
Configuration du controleur FacesServlet dans web.xml Url gérés : *.faces, *.jsf, /faces/*
Paramétrer le mode développement : javax.faces.PROJECT_STAGE Annotations ou xml ?
Cycle de vie requête JSF 2
Les 6 étapes clés du cycle de vie requête JSF Etape 1 : restauration de la vue
Etape 2 : application des paramètres de la requête Etape 3 : validation et convertion
Etape 4 : mise à jour du model Etape 5 : logique métier Etape 6 : rendu de la réponse Utilisation du Phaselistener Bean managés
role dans l’architecture JSF
Annotations : @ManagedBean, @ManagedProperty Annotation : @SessionScoped, @RequestScoped Propriétés par défaut : ’name’, ’scope’
Facelets
Besoin : industrialiser création écrans xmlns:ui="http://java.sun.com/jsf/facelets Utilisation XHTML
Notion de template
ui:composition, ui:define, ui:insert, ui:include Débogage
Gestion des ressources d’un projet JSF convention : répertoire ’resources’
Gestion des feuilles de style : h:outputStylesheet Gestion des images : h:graphicImage
Gestion des scripts javascript : h:outputScript attribut ’library’
attribut ’name’
Bibliothèque des composants standards
30 Composants JSF : visibilité, style CSS, binding Passage de paramètres aux composants
Composants d’affichage texte et image Composants de saisie et "value change event"
Composants de commande "action event"
Combo-box, listes, cases à cocher et boutons radio PanelGroup et le PanelGrid
DataGrid
Gestion des messages utilisateur
Structure des messages JSF : la classe FacesMessage Afficher un message avec HtmlMessage et HtmlMessages Créer un message applicatif avec la classe FacesContext Validation
Principe de la validation JSF
Méthode de validation dans un backing-bean Les validators standards de l’API JSF
Modèle de programmation pour écrire un validator personnalisé Validation avec implémentation JSR 303 : Hibernate validator Gestion des évènements
Modèle évènementiel JSF Création d’un évènement Ecouteurs d’évènements Navigation JSF
Règles de navigation : par page, globale, par action Formulaire JSF
Création formulaire JSF (XHTML) : balises ’html’ et ’core’
Créer le @ManagedBean du formulaire Langage d’expression JSF : Unified EL Validation des champs et cycle de vie Conversion implicite des champs Composants Additionnels
Les limites des composants JSF
Atouts et configuration composants Primefaces Atouts et configuration composants Richfaces Internationaliser une application JSF
Rappel internationalisation Java
Gestion du ’locale’ : par défaut, personnalisée Catalogues de traduction : libellés,
Messages applicatifs, messages d’erreur de validation
Introduction JPA
Notion de mapping Objet/Relationnel Historique d’hibernate
Hibernate et les spécifications JPA Concurrents : EclipseLink, iBatis Versions d’hibernate
Persistance avec JPA Spécification JPA 2.0 Fournisseur de persistence EntityManagerFactory EntityManager persistence.xml Persistence unit
@ManyToOne, @ManyToMany Eager, Lazy
Implications Jee Fetching
Persistance avec Hibernate Processus de développement
Top-down, Bottom-up, Meet in the meedle Connexion à la base de données
Configuration d’Hibernate et Session Factory Création, ajout et suppression d’objets Session Hibernate
HibernateUtils
Conception avec Hibernate
Design Patterns pour couche de persistance Persistance du modèle objet
Gestion de l’héritage Gestion des associations HQL et JPQL
Clauses des requêtes Les fonctions d’aggrégation Les requêtes polymorphes Les sous requêtes
Mapping objet relationnel Ecriture du fichier de mapping Gestion de l’identifiant
Types de données et personnalisation
GTypes de mapping (Top-Down, Bottom-Up, Meet in the Midlle) Mapping d’héritage (une table par classe, une table par hiérarchie... ) Mapping d’association (par clé étrangère, par table de jointure...)
Introduction : Architecture SOA et Web Services Synthèse : les 5 caractéristiques clés de SOA
Méthodologie : les 7 briques clés d’une architecture SOA Relation SOA / Web Services
Technologies principales Web Services- : HTTP, XML, SOAP, WSDL, UDDI XML dans Java
Syntaxe et espaces de nom XML Description de XML avec les schémas
Conversion et déconversion de paramètres avec JAXB Personnalisation des liaisons XML-Java
XML bien formé / XML valide Manipulation XML : SAX, DOM, StaX Messages SOAP
Rôle de SOAP dans les services Web Structure des messages SOAP
SOAP-ENV, Header, Body, Attachement Opération, messages et erreurs
Interface avec WSDL
Rôle de WSDL dans les Web Services
Anatomie d’un document WSDL : 5 sections clés
Description du contrat / interfaces / opérations dans section portType Comprendre les sections ’abstraites’ : messages , types
Comprendre les sections ’concrètes’ : binding, services Spécification de l’implémentation du service (service) Spécification du protocole d’échange de messages (Binding)
Gouvernance web services
Gouvernance : brique N°2 d’une architecture SOA
Conformité avec les normes WSI (Web Service Interoperability) Intégration de proxies et d’adaptateurs
Mise en œuvre d’une terminaison de service Web avec JAX-WS Personnalisation de services Web JAX-WS
Déploiement d’un fichier WAR de service Web
Interception de trafic entre les services Web et les clients Optimisation de la transmission de messages
Développement Web Services SOAP en Java 8
Méthodologie : créer WS à partir de WSDL (WSDL-first) ou à partir du code (code-first) ? Comprendre l’API de ’haut niveau’ JAX-WS : Java API for XML Web Services
Comprendre l’API de ’bas niveau’ SAAJ
valider la conformité de son WS avec les normes internationales WS-I Outils WS-I : outils : Analyzer, Monitor
Création d’intercepteurs (Handler) coté web service et coté client Optimisation de la transmission de messages avec MTOM
Clients de services Web
Accès à des services Web via leur WDSDL
Création de fichiers sources clients à partir de WSDL Personnalisation des fichiers sources générés avec JAX-WS
Conception et création de services et de clients de notification (one-way) Écriture de clients multithreadés
Interception et modification de messages SOAP Requêtes asynchrones
Approche REST
Développement de services Web RESTful avec JAX-WS Caractéristiques clés : POJO annotés, HTTP , XML / JSON Créer de l’interactivité du côté client
Invoquer des services Web avec l’API Dispatch Traitement des messages XML reçus
Sécurité déléguée au transport
Développement REST avec Framework Jersey et CXF Comparaison SOAP / REST
critère interopérabilité critère- : transport critère- : gouvernance critère- : spécifications critère- : sécurité SoapUI : introduction
Besoin : tester web services version Open Source version Pro
périmètre installation configuration
Introduction ANDROID Un monde ouvert ! Concurrents
Architecture Android Android pour développeur Android pour constructeur Android et Java
Android et C Android et Linux Boîte à outils
SDK Android Plugin Eclipse ADT Virtual Device Manager SDK Manager
Périphérique virtuel (AVD) Machine virtuelle Dalvik
Dalvik Debug Monitoring Service (DDMS) Android Asset Packaging Tool (aapt) Création package (.apk)
Android Debug Bridge (ADB) SQLite
Traceview MkSdCard Dx
activityCreator layoutOpt Emulateur Compilation Conception
Contraintes développement pour mobiles Développer pour Android
Composants d’une application Android Les 4 types d’application Android Fichier et éditeur Manifest.xml Cycle de vie application Android Priorités des applications Etat des processus Ressources XML / Java Classe Application Activity : la classe Activity : le cycle de vie Interface utilisateur
Fondamentaux
Activity, View, View Group Views personalisées Widgets Android
Layouts : Linearlayout, FrameLayout Layouts : RelativeLayout, TableLayout Gallery
Ressources drawable Résolution
Menus
Balises dans Manifest.xml Optimisations
Ecran d’accueil Live Folders Recherche Quick Search Box Live WallPapers Boîtes de dialogue
Classe Dialog
Extensions classe Dialogs AlertDialog
activity à thème Dialog Toasts
Intent Présentation Cas d’utilisation Définition d’un besoin
Action et données d’un Intent
Types d’action : VIEW, EDIT, DELETE, PICK...
Constructeur
Relation Intent / Activity Intent implicites
Intent explicites Pending Intents Launch Intent Intent Filters Linkify Notifications
BroadCast Receiver Présentation
Cas d’utilisation Services
Présentation Cas d’utilisation Adapters
Présentation Cas d’utilisation Widgets
Fichier Manifest Présentation Role
balise manifest balise uses-sdk
balise uses-configuration balise use-features balise support-screen balise application balise provider balise receiver
balise instrumentation balise permission balise intent-filter Ressources
Répertoire ’res’
Externalisation ressources Ressources drawable Ressources layout Ressources strings Couleurs
Dimensions Animations Menus
Ressources dans code Référencement ressources Cycle de vie et état
Cycle de vie d’une activity Pile des activities
priorité
Etats : Active, pause, stop, insactive Changement d’état
Cycles : complet, visible, actif Classe Activity
ListActivity, MapActivity, TabActivity Persistance données
Sauvegarde état Activity Sauvegarde choix utilisateur Shared Preferences
Impact sur vitesse, efficité, robustesse Fichiers
Internet Webkit
Connection à Internet Flux de données WebView xmlPullParser Bande passante Cache
Base de données SQlite
Avantages SQlite Transactions Inconvénient SQlite Cursor
Content Values CRUD
Content provider Présentation Cas d’utilisation Publication données Consommation de données content ://
découplage appli/données gestionnaire contacts base médias
bases natives SQLiteOpenHelper SQLiteHelper Géolocalisation
Géocodage avant / inverse Map Views
Map activity Overlay Position Alertes
Location Manager Location Provider Taches de fonds
Création et démarrage services Priorités
Création threads Afficher Toasts Notification Manager Notifications continues Alarmes
Multimedia
lecture fichiers audio, video Ressources
Video View Media Recorder Intents audio / video images EXIF
Media Store
reconnaissance vocale Téléphonie et SMS
Initier appel téléphoniques Etat téléphone, réseau, carte SIM Monitoring
Envoi SMS, MMS Intents sms, mms SMS entrants Bluetooth
gérer périph. Bluetooth mode de découverte Monitoring
Réseau
Monitorer connexion internet Préférences transfert données Tache de fond
Wi-Fi
Monitorer Wi-Fi Détails réseau Wi-Fi Configuration Wi-Fi
Scanner points d’accès Wi-Fi Capteurs
Introduction Sensor Manager Monitoring capteurs Interprétation valeurs Compas, accéléromètre Capteurs d’orientation Vibreur
Sécurité Sécurité Linux Sécurité Android
Balise permissions du Manifest.xml Certificats
Keystore Multithread
Comprend Multitachge Android Communication ninter processus (IPC)
Liens utiles