Rapport Stage de Perfectionnement

download Rapport Stage de Perfectionnement

of 37

Transcript of Rapport Stage de Perfectionnement

  • 7/28/2019 Rapport Stage de Perfectionnement

    1/37

  • 7/28/2019 Rapport Stage de Perfectionnement

    2/37

  • 7/28/2019 Rapport Stage de Perfectionnement

    3/37

    Sommaire

    1.

    Etude de lorganisme ................................................................................................... 7

    1.1. Prsentation de lorganisme ................................................................................. 7

    1.2. Organigramme de lorganisme ............................................................................. 7

    2. Prsentation du thme de stage .................................................................................. 10

    2.1. Champ de ltude et objet du stage .................................................................... 10

    2.2. Planning prvisionnel du stage ........................................................................... 10

    3. Infrastructure informatique ........................................................................................ 11

    3.1. Matriel informatique ......................................................................................... 11

    3.2. Logiciels utiliss ................................................................................................. 11

    4. Etude pralable .......................................................................................................... 14

    4.1. Description de lexistant..................................................................................... 14

    4.2. Critique de lexistant .......................................................................................... 15

    4.3. Dveloppement de la solution finale .................................................................. 16

    5. Etude conceptuelle ..................................................................................................... 17

    6. Ralisation ................................................................................................................. 19

    6.1. Spcifications fonctionnelles : ........................................................................... 19

    6.2. Spcifications non fonctionnelles : .................................................................... 19

    6.3. Langages et outils de dveloppement :............................................................... 19

    7. La fentre principale .............................................................................................. 20

    8. La fentre Contact : ................................................................................................ 22

    9. Fentre Qui Somme nous ? .................................................................................... 24

    10. Fentre Liste Matriel ............................................................................................ 26

  • 7/28/2019 Rapport Stage de Perfectionnement

    4/37

    Table des illustrations

    Figure 1 : Organigramme de la socit .................................................................................. 7

    Figure 2 : Planning du stage ................................................................................................ 10

    Figure 3 : Site web statique ................................................................................................. 14

    Figure 4 : Site web statique avec mulateur Android .......................................................... 15

    Figure 5 : l'activit principale .............................................................................................. 21

    Figure 6 : L'activit contact ................................................................................................. 23

    Figure 7 : L'activit description ........................................................................................... 25

    Figure 8 : L'activit Produit ................................................................................................. 35

  • 7/28/2019 Rapport Stage de Perfectionnement

    5/37

    Remerciement

    Je tiens remercier et tmoigner toute ma reconnaissance aux personnels de la socit

    BECASOFT, pour lexprience enrichissante et pleine dintrt quelles mont fait vivre durant ce

    mois au sein de lentreprise BECASOFT. Cette premire exprience sera trs importante pour ma

    carrire et les tches auxquelles vous mavez associ mont vra iment permis de consolider mes

    connaissances et den dvelopper de nouvelles.

  • 7/28/2019 Rapport Stage de Perfectionnement

    6/37

    Introduction

    Du 10 janvier 2013 au 9 fvrier 2013, jai effectu un stage au sein de la socit

    BECASOFT. Au cours de ce stage jai pu mintresser connatre le processus du travail

    dans cette entreprise, sintgrer dans la vie professionnelle et surtout amliorer mes

    connaissances thoriques avec laspect pratique dans le domaine de maintenance

    informatique.

    Llaboration de ce rapport a pour principales sources les diffrents enseignements tirs de

    la pratique journalire des tches auxquelles jtais affect. Enfin, les nombreux entretiens

    que jai pu avoir avec les employs des diffrents services de lentreprise mont permis de

    donner une cohrence ce rapport.

  • 7/28/2019 Rapport Stage de Perfectionnement

    7/37

    Etude de lorganisme

    Page : 7 sur37

    1. Etude de lorganisme1.1. Prsentation de lorganisme

    La socit BECASOFT est une entreprise de services informatique fonde en 2008 avec

    un capital de 15000 DT situe 20 Av. SALAH BEN YOUSSEF Midoun Djerba Tunisie.

    Cette entreprise est spcialise dans : les dveloppements de Tous Produits Multimdia: Site

    web, Logo, Flyer, Affiche, Carte Visite numrique, CD interactif, modlisation et animation

    3D et plusieurs d'autres produits...

    -Ventes Matriels informatique: accessoires, ordinateur portable, ordinateur de bureau,

    imprimantes...

    -Rparation de tous Types d'appareils informatique.

    -Installation et configuration Rseau.

    1.2. Organigramme de lorganismeLorganisation de cette socit est compose dun grant M Boomaza Bechir et trois

    techniciens avec une secrtaire de direction.

    FIGURE 1 :ORGANIGRAMME DE LA SOCIETE

  • 7/28/2019 Rapport Stage de Perfectionnement

    8/37

    Etude de lorganisme

    Page : 8 sur37

    1.2.1. La direction gnrale

    Elle est charge du contrle et de la supervision du travail effectu par le service de

    dveloppement et le service technique, ainsi que de le contrle mensuelle du service

    commercial.

    1.2.2. Service Commercial

    Le service commercial est compos d'un agent commercial .Il est charg de la vente desproduits et de la publicit. Lagent est responsable de la politique commerciale de la mini -

    entreprise. Il suit les produits depuis leur sortie de l'atelier jusqu' leur commercialisation et

    s'assurant que tous les produits vendus ont bien t pays. Il transmet les comptes rendus au

    Responsable, coordonne la ralisation et l'exploitation de l'tude de march, tabli le prix de

    vente ainsi qu'un calendrier des ventes et fixe des objectifs commerciaux.

    1.2.3. Service technique

    Services Informatique - Dpannage - Dpannage MAC

    Diagnostic complet Ajout de barrettes mmoire Rparation du systme d'exploitation MAC OS en cas de conflits matriels, drivers, Remise en service accs internet, messagerie, imprimante, scanner,... Changement de disque dur et transfert des donnes, Mise jour du MAC ou remplacer un composant dfectueux: carte mre, carte

    graphique, mmoire RAM, disque dur, OS,.

    Cration de clone, de partitions, Transfert d'un MAC a un autre (ex via Time Machine) Maintenance prventive

  • 7/28/2019 Rapport Stage de Perfectionnement

    9/37

    Etude de lorganisme

    Page : 9 sur37

    Services Informatique - Dpannage - Dpannage PC

    Rparation du systme d'exploitation Windows en cas de conflits matriels, drivers, Suppression des virus, spyware,... Remise en service accs internet, messagerie, imprimante, scanner,... Changement de disque dur et transfert des donnes, Restauration des fichiers de dmarrage Windows, Dverrouillage de Windows 2000 / XP / VISTA / 7 en cas de perte du mot de

    passe,

    Mise jour du PC ou remplacer un composant dfectueux: carte mre, cartegraphique, mmoire RAM, disque dur, OS,.

    Cration de clone, de partitions, Maintenance prventive

    1.2.4. Service de dveloppement

    CREATION GRAPHIQUE

    Logo Flyer Carte visite Affiches

    CREATION DES SITES WEB

    Site Web statique Site Web dynamique

  • 7/28/2019 Rapport Stage de Perfectionnement

    10/37

    Prsentation du thme du stage

    Page : 10 sur37

    2. Prsentation du thme de stage2.1. Champ de ltude et objet du stage

    Lobjectif majeur de ce stage est de trouver une solution mobile sous Android qui fournit

    presque les mmes services dun site web mais sous la forme dune application Android.

    Cette application fournit les services suivants :

    - Consulter les produits.

    - Voir une description sur la socit.

    - Permettre de contacter la socit.

    2.2. Planning prvisionnel du stage

    FIGURE 2 :PLANNING DU STAGE

    Phase prliminaire

    Etude de l'organisme

    1 ere

    semaine

    Documentation2 me

    semaine

    Interventions dans le projet

    Ralisation

    3 me

    semaine

    Rdaction du rapport

    Ralisation

    4 me

    semaine

  • 7/28/2019 Rapport Stage de Perfectionnement

    11/37

    Infrastructure informatique

    Page : 11 sur37

    3. Infrastructure informatique3.1. Matriel informatique

    BECASOFT possde une infrastructure qui correspond ces besoins, offrant chaque

    employ un ordinateur, un tlfax et une imprimante multifonctions.

    3.1.1. Les Ordinateurs

    3.2.

    Logiciels utiliss

    BECASOFT utilise comme systme dexploitation Windows (Windows 7, Windows

    XP).Pour le service de dveloppement on utilise essentiellement deux logiciels Adobe

    Photoshop et Adobe Dreamweaver, pour le service de technique on utilise Ma-Config et

    Hiren's BootCD.

    Ma-Config offre plusieurs fonctionnalit comme :

    Dtecter la configuration de lordinateur.

  • 7/28/2019 Rapport Stage de Perfectionnement

    12/37

    Infrastructure informatique

    Page : 12 sur37

    Dtecter la configuration de lordinateur. Analyser les crans bleus de Windows.

    Hiren's BootCD se prsente sous la forme d'une image disque graver sur un CD qui

    regroupe tous les outils que vous pouvez avoir besoin en cas de problme avec votre

    ordinateur. Tous les logiciels prsents sur le CD sont gratuits et fonctionnent sous Windows

    ou bien sous DOS, lequel vous pourrez accder en dmarrant votre ordinateur sur le CD

    Hiren's BootCD qui est bootable.

    Voici quelques outils prsents sur le CD :

    Antivirus : AntiVir, ComboFix, Malwarebytes Anti-Malware, RootkitRevealer,Spybot, SuperAntispyware, HijackThis, etc.

    Sauvegarde : CloneDisk, CopyWipe, DiskImage, DriveImage XML, ImgBurn,Partition Saving, ShadowCopy, Seagate DiscWizard, XXClone, etc.

    BIOS : BIOS Utility, BIOS Cracker, UniFlash, etc. Gestionnaire de fichiers : Bulk Rename Utility, 7-Zip, Dos Command Center, File

    Wizard, Mini Windows Xp, Total Commander, etc.

    Nettoyeur : CCleaner, CloneSpy, Data Shredder, Duplicate File Finder, RevoUninstaller, WinDirStat, etc.

    Disque dur : Darik's Boot and Nuke, DiskView, DiskWipe, HDTune, MaxtorPowerMax, Western Digital Data Lifeguard Tools,, Samsung HDD Utility,,

    SeaTools for Dos, etc.

    MBR : BootFix Utility, BootSect, Grub4Dos, isolinux, MBR Utility, etc. Optimisation : Defraggler, NT Registry Optimizer, RemoveWGA, TweakUI, Xp-

    AntiSpy.

    Test : Bart's Stuff Test, H2testw, CPU-Z, Memtest86+, Prime95, WindowsMemory Diagnostic, HWiNFO, GPU-Z, etc.

    Registre : ERUNT, Glary Registry Repair, Regmon, RegShot, etc.

  • 7/28/2019 Rapport Stage de Perfectionnement

    13/37

    Infrastructure informatique

    Page : 13 sur37

    Rcupration : DiskDigger, DiskGenius, IsoBuster, PartitionRecovery, Recuva,ShadowExplorer, TestDisk, etc.

    Mot de passe : ATAPWD, Kon-Boot, Offline NT Password Changer, PST(Outlook) Password Recovery, ProduKey, SniffPass, WindowsGate, etc.

    Partition : eXtended Fdisk, GParted Partition Editor, Mount Drives, The PartitionResizer, Partition Wizard Home Edition, etc.

    BusinessCards MX est un logiciel de cration et de projet de carte de visite. Grce ce

    logiciel, prparez puis imprimez facilement et rapidement des cartes de visite

    professionnelles. L'interface du logiciel est conue de telle sorte que mme un dbutant n'aura

    aucune difficult l'utiliser. La phase de projet consiste positionner volont des lments

    prenregistrs (textes, symboles, images et fonds) disponibles dans le logiciel sur un projet de

    carte dj prt. Le logiciel se base sur sa propre rserve de modles de cartes prenregistres,

    ou sur des modles que vous pouvez imaginer vous-mme.

    Le logiciel contient prs de 750 modles de cartes de visite prenregistrs.

    Fonctionnalits:

    Formats: jpg, bmp, wmf, png, tiff, et plus Une douzaine deffets applicables sur les lments, par exemple : ombre porte,

    textures, spia, dgrads, etc.

    Exportez en haute rsolution (300/600 DPI) pour les fichiers PDF, JPG, TIFF etBMP

    Taille des cartes: min. 7040, max. 10565 Le thme de linterface peut tre chang Convertissez et exportez en CMYK (avec profils ICC) Prend en charge les langues droites gauche (comme larabe) Impression recto-verso

  • 7/28/2019 Rapport Stage de Perfectionnement

    14/37

    Dveloppement de lapplication

    Page : 14 sur37

    4. Etude pralable4.1. Description de lexistant

    Dans notre cas lexistant est un site web statique (www.becasoft.tn) qui offre une ide sur

    la socit BECASOFT ainsi que leurs activits. Le site est compos en plusieurs parties :

    Qui Somme Nous ? : une description gnrale sur la socit et quelquesinformations sur lactivit de lentreprise.

    Nos Service : dans cette partie on donne plus de dtails sur les services offertes parBECASOFT :

    RECHARGE AUTOMATIQUE DES CARTOUCHES REPARATION DE TOUS TYPES D'APPAREIL INFORMATIQUE CREATION GRAPHIQUE CREATION DES SITES WEB

    Contact : Donne tous les coordonnes de la socit : E-mail, Tlphone et ladresse.

    FIGURE 3:SITE WEB STATIQUE

    http://www.becasoft.tn/http://www.becasoft.tn/http://www.becasoft.tn/http://www.becasoft.tn/
  • 7/28/2019 Rapport Stage de Perfectionnement

    15/37

    Dveloppement de lapplication

    Page : 15 sur37

    4.2. Critique de lexistantLe sitewww.becasoft.tnest un site web statique mais il ne possde pas une version mobile

    donc la navigation sur les appareils mobiles (Smartphones ou bien les Mini Tablette).

    La version statique noffre pas une bonne exprience mais aussi le site ne contient pas la

    gamme de produit fourni par BECASOFT.

    FIGURE 4:SITE WEB STATIQUE AVEC EMULATEURANDROID

    http://www.becasoft.tn/http://www.becasoft.tn/http://www.becasoft.tn/http://www.becasoft.tn/
  • 7/28/2019 Rapport Stage de Perfectionnement

    16/37

    Dveloppement de lapplication

    Page : 16 sur37

    4.3. Dveloppement de la solution finaleLa solution finale pour rsoudre les problmes cest une application Android native qui

    donne une bonne exprience au niveau de la navigation (compatibilit des interfaces) ainsi

    quelle offre la liste des produits de la socit. Cette application faire une connexion directe

    avec linternet pour rcuprer les donnes sur la liste des produits. Cette application ne

    ncessite pas une mise jour pour chaque changement au niveau des produits car le

    changement est effectu sur le niveau de fichier PHP qui est situ au niveau serveur web.

    Lapplication contient une interface principale qui contient trois boutons images qui assure

    la navigation vers les autres interfaces. Ces derniers sont

    un bouton vers linterface Contact un bouton vers linterface description un bouton vers linterface de produits

    Chaque interface offre une ou plusieurs fonctionnalits. Linterface de contact donne aux

    utilisateurs plusieurs fonctionnalit comme :

    Tlphoner directement partir de lapplication. Ouvrir directement la boite mail pour composer un nouveau mail. Ouvrir directement le navigateur sur le site web statique de lentreprise partir de

    lapplication

    Ouvrir la situation gographique sur Google Maps en utilisant Google API.Linterface Qui Sommes-nous ? qui donne une description complte sur lentreprise.

    Linterface Produits permet aux utilisateurs daccder une petite base de donnes

    sous la forme des fichiers JSON. Les informations stockes au niveau fichier data.php (fichier

    qui contient tous les informations ainsi que la modification sera effectu sur ce fichier

    seulement) seront affichs sur trois niveaux :

    Dans la premire interface on veut donner la liste des produits (PC Portables, PC debureau, Tablette etc).

  • 7/28/2019 Rapport Stage de Perfectionnement

    17/37

    Dveloppement de lapplication

    Page : 17 sur37

    Dans la deuxime interface on veut donner les noms des marques pour chaqueproduit choisi dans le premier niveau.

    Dans la troisime interface on veut donner des informations spcifiques deproduits choisi dans linterface prcdente.

    La rcupration des donner ce fait par des fichiers JSON qui contiennent des fonctions qui

    permettent la rcupration. Les fichiers JSON sont situs au niveau de notre serveur dans le

    mme dossier. (Nom de domaine du serveur :besrour.uphero.com).

    5. Etude conceptuelleNotre tude conceptuelle se base sur les services principaux de lapplication expliqus au

    niveau du point 4.3.

    Diagramme de cas dutilisation :

    http://localhost/var/www/apps/conversion/tmp/scratch_12/besrour.uphero.comhttp://localhost/var/www/apps/conversion/tmp/scratch_12/besrour.uphero.comhttp://localhost/var/www/apps/conversion/tmp/scratch_12/besrour.uphero.comhttp://localhost/var/www/apps/conversion/tmp/scratch_12/besrour.uphero.com
  • 7/28/2019 Rapport Stage de Perfectionnement

    18/37

    Dveloppement de lapplication

    Page : 18 sur37

    Diagramme de squence se base sur un scnario simple :

  • 7/28/2019 Rapport Stage de Perfectionnement

    19/37

    Dveloppement de lapplication

    Page : 19 sur37

    6. Ralisation6.1. Spcifications fonctionnelles :

    Lapplication permet de :

    -accder aux donnes situes dans un serveur.

    -Consulter la description de la socit.

    -Consulter les contacts de la socit (Tlphone, E-mail, site web et situation

    gographique)

    6.2. Spcifications non fonctionnelles :Lapplication doit assurer :

    -Un accs scuris.

    -Un temps de rponse faible

    6.3. Langages et outils de dveloppement :Pour raliser ce projet, nous avons choisi d'utiliser les langages de programmation et les

    outils de dveloppement suivants :

    Langages :

    -UML

    -java

    -XML

    - PHP

    -JSON

    Les outils:

    -Eclipse IDE.

  • 7/28/2019 Rapport Stage de Perfectionnement

    20/37

    Dveloppement de lapplication

    Page : 20 sur37

    -Star UML

    -Microsoft Word 2010

    Notre application comme dans ltude conceptuelle offre plusieurs services donc elle possde

    plusieurs fentres :

    7. La fentre principaleLa fentre principale se compose essentiellement de trois boutons qui assurent la

    navigation vers les services de lapplication de plus il y a un bouton refresh qui permet de

    rafrachir lapplication. La fentre est un fichier XML qui a une relation avec un fichier java

    qui assure la manipulation des actions.

    Code XML :

  • 7/28/2019 Rapport Stage de Perfectionnement

    21/37

    Dveloppement de lapplication

    Page : 21 sur37

    android:layout_height="wrap_content"android:src="@drawable/contact"

    android:contentDescription="@string/imagecontact"/>

    FIGURE 5: L'ACTIVITE PRINCIPALE

  • 7/28/2019 Rapport Stage de Perfectionnement

    22/37

    Dveloppement de lapplication

    Page : 22 sur37

    8. La fentre Contact :Dans cette fentre on trouve un bouton qui permet douvrir le service dappel pour

    tlphoner directement partir de lapplication, il y a aussi un bouton sous forme dimage

    dans laquelle on trouve le-mail et lvnement de clique permet douvrir la boite mail

    directement partir de lapplication, mme chose pour le site web. Finalement on a un bouton

    quipermet daccder Google maps

  • 7/28/2019 Rapport Stage de Perfectionnement

    23/37

    Dveloppement de lapplication

    Page : 23 sur37

    android:layout_height="120sp"android:src="@drawable/email"

    android:background="#000000"android:contentDescription="@string/descriptionfirst"/>

    FIGURE 6: L'ACTIVITE CONTACT

    Notre application utilise des services prdfinis comme laccs au internet et le

    dclenchement dun appel tlphonique directement ainsi que louverture de la boite mail tous

    cela ncessite des permissions qui seront situ au niveau de fichier AndroidManifest.xml :

  • 7/28/2019 Rapport Stage de Perfectionnement

    24/37

    Dveloppement de lapplication

    Page : 24 sur37

    Pour lAPI Google maps est considrera comme un Library doit tre situ aussi dans le mme

    fichier AndroidManifest.xml :

    9. Fentre Qui Somme nous ?Dans cette fentre on trouve une description complete de la socit.

    Code XML:

  • 7/28/2019 Rapport Stage de Perfectionnement

    25/37

    Dveloppement de lapplication

    Page : 25 sur37

    FIGURE 7: L'ACTIVITE DESCRIPTION

    La navigation entre ces fentres se fait grce lintent, ce mcanisme consiste envoyer

    une intent avec laquelle le systme permet douvrir les autres activits.

    Code Java :

    imgb1 = (ImageButton)findViewById(R.id.imageButton1);imgb1.setOnClickListener(new View.OnClickListener() {

    @OverridepublicvoidonClick(View v) {// TODO Auto-generated method stubIntent nextScreen = new Intent(getApplicationContext(),Contact. class);

    startActivity(nextScreen);}

    });

    Ce code est un exemple dune image bouton qui permet douvrirune autre activit, dans

    lautre activit il faut declarer une intent comme ce exemple: Intent i= getIntent();.

  • 7/28/2019 Rapport Stage de Perfectionnement

    26/37

    Dveloppement de lapplication

    Page : 26 sur37

    10.Fentre Liste MatrielDans cette activit on veut rcuprer des informations partir des fichiers situs au niveau

    du serveur. Il faut dabord crer ces fichiers JSON sous forme dun fichier PHP. Le fichier

    principal contient les informations et les autres fichiers contiennent juste les fonctions qui

    permettent la rcupration des donnes.

  • 7/28/2019 Rapport Stage de Perfectionnement

    27/37

    Dveloppement de lapplication

    Page : 27 sur37

    Il faut crer un nouveau package pour placer les classes d'aides. Vous pouvez crer

    nouveau package en cliquant droit sur le dossier src du projet nouveau - package> et en le

    nommant comme helper.

    Crer un nouveau fichier de classe nomm AlertDialogManager.java dans votre paquet

    d'aide et collez le code suivant. Ce fichier sert montrer de dialogue d'alerte dans

    l'application.

    AlertDialogManager.javapackagecom.example.becasoft.helper;

    importandroid.app.AlertDialog; importandroid.content.Context; importandroid.content.DialogInterface;

    importcom.example.becasoft.R;

    publicclassAlertDialogManager {/*** Function to display simple Alert Dialog* @param context - application context* @param title - alert dialog title* @param message - alert message* @param status - success/failure (used to set icon)* - pass null if you don't want icon* */publicvoidshowAlertDialog(Context context, String title, String

    message,Boolean status) {

    AlertDialog alertDialog = newAlertDialog.Builder(context).create();

    // Setting Dialog TitlealertDialog.setTitle(title);

    // Setting Dialog MessagealertDialog.setMessage(message);

    if(status != null)// Setting alert dialog iconalertDialog.setIcon((status) ? R.drawable.success :

    R.drawable.fail);

    // Setting OK ButtonalertDialog.setButton("OK", new

    DialogInterface.OnClickListener() {publicvoidonClick(DialogInterface dialog, intwhich) {}

    });

  • 7/28/2019 Rapport Stage de Perfectionnement

    28/37

    Dveloppement de lapplication

    Page : 28 sur37

    // Showing Alert MessagealertDialog.show();

    }}

    Crer un nouveau fichier sous le mme paquet nomme ConnectionDetector.java.Ce

    fichier sert dtecter une connexion Internet.

    ConnectionDetector.javapackagecom.example.becasoft.helper;

    importandroid.content.Context; importandroid.net.ConnectivityManager; importandroid.net.NetworkInfo;

    publicclassConnectionDetector {

    privateContext _context;

    publicConnectionDetector(Context context){this._context = context;

    }

    /*** Checking for all possible internet providers* **/publicbooleanisConnectingToInternet(){

    ConnectivityManager connectivity = (ConnectivityManager)_context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if(connectivity != null){

    NetworkInfo[] info = connectivity.getAllNetworkInfo();if(info != null)

    for(inti = 0; i < info.length; i++)if(info[i].getState() == NetworkInfo.State.CONNECTED){

    returntrue;}

    }returnfalse;

    }}

    Crer un nouveau fichier appel JSONParser.java et collez le code suivant. Ce fichier de

    classe utilis pour obtenir des donnes JSON en faisant des requtes HTTP.

  • 7/28/2019 Rapport Stage de Perfectionnement

    29/37

    Dveloppement de lapplication

    Page : 29 sur37

    JSONParser.javapackagecom.example.becasoft.helper;

    importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.UnsupportedEncodingException; importjava.util.List;

    importorg.apache.http.HttpEntity; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.ClientProtocolException; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.client.utils.URLEncodedUtils; importorg.apache.http.impl.client.DefaultHttpClient; importorg.json.JSONObject;

    importandroid.util.Log;

    publicclassJSONParser {

    staticInputStream is = null;staticJSONObject jObj = null;

    staticString json = "";

    // constructorpublicJSONParser() {

    }

    // function get json from url// by making HTTP POST or GET mehtodpublicString makeHttpRequest(String url, String method,

    List params) {

    // Making HTTP requesttry{

    // check for request methodif(method == "POST") {

    // request method is POST// defaultHttpClientDefaultHttpClient httpClient = newDefaultHttpClient(); HttpPost httpPost = newHttpPost(url);httpPost.setEntity(new UrlEncodedFormEntity(params));

    HttpResponse httpResponse =httpClient.execute(httpPost);

    HttpEntity httpEntity = httpResponse.getEntity();is = httpEntity.getContent();

  • 7/28/2019 Rapport Stage de Perfectionnement

    30/37

    Dveloppement de lapplication

    Page : 30 sur37

    } elseif(method == "GET") {

    // request method is GETDefaultHttpClient httpClient = newDefaultHttpClient(); String paramString = URLEncodedUtils.format(params,

    "utf-8");url += "?"+ paramString;HttpGet httpGet = newHttpGet(url);

    HttpResponse httpResponse = httpClient.execute(httpGet);HttpEntity httpEntity = httpResponse.getEntity();is = httpEntity.getContent();

    }

    } catch(UnsupportedEncodingException e) {e.printStackTrace();

    } catch(ClientProtocolException e) {e.printStackTrace();

    } catch(IOException e) {e.printStackTrace();

    }

    try{BufferedReader reader = newBufferedReader(new

    InputStreamReader( is, "iso-8859-1"), 8);

    StringBuilder sb = newStringBuilder();

    String line = null;while((line = reader.readLine()) != null) {sb.append(line + "\n");

    }is.close();json = sb.toString();

    } catch(Exception e) {Log.e("Buffer Error", "Error converting result "+

    e.toString());}

    // return JSON Stringreturnjson;

    }}

    Puis il faut juste rcuprer les donnes partir de fichier JSON et mettre dans une liste.

    AlbumsActivity.javapackagecom.example.becasoft;

    importjava.util.ArrayList;

    importjava.util.HashMap; importjava.util.List;

  • 7/28/2019 Rapport Stage de Perfectionnement

    31/37

    Dveloppement de lapplication

    Page : 31 sur37

    importorg.apache.http.NameValuePair;

    importorg.json.JSONArray; importorg.json.JSONException; importorg.json.JSONObject;

    importandroid.app.ListActivity; importandroid.app.ProgressDialog; importandroid.content.Intent; importandroid.os.AsyncTask; importandroid.os.Bundle; importandroid.util.Log; importandroid.view.View; importandroid.widget.AdapterView; importandroid.widget.ListAdapter; importandroid.widget.ListView; importandroid.widget.SimpleAdapter; importandroid.widget.TextView;

    importcom.example.becasoft.helper.AlertDialogManager; importcom.example.becasoft.helper.ConnectionDetector; importcom.example.becasoft.helper.JSONParser;

    publicclassProduitsActivity extendsListActivity {// Connection detectorConnectionDetector cd;

    // Alert dialog managerAlertDialogManager alert = newAlertDialogManager();

    // Progress DialogprivateProgressDialog pDialog;

    // Creating JSON Parser objectJSONParser jsonParser = newJSONParser();

    ArrayList produitsList;

    //produits JSONArray

    JSONArray produits = null;

    // albums JSON urlprivatestaticfinalString URL_ALBUMS = "http://besrour.uphero.com/produits.php ";

    // ALL JSON node namesprivatestaticfinalString TAG_ID = "id";privatestaticfinalString TAG_NAME = "name";privatestaticfinalString TAG_PRODUIT_COUNT = "produit_count";

    @OverridepublicvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_albums);

    http://besrour.uphero.com/produits.phphttp://besrour.uphero.com/produits.php
  • 7/28/2019 Rapport Stage de Perfectionnement

    32/37

    Dveloppement de lapplication

    Page : 32 sur37

    cd = newConnectionDetector(getApplicationContext());

    // Check for internet connectionif(!cd.isConnectingToInternet()) {

    // Internet Connection is not presentalert.showAlertDialog(AlbumsActivity.this, "Internet Connection Error",

    "Please connect to working Internet connection", false);// stop executing code by returnreturn;

    }

    // Hashmap for ListViewalbumsList = newArrayList();

    // Loading Produits JSON in Background ThreadnewLoadProduits().execute();

    // get listviewListView lv = getListView();

    /*** Listview item click listener* ModelActivity will be lauched by passing album id* */

    lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {@OverridepublicvoidonItemClick(AdapterView arg0, View view, intarg2,

    longarg3) {// on selecting a single album// TrackListActivity will be launched to show tracks inside the albumIntent i = newIntent(getApplicationContext(), ModelActivity.class);

    // send produit id to model activity to get list of songs under thatalbum

    String produit_id = ((TextView)view.findViewById(R.id.produit_id)).getText().toString();

    i.putExtra("album_id", album_id);

    startActivity(i); }

    });}

    /*** Background Async Task to Load all Produits by making http request * */

    classLoadProduits extendsAsyncTask {

    /*** Before starting background thread Show Progress Dialog* */

    @OverrideprotectedvoidonPreExecute() {

    super.onPreExecute(); pDialog = newProgressDialog(ProduitsActivity.this);

  • 7/28/2019 Rapport Stage de Perfectionnement

    33/37

    Dveloppement de lapplication

    Page : 33 sur37

    pDialog.setMessage("Chargement Produits ...");pDialog.setIndeterminate(false);

    pDialog.setCancelable(false); pDialog.show();

    }

    /*** getting Produits JSON* */

    protectedString doInBackground(String... args) {// Building ParametersList params = newArrayList();

    // getting JSON string from URLString json = jsonParser.makeHttpRequest(URL_PRODUITS, "GET",

    params);

    // Check your log cat for JSON reponseLog.d("Produits JSON: ", "> "+ json);

    try{albums = newJSONArray(json);

    if(albums != null) {// looping through All albumsfor(inti = 0; i < produits.length(); i++) {

    JSONObject c = produits.getJSONObject(i);

    // Storing each json item values in variableString id = c.getString(TAG_ID);String name = c.getString(TAG_NAME);String songs_count = c.getString(TAG_PRODUIT_COUNT);

    // creating new HashMapHashMap map = newHashMap();

    // adding each child node to HashMap key => valuemap.put(TAG_ID, id);map.put(TAG_NAME, name);map.put(TAG_PRODUITS_COUNT, produits_count);

    // adding HashList to ArrayListproduitsList.add(map);

    }}else{

    Log.d("Produits: ", "null");}

    } catch(JSONException e) {e.printStackTrace();

    }

    returnnull;}

  • 7/28/2019 Rapport Stage de Perfectionnement

    34/37

    Dveloppement de lapplication

    Page : 34 sur37

    /**

    * After completing background task Dismiss the progress dialog* **/

    protectedvoidonPostExecute(String file_url) {// dismiss the dialog after getting all produitspDialog.dismiss(); // updating UI from Background ThreadrunOnUiThread(new Runnable() {

    publicvoidrun() {/*** Updating parsed JSON data into ListView* */

    ListAdapter adapter = newSimpleAdapter(ProduitsActivity.this, produitsList,

    R.layout.list_item_albums, newString[] { TAG_ID,TAG_NAME, TAG_PRODUITS_COUNT }, newint[] {R.id.produit_id, R.id.produit_name,

    R.id.produits_count });

    // updating listviewsetListAdapter(adapter);

    }});

    }

    }}

  • 7/28/2019 Rapport Stage de Perfectionnement

    35/37

    Dveloppement de lapplication

    Page : 35 sur37

    Le rsultat est :

    FIGURE 8 :L'ACTIVITE PRODUIT

  • 7/28/2019 Rapport Stage de Perfectionnement

    36/37

    Page : 36 sur37

    Conclusion

    Ce stage ma permis une approche plus concrte du fonctionnement des services de

    lentreprise BECASOFT. De point de vue technique, ce stage mas permis de comprendre

    clairement les tapes suivis pour rsoudre tous les problmes techniques dune manire trs

    efficace et de donner la chance de maitriser la maintenance concrtement.

    En plus jai eu loccasion de faire une tude de cas pour une application qui peut tre utilis

    dans la socit et cela me donner un enthousiasme de bien comprendre limportance de

    linformatique dans la vie relle.

    Le stage de perfectionnement est une occasion primordiale pour amliorer la formation des

    tudiants.

    De ma part, jai eu loccasion dtre parmi les agents de lentreprise BECASOFT, dirig par

    Mr Boumaaza Bechir, ce qui ma permis davoir une ide gnrale sur le plan dexcution et

    le processus de travail de la socit. Jai labor des connaissances sur le fonctionnement decertains services. Jai mme affect convenablement certaines tches, encadr par les agents

    de la socit.

    Ce stage ma offert une opportunit pour confronter mes connaissances thoriques avec la vie

    professionnelle, denrichir mes savoirs.

  • 7/28/2019 Rapport Stage de Perfectionnement

    37/37

    Ntographie

    http://stackoverflow.com/questions/tagged/android

    http://developer.android.com/develop/index.html

    http://www.siteduzero.com/informatique/tutoriels/creez-des-applications-pour-android

    http://android.developpez.com/cours/

    http://www.tutos-android.com/

    http://stackoverflow.com/questions/tagged/androidhttp://stackoverflow.com/questions/tagged/androidhttp://developer.android.com/develop/index.htmlhttp://developer.android.com/develop/index.htmlhttp://www.siteduzero.com/informatique/tutoriels/creez-des-applications-pour-androidhttp://www.siteduzero.com/informatique/tutoriels/creez-des-applications-pour-androidhttp://android.developpez.com/cours/http://android.developpez.com/cours/http://www.tutos-android.com/http://www.tutos-android.com/http://www.tutos-android.com/http://android.developpez.com/cours/http://www.siteduzero.com/informatique/tutoriels/creez-des-applications-pour-androidhttp://developer.android.com/develop/index.htmlhttp://stackoverflow.com/questions/tagged/android