• Aucun résultat trouvé

OBJIS : 10 ans d'expérience en formation JAVA. Programme détaillé formation 'Développeur Java web Mobile' OBJIS Congo

N/A
N/A
Protected

Academic year: 2022

Partager "OBJIS : 10 ans d'expérience en formation JAVA. Programme détaillé formation 'Développeur Java web Mobile' OBJIS Congo"

Copied!
12
0
0

Texte intégral

(1)

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

(2)

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ôme

Programme 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

(3)

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)

(4)

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 ?

(5)

Programme détaillé 2ème année: perfectionnement Jee et mobilité

Framework JSF

Framework Hibernate

Web Services

Android

Introduction 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

(6)

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

(7)

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)

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

Références

Documents relatifs

Cette version résout des problèmes afin d’améliorer la fiabilité de la session et la fonctionnalité de reconnexion automatique des clients, les performances globales de

  

For more information on using Google Maps in Android application

For example, suppose you declare the following method: void method throws Exc1, Exc2 // Exc1 and Exc2 extend Exception { try { /* Code that can throw Exc1,Exc2 */ } catch Exception

Appy pie pour android gratuits sur les applications rend difficile sur comment créer une application gratuite où vous aurez besoin pour toutes les sites.. Lxtream application

Pour ajouter une WebView à l'application, il suffit d'inclure l'élément <WebView> dans le fichier de disposition des éléments (layout) qui se trouve dans: app > res

Architecture du système d’exploitation Android - Application et Framework pour les applications...  La seule couche visible et accessible par l’utilisateur

Dans ce premier tuto nous allons gérer le click d’un bouton, récupérer le texte saisi dans un champs texte, l’afficher et traiter le texte saisie (si c’est une URL l’ouvrir