Vous êtes sur la page 1sur 43

Mellinger Benot Acadmie de Lille Universit des Sciences et Technologies de Lille Cit Scientifique 59655 Villeneuve d'Ascq Cedex

UFR IEEA Formations en Informatique de Lille Promotion 2010

Licence Miage - Rapport de stage

Dveloppement d'une application mobile : iQ for iPhone

Rapport de stage prsent en juin 2010 par : Mellinger Benot En vue de l'obtention de la licence MIAGE

Stage effectu chez : Agile Partner SA 20A, rue du Puits Romain 8070 Bertrange Luxembourg

Avril Juin 2010

Page 1 sur 43

Mellinger Benot Acadmie de Lille Universit des Sciences et Technologies de Lille Cit Scientifique 59655 Villeneuve d'Ascq Cedex UFR IEEA Formations en Informatique de Lille Promotion 2010

Licence Miage - Rapport de stage

Dveloppement d'une application mobile : iQ for iPhone

Rapport de stage prsent en juin 2010 par : Mellinger Benot En vue de l'obtention de la licence MIAGE

Stage effectu chez : Agile Partner SA 20A, rue du Puits Romain 8070 Bertrange Luxembourg

Avril Juin 2010

Page 2 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Avril Juin 2010

Page 3 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Remerciements
Je remercie M. Sylvain Chery, directeur de la socit Agile Partner, pour l'accueil qu'il m'a rserv au sein de son organisation ainsi que pour la mise disposition de tout le matriel ncessaire au bon droulement de mon stage. Aussi, je lui exprime tous mes remerciements pour m'avoir permis de participer la vie de l'entreprise et pour avoir pu appliquer mes connaissances au bnfice du projet auquel j'ai eu la chance de participer. Je tiens galement remercier chaleureusement mon tuteur de stage, M. Frdric Balin, consultant chez Agile Partner, toujours prsent et disponible pour m'orienter et rpondre mes questions. Un grand merci M. Francesco De Comit, tuteur de stage l'universit, pour le suivi qu'il a assur lors de la recherche de stage ainsi que pendant la dure de celui-ci. Je tmoigne aussi une grande reconnaissance l'ensemble du personnel d'Agile Partner, pour m'avoir apport leur soutien tout au long du stage.

Avril Juin 2010

Page 4 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Sommaire
Introduction........................................................................................................................................ 6 1 Agile Partner : leader agile au Luxembourg................................................................................7 2 iQ for iPhone : contexte du projet...............................................................................................12 3 Approche mthodologique........................................................................................................... 17 4 Outils et technologies....................................................................................................................21 5 Ralisation..................................................................................................................................... 27 Conclusion......................................................................................................................................... 33 Annexes..............................................................................................................................................34 Table des matires.............................................................................................................................42 Table des annexes..............................................................................................................................43

Avril Juin 2010

Page 5 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Introduction
Le stage de fin de licence Miage est l'aboutissement d'une anne d'tude au sein du l'UFR IEEA (Informatique, Electronique, Electrotechnique et Automatique) de l'Universit des Sciences et Technologies de Lille. Celui-ci a pour objectif de nous mettre en situation dans le monde professionnel, d'approcher au plus prs un des mtiers de l'informatique en entreprise. J'ai effectu ce stage chez Agile Partner, une socit de service en ingnierie informatique (SSII) base Bertrange, dans la priphrie de Luxembourg, au Grand-Duch du Luxembourg. Ce stage s'est droul du 1er avril au 30 juin 2010. Ce stage m'a permis d'apprhender un secteur trs en vogue : celui du dveloppement d'applications mobiles. Dans ce rapport, il sera prsent en premier lieu l'entreprise dans laquelle j'ai eu la chance de raliser ce stage. Ensuite, une prsentation de l'application mobile en question ainsi que l'approche mthodologique mise en oeuvre seront effectues. Pour finir, les outils et technologies utiliss ainsi qu'une partie rsumant la ralisation de l'application seront dvelopps.

Bonne lecture !

Avril Juin 2010

Page 6 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

1 Agile Partner : leader agile au Luxembourg


1.1 Prsentation
C'est en 2004, sur le territoire du Grand-Duch du Luxembourg qu'Agile Partner, socit de services informatiques, a vu le jour. Forts de leurs expriences professionnelles et afin de faire face aux exigences du march en terme de qualit, de dlai et de cot, les quatre fondateurs d'Agile Partner ont mis sur les bnfices que peuvent apporter les mthodes agiles. Dote d'une expertise technologique forte et d'une exprience importante dans le domaine des systmes d'information, la socit Agile Partner a toujours su rpondre aux contraintes imposes par le contexte conomique actuel. Les mthodes agiles en quelques lignes : Les mthodes agiles sont des mthodes de gestion et de ralisation de projets. En impliquant au maximum le client, elles permettent de rduire les risques d'chec et de satisfaire les besoins rels du client. Les valeurs et les principes de ces mthodes ont t consignes en 2001 dans un document : le manifeste agile1. La mthode SCRUM ainsi que l'eXtreme Programming (XP) sont les deux mthodes agiles les plus utilises dans le domaine de l'informatique. L'une des vocations d'Agile Partner est de promouvoir l'agilit au Luxembourg et d'accompagner les socits dans la mise en place de ces mthodes. Ainsi, la socit se veut tre membre de l'Agile Alliance et supporte activement l'Agile Interest Group Luxembourg.

1.2 L'activit
L'activit principale d'Agile Partner est avant tout base sur le dveloppement spcifique d'applications logicielles, mais elle s'est aussi diversifie par l'offre de solutions clefs en main, l'accompagnement la matrise d'ouvrage et la formation.

1.2.1 Ingnierie logicielle


Expertes en la matire, les quipes d'Agile Partner sont capables d'valuer les besoins stratgiques de leurs clients afin de leur proposer des solutions parfaitement adaptes, et ce, en utilisant les technologies les plus rcentes.

Pour plus d'informations : http://www.agilemanifesto.org/

Avril Juin 2010

Page 7 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Les principales comptences techniques d'Agile Partner sont : L'architecture des systmes d'information et des applications ; Le dveloppement d'applications spcifiques sur la plateforme Microsoft .Net (framework .Net, WinForm, WPF, WCF, Silverlight, ASP.Net,...) ; Le dveloppement d'applications spcifiques sur la plateforme Java (J2EE, Struts, Spring,...) ; Le dveloppement d'applications mobiles. Exemple (technologie .NET) : Dveloppement des outils de production et de diffusion de la Base d'Informations Economiques Notariales de la chambre des notaires d'Ile-de-France : Rception des actes tl-transmis ; Contrle des informations l'aide d'un moteur de rgles mtier ; Re-qualification des donnes ; Site de diffusion incluant un module de statistiques. Agile Partner est une socit certifie par Microsoft, ceci est un gage de qualit vis vis de ses clients et de ses partenaires.

1.2.2 Solutions
Agile Partner dveloppe galement des applications spcifiques conues partir de solutions commerciales et/ou Open Source. Ces solutions permettent d'apporter des rponses rapides et conomiques des problmatiques prcises identifies auprs des clients. Les principales solutions proposes par Agile Partner sont : Site et portails internet, intranet et extranet sur la plateforme Jahia ; Gestion documentaire sur la plateforme Microsoft Office SharePoint Portal Server ; Application mtier de type CRM sur la plateforme Microsoft Dynamics CRM 4.0 ; Solutions dcisionnelles sur la plateforme Microsoft SQL Server 2005/2008 avec l'ensemble de ses outils d'ETL, d'analyse et de reporting.

1.2.3 Accompagnement et assistance


Agile Partner se compose d'un personnel possdant une expertise pointue dans la conduite et la conception de projets informatiques. C'est pourquoi, il est mme d'accompagner les quipes de dveloppement de leurs clients afin d'atteindre leurs objectifs en terme de qualit et de productivit. Dans ce domaine, les mthodes agiles offrent des rponses aux contraintes habituelles des quipes (insatisfaction des utilisateurs, difficult de maintenance et d'volution,...). Agile Partner assiste galement ses clients la matrise d'ouvrage. Les chefs de projets, Scrum Master et consultants sont capables d'assister leurs clients dans l'optimisation du retour sur investissement de leurs projets.

Avril Juin 2010

Page 8 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

1.2.4 Formation
Conscient de la ncessit d'un apprentissage constant sur le plan personnel et collectif, Agile Partner dispense tout un panel de formations techniques ainsi qu'un cursus de matrise de l'ensemble des concepts de l'agilit. Agile Partner est le Centre de formation certifi Valtech Training (socit franaise spcialise en formation informatique) pour le Luxembourg. Voir un aperu de l'ensemble des formations en Annexe (annexe A).

De plus, la socit a engag un partenariat fort avec la socit amricaine CollabNet (anciennement Danube Technologies Inc), notamment pour les parcours ScrumAlliance (Certified ScrumMaster et Certified ProductOwner).

Avril Juin 2010

Page 9 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

1.3 Une nouveaut : le dveloppement d'applications mobiles


Grce l'ouverture du march des smartphones au grand public, le dveloppement d'applications mobiles est devenu un secteur trs actif. Afin de satisfaire les demandes de ses clients en la matire, la socit a fond un ple de dveloppement mobile. Suite ces demandes, le dveloppement ne s'effectue que sur les appareils de la marque Apple, leader dans le domaine avec l'iPhone et plus rcemment, l'iPad. La premire application d'Agile Partner devrait paratre sur l'Apple Store en juin 2010. Le dveloppement d'application sur les plate-formes Androd et Windows Mobile est prvu pour l'avenir. Agile Partner est une socit membre de l'iPhone Developer Program 2.

1.4 Clients
Depuis 6 ans maintenant, Agile Partner a su entretenir des liens privilgis avec ses clients. Ses principaux clients sont : Le Parlement Europen ; CACEIS Bank Luxembourg (Administrateur de fond) ; Dennemeyer & Co (Gestion de proprit intellectuelle) ; Paris Notaire Service (Chambre des notaires d'Ile-de-France) ; Deloitte Luxembourg (Audit et consulting) ; SEB Luxembourg (Banque) ; P&T Luxembourg (Division des Postes luxembourgeoise) ; ...

Pour plus d'informations : http://developer.apple.com/programs/iphone/

Avril Juin 2010

Page 10 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

1.5 Agile Partner en chiffres


Agile Partner c'est : 23 employs, dont : - 16 dveloppeurs et architectes ; - 6 consultants et chefs de projets ; - 1 personne charge de la partie administration et commerciale. 4 dcideurs ; un capital de 32.000 . Les chiffres de 2009 : chiffre d'affaire de 1.900.000 ; rsultat net de 80.000 ; marge nette de 4.21% ; masse salariale de 1.300.000 .

Avril Juin 2010

Page 11 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

2 iQ for iPhone : contexte du projet


En premier lieu, il sera prsent DIAMS iQ, solution logicielle depuis laquelle l'application mobile reoit ses donnes. Ensuite, les besoins et les exigences du client seront dtaills. Pour finir, une dernire partie exposera l'offre qu'Agile Partner a prsent au client.

2.1 DIAMS iQ
DIAMS iQ est une solution logicielle dveloppe pour la socit Dennemeyer & Co (dont l'activit est la gestion de proprit intellectuelle), en partenariat avec Agile Partner.

2.1.1 Dfinitions
Dfinition d'une juridiction : Le mot juridiction doit tre compris dans le sens d'une juridiction territoriale. Dans la majorit des cas, une juridiction fait rfrence un pays. Parfois, elle correspond une entit conomique part entire (ex : le Benelux). Dfinition d'une marque : Une marque reprsente un dpt (c'est dire un enregistrement auprs des institutions comptentes) dans une seule juridiction. Par exemple, il existe une marque Adidas en France, une marque Adidas en Allemagne, une marque Adidas au Benelux,... Il est possible de faire un dpt communautaire (dans les 27 pays de l'UE, par exemple), ce qui implique une marque unique et non plusieurs marques dans chaque juridiction. Il est galement possible d'tendre un dpt national ou communautaire l'international (ceci est gr par la World Intellectual Property Organization)3. Une marque doit (ou peut) tre renouvele aprs un certain dlai. Dfinition d'un profil : Un profil est une entit abstraite qui se compose d'un ensemble de marques (souvent, cela correspond l'ensemble des marques de mme nom).

3 Pour tout savoir sur la proprit intellectuelle et le dpt de marques : http://www.inpi.fr/fr/connaitre-la-pi.html

Avril Juin 2010

Page 12 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

2.1.2 Prsentation de l'application


Le but de l'application DIAMS iQ est de grer un portefeuille de marques (mais aussi de brevets, de licences, etc), durant l'intgralit de leur cycle de vie : depuis le dpt, jusqu'aux renouvellements. Ces renouvellements induisent des problmatiques de dates et d'chances qui sont diffrentes selon le pays dans lequel la marque est dpose. Pour les dpositaires, l'enjeu est de taille : une fois pass une certaine date, la marque n'est plus attribue son propritaire et l'objet de la marque (nom, logo, bande sonore,...) peut tre utilis par une tierce personne. L'application englobe la gestion de ces aspects de dlais, mais aussi le suivi de la partie financire (il n'est pas gratuit de dposer des marques) des dpts. Elle inclut aussi le suivi des dmarches administratives (auprs d'agents locaux qui prennent en charge les dpts dans leur juridiction). DIAMS iQ est utilise par Dennemeyer pour ses propres besoins et se destine galement la vente. La premire version (finalise en mai 2010) aura ncessit deux ans de travail une quipe de 10 personnes. Elle est ralise essentiellement via la technologie .NET et bnficie d'une partie serveur et d'une partie client (WPF). L'application iQ for iPhone doit permettre la visualisation des dpts de marques par pays sur une carte du monde. Dans un premier temps, les donnes visualiser sont contenues dans la base de donnes de dmonstration de DIAMS iQ.

2.2 iQ for iPhone : besoins initiaux


Le support iPhone tant relativement accrocheur, l'application iQ for iPhone se rvle tre un trs bon outil marketing pour Dennemeyer. Voici l'ensemble des fonctionnalits et des contraintes imposes : Application attractive et conviviale ; Recherche et slection parmi une liste de profils ; Visualisation des marques sur une carte et/ou sur une liste ; Prsentation des dtails relatifs chacune des marques ; Retour sur la liste des profils en secouant l'appareil (shake to reset) ; Utilisation de l'ensemble de l'application en mode portrait ou paysage. Les lments graphiques (icne, images, splashscreen,...) sont fournis par Dennemeyer. Le client a tabli une demande pour une application iPhone, mais aussi pour une version iPad. Dans le but d'affirmer sa position et son dynamisme sur le march, Dennemeyer dsire prsenter l'application iQ for iPhone lors du meeting international de l'INTA (International Trademark Association) se droulant Boston du 22 au 26 mai 2010.

Avril Juin 2010

Page 13 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

2.3 L'offre prsente Dennemeyer


Aprs de nombreux changes avec le client, l'quipe du projet iQ for iPhone s'est attach rdiger une offre prcisant les fonctionnalits principales, l'architecture, les usages attendus, les exigences, les contraintes, le planning et le cot.

2.3.1 Fonctionnalits
La navigation au sein de l'application consistera en six crans diffrents, voici un schma reprsentatif :

Schma de navigation dans l'application

Loading screen : premier cran lorsque l'application est lance, les profils se chargent. Search profile : liste de profils (tris par ordre alphabtique) proposant une fonctionnalit de recherche. Map view : la slection d'un profil, l'utilisateur se voit prsenter une carte sur laquelle l'implantation d'une marque, si elle existe, est indique pour chaque pays. Il est possible de zoomer et de naviguer librement sur la carte. List view : en plus de la carte, l'utilisateur peut visualiser l'ensemble des marques sous forme d'une liste. Detail view : la slection d'un pays sur la carte ou sur la liste, il doit tre possible d'afficher les dtails de la (des) marque(s) affilie(s) ce pays. Configuration : la vue de configuration doit pouvoir permettre l'utilisateur de changer la source des donnes.

Avril Juin 2010

Page 14 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Un statut est toujours affect une marque. Celui-ci doit tre prcis sur la carte et dans la liste par un code couleur ou par un symbole. On distingue quatre statuts diffrents : Not yet filed (dossier prpar mais la demande de dpt n'a pas encore t faite) ; Pending (demande de dpt effectue, en attente de validation) ; Registered (marque enregistre) ; Pending opposition (opposition de dpt).

2.3.2 Communications
Voici un schma rsumant les communications entre l'application iPhone et les services extrieurs :

Communications entre l'application et l'extrieur.

Les fonctionnalits de l'API Google Maps sont utilises. Les donnes (provenant de la base de dmonstration de DIAMS iQ) de l'application sont rcupres via un web service expos par un serveur hberg chez Dennemeyer. Afin de garantir la scurit, un login et un mot de passe sont ncessaires pour la connexion ce web service, de plus le protocole HTTPS est utilis pour tous les changes. Dennemeyer est responsable du dveloppement et de la mise en place de ce web service.

Avril Juin 2010

Page 15 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

2.3.3 Dploiement et livraison


Vu les dlais, et pour s'assurer de la disponibilit de l'application lors du meeting de l'INTA, un dploiement manuel est effectu sur une dizaine d'iPhone appartenant aux employs de Dennemeyer. Pour ce faire, Apple propose une mthode peu contraignante : le dploiement Ad Hoc. Il s'opre via iTunes mais ncessite que la compilation des sources soit associe au numro d'identification de ce dernier. Par la suite, Agile Partner soumettra l'application Apple pour la diffusion sur l'App Store, magasin virtuel d'application pour les terminaux de la marque. De plus, Agile Partner s'est engag : Fournir le code source de l'application ; Livrer une documentation (mthode) pour la mise en oeuvre du dploiement Ad Hoc. Le cot de l''application iQ for iPhone pour Dennemeyer est d'environ 12.000 .

2.3.4 Limites
L'application mobile est dveloppe pour la plateforme iPhone (version du systme d'exploitation 3.0 minimum). Comptes tenus des dlais et du budget, Agile Partner n'a pas pu assurer son client la livraison d'une version spcifique pour iPad (cependant, il est tout fait possible de dployer la version iPhone sur ce dernier). Avant la publication d'une application sur l'App Store, Apple effectue un ensemble de contrles tant sur le contenu diffus, que sur les fonctionnalits proposes. Dans le cas d'un rejet par Apple pour un motif autre que technique, Agile Partner ne pourra tre tenu pour repsonsable.

Avril Juin 2010

Page 16 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

3 Approche mthodologique
3.1 Mthode agile mise en oeuvre : Scrum
Popularise depuis la fin des annes 90, Scrum est sans doute la mthode agile la plus utilise dans le monde de l'informatique. Souvent oppose aux mthodes traditionnelles, elle a pour but d'augmenter la productivit et rduire le taux d'chec en impliquant au maximum le commanditaire du projet dans sa ralisation.

La dsignation Scrum provient du rugby, signifiant mle .

On diffrencie trois acteurs : Le Product Owner : il est le reprsentant du client, il prend les dcisions importantes quant aux fonctionnalits implmenter. L'quipe de dveloppement : Auto-gre, elle n'a pas de notion de hirarchie. Aux moments clefs, elle est directement en contact avec le Product Owner. Le Scrum Master : il a le rle de facilitateur, il fait en sorte que l'quipe ne soit pas perturbe dans son travail (par des problmes administratifs, par exemple). Il veille ce que la mthodologie Scrum soit bien applique. Un des principes fondamental de Scrum est de planifier le projet en itrations de dure fixe (aussi appeles sprints) pouvant aller de 2 4 semaines dans la plupart de cas. Le Product Owner dfinit toutes les fonctionnalits du produit (product backlog), et leur affecte un ordre de priorit. Une valuation de l'effort ncessaire (backlog effort) pour le dveloppement des fonctionnalits les plus prioritaires est effectue par l'quipe projet.

Avril Juin 2010

Page 17 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Sur base des efforts estims, une liste des fonctionnalits dvelopper est tablie pour le premier sprint. Chaque fonctionnalit est ensuite dcoupe en une srie de tches raliser dont on value la dure. Ces tches sont consignes sur un tableau qui permet le suivi de l'avancement du projet par l'quipe et par le client. Ce tableau est divis trois colonnes : faire, en cours et termin. Les membres de l'quipe dplacent les tches qui leurs sont assigns dans ces diffrentes colonnes en fonction de l'avancement. Les dures restantes des tches dbutes mais non acheves sont quotidiennement rvalues.

Exemple de Scrum board

Les valuations des temps restants sont galement reportes sur un graphique appel Burndown chart.

Exemple de burndown chart

Une runion quotidienne (daily scrum meeting) permet de faire le point sur l'avance du projet et les problmes rencontrs. Le daily scrum meeting n'a pas pour but de rsoudre les problmes mais simplement de les voquer. Sa dure est extrmement limite (maxi 15 minutes). A la fin de l'itration, deux runions sont organises. La premire permet l'quipe de prsenter le rsultat du sprint au Product Owner. La seconde, interne l'quipe, a pour but de spcifier des pistes d'amlioration pour la productivit et la qualit du travail effectu lors du sprint. Pour l'itration suivante, le Product Owner est libre de fixer de nouvelles fonctionnalits (ou d'en retirer) et/ou de modifier les priorits du product backlog.

Avril Juin 2010

Page 18 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Schma rcapitulatif de la mthode Scrum

Le calcul de vlocit : La vlocit correspond au nombre de points (backlog effort) que l'quipe est capable de raliser en une itration. Aprs quelques sprints, l'exprience permet de ne pas survaluer ou sousvaluer le nombre d'items raliser. Bien videmment, des outils informatiss permettent de grer un projet de cette manire, il sera prsent dans la suite de ce rapport, le logiciel que nous avons utilis : ScrumWorks Pro 4.

Cf partie 4.2 Un outil intressant : ScrumWorks Pro

Avril Juin 2010

Page 19 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

3.2 Cycle de vie, quipe de dveloppement et relation client


En accord avec le client, pour l'application iQ for iPhone, il a t convenu trois itrations de deux semaines, voici le planning prvisionnel :

Planning prvisionnel pour le dveloppement de l'application iPhone.

Du cot Agile Partner, l'quipe (soutenue par Sylvain Chery) se compose de Frdric Balin qui planifie les tches, assure la communication avec le client, et prend part au dveloppement. Elle se compose galement de Pascal Claus, charg de dfinir l'architecture et de superviser les aspects techniques. J'y prends part en tant que dveloppeur. Du cot Dennemeyer, Johannes Taeuber a pour mission de nous apporter la structure des donnes et de mettre en place le web service (l'accs au donnes de dmonstration). Pour finir, Mourad Kadoussi est charg de nous fournir tous les lments graphiques dont nous avons besoin pour l'application. Une livraison est prvue la fin de chaque itration, le client peut alors valuer le travail effectu et nous faire part d'un retour afin de modifier et d'amliorer l'application.

Avril Juin 2010

Page 20 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

4 Outils et technologies
4.1 L'environnement
4.1.1 Plate-forme
Afin de dvelopper une application mobile, sur la plate-forme iPhone, il est ncessaire de travailler dans un environnement Apple. Il a t mis ma disposition dans les locaux d'Agile Partner une machine de bureau de type iMac (2 me gnration d'iMac avec processeur Intel, 3.06Ghz, 4Gb de mmoire, 500Gb d'espace disque, 21.5 pouces). Le systme d'exploitation install sur cette machine est Mac OS X, dans sa version Snow Leopard (10.6.2), c'est dire la version la plus rcente existant actuellement.

A iMac 21.5 pouces

Mac OS X : Snow Leopard

tant habitu travailler sur iMac, la prise en main de la machine et du systme d'exploitation n'a pas t problmatique.

4.1.2 Xcode
Xcode est l'IDE5 utilis pour dvelopper des applications sur les plate-formes mobiles et non mobiles d'Apple. Il est entirement gratuit, sa version la plus rcente est la version 3.2.1 et il est disponible sur le site d'Apple. Les deux API 6 natives Carbon et Cocoa permettent de dvelopper en C, C++, Objective-C, AppleScript et Java. Associ au SDK (Software Development Kit) iPhone, Xcode permet de dvelopper directement pour iPhone, iPod touch et iPad. Dot d'un simulateur il est possible de tester son application sans la dployer sur un appareil. Le simulateur est utilisable de la mme manire qu'un vritable iPhone. Cependant, il ne gre pas la camra ni l'acclromtre, ni le GPS,...

5 Integrated Development Environment Environnement de dveloppement 6 Application Programming Interface : ensemble de composants mis disposition pour coder.

Avril Juin 2010

Page 21 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Un outil permettant de dvelopper des interfaces graphiques de manire simple et rapide est galement fourni avec Xcode : il se nomme Interface Builder. Une version d'Interface Builder a t spcialement conue pour l'iPhone en 2008 (et pour l'iPad en 2010 avec le SDK iPhone 3.2).

Xcode

Interface Builder

Voir l'utilisation du simulateur et d'Interface Builder en Annexe (annexe B). Le partage des sources s'effectue grce un gestionnaire de sources qui permet de garder un historique des diffrentes versions du code.

4.1.3 Le langage Objective-C


Apparu en 1986, l'Objective-C est un langage de programmation orient objet. C'est une extension du C ANSI mais qui, contrairement au C++, ne permet pas l'hritage multiple. Ce langage est utilis principalement dans deux systmes d'exploitations : GNU,Mac OS X ainsi que iPhone OS. Mac OS X et iPhone OS utilisent l'API Cocoa qui elle-mme succde de l'API OneStep, utilis dans le systme d'exploitation NeXTSTEP. Ce dernier est le systme d'exploitation conu par l'entreprise NeXT, socit fonde en 1985 par Steve Jobs lors de son dpart de la socit Apple. Lors du rachat de NeXT par la marque la pomme en 1996 (et du retour de Steve Jobs), NeXTSTEP devint le noyau de base pour fonder Mac OS X. Pour l'anecdote, ce sont sur des machines NeXT que sont ns les jeux vido Wolfenstein 3D et le clbre Doom, ainsi que le premier navigateur web connu, WorldWideWeb. Largement inspir par le langage SmallTalk (langage qui a aussi grandement influenc Java), dans Objective-C tout est objet et la classe racine est NSObject. On peut noter la prsence des deux lettres NS, signifiant NeXTSTEP, qui prfixent un grand nombre de types en Objective-C (NSArray, NSString,...). Hello World en Objective-C :
#import <Foundation/Foundation.h> int main(){ NSLog(@"Hello World"); return 0; }

En Objective-C, comme en C, chaque classe est compose de deux fichiers. Le premier, un .h qui correspond au header : il permet de spcifier les proprits de la classe ainsi que les signatures des mthodes non hrites de la superclasse. Le second fichier est le .m (semblable au .c en C) : il contient le corps de la classe. Avril Juin 2010 Page 22 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Afin de communiquer avec Interface Builder, il est possible de prciser un objet qu'il est un IBOutlet, ainsi le compilateur rendra cet objet disponible pour Interface Builder (un objet de type UIButton peut tre un IBOutlet, par exemple). De la mme manire, il est possible de prciser une mthode de renvoyer un objet de type IBAction (similaire void, mais qui rend cette mthode accessible par Interface Builder) afin d'associer cette mthode un bouton, par exemple. Exemples :
// L'objet quit est de type UIButton et est un IBOutlet. IBOutlet UIButton *quit; //Mthode permettant de quitter une vue ouverte (cette mthode sera associ un bouton dans Interface Builder) -(IBAction)switchback{ [self.view removeFromSuperview]; }

Depuis sa version 2.0, Objective-C est dot d'un ramasse-miettes 7, mais ce dernier n'est pas actif pour les applications mobiles. Il faut donc, comme en C, ds-allouer la mmoire rserve par chaque objet instanci. Si la mmoire n'est pas libre, cela provoque des fuites de mmoire (memory leaks) et peut mettre le bon fonctionnement de l'application en pril 8.

4.2 Un outil intressant : ScrumWorks Pro


Afin de suivre l'avance du projet, itration par itration, tche par tche, nous nous sommes servi d'un logiciel de gestion de projet spcialement conu pour la mthode Scrum : ScrumWorks dans sa version professionnelle.

Cet outil t cr en 2004 par la socit amricaine Danube Technologies Inc (maintenant CollabNet), qui est partenaire d'Agile Partner pour la dispense de certaines formations.

7 Sous-systme informatique qui permet de recycler la mmoire inutilise de manire automatique. 8 Cf. partie 5.2.1 Gestion de la mmoire

Avril Juin 2010

Page 23 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

ScrumWorks Pro : (quasi) fin de la premire itration : 38 points en tout - 4 heures restantes Voir l'utilisation dtaille de ScrumWorks Pro en Annexe (annexe C).

Avril Juin 2010

Page 24 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

4.3 Utilisation de l'API Google Maps


Lanc en 2004 aux Etats-Unis, Google Maps est un service de cartographie en ligne gratuit connu mondialement. Offrant plusieurs types de cartes (Satellite, Terrain,...), il permet de zoomer jusqu' l'chelle de la rue. Google Maps a beaucoup fait parler de lui grce Street View qui permet de se dplacer virtuellement dans les rues des grandes villes d'Europe, du Japon, d'Ocanie et d'Amrique du Nord.

Comme la plupart des services en ligne de la firme californienne, Google Maps est cod principalement en Javascript, et une API (la dernire version est la v3 9) est disponible afin d'utiliser l'ensemble des fonctionnalits de Google Maps. La carte a t intgre dans une page html elle mme charge par l'application iQ for iPhone. Il sera prcis par la suite comment les donnes sont transmises depuis l'appareil vers le javascript pour placer les marqueurs sur la carte.

4.4 Web service et XML


Un web service est mis en place afin de communiquer avec la base de donnes (de dmonstration) de DIAMS iQ. Ce dernier est hberg sur un serveur web de Dennemeyer et utilise le protocole https. Il a pour but de permettre l'application de rcuprer un flux XML. Le web service en quelques mots : Identifi par une URL, un web service (comme son nom l'indique) permet d'changer des informations, des messages, des donnes, via les protocoles standards du web. URL pour le web service de iQ for iPhone :
.../IPhoneService/IPhoneService.svc

Exemple d'utilisation :
.../IPhoneService/IPhoneService.svc/Trademarks/10155

Le web service fournit alors le flux XML contenant l'ensemble des informations des marques correspondant au profil numro 10155.

9 Pour plus d'informations : http://code.google.com/intl/fr-FR/apis/maps/articles/mobile_overview_v3.html

Avril Juin 2010

Page 25 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

La notation XML en quelques lignes : Publi la premire fois en 1998, l'eXtensible Markup Language est une notation informatique permettant de structurer l'information grce des balises. Un document XML peut tre soumis des contraintes (noms des balises, unicit de l'une d'entre elle,...) pouvant tre prciss dans une DTD (Document Type Definition). Des requtes sont galement possibles directement sur un document XML via un langage de requte (XPath ou XQuery, par exemple). XML est devenu un standard normalis, universel et portable. Un exemple de notation XML : <note> <to>Serge</to> <from>Franis</from> <heading>Rappel</heading> <body>Ne m'oublie pas ce week-end !</body> </note>

Avril Juin 2010

Page 26 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

5 Ralisation
5.1 Gnralits
5.1.1 Travail pr-dveloppement
Au dbut de la premire itration, la liste des fonctionnalits (product backlog) de l'application a t dfinie. Avec l'quipe travaillant sur le projet, nous avons associ un nombre de points chaque item afin d'estimer la complexit du travail raliser pour chacun d'entre eux. Ensuite, il m'a fallu prvoir la liste des tches pour la premire itration et prciser une estimation du nombre d'heures ncessaires pour chacune de celles-ci. Pralablement au dveloppement de l'application iQ for iPhone, j'ai du me familiariser avec Xcode et le langage Objective-C. En effet, c'est un langage que je ne connaissais pas et dont la syntaxe me paraissait trange. En suivant des tutoriels, j'ai pass la premire semaine de stage apprendre et progresser en dveloppement iPhone (cration de contrleurs de vues, de listes, parsing de fichiers XML locaux, affichage d'images provenant du net,...).

5.1.2 Connexion et parsing des flux XML

Comme prcis prcdemment, les informations ncessaires l'application sont stockes dans la base de donnes de dmonstration de l'application DIAMS iQ. Afin de rcuprer les flux XML, l'iPhone se connecte un web service mis en place par l'quipe de dveloppement de Dennemeyer. La connexion ce web service s'effectue grce une URL (via un protocole https). Par dfaut, l'application se connecte au web service mis en place par Dennemeyer, mais il est tout fait possible de spcifier une URL personnalise. La vue de configuration ci-contre permet galement de choisir un type de carte par dfaut.

< Vue de configuration de l'application

Avril Juin 2010

Page 27 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

On peut diffrencier 4 types de requte au web service : Rcupration des profils ; Rcupration des marques pour un profil slectionn ; Rcupration des dtails pour une marque slectionne ; Rcupration du logo. Dans les trois premiers cas, les flux XML sont de natures diffrentes, il faut donc prvoir trois parser diffrents. Dans le dernier cas, il s'agit d'une image (.jpg), il n'est donc pas ncessaire de prvoir un parser. Les librairies d'origine de Cocoa permettent une implmentation d'un parser de type SAX10. Pour l'utiliser, il suffit de surcharger les trois mthodes de base d'un parser SAX : startElement (ouverture de balise), foundCharacter (rcupration du texte), endElement (fermeture de balise). Dans l'ordre, le parsing des profils se fait au lancement de l'application (voir capture d'cran cicontre), celui des marques se fait la slection d'un profil, celui des dtails se fait la slection d'une marque (la requte pour rcuprer le logo se fait galement ce moment).
Liste des profils (la recherche est possible via l'index droite et grce au clavier de l'iPhone)

Voir la structure des donnes en Annexe (annexe D).

10 Simple API for XML technologie vue en cours de Nouvelles Applications Web

Avril Juin 2010

Page 28 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

5.1.3 Affichage de la carte


Aprs la slection d'un profil, une requte au web service est effectue afin de rcuprer et parser le flux XML correspondant l'ensemble des marques de celui-ci 11. Les donnes sont alors stockes dans la mmoire de l'appareil.

Capture d'cran de la carte (le bouton info permet d'afficher la lgende)

La carte est charge et les marqueurs sont placs sur celle-ci via l'appel d'une fonction javascript. Cette fonction prend en paramtre le type de carte ainsi que quatre listes, qui pour chaque marque, indiquent : Le code iso du pays ; Sa longitude ; Sa latitude ; Le statut. La notation JSON12 est utilise pour la communication, voici un exemple de l'appel la fonction javascript :
loadData({"MapStyle":"Custom Light","longitude":["-59","175","158.25","8","88.92","12.42","7"],"status":["Not Yet Filed","Not Yet Filed","Not Yet Filed","Registered","Not Yet Filed","Not Yet Filed","Not Yet Filed"],"iso": ["FK","FJ","FM","CH","SV","SM","ST"],"latitude":["-51.75","18","6.92","47","13.83","43.77","1"]});

La fonction loadData() gre le type de carte et l'affichage des marqueurs (selon le statut de la marque). Une fonction de l'API Google Maps permet d'adapter le zoom et la position initiaux de la carte en fonction des marqueurs. Un niveau de zoom maximum est dfini l'chelle des pays. Un event listener est attach chaque marqueur lorsqu'il est cr. C'est un capteur, qui permet de dtecter un clic sur le marqueur. la slection, le navigateur web tente d'ouvrir un lien avec un protocole et un nom de domaine factices, le code iso du marqueur slectionn est concatn au lien en question (exemple : abcdzz://fauxdomaine/FR).
11 Pour avoir un aperu des donnes : Annexe C 12 Javascript Object Notation, pour plus d'informations : http://www.json.org/

Avril Juin 2010

Page 29 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Il est alors possible de rcuprer le lien factice (donc le code iso) dans le contrleur de vue, et d'afficher les dtails de la(des) marque(s) correspondant(es) au pays slectionn :

Dtail de la marque Nivea Sun en Afrique du Sud (la vue est scrollable)

Le drapeau affich dans la vue dtail est rcupr depuis le site http://flagspot.net, grce au code iso du pays. Depuis la carte, un bouton permet de basculer sur une liste (voir la capture d'cran cicontre). Celle ci se compose de l'ensemble des pays pour lesquels au moins une marque est dpose, ainsi que les marques pour lesquelles aucun pays n'est associ. De la mme manire, il est possible de revenir sur la carte (bouton Map en haut droite). Que ce soit depuis la carte ou la liste, il est possible de revenir sur l'cran de slection d'un profil, soit par le bouton Search, soit en secouant l'appareil.

Liste des pays et des marques non affilies un pays

Avril Juin 2010

Page 30 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

5.1.4 Prcisions
Suite la demande du client, un cran About a t greff l'application (accessible via un bouton depuis la liste des profils). Celui-ci prsente les coordonnes de Dennemeyer, un lien vers leur site internet, ainsi qu'un lien vers celui d'Agile Partner. Lors de la manipulation des donnes, nous nous sommes rendu compte que le statut de marque Pending opposition n'en t pas vraiment un (c'est un sous-statut), nous l'avons donc limin de la liste. Dans le cas ou plusieurs marques sont dposes pour un seul pays, la notion de statut multiple a du tre implmente (cf. lgende des marqueurs sur la capture d'cran de la carte). N'tant pas une priorit, l'authentification au web service via un login et un mot de passe a finalement t abandonne.

5.2 Les problmes rencontrs


5.2.1 Gestion de la mmoire
La gestion de la mmoire ft l'un des problmes majeurs au cours du dveloppement de l'application mobile. Dj voqu dans une partie prcdente (4.1.3 Le langage Objective-C), le ramasse-miettes n'est pas actif pour les applications dveloppes sur les plate-formes mobiles Apple. Il faut donc ds-allouer manuellement la mmoire occupe par un objet ds lors qu'il n'a plus de raison d'exister (de la mme manire qu'en C, avec les mthodes malloc et free). L'ensemble de la mmoire qui n'est pas libre provoque des fuites de mmoire (memory leaks), qui aprs quelques minutes d'utilisation, ralentissent considrablement l'application et l'a fait s'arrter brusquement terme. Deux problmes connus de gestion de la ds-allocation de la mmoire concernant les parsers et les objets de type URL nous ont conduits revoir notre stratgie de gestion des objets. Ces problmes de mmoire n'ont t dtects que tardivement, car ils ne se produisaient pas sur le simulateur, mais uniquement sur les appareils Apple.

Avril Juin 2010

Page 31 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

5.2.2 Navigation
Nous avons d faire face des soucis vis--vis de l'affichage de la carte. Aprs maintes recherches, nous avons pour certitude que Google Maps ne permet pas de bloquer la navigation selon l'axe Nord/Sud.

Ceci n'est pas trs joli...

Afin de restreindre la carte l'chelle des pays, nous avons du dfinir un niveau maximum de zoom. Les zooms s'effectuant par palier, il a fallu trancher entre un palier n'affichant pas le nom des petits pays (comme le Luxembourg ou la Suisse) et le palier suivant qui affiche le nom des villes. Le client a opt pour la seconde proposition.

Avril Juin 2010

Page 32 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Conclusion
Au cours de ces 13 semaines de stage, j'ai pu m'intgrer dans une quipe et dcouvrir le domaine du dveloppement d'applications mobiles. Il tait intressant de mener bien un projet de petite chelle, afin d'observer l'ensemble des tapes qui le compose, depuis l'offre jusqu' la livraison finale. Prcd par quelques jours d'apprentissage du langage et des concepts lis aux applications mobiles sur la plate-forme Apple, iQ for iPhone est l'aboutissement d'un mois et demi de recherches, de communication et de dveloppement. L'application a t prsente au meeting de l'International Trademark Association Boston en Mai 2010, et sera bientt disponible sur l'App Store. De plus, elle est la premire application iPhone livre pour un client d'Agile Partner. Ceci est une premire d'envergure pour le nouveau ple de dveloppement d'applications mobile de la socit luxembourgeoise. Ce stage m'a permis de m'immiscer dans le milieu professionnel et ainsi enrichir mon exprience du monde de l'entreprise, il m'a conduit dcouvrir Agile Partner SA, leader national dans le domaine de l'agilit. Via ce projet, j'ai eu la chance de pouvoir mettre en application la mthode agile Scrum, qui nous avait t prsente l'Universit, et aussi me rendre compte de l'intrt majeur d'outils tel que ScrumWorks Pro. J'ai pu mettre profit les enseignements qui m'ont t dispenss au cours de l'anne de licence Miage, en particulier les principes du dveloppement orient objet, de la manipulation de fichiers XML et des technologies du web. Aussi, j'ai beaucoup apprci l'encadrement et la manire dont j'ai t guid dans mes dmarches. Cette exprience ft enrichissante, la fois d'un point de vue technique, mais aussi sur le plan relationnel et humain.

Un grand merci toute l'quipe Agile Partner.

Avril Juin 2010

Page 33 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Annexes
Annexe A : Aperu des formations proposes

Avril Juin 2010

Page 34 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Avril Juin 2010

Page 35 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Annexe B : Utilisation du simulateur et d'Interface Builder

Exemple d'utilisation du simulateur iPhone

Le simulateur intgr permet de lancer et manipuler une application de la mme manire qu'un iPhone (sans la camra, l'acclromtre, le GPS,...).

Avril Juin 2010

Page 36 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Exemple d'utilisation d'Interface Builder

Les classes qui grent les vues de l'application hritent du type UIViewController, et un fichier .xib leur sont associs. Ce fichier .xib prsente, la base, une simple vue (associe un contrleur de vue) sur laquelle il est possible d'ajouter certains lments graphiques (listes, boutons, switch,...). Aprs avoir positionn l'lment (ici un bouton) sur la fentre, le lien avec le code se fait de manire graphique (juste en reliant le trait bleu avec la souris).

Avril Juin 2010

Page 37 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Annexe C : Utilisation dtaille de ScrumWorks Pro

Dtail de la premire itration (quasi finie)

On peut remarquer que pour chaque tche : une personne de l'quipe y est associe ; le statut est forcment prcis ; le nombre d'heure restante est renseign. Le graphique en haut droite est nomm Burndown Chart (graphique d'avancement), il permet de visualiser au cours du sprint, l'avance du travail (ainsi que ce qu'il reste faire). Le 6 avril, les 29 tches ont t ajoutes, le nombre d'heures restantes estim tait de 82h. Une semaine aprs, il restait 17 tches effectuer pour 40h estimes. Un graphique de ce type est ralis pour chaque sprint. Il est aussi possible de raliser le mme type de graphique avec la totalit des points des backlog items restant raliser (dans ce cas, il n'y a qu'un graphique pour tout le projet).

Avril Juin 2010

Page 38 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Capture d'cran du client web de l'application ScrumWorks

ScrumWorks Pro dispose aussi d'un client web qui permet d'accder au projet. L'organisation en colonne (chacune correspond un statut : non commenc, bloqu, en cours, fait) permet d'avoir directement une vue d'ensemble de l'avance du projet. Pour plus de clart, les tches qui me sont affilies sont spcifies de couleur orange.

Avril Juin 2010

Page 39 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Annexe D : Structure des diffrents flux XML


Profils : .../iPhoneService/iPhoneService.svc/Profiles/a/1

<TrademarkProfiles> <TrademarkProfile> <Code>103</Code> <Id>10397</Id> <Kind>Word</Kind> <Name>A Horse Is A Horse</Name> </TrademarkProfile> <TrademarkProfile> <Code>ABC1</Code> <Id>10531</Id> <Kind>Word</Kind> <Name>ABC TM</Name> </TrademarkProfile> </TrademarkProfiles>

Marques : .../IPhoneService/IPhoneService.svc/Trademarks/10747

<Trademarks> <Trademark> <Code>30002/CH-3</Code> <ConventionId>TM-NAT</ConventionId> <ConventionName>National Trademark</ConventionName> <GeoInfos> <GeoInfo> <CountryName>Switzerland</CountryName> <IsoCountryCode>CH</IsoCountryCode> <Latitude>47</Latitude> <Longitude>8</Longitude> </GeoInfo> </GeoInfos> <Id>10837</Id> <JurisdictionId>CH</JurisdictionId> <JurisdictionName>Switzerland</JurisdictionName> <StatusId>TM-REG</StatusId> <StatusName>Registered</StatusName> </Trademark> <Trademark> <Code>30002/WO-2</Code> <ConventionId>TM-WO</ConventionId> <ConventionName>International Trademark</ConventionName> <GeoInfos/> <Id>10838</Id> <JurisdictionId>WO</JurisdictionId> <JurisdictionName>World Intellectual Property Org. (WIPO)</JurisdictionName> <StatusId>TM-REG</StatusId> <StatusName>Registered</StatusName> </Trademark> </Trademarks>

Avril Juin 2010

Page 40 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Dtails : .../IPhoneService/IPhoneService.svc/Trademarks/Details/10837

<TrademarkDetails> <ApplicantOwner/> <ApplicationDateString>01-01-1990</ApplicationDateString> <ApplicationNumber>12</ApplicationNumber> <ClassCodes>14</ClassCodes> <Name>AMELIE</Name> <NextRenewalDueString>01-01-2020</NextRenewalDueString> <RegistrationDateString>02-01-1990</RegistrationDateString> <RegistrationNumber>34</RegistrationNumber> <SubStatus/> </TrademarkDetails>

Avril Juin 2010

Page 41 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Table des matires


Introduction........................................................................................................................................ 6 1 Agile Partner : leader agile au Luxembourg................................................................................7
1.1 Prsentation.....................................................................................................................................................7 1.2 L'activit..........................................................................................................................................................7 1.2.1 Ingnierie logicielle..................................................................................................................................7 1.2.2 Solutions...................................................................................................................................................8 1.2.3 Accompagnement et assistance............................................................................................................... 8 1.2.4 Formation.................................................................................................................................................9 1.3 Une nouveaut : le dveloppement d'applications mobiles......................................................................10 1.4 Clients............................................................................................................................................................ 10 1.5 Agile Partner en chiffres.............................................................................................................................. 11

2 iQ for iPhone : contexte du projet...............................................................................................12


2.1 DIAMS iQ......................................................................................................................................................12 2.1.1 Dfinitions..............................................................................................................................................12 2.1.2 Prsentation de l'application.................................................................................................................. 13 2.2 iQ for iPhone : besoins initiaux...................................................................................................................13 2.3 L'offre prsente Dennemeyer................................................................................................................. 14 2.3.1 Fonctionnalits.......................................................................................................................................14 2.3.2 Communications.................................................................................................................................... 15 2.3.3 Dploiement et livraison........................................................................................................................16 2.3.4 Limites....................................................................................................................................................16

3 Approche mthodologique........................................................................................................... 17
3.1 Mthode agile mise en oeuvre : Scrum.......................................................................................................17 3.2 Cycle de vie, quipe de dveloppement et relation client......................................................................... 20

4 Outils et technologies....................................................................................................................21
4.1 L'environnement...........................................................................................................................................21 4.1.1 Plate-forme.............................................................................................................................................21 4.1.2 Xcode..................................................................................................................................................... 21 4.1.3 Le langage Objective-C......................................................................................................................... 22 4.2 Un outil intressant : ScrumWorks Pro.................................................................................................... 23 4.3 Utilisation de l'API Google Maps............................................................................................................... 25 4.4 Web service et XML.....................................................................................................................................25

5 Ralisation..................................................................................................................................... 27
5.1 Gnralits.....................................................................................................................................................27 5.1.1 Travail pr-dveloppement.................................................................................................................... 27 5.1.2 Connexion et parsing des flux XML..................................................................................................... 27 5.1.3 Affichage de la carte.............................................................................................................................. 29 5.1.4 Prcisions............................................................................................................................................... 31 5.2 Les problmes rencontrs............................................................................................................................ 31 5.2.1 Gestion de la mmoire........................................................................................................................... 31 5.2.2 Navigation..............................................................................................................................................32

Conclusion......................................................................................................................................... 33 Annexes..............................................................................................................................................34

Avril Juin 2010

Page 42 sur 43

Mellinger Benot

Licence Miage - Rapport de stage

Table des annexes


Annexe A : Aperu des formations proposes................................................................................ 34 Annexe B : Utilisation du simulateur et d'Interface Builder........................................................36 Annexe C : Utilisation dtaille de ScrumWorks Pro................................................................... 38 Annexe D : Structure des diffrents flux XML..............................................................................40

Avril Juin 2010

Page 43 sur 43