Académique Documents
Professionnel Documents
Culture Documents
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
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
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
Page 2 sur 43
Mellinger Benot
Page 3 sur 43
Mellinger Benot
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.
Page 4 sur 43
Mellinger Benot
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
Page 5 sur 43
Mellinger Benot
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 !
Page 6 sur 43
Mellinger Benot
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.
Page 7 sur 43
Mellinger Benot
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.
Page 8 sur 43
Mellinger Benot
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).
Page 9 sur 43
Mellinger Benot
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) ; ...
Page 10 sur 43
Mellinger Benot
Page 11 sur 43
Mellinger Benot
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).
Page 12 sur 43
Mellinger Benot
Page 13 sur 43
Mellinger Benot
2.3.1 Fonctionnalits
La navigation au sein de l'application consistera en six crans diffrents, voici un schma reprsentatif :
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.
Page 14 sur 43
Mellinger Benot
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 :
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.
Page 15 sur 43
Mellinger Benot
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.
Page 16 sur 43
Mellinger Benot
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.
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.
Page 17 sur 43
Mellinger Benot
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.
Les valuations des temps restants sont galement reportes sur un graphique appel 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.
Page 18 sur 43
Mellinger Benot
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.
Page 19 sur 43
Mellinger Benot
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.
Page 20 sur 43
Mellinger Benot
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.
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.
Page 21 sur 43
Mellinger Benot
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.
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
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.
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
Page 23 sur 43
Mellinger Benot
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).
Page 24 sur 43
Mellinger Benot
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.
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.
Page 25 sur 43
Mellinger Benot
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>
Page 26 sur 43
Mellinger Benot
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,...).
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.
Page 27 sur 43
Mellinger Benot
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)
10 Simple API for XML technologie vue en cours de Nouvelles Applications Web
Page 28 sur 43
Mellinger Benot
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/
Page 29 sur 43
Mellinger Benot
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.
Page 30 sur 43
Mellinger Benot
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.
Page 31 sur 43
Mellinger Benot
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.
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.
Page 32 sur 43
Mellinger Benot
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.
Page 33 sur 43
Mellinger Benot
Annexes
Annexe A : Aperu des formations proposes
Page 34 sur 43
Mellinger Benot
Page 35 sur 43
Mellinger Benot
Le simulateur intgr permet de lancer et manipuler une application de la mme manire qu'un iPhone (sans la camra, l'acclromtre, le GPS,...).
Page 36 sur 43
Mellinger Benot
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).
Page 37 sur 43
Mellinger Benot
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).
Page 38 sur 43
Mellinger Benot
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.
Page 39 sur 43
Mellinger Benot
<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>
Page 40 sur 43
Mellinger Benot
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>
Page 41 sur 43
Mellinger Benot
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
Page 42 sur 43
Mellinger Benot
Page 43 sur 43