Post on 03-Apr-2018
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.com7/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.php7/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