Objective-C. pour le développeur avancé. pour les développeurs C++/Java/C# Le langage iphone/ipad et Mac OS X. Pierre Y. Chatelier

Dimension: px
Commencer à balayer dès la page:

Download "Objective-C. pour le développeur avancé. pour les développeurs C++/Java/C# Le langage iphone/ipad et Mac OS X. Pierre Y. Chatelier"

Transcription

1 Objective-C pour le développeur avancé Le langage iphone/ipad et Mac OS X pour les développeurs C++/Java/C# Pierre Y. Chatelier

2 Objective-C pour le développeur avancé Face à un C++ puissant, efficace et maîtrisé, Objective-C surprend par sa richesse et sa souplesse. Adressé au développeur confirmé, ce livre dense et érudit guidera les amoureux de la programmation iphone/ipad et Mac OS X à travers toutes les subtilités de ce langage. Objective-C, langage objet indispensable pour développer en natif sous Mac OS X et pour l iphone et l ipad Avec le succès de l iphone et de l ipad, la maîtrise d Objective-C, langage natif des systèmes Apple Mac OS X et iphone/ipad, devient un passage obligé pour les professionnels de la programmation alors même qu il ne fait pas partie de la formation classique des développeurs. Adressé au développeur qui connaît déjà d autres langages objet, cet ouvrage éclaire toutes les subtilités d Objective-C en le comparant avec les principaux langages que sont C++, Java, C# : syntaxe et concepts objet (classes, héritage, instanciation), gestion de la mémoire, chaînes de caractères, exceptions, multithreading, concept des propriétés, mécanismes de modifi cations à l exécution sans oublier les nouveautés d Objective-C 2.0. Au sommaire De C#, Java, C++/QT à Objective-C Du C au modèle objet Objective-C et ses API (Cocoa ) Racines non Unix Bibliothèque runtime Compilation et linkage 32/64 bits Syntaxe Vrais et faux mots-clefs Syntaxe du C sousjacent Commentaires Code/déclarations Boucle for Nouveaux types et valeurs Organisation du code : fi chiers.h, fi chiers.m et inclusion Fonctions et méthodes : une similarité trompeuse Classes et objets Classe racine, type id, valeurs nil et Nil Déclaration Attributs et méthodes Déclarations anticipées Visibilité public, protected, private Messages et fonctions Prototype et appel, méthodes d instance, méthodes de classe Cibles self et super Identifi ant et signature Surcharge Callbacks Modifi cateurs de prototype Messages et transmission Délégation de message Forwarding Manipulations au runtime Formes d héritage Héritage simple et multiple Downcasting Méthodes virtuelles Redéfi nition et surcharge Méthodes virtuelles pures Extension de classe (sans héritage) : les catégories Classes abstraites Protocoles formels et informels Design-pattern Class-cluster Instanciation, destruction et copie Variable objet et pointeur d objets Forme de Coplien Constructeurs, initialisateurs alloc et init self = [super init ] Listes d initialisation Constructeur virtuel Constructeur de classe Destructeurs Clonage classique et pseudo-clonage Comparaison d objets == et operator<() en C++ Hash Gestion de la mémoire et ramasse-miettes new et delete Compteur de références (retain, release) Autorelease et bassin d autorelease Garbage collector Finalize Liens faibles et forts Singleton Chaînes de caractères NSString Encodages Chaîne C Extension de format %@ Description d objet Expressions nally Filtres d exception Bassin d autorelease local Exceptions C++ Spécifi cités 64 bits Volatile Utilitaires Cocoa et système API de répartition de charge Boucle événementielle Code implicite et propriétés Key-value coding Interception Accès aux propriétés Différence entre «->» et «.» Dynamisme et runtime RTTI du C++ Introspection Typage fort ou faible Méthode et fonction d implémentation Chargement au runtime Enrichissement conditionnel Swizzling Binaire Objective-C et outils de consultation La STL et Cocoa Conteneurs Gestion mémoire Itérateurs Énumération rapide Foncteurs (objets-fonctions) Mise en cache d un appel de méthode Fonctions de rappels (callbacks) par blocs Évolutions d Objective C Migration vers le 64 bits Objective-C 2.0 Objective C++ Blocks Closure (fermeture) Annexes Fonctionnalités propres au C++ Références Inlining Templates Surcharge d opérateurs Friends Méthodes const Namespace (espaces de noms) C++/Objective-C. À qui s adresse cet ouvrage? Développeurs expérimentés C++, Java, C#, Python et PHP 5 qui veulent développer pour iphone ou Mac OS X Professionnels du développement web et mobile Fans d iphone qui souhaitent développer pour iphone et Mac OS X P. Y. Chatelier Pierre Y. Chatelier développe pour Mac OS X par passion depuis qu il a découvert cette plate-forme en 2002, et est maintenant l auteur de plusieurs logiciels pour Mac OS et iphone. Après avoir fait ses classes d ingénieur à l Isima de Clermont-Ferrand et obtenu un doctorat, il occupe maintenant un poste en recherche & développement en Bourgogne et souhaite promouvoir le langage Objective-C, peu enseigné malgré ses nombreuses qualités. Conception : Nord Compo

3 J. Gabès pour la supervision Objective-C pour le développeur avancé Le langage iphone/ipad et Mac OS X pour les développeurs C++/Java/C# Nagios 3 P i e r r e Y. C h a t e l i e r

4 CHEZ LE MÊME ÉDITEUR XHTML/CSS, JavaScript pour le développement mobile. Des sites efficaces pour iphone, Android avec et XUI/iUI. E. Sarrion. N 12775, 2010, 290 pages. Programmation Android. D. Guignard, E. Robles, N. Sorel, J. Chable. N 12587, 2010, 506 p. Mon GPS en action. P. Corréia. N 12668, 2010, 300 pages. Mac OS X Snow Leopard efficace. G. Gete. N 12586, 2010, 370 pages Audit et optimisation MySQL 5. P. Borghino, O. Dasini, A. Gadal. N 12634, 2010, 282 pages Programmation GWT 2. Développer des applications RIA et Ajax avec le Google Web Toolkit. S. Jaber. N 12569, 2010, 484 pages Asterisk. Études de cas. (coll. Cahiers de l Admin). P. Sultan, dirigé par N. Makarévitch. N 12434, 2010, 298 pages. Richard Stallman et la révolution du logiciel libre. Une biographie autorisée. R. M. Stallman, S.Williams, C. Masutti (Framasoft). N 12609, 2010, 344 pages. Lisibilité des sites web. Des choix typographiques au design d information. M.-V. Blond, O. Marcellin, M. Zerbib. N 12426, 2009, 326 pages. Réussir son site web avec XHTML et CSS. M. Nebra. N 12485, 3 e édition, 2010, 318 pages. Ergonomie web. Pour des sites web efficaces. A. Boucher. N 12479, 2 e édition, 2009, 458 pages. Bien rédiger pour le Web et améliorer son référencement naturel. I. Canivet. N 12433, 2009, 412 pages. Conversion web. Améliorer ses taux de conversion web. S. Roukine. préface de P. Mosciusko-Morizet. N 12499, 2009, 270 pages. La programmation orientée objet. Cours et exercices en UML 2 avec Java 5, C# 2, C++, Python et PHP 5. H. Bersini, I. Wellesz. N 12441, 4 e édition, 2009, 602 pages (collection Noire). Gestion de projet. Vers les méthodes agiles. V. Messager Rota. N 12518, 2 e édition 2009, 272 pages (collection Architecte logiciel). Gestion de projet extreme Programming. J.-L. Bénard, L. Bossavit, R. Médina, D. Williams. N 11561, 2002, 300 pages (collection Architecte logiciel). Programmation Python. Conception et implémentation. T. Ziadé. N 12483, 2 e édition 2009, 586 pages. Best practices PHP 5. Les meilleures pratiques de développement en PHP. G. Ponçon. N 11676, 2005, 480 pages. Sécurité informatique. Principes et méthode à l usage des DSI, RSSI et administrateurs. L. Bloch, C. Wolfhugel. N 12525, 2009, 292 pages. BSD, 2e édition (coll. Cahiers de l Admin). E. Dreyfus. N 11463, 2004, 300 pages. Debian Lenny. Gnu/Linux. R. Hertzog, R. Mas. Dirigé par N. Makarévitch. N 12443, 2009, 442 pages avec DVD-Rom. Nagios 3 pour la supervision et la métrologie. Déploiement, configuration et optimisation. J. Gabès. N 12473, 2009, 510 pages Symfony. Mieux développer en PHP avec Symfony 1.2 et Doctrine. F. Potencier et H. Hamon. N 12494, 2009, 510 pages. Zend Framework. G. Ponçon et J. Pauli. N 12392, 2008, 460 pages. Drupal 6 et 7. Concevoir et déployer ses sites web. Y. Brault, préface d E. Plenel. N 12465, 2009, 404 pages.

5 t aux projets utaires Centreon. re un parc a, société dans n de solutions gion de Bordeaux sède e informatique ur les cinq. 45 e Conception : Nord Compo pour la supervisio pour le développeu Le langage iphone/ipad et pour les développeurs C Objective-C pour le développeur avancé Nagios 3 Le langage iphone/ipad et Mac OS X pour les développeurs C++/Java/C# P i e r r e Y. C h a t e l i e r P i e r r e Y. C h a t e l i e r

6 ÉDITIONS EYROLLES 61, bd Saint-Germain Paris Cedex 05 Aurélie, Voilà déjà une des trois choses ; nous ferons les deux autres ensemble. Le code de la propriété intellectuelle du 1 er juillet 1992 interdit en effet expressément la photocopie à usage collectif sans autorisation des ayants droit. Or, cette pratique s est généralisée notamment dans les établissements d enseignement, provoquant une baisse brutale des achats de livres, au point que la possibilité même pour les auteurs de créer des œuvres nouvelles et de les faire éditer correctement est aujourd hui menacée. En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans autorisation de l éditeur ou du Centre Français d Exploitation du Droit de Copie, 20, rue des Grands-Augustins, Paris. Groupe Eyrolles, 2010, ISBN :

7 Avant-propos Pourquoi ce livre? Si vous vous intéressez à la programmation native pour MacOSX ou pour ipod Touch/iPhone/iPad (iphone OS), vous ne pourrez pas échapper au langage Objective-C. Or, ce langage, en apparence né avec Mac OS X en 2001, semble un peu surgi de nulle part. Limité à l environnement Apple, il ne fait pas partie des formations classiques des développeurs. Moi-même, il m avait semblé être au premier abord un obstacle plutôt qu un tremplin à la programmation pour Mac OS X : il était si peu répandu que je ne comprenais pas son intérêt face à un C++ puissant, efficace et maîtrisé. J ai cependant découvert qu il s agissait au contraire d un choix particulièrement heureux : Objective-C, par sa richesse et souplesse, est le langage le plus agréable à programmer que je connaisse. De plus, le succès de l iphone l entraînant dans son sillage, la maîtrise d Objective-C est on ne peut plus d actualité, et sa pertinence, loin de décroître, est renforcée de jour en jour. Ce livre enseigne Objective-C, avec la particularité de comparer en permanence ses fonctionnalités avec celles des autres langages objet principaux ( Java, C++, C#). Le but avoué est en effet de remplir un espace trop souvent laissé vacant : celui des documentations Objective-C qui ne prennent pas le lecteur pour un débutant en programmation. Car très certainement, si vous êtes déjà développeur et connaissez la programmation orientée objet (POO) via lec++, le Java ou lec#, vous n avez plus besoin d apprendre ses paradigmes, vous les connaissez par cœur. Au contraire, vous avez sûrement plus envie de savoir comment l Objective-C les implémente. Vous avez assez d expérience pour apprendre le langage très rapidement, si l on vous aiguille vers l essentiel.

8 VI Objective-C 2.0 pour le développeur avancé Enfin, ce livre n est pas une documentation des API utilisées avec Objective-C, mais traite du langage en tant que tel. La connaissance d Objective-C «pur» vous donne alors les moyens de vous adapter à tous ses cas d utilisation, que ce soit pour Mac OS X ou iphone OS. Les API vont forcément évoluer, peut-être en apparaîtrat-il de nouvelles, mais les concepts resteront les mêmes ; ce que vous aurez appris dans ce livre restera toujours valable. Cet ouvrage ne se présente pas comme un didacticiel mais comme une référence des concepts implémentés (ou non) par Objective-C. Il doit être possible de lire ce livre d un bout à l autre, puis de le consulter comme un aide-mémoire. Il permettra ainsi, je l espère, d éviter qu une méconnaissance du langage conduise un développeur talentueux, soit à l abandonner trop vite, soit à utiliser à mauvais escient ses outils habituels, produisant alors un code bâtard, inélégant et inefficace. Il ne se veut pas non plus une référence absolument exhaustive. Pour une description approfondie de certains détails techniques, qui peuvent évoluer avec le temps, la documentation officielle d Apple reste incontournable. À qui s adresse ce livre? Si vous lisez ces lignes, c est que vous avez une qualité : vous n avez pas peur de lire une documentation. Ce livre s adresse donc d abord aux gens bien. Par ailleurs, cet ouvrage semble s adresser surtout aux développeurs C++, mais c est uniquement parce que le C++ est le langage le plus complexe du groupe C++/Java/ C#, et c est du C++ vers l Objective-C que la migration est la plus «difficile», car les points de comparaison sont plus nombreux. Un développeur Java ou C# pourra simplement survoler certains passages qui traitent d une particularité C++ non pertinente dans les autres langages objet. Dans tous les cas, il s agit de vous permettre d apprendre Objective-C sans vous faire perdre de temps avec les bases de la programmation objet. Vos connaissances dans les autres langages vous donnent évidemment les moyens de comprendre les choses beaucoup plus rapidement qu un novice. Partant de ce principe, les informations contenues dans les différentes sections qui suivent se veulent précises, concises et pointues.

9 Avant-propos VII De C# à Objective-C Le C# est à mon sens le plus proche parent d Objective-C. Destiné à la programmation native des applications modernes sur la plate-forme.net de Microsoft, il fut lui aussi une sorte de renouveau du développement pour la plate-forme Windows. Pourtant, le C# souffre d une complexité excessive pour des choses très simples dans d autres langages, et je n arrive pas à retrouver dans les API.NET la qualité de Cocoa. Découvrir Objective-C à partir de C# est donc relativement aisé, et ouvre l accès à des API dont la conception est extrêmement enrichissante. De Java à Objective-C Le Java est souvent le langage choisi pour enseigner le modèle objet. Mais il n est que rarement utilisé pour implémenter les applications spécifiques à un système donné. Le problème le plus courant est en effet de donner à un programme l interface graphique la plus conforme aux exigences de la plate-forme, domaine où la programmation native est largement favorisée. Passer de Java à Objective-C ne présente pas de difficulté majeure, car le modèle objet y est assez similaire. Il présente toutefois des particularités très intéressantes sur la gestion mémoire, l introspection au runtime, et l économie de certains codes rébarbatifs. De C++/QT à Objective-C/Cocoa Pour répondre à des besoins de portabilité s étendant aux interfaces graphiques, la plate-forme QT de Trolltech (rachetée par Nokia) a doté le C++ d une couche graphique et d API conviviales. Le succès de QT est en partie dû à la couche signal/slot greffée au langage C++. Cela montre par ailleurs que le C++ seul ne suffisait pas à répondre aux besoins de conception d une interface graphique moderne. Avec un langage Objective-C relativement simple et une API Cocoa bien conçue, programmer des interfaces pour Mac OS X ou iphone OS est agréable et rapide ; même la compilation en est accélérée. La migration vers un langage très souple et dynamique (ce que n est pas le C++) expose souvent une autre façon de concevoir le code. Dans quelles conditions a été écrit ce livre? La base de ce livre est en réalité une documentation écrite en 2005 sur Objective-C. À l époque, cette documentation était surtout destinée... à moi-même! Mise en ligne gratuitement, j en ai reçu un retour très positif, et de nombreux lecteurs m ont écrit

10 VIII Objective-C 2.0 pour le développeur avancé pour faire part de corrections ou précisions à apporter. Cinq ans plus tard, étoffée, ajustée et peaufinée, la publication de cette documentation sous forme de livre est une sorte d aboutissement, d autant que ce projet est à l initiative de l éditeur qui a eu la bonté de la remarquer et l apprécier. Si vous connaissez la documentation originale, vous en reconnaîtrez la structure et la majeure partie du contenu. Mais la transition du PDF-écran au papier a nécessité de nombreux ajustements pour le confort de la lecture. Au passage, de nombreuses sections ont été retravaillées et enrichies. Nous espérons ainsi que cet ouvrage trouvera sa place dans la bibliothèque des développeurs soucieux de gagner du temps et de matérialiser leur savoir au cas où Internet tomberait en panne. Structure de l ouvrage Comme il a déjà été dit plus haut, il doit être possible de lire ce livre d un bout à l autre, puis de le consulter comme un aide-mémoire. Les chapitres se veulent donc très spécialisés, pour alléger les relectures en évitant les répétitions. Quelques redites sont toutefois présentes, pour éviter de multiples aller-retours lorsqu une information est à cheval sur plusieurs concepts. Le chapitre 1 explique d où vient et comment s utilise Objective-C, son histoire permettant de comprendre à la fois sa conception et la raison pour laquelle il a été choisi par Apple. Le chapitre 2 détaille la syntaxe de base d Objective-C, ce qui permet déjà de lire du code existant. Quelques nouveautés d Objective-C 2.0 sont reportées en fin d ouvrage pour faciliter la compréhension en première lecture. Les chapitres 3, 4 et 5 montrent comment les concepts objets (classes, héritage, instanciation) sont implémentés en Objective-C. Le chapitre 6 détaille la gestion mémoire, qui est très avantageuse une fois qu elle est comprise. Les chapitres 7, 8 et 9 traitent des différentes fonctionnalités classiques (chaînes de caractères, exceptions, multithreading). Le chapitre 10 clôt la connaissance de la syntaxe d Objective-C 2.0 en introduisant le concept des propriétés. C est un outil permettant d économiser du code. Comprendre cette section nécessite une bonne compréhension des chapitres précédents. Le chapitre 11 traite des nombreuses possibilités qu offre l Objective-C pour interroger ou modifier les classes lors de l exécution du programme.

11 Avant-propos IX Le chapitre 12 expose brièvement la notion de bibliothèque standard qui doit fournir avec le langage des classes de base pour travailler dans de bonnes conditions. Remerciements Le chapitre 13 présente différentes évolutions d Objective-C, montrant que le lan- gage est maintenu au goût du jour pour satisfaire les développeurs. Y sont notamment récapitulés Objective-C 2.0 et Objective-C++. Ce livre n aurait sans doute pas vu le jour si sa forme initiale n avait pas été affinée au long des mois grâce aux remarques de certains lecteurs motivés. Je tiens donc à remercier Jonathon Mah, Jean-Daniel Dupas, Jack Nutting, Ben Rimmington et Mattias Arrelid pour leur pertinence. Les amis ont également donné de leur temps pour apporter leur expertise ; Pascal Bleuyard, Jérôme Cornet, François Delobel, je suis heureux de pouvoir vous citer ici. À leurs côtés, je place Barthelemy Heyrman, pour qui la part de remerciements s étend même au-delà de cet ouvrage. Ce livre aurait encore moins vu le jour sans Muriel, des éditions Eyrolles, qui a su l imaginer, me convaincre de sa légitimité, et le faire évoluer avec toute la diplomatie nécessaire face au développeur farouche. Et comment ne pas non plus citer Sophie et Pascale pour leur patience face aux corrections «détaillées» et fleuries? Un mot encore pour Gérald, Laurent et Michel de EyeNetics, avec qui il fait bon travailler ; que vivent nos projets, à l'image de celui-ci! Et enfin, bien sûr un immense merci à ma chère Aurélie, qui a supporté toutes ces longues soirées de tapotage de clavier.

12

13 Table des matières CHAPITRE 1 Le monde d Objective-C... 1 Du C au modèle objet : les principaux protagonistes DYNAMISME ET PERFORMANCES L un ne chasse pas l autre Objective-C et ses API (Cocoa ) : les racines non Unix de Mac OS X POUR EN SAVOIR PLUS Le projet GNUStep La bibliothèque standard Objective-C UN STANDARD QUI VARIE Cocoa pour Mac OS X et iphone OS La documentation officielle d Objective-C Compilation d un programme Objective-C La bibliothèque runtime d Objective-C Compilation et linkage POUR EN SAVOIR PLUS La notion de framework POINT TECHNIQUE Compilation pour iphone OS Code minimal Différences 32/64 bits POINT TECHNIQUE Cocoa et le 64 bits et 64 bits côte à côte Interopérabilité d Objective-C avec d autres langages CHAPITRE 2 Généralités sur la syntaxe Les mots-clefs d Objective-C Les vrais mots-clefs Les faux mots-clefs Syntaxe autorisée par le C sous-jacent POINT TECHNIQUE Changer la norme C à utiliser sous gcc Commentaires Mélange code/déclarations Variable de boucle for Nouveaux types et valeurs en Objective-C Type BOOL, valeurs YES et NO

14 XII Objective-C 2.0 pour le développeur avancé Type id, valeur nil Type Class, valeur Nil Type SEL Organisation du code source : fichiers.h, fichiers.m et inclusion Nom des classes : pourquoi NS? Fonctions et méthodes : une similarité trompeuse CHAPITRE 3 Classes et objets Classe racine, type id, valeurs nil et Nil UN ŒIL SUR LA SUITE Allocation uniquement dynamique des objets Déclaration des classes Attributs et méthodes STYLE DE PROGRAMMATION Nom des données membres AUTRES LANGAGES Le cas de struct en C Déclarations anticipées 22 Visibilité public, protected, private UN ŒIL SUR LA SUITE Héritage public, protected ou private Méthodes «privées» STYLE DE PROGRAMMATION Underscore, encore Données membres de classe («static») Méthodes, messages et fonctions Prototype et appel, méthodes d instance, méthodes de classe Accès aux données d instance de son objet déclencheur STYLE DE PROGRAMMATION L utilisation de self-> Les cibles self et super SYNTAXE self et super : mots-clefs ou non? Identifiant et signature du prototype, surcharge UN ŒIL SUR LA SUITE Surcharge et méthodes virtuelles Pointeur de méthode : le sélecteur Type SEL 33 Divers usages de sélecteur Callbacks Paramètres par défaut Nombre d arguments variable USAGE PRATIQUE Utilisation du nombre d arguments variable pour les collections Arguments muets Modificateurs de prototype (const, static, virtual, «=0», friend, throw) Messages et transmission Envoi d un message à nil

15 Table des matières XIII POUR EN SAVOIR PLUS Envoi à nil et code assembleur Délégation d un message vers un objet inconnu USAGE PRATIQUE Comprendre les délégués de Cocoa avec un exemple AUTRES LANGAGES delegate et event en C# Forwarding : gestion d un message inconnu Méthodes et fonctions Cohabitation cordiale La fonction cachée derrière une méthode Manipulations au runtime des classes et méthodes CHAPITRE 4 Les formes d héritage Héritage simple Héritage interdit ou limité UN ŒIL SUR LA SUITE final et sealed pour les méthodes en Java et C# Membres homonymes des sous-classes AUTRES LANGAGES Membres homonymes en Java et C# Héritage multiple AUTRES LANGAGES Popularité de l héritage multiple : C++ et Python Downcasting Virtualité Méthodes virtuelles AUTRES LANGAGES Les garde-fous des méthodes virtuelles Redéfinition silencieuse des méthodes virtuelles Surcharge et méthodes virtuelles Méthodes virtuelles pures Héritage «virtuel» du C Extension de classe (sans héritage) : les catégories AUTRES LANGAGES Les extensions de classe USAGE PRATIQUE Les catégories n ajoutent que peu de contraintes au code Classes abstraites Protocoles Protocole formel 58 Protocole formel et méthodes optionnelles Protocole informel Objet de type Protocol Qualificateurs pour messages entre objets distants Utilisation conjointe de protocoles, catégories, dérivation Le design-pattern «class-cluster»

16 XIV Objective-C 2.0 pour le développeur avancé CHAPITRE 5 Instanciation, destruction et copie Variable objet et pointeur d objets AUTRES LANGAGES Pointeurs d objets POUR ALLER PLUS LOIN Créer malgré tout des objets Objective-C sur la pile Forme de Coplien Constructeurs, initialisateurs Distinction entre allocation et initialisation alloc et init : lesquels implémenter? Type de retour d un init : id Syntaxe usuelle de l application successive de alloc et init Exemple d initialisateur correct self = [super init ] POUR EN SAVOIR PLUS Le blog de Wil Shipley Échec de l initialisation Constructeur de commodité Constructeur par défaut : initialisateur désigné Listes d initialisation et valeur par défaut des données d instance UN ŒIL SUR LA SUITE Si les données membres sont des objets C++? Constructeur virtuel Constructeur de classe : initialize Destructeurs POINT TECHNIQUE Destructeurs virtuels Opérateurs de copie Clonage classique : copy, copywithzone: NSCopyObject() AUTRE LANGAGES Copie binaire en C#/.NET Pseudo-clonage Mutabilité : mutablecopy et mutablecopywithzone: Comparaison d objets Utilité de == operator<() et operator==() en C isequal:, isequalto:, isequalto"quelquechose": USAGE PRATIQUE isequal pour les collections USAGE PRATIQUE implémenter isequal: compare: hash: USAGE PRATIQUE Les hash de Cocoa USAGE PRATIQUE Les hash obligatoires Étendre un objet

17 Table des matières XV CHAPITRE 6 Gestion de la mémoire et ramasse-miettes new et delete FAUX AMI La méthode new Compteur de références (retain, release) POUR EN SAVOIR PLUS La bibliothèque Boost du C retaincount Cycles de références : éviter l abus de retain DANS LA PRATIQUE Cycles de retain perfides en Cocoa alloc, copy, mutablecopy, retain, release USAGE PRATIQUE La règle est connue, et ses pièges aussi autorelease Indispensable autorelease Bassin d autorelease ATTENTION drain plutôt que release Utilisation de plusieurs bassins d autorelease autorelease et retain Prudence avec autorelease Efficacité et autorelease Exemple de l utilité des bassins d autorelease Méthodes nécessitant une bonne compréhension de la gestion de la mémoire.110 Constructeurs de commodité, constructeurs virtuels Accesseurs en écriture (mutateurs/setters) Assignation (code réduit) Assignation avec retenue (code réduit) Copie (code réduit) Assignation (code complet) Assignation avec retenue (code complet) Copie (code complet) Pseudo-clonage Accesseurs en lecture STYLE DE PROGRAMMATION Accesseurs avec ou sans get? UN ŒIL SUR LA SUITE Atomicité de l accesseur en lecture Ramasse-miettes (garbage collector) ATTENTION Vider un bassin d autorelease avec drain Le problème du finaliseur : finalize AUTRES LANGAGES Le finaliseur en Java et C# Liens faibles et forts : weak, strong NSMakeCollectable() AutoZone Singleton

18 XVI Objective-C 2.0 pour le développeur avancé CHAPITRE 7 Les chaînes de caractères en Objective-C Seuls objets «statiques» possibles d un code source Objective-C NSString et les encodages NSString vers chaîne C NSLog(), extension de format %@, description d un objet AUTRES LANGAGES Description des objets POUR EN SAVOIR PLUS Autres fonctionnalités de NSLog NSCharacterSet, NSMutableCharacterSet Interprétation des chaînes Expressions régulières CHAPITRE 8 Les exceptions Lancer, intercepter, @catch Méthodes «filtres» d exception Exception non interceptée (uncaught exception) Exception et bassin d autorelease local Exceptions C Spécificités 64 bits CHAPITRE 9 Le multithreading et les outils associés Le cas des propriétés volatile USAGE sur un accès à un singleton Les utilitaires Cocoa et système Les API de répartition de charge : NSOperation, Grand Central Dispatch Se passer du multithread La boucle événementielle NSRunLoop NSTimer CHAPITRE 10 Code implicite et propriétés Key-value coding Principe Interprétation de la clef Prototypes

19 Table des matières XVII Fonctionnalités avancées Faiblesse du KVC Propriétés Utilité des propriétés Description des propriétés Attributs des propriétés Implémentations personnalisées des propriétés POINT TECHNIQUE Spécificité 64 bits Syntaxe des accès aux propriétés L immense différence entre «->» et «.» SYNTAXE Débat sur la pertinence du choix du point comme caractère CHAPITRE 11 Le dynamisme et les manipulations du runtime De l utilité du dynamisme USAGE PRATIQUE Cas courant d utilisation de l introspection et des types dynamiques Les RTTI du C++ (Run-Time Type Information) Introspection class, superclass, ismemberofclass:, iskindofclass: conformstoprotocol: respondstoselector:, instancesrespondtoselector: Typage fort ou typage faible via id Manipulations avancées Méthode et fonction d implémentation USAGE PRATIQUE Optimisation par IMP-caching Ajout d une méthode USAGE PRATIQUE Ajouter une méthode au runtime : pour quoi faire? Chargement de classes au runtime Enrichissement conditionnel du runtime Swizzling Binaire Objective C et outils de consultation CHAPITRE 12 La STL et Cocoa Conteneurs Les conteneurs standards POUR EN SAVOIR PLUS Les performances de NSArray AUTRES LANGAGES Tableau associatif en C# Stocker la valeur nil Gestion mémoire du contenu Itérateurs

20 XVIII Objective-C 2.0 pour le développeur avancé Énumération classique Énumération rapide Foncteurs (objets-fonctions) Utilisation du sélecteur NSSortDescriptor IMP-caching : mise en cache d un appel de méthode Algorithmes Fonctions de rappels (callbacks) par blocks CHAPITRE 13 Les évolutions d Objective-C : performances et extensions du langage Évolution des performances d Objective-C Appel des méthodes POUR EN SAVOIR PLUS Une inspection de objc_msgsend Migration vers le 64 bits Objective-C Objective-C Une évolution non standard du C : les blocks Support du concept de closure (fermeture) Syntaxe Capture de l environnement Variables block ANNEXE A Fonctionnalités propres au C Références Inlining Templates AUTRES LANGAGES Les templates en Java et C# POINT TECHNIQUE Détournement du design-pattern Factory Surcharge d opérateurs Friends Méthodes const Liste d initialisation dans le constructeur Namespaces (espaces de noms)

21 Table des matières XIX ANNEXE B Mise en correspondance des fonctionnalités C++/Objective-C 195 ANNEXE C Glossaire Abréviations et anglicismes Index

Programmation MacOSX / ios

Programmation MacOSX / ios Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Serveur d Applications Web : WebObjects

Serveur d Applications Web : WebObjects Serveur d Applications Web : WebObjects Nicolas Roard 29 avril 2004 Table des matières 1 Introduction 1 2 Historique 1 2.1 Implémentation WebObjects....... 2 2.2 Différences et manques?......... 3 3 Principes

Plus en détail

Bien architecturer une application REST

Bien architecturer une application REST Olivier Gutknecht Bien architecturer une application REST Avec la contribution de Jean Zundel Ce livre traite exactement du sujet suivant : comment faire pour que les services web et les programmes qui

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Introduction aux Machines Virtuelles avec VMKit

Introduction aux Machines Virtuelles avec VMKit Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime

Plus en détail

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

Plus en détail

LICENCE PROFESSIONNELLE

LICENCE PROFESSIONNELLE LICENCE PROFESSIONNELLE Développement d'applications Intranet/Internet Domaine : Sciences, Technologies, Santé Dénomination nationale : Systèmes informatiques et logiciels Organisation : Institut Universitaire

Plus en détail

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09 INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Machines Virtuelles. et bazard autour. Rémi Forax

Machines Virtuelles. et bazard autour. Rémi Forax Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

PHP et le Cloud. All rights reserved. Zend Technologies, Inc. PHP et le Cloud Les plateformes de cloud IAAS PAAS SAAS Applications Applications Applications Runtimes Sécurité et intégration Base de données Runtimes Sécurité et intégration Base de données Runtimes

Plus en détail

CATALOGUE DES FORMATIONS LANGUES

CATALOGUE DES FORMATIONS LANGUES CATALOGUE DES FORMATIONS LANGUES Présentation Ecole Informatique Jasmin agrée par le Ministère de formation professionnelle et de l emploi sous le n 11-1202-12 le 29/08/2012. Spécialiste en informatique,

Plus en détail

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

geek Soyez le de l été! PHP 5.5 3 :HIKONB=^UZ^Z]:?k@b@g@p@a"; Découvrez Chrome, Firefox, IE, Safari Enquête écoles Diplômes : quel prix

geek Soyez le de l été! PHP 5.5 3 :HIKONB=^UZ^Z]:?k@b@g@p@a; Découvrez Chrome, Firefox, IE, Safari Enquête écoles Diplômes : quel prix 100 % développeur Mensuel n 165 - juillet-août 2013 www.programmez.com Soyez le geek de l été! image du geek : istockphoto/peskymonkey Découvrez PHP 5.5 Picaxe, Leap Motion, Gadgeteer, Raspberry Pi : la

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

Plus en détail

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully Les grandes facettes du développement Web Qui sommes nous? Nicolas Thouvenin Stéphane Gully Projets Web depuis 2000 LAMP, NodeJS HTML, CSS, jquery

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

Nouveautés de Drupal 8. Léon Cros @chipway

Nouveautés de Drupal 8. Léon Cros @chipway Nouveautés de Drupal 8 Léon Cros @chipway.. Léon Cros Communauté Drupal Président de l'association Drupal France et Francophonie @chipway / chipway-drupal. JDLL 2014. Chipway : Spécialiste Formations Drupal

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy Claude Delannoy S initier à la la programmation Avec des exemples en Avec des exemples en C, C++, C#, Java et PHP C, C++, C#, Java et PHP S initier à la programmation Avec des exemples en C, C++, C#, Java

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte? Avant-propos... V CHAPITRE 1 Scripting Windows, pour quoi faire?... 1 Dans quel contexte?.................................................. 1 La mauvaise réputation............................................

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Groupe Eyrolles, 2004, ISBN : 2-212-11274-2

Groupe Eyrolles, 2004, ISBN : 2-212-11274-2 Groupe Eyrolles, 2004, ISBN : 2-212-11274-2 Table des matières Remerciements.................................................. Avant-propos.................................................... Structure

Plus en détail

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze Programmation FLEX 3 Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder Aurélien Vannieuwenhuyze Avec la contribution de Romain Pouclet Groupe Eyrolles, 2009, ISBN : 978-2-212-12387-6

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Jimmy Clairbois. Projets réalisés dans le cadre professionnel

Jimmy Clairbois. Projets réalisés dans le cadre professionnel Jimmy Clairbois Projets réalisés dans le cadre professionnel 1. becad... 2 1.1. Logiciel de gestion de membres d une union professionnelle... 2 1.2. Logiciel de gestion de site de vente en ligne pour le

Plus en détail

Dossier de Presse. www.2le.net. Ergonomie. E-commerce. Portails internet. Applications Facebook. Logiciels «prêts à adapter» Logiciels sur mesure

Dossier de Presse. www.2le.net. Ergonomie. E-commerce. Portails internet. Applications Facebook. Logiciels «prêts à adapter» Logiciels sur mesure E-commerce Dossier de Presse Portails internet Applications Facebook 2011 1 Logiciels «prêts à adapter» Logiciels sur mesure www.2le.net Ergonomie Webdesign Contact presse : Céline Richard celine@2le.net

Plus en détail

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur FORMATION FORFAIT WEB DEVELOPPEUR Qualification ISQ OPQF Formacode 46 125 Certification de titre professionnel Web Designer + modules optionnels : Développement PHP/MySQL avancé, Web App, CMS e-boutique

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement Développement de logiciels de logiciels Solutions mobiles iphone, Android WebApp HTML5 Mobile marketing Ingénierie Régie d

Plus en détail

Agence Web innovatrice

Agence Web innovatrice QUI SOMMES NOUS? 02 n o v a t i s La théorie c est quand on comprend tout et que rien ne marche La pratique c est quand tout marche mais on ne sait pas pourquoi! Chez Novatis, nous avons réussi les deux...

Plus en détail

Table des matières. Avant-propos... Préface... XIII. Remerciements...

Table des matières. Avant-propos... Préface... XIII. Remerciements... Avant-propos... XI Préface... XIII Remerciements... XV Introduction... XVII Pourquoi faire un pentest?... XVII Pourquoi Metasploit?... XVII Un bref historique de Metasploit.... XVIII À propos de ce livre...

Plus en détail

Bibliothèque Numérique L'intégrale Collection Ressources Informatiques

Bibliothèque Numérique L'intégrale Collection Ressources Informatiques Bibliothèque Numérique L'intégrale Collection Ressources Informatiques Informaticiens Niveau : Débutant à Initié Disposer d'un manuel de référence Présentation des concepts essentiels de mise en œuvre

Plus en détail

Programme de formation

Programme de formation Soutenue par Programme de formation Description du programme Le programme de formation Web@cademie est destiné à former sur 2 ans les apprenants aux métiers du web et l internet. Il s organise en quatre

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

Session 8: Android File System

Session 8: Android File System Session 8: Android File System LO52 - Automne 2014 Fabien BRISSET 2 mai 2014 fabien.brisset@utbm.fr www.utbm.fr Droits de reproduction Copyright 2013-2014, Fabien Brisset, Copyright 2004-2014, Free Electrons

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

Plus en détail

www.rohos-fr.com Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

www.rohos-fr.com Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur La connexion par reconnaissance faciale L accès sécurisé sous Windows et Mac à l aide d une clé USB www.rohos-fr.com

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de En partenariat avec Webinar Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL avec la participation de 19 mars 2013 Qui sommes-nous? INTRODUCTION

Plus en détail

MailStore Server 7 Caractéristiques techniques

MailStore Server 7 Caractéristiques techniques MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages

Plus en détail

Auteur LARDOUX Guillaume Contact guillaume.lardoux@epitech.eu Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Auteur LARDOUX Guillaume Contact guillaume.lardoux@epitech.eu Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA Auteur LARDOUX Guillaume Contact guillaume.lardoux@epitech.eu Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA Sommaire 1. Introduction 2. Installation 3. Fonctionnement 4. Développement 5. Démonstration 2

Plus en détail

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Modernisation IBM i Nouveautés 2014-2015 IBM Power Systems - IBM i 19 et 20 mai 2015 IBM Client Center, Bois-Colombes S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Mardi

Plus en détail

Joomla! Création et administration d'un site web - Version numérique

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Loïc Rossignol Ingénieur Consultant

Loïc Rossignol Ingénieur Consultant FORMATION & DIPLOMES 2012 2013 3IL (Limoges) 2011 CS2I Bourgogne (Groupe 3IL) 2008 Lycée Raoul Follereau (Nevers) Master 2 Manager des systèmes d information et des infrastructures European Master of Science

Plus en détail

Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Les API ArcGIS pour les smartphones

Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Les API ArcGIS pour les smartphones Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Les API ArcGIS pour les smartphones Patrice Freydière Olivier Rossini Sommaire Introduction - Positionnement - Fonctionnalités communes - Architecture

Plus en détail

Paul FLYE SAINTE MARIE

Paul FLYE SAINTE MARIE Paul FLYE SAINTE MARIE ASSISTANT CHEF DE PROJET DANS LE DÉVELOPPEMENT INFORMATIQUE Domaines de compétences Conduite de projet (échange avec la maitrise d ouvrage, maitrise d œuvre, rédaction des spécifications

Plus en détail

À qui s adresse cet ouvrage?

À qui s adresse cet ouvrage? Introduction Bienvenue dans le Guide de l administrateur de Microsoft Windows Server 2008. En tant qu auteur de plus de 65 livres, j écris des ouvrages professionnels sur la technologie depuis 1994. Au

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

La programmation orientée objet et le langage C++

La programmation orientée objet et le langage C++ Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Formations qualifiantes pour demandeurs d emploi 2016-2018

Formations qualifiantes pour demandeurs d emploi 2016-2018 Formations qualifiantes pour demandeurs d emploi 2016-2018 Lot 1 : Data Analyst 1.1 Programmation Excel avec VBA, 1.2 Conception des structures de données, 1.3 Tour d horizon des outils, technologies et

Plus en détail

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions. The Mozilla Art Of War Laboratoire d Informatique Fondamentale d Orléans 20 septembre 2008 Firefox, c est sûr Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité.

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

Notre vision, Votre croissance

Notre vision, Votre croissance Notre vision, Votre croissance Montez et gérez votre plateau de service offshore, rapidement, sans engagement, rentablement. Contactez-nous! Nous sommes là pour vous accompagner. Notre vision, Votre croissance

Plus en détail

COMPÉTENCES TECHNIQUES

COMPÉTENCES TECHNIQUES André RIHANI, 43 ans DEUG A (MPM), 1993 Anglais courant 06.15.30.08.31 andre@rihani.fr DÉVELOPPEUR PHP ORANGE: Développeur LAMP (Linux, Apache, MySql, Php) durant 7 ans, tests unitaires et fonctionnels,

Plus en détail

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience M0145 INGÉNIEUR - DÉVELOPPEUR SENIOR PHP 28 ans - 8 ans d'expérience Expert ises mét iers : Langues : Tourisme et loisirs, Editeur de logiciels Roumain (Langue maternelle), Anglais (Avancé), Français (Débutant)

Plus en détail

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008 Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

4D v11 SQL Release 5 (11.5) ADDENDUM

4D v11 SQL Release 5 (11.5) ADDENDUM ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release

Plus en détail

Un serveur web léger et ouvert

Un serveur web léger et ouvert Un serveur web léger et ouvert A propos de moi Nenad Rakocevic Programmeur depuis 25 ans: C/C++, *Basic, ASM, REBOL, Javascript, Co-fondateur de Softinnov, entreprise IT à Paris Auteur de plusieurs librairies

Plus en détail

Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft

Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft Microsoft et le Cloud Computing Quelle approche? Le Cloud, un accélérateur de la transformation Un modèle

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures 3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures Objectif global : A l issue de la formation, les stagiaires doivent être opérationnels dans la création d un site internet

Plus en détail

Solution de Mobilité SAP SUP & AFARIA. Meltz Jérôme

Solution de Mobilité SAP SUP & AFARIA. Meltz Jérôme Solution de Mobilité SAP SUP & AFARIA Meltz Jérôme 01 Agenda PRÉSENTATION D AUGUSTA REEVES Augusta Reeves Création en 1998 Société de service d Intégration SAP fondé en 1998 CA 2011 : 14,8 M Effectif :

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau Performances PHP Julien Pauli Cyril Pierre de Geyer Guillaume Plessis Préface d Armel Fauveau Groupe Eyrolles, 2012, ISBN : 978-2-212-12800-0 Table des matières Avant-propos... 1 Pourquoi ce livre?.....................................................

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010. Guillaume ANSEL M2 ISIDIS 2009-2010 / ULCO Dossier d étude sur la virtualisation LA VIRTUALISATION 18/01/2010 Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques.

Plus en détail

Plateforme Applicative Zend PHP Cloud

Plateforme Applicative Zend PHP Cloud Plateforme Applicative Zend PHP Cloud Kevin Schroeder Évangéliste Présenté par Maurice Kherlakian Consultant services professionnels À propos de Kevin Passé : Programmation/Admin. réseau Actuellement :

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada AJAX (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne Développement des Systèmes Dynamiques, Programmation Sémantique Opérationnelle, Programmation Fonctionnelle

Plus en détail

Programme ASI Développeur

Programme ASI Développeur Programme ASI Développeur Titre de niveau II inscrit au RNCP Objectifs : Savoir utiliser un langage dynamique dans la création et la gestion d un site web. Apprendre à développer des programmes en objet.

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail