SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
MINISTERE DE L’EDUCATION,
DE LA JEUNESSE ET DES SPORTS
INSTITUT DE TECHNOLOGIE DU CAMBODGE
DEPARTEMENT DE GENIE INFORMATIQUE ET
COMMUNICATION
RAPPORT DE STAGE D’INGÉNIEUR DE QUATRIÈME ANNÉE
Titre : ChildSafe Hotline
Etudiant : LAY Leangsros
Spécialité : Génie Informatique et Communication
Tuteur de stage : M. HAO Jeudi
Année scolaire : 2014-2015
ក្រសួងអប់រំយុវជន និងរីឡា
វិទ្យាស្ថា នបច្ចេរវិទ្យារម្ពុជា
ច្េប៉ា តឺម្៉ាង់ ច្ទ្យពច្ោសល្យព័ត៌មានវិទ្យា និងទ្យំនារ់ទ្យំនង
របយោរណ៍ ចុុះរម្មសិរា វិសវររឆ្ន ំទ្យី៤
ក្បធានបទ្យ : រម្មវិធីសក្ម្ង់ពត៌មានរបស់រុមារ
និសស ិត : ឡាយ លាងក្សស់
ឯរច្ទ្យស : ព័ត៌មានវិទ្យា និងទ្យំនារ់ទ្យំនង
ក្រូទ្យទ្យួល្បនទុរ : ច្លារ ច្ៅ សឺឌី
ឆ្ន ំសិរា : ២០១៤-២០១៥
Institut de Technologie du Cambodge Golden Gekko (DMI)
I
REMERCIEMENTS
Je tiens à exprimer particulièrement ma profonde gratitude et reconnaissance aux
personnes suivantes qui m’ont aidé à terminer le stage proposé avec grand succès au cours de
mon projet de quatrième année :
Son Excellence Dr. OM Romny, directeur de l’ITC pour la bonne administration de l’institut
et de sa bonne coopération avec d’autres université partenaires aux niveaux local, régional et
international et renforce la qualité de la formation des ingénieurs et techniciens.
M. LAY Heng, chef du Département de Génie Informatiques et Communication, pour sa bonne
gestion, de bons conseils et de bonnes relations avec les entreprises publiques et privées.
M. KMEZIC Milan, sous-directeur, et Mme. COLEMAN Belinda, chef de RH, qui ont créé
le programme de Moville, et pour leur certification du stage.
M. SING Chandara, chef d’équipe Android qui m’avoir fait confiance et permis d’effectuer
mon stage au sein de Golden Gekko et pour ses conseils lucides et pertinents.
M. HAO Jeudi qui est mon maître de stage qui me support sur le tous le document et m’a
conseillé de préparation de rapports et sa corrections qui mènent à bien ce projet
M. CHEANG Polen, mon tuteur de stage qui a su m’apporter son expérience pour me guider
et me conseiller tous au long du projet.
Je tiens à remercier sincèrement à mes collèges avec qui je travaillais quotidiennement. Ils me
m’avaient conseillé de manière à obtenir un bon résultat pendant le travail.
Enfin, je tiens à remercier grandement à mes parents pour un soutien financier
d’encouragement et de motivation tout au long de ma vie.
Institut de Technologie du Cambodge Golden Gekko (DMI)
II
អារម្ភកថា
ការសិកានៅនេប៉ា តឺម្៉ាង់ ពត៌មានវិទ្យានិងទ្យំនាក់ទ្យំនង ខ្ញំមានការអារម្មណ៍ នៅន ើ
ការអភិវឌ្ឍណ៍ ការសរនសកម្មវីធីន ើប្រព័នធប្រតិរតតិការណ៍ នអនប្េយ។ រច្ចញរបនន ទ្យូរស័ពទ
ឆ្លា តវវជាផ្ននកម្ួយេ៏សំខាន់កនញងការទ្យំនាក់ទ្យំនង។ វាពិត ជាឳកាស ម្ួយេ៏ពិនសស ររស់ខ្ញំ
ផ្េ បនច្ញុះកម្មសិកានៅកនញងកម្មវិធី ម្ូវញិ ររស់ ប្កុម្ហញន ហគូ េននហគកកូ។ ខ្ញំបននធវើកម្ម
វិធីម្ួយ ផ្េ មានន្ម ុះថា ឆ្ល នសសវ ហតឡាញ។ ឆ្ល នសសវហតឡាញ ជាកម្មវិធីម្ួយ
ររស់អងគការ ន្ហវន អញិននធើណាសសិនណា ់ ផ្េ ច្ូ រួម្យ៉ាងសកម្ម កនញងការការពារ
កញមារពីការរំនោភរំពាន។ នហតញន ច្ំរងវនការរនងកើតកម្មវិធីននុះគឹនេើម្បី ផ្លា ស់រតូរពី
ប្កដាស នៅជាឌ្ីជីថ នៅន ើនថរននាត។ នដាយនហតញថាឆ្ល នសសវ នប្រើប្បស់ ប្កដាស់
នេើម្បីកត់ប្ារបយការណ៍ ។ រនាទ រ់ពីពីរផ្ខនប្កាយម្កវនការនធវើកម្មសិកា កម្មវិធីអនញញ្ញា ត
ឲ្យរញគគ ិក ររស់អងគការ រនងកើតរបយការណ៍ យ៉ាងងាយ។ ភាសាកំពយូរទ្យ័រផ្េ ខ្ញំ បននប្រើ
បស់អំឡញងនព នធវើគំនោងននុះគឺ Java.
RESUME
Dans mon étude au Département de Génie Informatique et Communication, je suis
intéressé par le développement d’applications Android. De nos jours, téléphone intelligents
font partie intégrantes de la communication. Il était donc une grande opportunité pour moi de
faire mon stage dans le programme de Moville au sein de l’entreprise de Golden Gekko. J’ai
fait une application qui a été nommé ChildSafe Hotline. ChildSafe est un programme de
l’organisation de Friends International, qui participe activement à la protection des enfants
vulnérables. La raison principale à développer cette application est de transformer du papier au
numérique sur une tablette. En effet, ChildSafe utilisait du papier pour conserver des rapports.
Cette application aide l’organisation à faciliter de diriger des reports. Après deux mois de mon
stage, l’application permit employées de l’organisation à créer le rapport facilement. La
programmation que j’ai utilisée lors de ce projet est programmation en Java.
Institut de Technologie du Cambodge Golden Gekko (DMI)
III
ABSTRACT
Within my study in Department of Information and Communication, I am interested in
Android Application Development. Nowadays, Smartphone is an integration part of
communication. It was a great opportunity for me to do my internship in Moville program of
Golden Gekko. I have done an application which was named ChildSafe Hotline. ChildSafe is
a program of Friends International organization, which participate actively to protect the
vulnerable children. This application help the organization to facilitate the reports management.
After two months of my internship, application allow employees to create report easily. The
programming which I used in this project is Java programming.
Institut de Technologie du Cambodge Golden Gekko (DMI)
IV
TABLE DES MATIERES
REMERCIEMENTS ............................................................................................................... I
RESUME .................................................................................................................................II
ABSTRACT........................................................................................................................... III
TABLE DES MATIERES.................................................................................................... IV
LISTE DES ABREVIATIONS............................................................................................ VI
LISTE DES ILLUSTRATIONS.........................................................................................VII
LISTE DES TABLEAUX.................................................................................................. VIII
I. INTRODUCTION ............................................................................................................1
1. PRÉSENTATION DU STAGE ................................................................................................1
a. Objectif........................................................................................................................1
b. Durée...........................................................................................................................1
1. PRÉSENTATION DE GOLDEN GEKKO.................................................................................1
a. Histoire de Golden Gekko...........................................................................................1
b. Départements ..............................................................................................................2
c. Conditions de travail...................................................................................................2
d. Adresses.......................................................................................................................2
II. PRÉSENTATION DU PROJET.....................................................................................3
1. PRÉSENTATION DU PROJET ...............................................................................................3
a. Équipe de Moville........................................................................................................3
b. Gestion de projet.........................................................................................................3
2. PROBLÉMATIQUE .............................................................................................................4
3. OBJECTIF .........................................................................................................................4
III. ANALYSE ET TECHNIQUE .........................................................................................5
1. BESOINS...........................................................................................................................5
a. Matériaux ....................................................................................................................5
b. User story....................................................................................................................5
c. UML d’activités...........................................................................................................6
2. PLAN DE PROJET...............................................................................................................6
IV. CONCEPTION DETAILÉE........................................................................................7
1. MON TRAVAIL DE STAGE..................................................................................................7
2. MÉTHODE DE SCRUM.......................................................................................................8
a. Scrum...........................................................................................................................8
3. OUTILS UTILITÉS ..............................................................................................................9
4. BASE DE DONNÉES ...........................................................................................................9
5. TECHNOLOGIES..............................................................................................................10
Institut de Technologie du Cambodge Golden Gekko (DMI)
V
a. Bibliothèques.............................................................................................................10
b. API et Plugin.............................................................................................................11
6. OUTILS INTERNES...........................................................................................................12
a. Confluence.................................................................................................................12
b. JIRA...........................................................................................................................12
c. Gerrit.........................................................................................................................12
d. Web-mail ...................................................................................................................12
e. Bee Bole.....................................................................................................................12
f. Jandroid01 ................................................................................................................12
g. Archive ......................................................................................................................13
h. TestFairy ...................................................................................................................13
7. DIAGRAMME DE USE CASE ............................................................................................13
V. IMPLEMENTATION....................................................................................................14
1. PROCESSUS D’APPLICATION ...........................................................................................14
2. WORKFLOW ...................................................................................................................15
3. SOLUTION ET PROBLÈMES ..............................................................................................16
a. Problèmes..................................................................................................................16
b. Solutions....................................................................................................................17
4. ENVOIE LA FORME..........................................................................................................19
VI. CONCLUSIONS .........................................................................................................20
1. RÉSUMÉ DE PROJET ........................................................................................................20
a. Réalisation du projet.................................................................................................20
b. Point fort ...................................................................................................................20
c. Point faible................................................................................................................20
2. DIFFICULTÉS ..................................................................................................................20
3. EXPÉRIENCES.................................................................................................................21
4. PERSPECTIVE .................................................................................................................21
5. CONCLUSIONS................................................................................................................21
ANNEXES ..............................................................................................................................22
REFERENCES.......................................................................................................................31
Institut de Technologie du Cambodge Golden Gekko (DMI)
VI
LISTE DES ABREVIATIONS
ITC Institut de Technologie du Cambodge
GIC Génie Informatique et Communication
DMI Digital Management, Inc.
UI User Interface
UX User experience
JSON JavaScript Object Notation
XML Extensible Markup Language
SDK Software Development Kit
BE Back end
BO Back office
PM Project Manager
QA Quality Assurance
Dev Developer
API Application Program Interface
Institut de Technologie du Cambodge Golden Gekko (DMI)
VII
LISTE DES ILLUSTRATIONS
Figure 1.2.1. Logo de Golden Gekko et DMI............................................................................1
Figure 2.1.2. Organigramme de l’équipe...................................................................................3
Figure 2.2. Logo de programme de ChildSafe...........................................................................4
Figure 3.1.3. Diagrammes d'activités.........................................................................................6
Figure 4.1.1. Méthodologie Scrum ............................................................................................8
Figure 4.4.1. Bibliothèques utilisées........................................................................................10
Figure 4.4.2. Fonctionement d’EventBus ................................................................................11
Figure 4.6. Diagramme de Use Case .......................................................................................13
Figure 5.1. Processus d’application .........................................................................................14
Figure 5.1.1. Cycle de code .....................................................................................................15
Figure 5.2.1. Interface de page ChildSafe (Page 4ème
).............................................................16
Figure A.4. Page: Child Safe ...................................................................................................23
Figure A.3. Page: Case Report.................................................................................................23
Figure A.2. Les relations entre les tables d'une base de données ............................................23
Figure A.6. Accueil sans rapport .............................................................................................24
Figure A.5. Menu.....................................................................................................................24
Figure A.8. Message de pas internet........................................................................................24
Figure A.7. Résultat de recherche............................................................................................24
Figure A.12. La vue en détail 4................................................................................................25
Figure A.11. La vue en détail 3................................................................................................25
Figure A.10. La vue en détail2.................................................................................................25
Figure A.9. La vue en détail 1..................................................................................................25
Figure A.14. Structure de class 2.............................................................................................26
Figure A.13. Structure de class 1.............................................................................................26
Figure A.15. Layouts d’application .........................................................................................27
Figure A.16. Entré de Matériaux Design.................................................................................28
Figure A.17. Class : RestApi.java............................................................................................29
Figure A.18. Class: FIMovilleApplication.java.......................................................................29
Figure A.19. Méthode soumettre de class FormReportActicity.java.......................................30
Institut de Technologie du Cambodge Golden Gekko (DMI)
VIII
LISTE DES TABLEAUX
Tableau 4. Plan de projet ...........................................................................................................7
Tableau A.1. Planification de sprints.......................................................................................22
Institut de Technologie du Cambodge Golden Gekko (DMI)
1
I. INTRODUCTION
Dans un premier temps, nous ferons état de décrire sur l’information générale
du stage qui pour objectif et la durée. Dans l’étape suivante nous présenterons de
l’entreprise.
1. Présentation du stage
a. Objectif
L’objectif du stage est de permettre aux étudiants à appliquer ce qu’ils ont
appris dans la class et aussi à s’adapter à la vie professionnelle dans un
établissement public, une entreprise ou organisation. À la fin du stage, nous devons
faire un rapport de notre projet.
b. Durée
La durée du stage proposé est au moins de deux mois. Pour moi, il faisait
deux mois et 10 jours. Mon stage a été effectué du 20 Juillet jusqu’à 30 Septembre
2015.
1. Présentation de Golden Gekko
a. Histoire de Golden Gekko
Golden Gekko (DMI) a été créée en 2005. Elle est une l’entreprise
internationale. Avec une globale présence et plus de 220 mobiles experts, elle a
développé des cents d’Applications pour plus de 200 industries and entreprises
connu. Tous les solutions sont commercial qui s’est concentrées sur UX/UI design,
user testing et qualité de service. Golden Gekko est seulement un fournisseur de
solution mobile dans le monde qui a obtenu ‘Trusted Developer Status’ de AQuA.
Pour instant elle a coopéré avec DMI, entreprises de secteurs Technologie de
Mobile.
Figure 1.2.1. Logo de Golden Gekko et DMI
Institut de Technologie du Cambodge Golden Gekko (DMI)
2
b. Départements
Ella est composée de 6 départements, RH & Administration, Qualité de
service, Opérations IT, UI/UX design, S.A & Développement, Chef de Projet
& Équipe.
c. Conditions de travail
- L’horaire de travail est :
Lundi à Vendredi : 9h00 à 18h00
- Divertissements
 Billard : Tous les temps libres.
 Beer O’clock : Tous les Vendredi de 17h :00 à 18h :00
 Bar O’clock : Tous les Vendredi à partir de 18h :00 à 18h :00
d. Adresses
L’entreprise se trouve en quatre pays. Pour avoir aperçu de les travails et
enter en contact avec nous, vous pouvez consulter la location au suivant.
LONDON
Golden Gekko Ltd.
2ème
étage , rue 2 Sheraton
London W1F 8BH
Info: +44 20 8816 7285
NEW YORK
25 Broadway 9ème étage,
1004 New York
BARCELONA
Calle Bruc 49, Principal
08009 Barcelona
+34 93 001 3261
PHNOM PENH
Rue 106 House, 14 Phnom Penh
Tel : 023 986 556
Institut de Technologie du Cambodge Golden Gekko (DMI)
3
II. PRÉSENTATION DU PROJET
La deuxième partie du rapport porte sur présentation du projet, alors que
problématiques en constitue la deuxième partie. La troisième partie contient objectif.
1. Présentation du projet
a. Équipe de Moville
Moville vient de mots Mobile et Village. Elle est un programme pour des
étudiants qui viennent des universités, qui ont besoin de faire du stage. Elle est
composée de 7 personnes Ce programme faisait trios mois. Le programme donne
une opportunité aux étudiants à apprendre et appliquer sa connaissance à un projet
proposé par l’entreprise. Ce programme marche tous les années, une fois par année.
Nous somme la deuxième promotion de Moville.
b. Gestion de projet
Structurer et piloter un projet, c’est maximiser nos chances de succès. La
gestion de projet est une démarche visant à organiser de bout en bout le bon
déroulement d’un projet. C'est tout l'opérationnel et le tactique qui fait qu'un projet
aboutit dans son triangle qualité-coût-délais (QCD). Voici le schéma
de l’organisation des tâches avec nombre de personne qui travaillent dans chaque
tâche :
Figure 2.1.2. Organigramme de l’équipe
Puis on planifie ces tâches à des personnes. Avec une date de début et une
durée maximale. (Voir la planification avec date fixé : Tableau A.1. Planification
de sprints)
PM
1 pers
Designer
1 pers
BO & BE
1 pers
Android Dev
1 pers
iOS Dev
1 pers
QA
2 pers
Institut de Technologie du Cambodge Golden Gekko (DMI)
4
2. Problématique
Les rapports du ChildSafe sont en papier qui est difficile à diriger. La gestion de
de rapports est une problématique très sensible. La difficulté de compte es rapports, voir
le rapport en détail, voir le nombre de personnes qui sont consonants dans le rapport.
Ce sont un soucie qui fait l’organisation faire face à problème perd les rapports, le
temps, etc.
Figure 2.2. Logo de programme de ChildSafe
3. Objectif
L’objective principale était de réaliser une application sur une tablette
permettant de créer des rapports et de pouvoir les envoyer au server. Chef
d’administration au côté serveur peut voir détail des rapports envoyées.
Institut de Technologie du Cambodge Golden Gekko (DMI)
5
III. ANALYSE ET TECHNIQUE
Pour réaliser cette application, il est nécessaire d’analyser sur les besoin et processus
d’application. Avant de commencer le développement d’application, une étude sur laquelle
a été faite. Cela a permis de profiter le temps et éviter de faire des choses inconnues. Ainsi,
1. Besoins
a. Matériaux
Le développement se concentre sur une seule tablette. La tablette dont nous
avons besoin est :
- Tablette :Samsung Galaxy Tab A 8.0
- OS : plate-forme Android avec version plus de 4.0
Android est un système d'exploitation basé sur le noyau Linux. Le
projet pour le développement du système Android est appelé Android Open
Source Project (AOSP) et est géré principalement par Google.
b. User story
Dans cette partie, on décrit les user stories.
Voici Le User Story :
- En tant qu'utilisateur, je peux créer un rapport.
- En tant qu'utilisateur, je peux sauvegarder un rapport.
- En tant qu'utilisateur, je peux modifier un rapport.
- En tant qu'utilisateur, je peux supprimer un rapport.
- En tant qu'utilisateur, je peux envoyer un rapport au server.
- En tant qu'utilisateur, je peux voir la liste de rapports envoyés.
- En tant qu'utilisateur, je peux voir la liste de rapports sauvegardés.
- En tant qu'utilisateur, je peux chercher un rapport.
- En tant qu'utilisateur, je peux voir le détail d'un rapport et le modifier.
Institut de Technologie du Cambodge Golden Gekko (DMI)
6
c. UML d’activités
Pour comprendre notre système, j'ai navigué en utilisant les diagrammes
d'activité. Certaines activités sont grandes et complexes. Les diagrammes sont
présentés avec des illustrations en face. Le schéma suivant est un diagramme
d'activité de l'administrateur. Avec ce système, nous pouvons savoir ce que nous
devrions faire dans chaque activité.
2. Plan de projet
Le projet a duré 2 mois. Il a y deux sprints. Le sprint est une itération ou boite
de temps de 2 à 4 semaines au sein de laquelle l’équipe de développement va concevoir,
développer et tester un ensemble de fonctionnalités du produit à réaliser. Dans ce projet,
chaque sprint a duré de 2 à 3 semaines.
Le suivant
Le precident
liste de rapports
Brouillons
Page 1
Page n+1
Page 4
Page 7
Page n+5
Ajouter
Soumettre
Validé
Non Validé
Réussi Echoueé
Figure 3.1.3. Diagrammes d'activités
Institut de Technologie du Cambodge Golden Gekko (DMI)
7
IV. CONCEPTION DETAILÉE
Nous procéderons à une description détaillée des principales approches des
outils utilisés avec une définition du concept de chaque outil. Nous apporterons d’abord
des précisions sur la méthode de Scrum. Dans l’étape suivante, nous présenterons des
outils utilisés. Puis base de donné, technologies, outils internes, et la dernière le
diagramme activité de UML.
1. Mon travail de stage
Mon travail porte sur toute l’interface et le processus d’application. Je n’ai pas
besoin de designer l’interface par moi-même. Donc j’ai gagné un peu de temps à
d’autre travail.
Semaines Sprint 1 Sprint 2 Délai
Acceptation
de Client
Fin de projet
Tâches 1 2 3 4 5 6 7 8 9 10
Analyser et créer
base de donné
Implémenter
interface
Implémenter
validation
Envoyer rapport
Fixer des erreurs
Modifier le code
Rechercher sur
nouvelles technologies
Tableau 4. Plan de projet
Dans un premier temps, il est le sprint 1. J’ai étudié la besoin de l’interface dont
il a besoin. Dans cette première semaine je trouver quelques bibliothèques qui
correspondent à l’interface de conception de Matériel Design. Cette semaine j’ai créé
la base de données. Pendant la deuxième et troisième semaine j’ai implémenté interface.
J’ai fini mon tâche de crée interface dans le Sprint 1.
Dans le sprint 2, j’ai implémenté les pages validations. Donc ce sprint, il est plus
difficile tâche de projet.
Mon projet a été délai une semaine à cause de temps est très court pour à
Institut de Technologie du Cambodge Golden Gekko (DMI)
8
implanter tous la fonction complètement. Cette semaine délia là, j’ai fini la fonction
d’envoyer un rapport au server. Puis.
Pour la durée de l’acceptation de client. J’ai continué à fixer des erreurs. Puis
j’ai une autre semaine à réviser et changer certaines de fonction dans le code pour
faire bien sa performance et obtenir un code de bonne qualité.
2. Méthode de Scrum
a. Scrum
Scrum est une méthode agile de gestion de projets. Elle est spécialement
adaptée aux projets informatiques, notamment en génie logiciel, avec trois
fondements principaux : transparence vis-à-vis du client, inspection et adaptation
continuelle.
L'idée principale de Scrum est qu'il n'est pas toujours intéressant de suivre
un processus prédictif figé pour gérer un projet : les besoins et les tâches qui en
découlent sont ajustés régulièrement pendant le déroulement du projet. Scrum est
donc une méthode adaptative, qui tient son inspiration de la théorie de contrôle
empirique des processus.
Figure 4.1.1. Méthodologie Scrum
Scrum dans la méthode agile ce sont 4 valeurs fondamentales: l’équipe,
l’application, la collaboration, l’acceptation du changement. En appliquant ce
principe, on assiste généralement à un gain de productivité par rapport à une
approche traditionnelle, puisqu’on ne perd pas un temps considérable en rédaction,
validation puis mises à jour de spécifications détaillées. Il est sans doute bon de
préciser également que l’on ne néglige pas la conception du produit pour autant.
La conception fait partie des tâches sous-jacentes à la réalisation d’une
Institut de Technologie du Cambodge Golden Gekko (DMI)
9
fonctionnalité.
Nous avions une rencontré tous les jours pendant de 15 à 30 minutes. La
rencontré était normalement de 11h 30 à 12h : 00. Nous avons parlé de ce que
nous avions fini, et de quelle problème que nous étions en face, et de ce que nous
ferions.
3. Outils utilités
- Ubuntu
- MySQL Workbench
- Android Studio
- Cola
- Meld
Linux en particulier la version Ubuntu est simple d'utilisation, plus rapide et
plus sécurisé que Windows. Il est disponible gratuitement et librement.
Pour la conception de base de données j’ai choisi MySQL Workbench. J’ai
utilisé cet outil pour construire les relations des tables de base de donné.
Android Studio exploite les capacités intelligentes d’édition de code de IntelliJ
IDEA, comme le refactoring et l’analyse de code. Cet IDE vous permet également
d’éditer et de pré-visualiser vos mises Android à travers plusieurs tailles d’écran,
différents langages et même des versions différentes de l’API Android. Vous pourrez
également facilement utiliser Google Cloud Backends, Endpoints et Google Cloud
Messaging.
Cola est utilisé pour faciliter à commettre le code au Gerrit. Après on a modifié
le code, puis on pouvait commettre en utilisant cet outil.
Meld est un petit outil de comparaison et de fusion bien sympathique. Une fois
l’importation effective vous pouvez constater que les différences sont
immédiatement visibles et indiquées en rouge. On peut très bien voir que le fichier
de gauche contient des lignes qui ne sont pas présentes dans le fichier de droite.
4. Base de données
J’ai choisi SQLite pour stocker des informations. SQLite est un système de
gestion de bases de données relationnelles. SQLite utilise efficacement la mémoire,
Institut de Technologie du Cambodge Golden Gekko (DMI)
10
l'espace disque et la bande passante de disque. (Voir la Figure A.2. Les relations des
tables de base de données pour en savoir)
5. Technologies
a. Bibliothèques
Dans ce part je parle des bibliothèques utilisées dans ce développement.
Je pense l’utilisation de ces bibliothèques est efficace.
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.github.ganfra:material-spinner:1.1.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.android.support:cardview-v7:22.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.jakewharton:butterknife:7.0.1'
////Securirty
compile 'com.dmi.security:security:1.2@aar'
}
Figure 4.4.1. Bibliothèques utilisées
- Butter Knife
Butter Knife est une bibliothèque d’injection de vues. Elle repose sur le
principe d’annotation processing afin de générer du code boiler plate pour
vous. Fini les findViewById et les inner-classes pour les listeners ! De plus le
code généré est facilement debuggable. Pour injecter une vue, il suffit
d’utiliser l’annotation @Bind:
@Bind(R.id.name)
AutoCompleteTextView mName;
@Bind(R.id.age)
EditText mAge;
Institut de Technologie du Cambodge Golden Gekko (DMI)
11
- EventBus
EventBus est un bus d’évènement spécialement conçu pour Android. Il
facilite le découplage entre les composants d’une application par l’utilisation
de messages au lieu des "classiques" callbacks. Il est possible de choisir si l’on
souhaite traiter le message sur le thread UI ou sur un thread de background.
Figure 4.4.2. Fonctionement d’EventBus
- Retrofit
Retrofit permet de transformer une API REST en une interface
Java puis de la consommer. Les annotations permettent de manipuler
la requête :
 définir le type de la requête (GET, POST, PUT, DELETE and HEAD),
 manipuler l’URL (Path, Query, QueryMap),
 définir le corps (Body),
 de construire une requête avec les paramètres encodés ou multi-part,
 de gérer les en-têtes (Headers).
b. API et Plugin
- TestFairy
J’ai utilisé ce plugin pour mettre application déployé de jandroid01 au
service TestFairy. Je décrirai un peu détaillé à partie des outils internes. J’ai
ajouté ce plugin dans le root de build.gradle
classpath 'com.goldengekko.gradle:testfairy-plugin:1.0.0.0'
- Sécurité
Il fait l'ouverture de session et engendrer l’access token par soi-
même pendant envoyer la forme au server avec le nom d’utilisateur et mots
de passe donné.
Institut de Technologie du Cambodge Golden Gekko (DMI)
12
Si le réseau n’est pas disponible, il va reconnecter le service
automatiquement. Il garante que la forme peux être envoyé au server. J’ai
ajouté ce plugin dans le build.gradle d’application
compile 'com.dmi.security:security:1.2@aar'
6. Outils internes
a. Confluence
Confluence est l'endroit où vous créez, organisez et parlez de travail avec
votre équipe. Il s’agit d'un lieu central où vous pouvez travailler ensemble sur les
projets qui sont en cours. Il donne les informations des tous les projets de
l’entreprise. En plus, dans laquelle on peut trouver le Profile de tous les
employées. Les informations que l’on peut trouver peuvent être l’histoire
d’apprentissage, courriel, numéro de téléphone de chaque employée, etc.
b. JIRA
JIRA est un système de suivi de bugs, un système de gestion des incidents, et
un système de gestion de projets.
c. Gerrit
Gerrit est une application Web gratuite de revue de code pour le travail en
équipe. Chacun peut y lire, approuver ou rejeter les modifications d'un code
source via un navigateur web. Il s'utilise avec Git qui s'occupe de poster ces
changements de code.
d. Web-mail
Tout le personnel doit avoir sa propre adresse mail pour envoyer et recevoir
des courriels. Cet email est créé par l'entreprise. Vous pouvez vous identifier aux
systèmes cités ci-dessus comme JIRA, Confluence, Gerrit etc.
e. Bee Bole
Bee-Bole est un système qui est utilisé pour enregistrer le temps de travail
chaque semaine.
f. Jandroid01
Jandroid01 est un système de Jenkins qui est utilisé pour vérifier si le code
engagé est succès déployé. On l’utilise pour déployer une nouvelle version de
l’application Android aux QA ou clients.
Institut de Technologie du Cambodge Golden Gekko (DMI)
13
g. Archive
Archive est un site que l’on peut trouver des versions de application à déverminer.
Toutes les versions ont été stockées dans le répertoire de ce site.
h. TestFairy
TestFairy est une puissante plate-forme d’application de test qui aide les
développeurs mobiles à distribuer leurs applications à tester et fournit des vidéos
qui montrent exactement ce qui s'est passé côté client pendant le test.
7. Diagramme de Use Case
Un diagramme de cas d'utilisation est une représentation graphique des
interactions entre les éléments d'un système. Un cas d'utilisation est une méthode
utilisée pour l'analyse du système à identifier, clarifier et organiser les exigences du
système. Dans ce contexte, le terme ‘système’se réfère à quelque chose qui est
développé ou utilisé. Utilisation des diagrammes de cas sont employés dans UM, une
notation standard pour la modélisation d'objets et de systèmes du monde réel. Dans ce
schéma, il y a un seul acteur est un utilisateur normal.
En bref, l'utilisation diagramme de cas montrent l'interaction entre l'acteur qui
nous avons appelé l'utilisateur normal et le système que nous avons appelé l'application.
Nous allons voir les besoins de ChildSafe Hotline ci-dessous des cas d'utilisation.
Utilisateur
Créer un rapport
Sauvegarder
Envoyer
Voir les listes
Voir détail
Modifier
Chercher
Envoyer Supprimer
Figure 4.6. Diagramme de Use Case
Institut de Technologie du Cambodge Golden Gekko (DMI)
14
V. IMPLEMENTATION
Dans le travail, j’ai écrit du code utilisant le langage JAVA. Dans ce qui suit, je
montrai une partie de mon code JAVA en partie de solution aux problèmes. Cette parie
s’occupe du parcourt un processus après son changement et crée l’objet de Hotline pour
former le objet de JSON. Je commence par processus d’application.
1. Processus d’application
Figure 5.1. Processus d’application
Comme le montre la figure 5.1, quand on crée un rapport sur un phone ou
tablette. Puis on peut l’envoyer au server. Au server nous utilisons Google App Engine,
elle est sécurité, on va décrire un peu détail dans le partie solution. Ici on propose que
le server réponse le ‘id’ à client. Client utilise cet ‘id’ pour créer un nouvelle rapport
dans la base de donné. Ensuit on peut utiliser l’ordinateur pour voir des rapports. Pour
accéder ce site, on a besoin entrer le nom d’utilisateur et les mots de passe.
La raison que le ‘id’ de rapport devrait être créé par le server c’est pour le but de
permettre des plusieurs utilisateurs d’obtenir le ‘id’différent pour ses rapports. Il évitait
la même ‘id’ pour des différents rapports. Il pourrait être en format : CSH00001,
CSH00002 … . Tous les opérations d’envoi, il incrémentait le ‘id’ avec la valeur 1.
Institut de Technologie du Cambodge Golden Gekko (DMI)
15
2. Workflow
Moi, je suis Dev. Je suis concentré, en premier lieu, l’écrit le code et fixe des
erreurs. Après j’ai fini une fonction ou fixé un problème, je commis le code au Gerrit.
Ensuite, j’ai commencé à faire une autre fonction. Dans cette situation j’attends mon
code vérifié par mon maître de stage. Apres sa vérification et le code est fusionné, je
peux tirer ce code au mon local de ordinateur. Si le code n’est pas vérifié par lui à cause
de mauvais implémenté. Je dois corriger ou refaire cette fonction, puis je décommis ce
code.
Je peux accéder le Jandroid01 dans lequel je peux déployer une nouvelle version
de ChildSafe Hotline. Après déploiement, les applications seront mis au TestFairy et un
autre `a Archive dans laquelle QA peuvent accéder pour installer cette application dans
tablette pour tester.
Alor de test, si QA trouvait un problème, il créait le ticket d’issue qui est assigné
à moi dans le système de JIRA. Le ticket qui est le major, sa priorité est haute, il doit
être mis à première ligne.
Alors, ce que je dois faire maintenant c’est que je fixe ces erreurs, puis je ferme
ce ticket d’issue. Après quelques modifications, je déploie une nouvelle version pour
QA de continuer ce test.
Figure 5.1.1. Cycle de code
Commettre
Non fusionné
Archive
Debug.apk App.apk
Déployer
Git
Jandroid01
Confluence
Jira TestFair
y
Coder & Fixer
des erreurs
Gerrit
fusionné
Créer anoncé note
Verifier
Créer erreurs notes
AssignerRésoudre
Dev
Production
Déployer
QA
Vérifieur
Clients
Institut de Technologie du Cambodge Golden Gekko (DMI)
16
Le client va obtenir la dernière version qui n’a pas d’erreurs, sur tout il n’y a pas
de crash. La nouvelle version déployée est mis à TestFairy qui nom avec ChildSafe-
1.0.0.16-debug.apk. Une autre est mis en Archive avec le nom ChildSafe-1.0.0.16-
release.
3. Solution et problèmes
a. Problèmes
Je suis confronté à quatre grands problèmes que je n'arrive pas à résoudre seul.
 Page Indicateur
 Action de Boutons ‘Next’
 formate JSON
 Envoie au server
Figure 5.2.1. Interface de page ChildSafe (Page 4ème)
 Le premier est que la forme comporte sept pages. Par conséquent, il était difficile
à contrôler l’objet de chaque page. La forme a besoin d’être validé avec couleur
blanche s’il est valide et rouge s’il est invalide. Quand le ‘Further action required’
check box est choisi ‘No’ la page indicateur vient floue avec l’opacité de 20%.
 Ensuite, Le bouton ‘Next’ change le texte à ‘Save Draft’ si la forme est invalide,
Institut de Technologie du Cambodge Golden Gekko (DMI)
17
mais s’il est valide, il change à ‘Submit’. Quand je le change, l’opération de
bouton change également à sauvegarder au brouillions ou soumettre au server.
 Le troisième problème, c’est que la formate de JSON. Comme il y a sept pages,
chaque page a différence objet. Je dois organiser le formate de objet qui
correspondance à la besoin de Back-end. La difficulté est que je dois mettre le
numéro identifié (id) de chaque objet dans son ordre. Ici, le numéro identifié de
mon Android est différent du numéro identifié de Back-end.
 Dernier c’est que l’envoie au server. A cause de formate de JSON, access token,
au server il a fait un problème pendant l’envoie le forme au server. A Back-end, il
est sécurité, il a besoin de nom d’utilisateur et mots de passe pour accéder le lien à
envoyer. Il a deux opérations possibilités, ce sont de créer nouveau rapport et
modifier vieux rapport.
b. Solutions
 Pour la solution au premier problème, j’ai utilisé CirclePagerIndicator qui est
implémenté View dans le class. Dans ce class, on a utilisé Paint pour peinture
la cercle de page indicateur.
 Le deuxième problème j’ai utilisé bibliothèque de l’EventBus. Quand
utilisateur clique sur le bouton ‘Submit’, puis dans chaque fragment, j’ai un
methode onLeavePage qui est implémenté de l’interface
PreviousNextFragmentCallback. J’ai appelé cette méthode pour poster tous les
objets de chaque Fragment au FormReportActivity.
FramentCaseReport.java , il est comme Publisher
public void onLeavePager() {
setValues();
EventBus.getDefault().post(mCaseReport);
}
Concernant la méthode ‘onEvent’, son rôle est de obtenir l’objet quand un
objet est poster d’autre class.
FormReportActivity.java, Il est comme Subsriber
public void onEvent(CaseReport caseReport) {
mCaseReport = caseReport;
}
Institut de Technologie du Cambodge Golden Gekko (DMI)
18
 Pour le quatrième problème, j’ai utilisé Retrofit. J'arrive à envoie un message
depuis le Service à l'activity en utilisant Event Bus. Builder de l'Adapter qui se
trouve dans l’Application est déjà initialisée tant que l’application commence
avec la méthode static. Donc, quand on veut envoyer un rapport, on n’a pas
besoin d’enregistrer encore une fois.
restApi.submit(hotline, isUpdatingReport, new Callback<String>() {
@Override
public void success(String caseNumber, Response response) {
//Réussi
}
@Override
public void failure(RetrofitError error) {
//Echoué
}
});
(Pour en savoir plus voir Figure A.19. Méthode soumettre de class
FormReportActicity.java à page 31 de partie annexes)
 Lorsque le service rencontre une erreur HTTP, il en informe immédiatement
l'activity qu'une erreur s'est produite et puis sauvegarder le rapport dans la
liste de brouillions. Dans le cas, le rapport n’a pas de ‘id’, il enverra en
utilisant méthode de submit. S’il réussit, il donne une réponse en string dont
il est ‘id’ de rapport. Maintenant je sauvegarde ce rapport avec ce ‘id’ dans
la base de donné puis réaliser le liste. C'est envoyer un rapport au service
depuis l'activity. Dans le cas, un rapport a un ‘id’, il enverra en utilisant
méthode de update, afin de mettre, j’ai réalisé le liste de rapports.
 Le dernier problème, j’ai résolu en créant un objet. En utilisant Retrofit, ce
problème est résolu,
public class Hotline {
private Caller caller;
private Beneficiary beneficiary;
@SerializedName("childSafe")
private ChildSafe childSafes;
private List<FollowUp> followUps;
private List<Referral> referrals;
private CaseReport caseReport;
// Setter et Getter
}
Institut de Technologie du Cambodge Golden Gekko (DMI)
19
Mais il n’a pas résolu le problème ‘id’. Ici, j’ai mis un id de server dans le base
de donné. Puis je peux obtenir cet id et mettre dans l’objet avant d’envoyer au
server.
public final static String strCaseType[][] = {
{"12", "Child separated from family"},
{"13", "Accident"},
. . .
{"37", "Other"}};
}
4. Envoie la forme
Dans cette application, il y a deux méthode possible à accéder le server,
POST et PUT. J’ai utilisé la méthode POST tant que utilisateur envoyait un
nouveau rapport. Dans le cas, utilisateur envoyait le rapport modifié, j’ai utilisé la
méthode PUT. Pour chaque méthode, il utilisait le même lien.
public interface Api {
@POST("/api/caseReports/v1")
public void submit(@Body Hotline hotline, Callback<String> callback);
@PUT("/api/caseReports/v1")
public void update(@Body Hotline hotline, Callback<String> callback);
}
Quand on envoie un rapport, Retrofit reliait le lien de POST avec le domaine
de site internet https://friends-intl-hotline-kh-stage.appspot.com. Alor il vient :
- pour utilisation officiel :
https://friends-intl-hotline-kh-stage.appspot.com/api/caseReports/v1
- pour le test :
https://friends-intl-hotline-kh-test.appspot.com/api/caseReports/v1
Le paramètre ‘Callback<String>’, après l’envoie on obtenait la réponse
de server. Cette réponse est le résultat si l’envoie est réussite ou échoué. Le
réponse de server est un ‘id’ pour un rapport.
Institut de Technologie du Cambodge Golden Gekko (DMI)
20
VI. CONCLUSIONS
Dans cette dernière section, je parlerai sur la conclusion de projet. La première partie
je parlerai de réalisation du projet. Je parlerai également des expériences que j’ai obtenues
pendant le stage.
1. Résumé de projet
a. Réalisation du projet
Toutes les tâches de projet, j’ai complètement fini avec bon résultat. Après
la PM, le projet est satisfait le client. Actuellement, interface suivi le designer est
95% le même couleur et dimensions. En s’agissant de processus de chaque tâche, il
a été complétement fini 100% qui ont correspondues à la planification de projet et
le besoin de client.
b. Point fort
L’application est facile à utiliser grâce à son interface graphique bien
organisé. La performance en ce qui concerne la vitesse de création et mettre le
donné dans la forme de rapport sont bien rapide. Il s’agit de recherche des
rapports est aussi vite, le résultat montré pendant l’utilisateur entre le mot clé est
également marche bien. Bien qu’il a y a plusieurs cents des rapports cette fonction
marche toujours bien car il a le temps délai pendant la performance.
c. Point faible
Comme cette application se concentre sur une unique tablette. Donc,
l’interface d’application peut être mauvaise vue dans autres téléphones intelligents.
C’est-à-dire qu’il marche bien sur un seul type de tablette.
2. Difficultés
Tous s’est très bien déroulé, sans encombre. Maître de mon stage a ouvert à
toutes discussions. J’ai apprécié son disponibilité qui toujours prête à répondre à mes
interrogations. Mais il y avait une difficulté, c’est que la planification du projet est trop
courte, comme je n’ai pas expérience à faire le réel projet, il a été un peu grand pour
moi à finir ce projet selon la date limité. En conséquent, Je n’ai pas pu finir le projet
sans délai. J’ai demandé la PM pour une semaine délai. En fin, elle a accordé ma
demande. Une autre difficulté était les changements besoins de clients. Quand il les
changeait je devais change également l’interface et le code. C’était une raison de délai.
Institut de Technologie du Cambodge Golden Gekko (DMI)
21
3. Expériences
Dans le cadre de mon stage, il était très enrichissant car j’ai pu découvrir le
monde de l’innovation de manière professionnelle. Cela m’a permis de découvrir un
nombre impressionnant dans le secteur de la mobile technologie. Le travail est
complètement différent de l’apprentissage. Pendant le stage, j’ai appris de geston de
travail en équipe. En plus, j’ai également appris le mode de travaille. Ce stage m’a
aussi permis de comprendre le fonctionnement du monde des entreprises
internationales : leur politique, leurs rouages et estimer les problèmes liés au
commerce extérieur. En plus, je sais comment faire le rapport du stage. Il a été en tous
points bénéfiques pour moi.
4. Perspective
Ce projet était en phase 1. Je crois qu’il a été achevé assez bien. Mais on attend
encore de client pour sa réponse s’il veut continuer à phase 2. Dans la phase 2, il y aura
des nouvelles fonctions. Les fonctions seraient pu ajouter dans ce phase 2 peuvent être :
- Utilisateur peut capturer les photos et les mettre dans le rapport.
- Utilisateur peut enregistrer le son pendent la mission est en course.
- Utilisateur peut synchroniser des rapports entre tablette et server.
- Application sera disponible sur tous les téléphones intelligents d’Android.
5. Conclusions
Ainsi, j’ai effectué mon stage de fin année à l’entreprise Golden Gekko au sein
de la grande entreprise DMI (Digital Management, Inc.). Lors de ce stage de 10
semaines, j’ai pu mettre en pratique mes connaissances théoriques acquises durant ma
formation, de plus je me suis confronté aux difficultés réelles du monde du travail et la
vie professionnelle.
Après ma rapide intégration dans l’équipe, j’ai eu l’occasion de réaliser
plusieurs tâches qui ont constitué une mission de stage.
Je pense que cette expérience à l’entreprise m’a offert une bonne préparation a
mon insertion professionnel car elle fut pour moi une expérience enrichissante et
complète qui confort mon désir d’exercer mon futur métier de développer dans le
domaine de mobile technologie.
Institut de Technologie du Cambodge Golden Gekko (DMI)
22
ANNEXES
Platform Sprint Start Date End Date Result
Design Android 1 22 Jul 4 Aug Done
Design Android 2 5 Aug 18 Aug Done
Design Android 3 19 Aug 25 Aug Done
Design Android 1 22 Jul 4 Aug Done
Design Android 2 5 Aug 18 Aug Done
Design Android 3 19 Aug 25 Aug Done
Design B.O 1 5 Aug 18 Aug Done
B.E 1 22 Jul 6 Aug Done
B.O 1 18 Aug 25 Aug Done
Android 1 29 Jul 13 Aug Done
QA 1 14 Aug 18 Aug Done
Client Review 1 19 Aug 20 Aug Done
Android feature Complete 2 19 Aug 7 Sep Done
Tableau A.1. Planification de sprints
Institut de Technologie du Cambodge Golden Gekko (DMI)
23
Figure A.2. Les relations entre les tables d'une base de données
Figure A.3. Page: Case Report Figure A.4. Page: Child Safe
Institut de Technologie du Cambodge Golden Gekko (DMI)
24
Figure A.5. Menu Figure A.6. Accueil sans rapport
Figure A.7. Résultat de recherche Figure A.8. Message de pas internet
Institut de Technologie du Cambodge Golden Gekko (DMI)
25
Figure A.9. La vue en détail 1 Figure A.10. La vue en détail2
Figure A.11. La vue en détail 3 Figure A.12. La vue en détail 4
Institut de Technologie du Cambodge Golden Gekko (DMI)
26
Figure A.13. Structure de class 1 Figure A.14. Structure de class 2
Institut de Technologie du Cambodge Golden Gekko (DMI)
27
Figure A.15. Layouts d’application
Institut de Technologie du Cambodge Golden Gekko (DMI)
28
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/dateRequired"
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:hint="Date" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/performedBy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/case_manager"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
Figure A.16. Entré de Matériaux Design
Institut de Technologie du Cambodge Golden Gekko (DMI)
29
public class RestApi {
private static Api mApi;
private static final String PASSWORD = "**********";
private static final String USERNAME = "**********";
public RestApi() {
}
public static void initialize(Context context) {
if (mApi == null) {
final String serverUrl = context.getString(R.string.server_url);
final SecurityOkClient client = new SecurityOkClient(context,
serverUrl, USERNAME, PASSWORD);
final SecurityRestAdapterBuilder builder = new
SecurityRestAdapterBuilder(client);
builder.setEndpoint(serverUrl);
RestAdapter restAdapter = builder.build();
restAdapter.setLogLevel(RestAdapter.LogLevel.FULL);
mApi = restAdapter.create(Api.class);
}
}
public void submit(Hotline hotline, boolean isUpdate, Callback<String>
callback) {
if (isUpdate) {
mApi.update(hotline, callback);
} else {
mApi.submit(hotline, callback);
}
}
}
Figure A.17. Class : RestApi.java
public class FIMovilleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
RestApi.initialize(getApplicationContext());
}
}
Figure A.18. Class: FIMovilleApplication.java
Institut de Technologie du Cambodge Golden Gekko (DMI)
30
private void sendReportToServer() {
mProgressDialog.show();
RestApi restApi = new RestApi();
Hotline hotline = prepareHotline();
if (!mFurtherActionEvent.isRequired()) {
hotline.setAdditionalInfo(null);
hotline.setFollowUps(null);
hotline.setReferrals(null);
}
boolean isUpdatingReport = !mCaseReport.getCaseNumber().isEmpty();
restApi.submit(hotline, isUpdatingReport, new Callback<String>() {
@Override
public void success(String caseNumber, Response response) {
mCaseReport.setCaseNumber(caseNumber);
DBHelper db = new DBHelper(FormReportActivity.this);
Intent intent = getIntent();
db.deleteReport(intent.getIntExtra(ID, DEFAULT_VALUE));
//Save to database with Case Number
mCaseReport.setCaseNumber(caseNumber);
new SaveReport(hotline);
mProgressDialog.dismiss();
Toast.makeText(FormReportActivity.this,
getResources().getString(R.string.sent_success) +
getString(R.string.case_number_is) +
caseNumber, Toast.LENGTH_SHORT).show();
setResult(RESULT_OK);
finish();
}
@Override
public void failure(RetrofitError error) {
//Failed
Toast.makeText(FormReportActivity.this,
getResources().getString(R.string.fialed_sending),
Toast.LENGTH_SHORT).show();
new SaveReport(getApplicationContext(), true, mCaller,
mBeneficiary,
mCaseReport, mReferralList, mFollowUpList,
mChildSafeDatas, mAddiontionalInformation,
mFurtherActionEvent
);
setResult(RESULT_SAVE_DRAFT);
mProgressDialog.dismiss();
finish();
}
});
}
Figure A.19. Méthode soumettre de class FormReportActicity.java
Institut de Technologie du Cambodge Golden Gekko (DMI)
31
REFERENCES
- Guide à la rédaction de mémoire, Comité Scientifique de l’ITC, [2013].
- Rapport De Stage D’ingénieur De Quatrième Année, M. HE Bunna, [2015].
- Mémoire de Fin D’études, M. TITH Dara, [2014]
- Document Android, Développeurs Android, https://developer.android.com/guide
- Android: les bibliothèques utiles, Benjamin Lacroix, [On-line] [22 octobre 2014]:
http://blog.xebia.fr/2014/10/22/android-les-bibliotheques-utiles/
- EventBus Document, Github: https://github.com/greenrobot/EventBus
- Dictionnaire WordReference, Dictionnaires de langue en ligne:
http://www.wordreference.com/fren
- Guide de démarrage Scrum, Agiliste: http://www.agiliste.fr/guide-de-demarrage-
scrum
- Material Spinner, Ganfra: https://github.com/ganfra/MaterialSpinner
- Android ViewPagerIndicator, Github:
https://github.com/JakeWharton/ViewPagerIndicator

Mais conteúdo relacionado

Destaque

Pérez Gaudio, "La Transformación".
Pérez Gaudio, "La Transformación".Pérez Gaudio, "La Transformación".
Pérez Gaudio, "La Transformación".Carla Melisa Nicolato
 
Guide du membre.Que faire en cas de décès ou d'inaptitude?
Guide du membre.Que faire en cas de décès ou d'inaptitude?Guide du membre.Que faire en cas de décès ou d'inaptitude?
Guide du membre.Que faire en cas de décès ou d'inaptitude?aderm
 
UN ÁNGEL CON NOSOTROS
UN ÁNGEL CON NOSOTROSUN ÁNGEL CON NOSOTROS
UN ÁNGEL CON NOSOTROSUNESR
 
Cambios en la accion docente
Cambios en la accion docenteCambios en la accion docente
Cambios en la accion docenteSANDRA ROJAS
 
Intercatedras de practicas profesionalizantes 3er año 2011
Intercatedras de practicas profesionalizantes 3er año 2011Intercatedras de practicas profesionalizantes 3er año 2011
Intercatedras de practicas profesionalizantes 3er año 2011Carla Melisa Nicolato
 
Les marchés à procédure adaptée
Les marchés à procédure adaptéeLes marchés à procédure adaptée
Les marchés à procédure adaptéeGarnier7101
 
Relations des collectivités / associations et problématiques des marchés publics
Relations des collectivités / associations et problématiques des marchés publicsRelations des collectivités / associations et problématiques des marchés publics
Relations des collectivités / associations et problématiques des marchés publicsGroupe SFC, cabinet d'expertise comptable
 
Por qué interesan las informaciones
Por qué interesan las  informacionesPor qué interesan las  informaciones
Por qué interesan las informacionesCarla Melisa Nicolato
 
Diaporama Wuala
Diaporama WualaDiaporama Wuala
Diaporama WualaCrescence
 
Intercatedras de practicas profesionalizantes 3 er año
Intercatedras de practicas profesionalizantes 3 er añoIntercatedras de practicas profesionalizantes 3 er año
Intercatedras de practicas profesionalizantes 3 er añoCarla Melisa Nicolato
 

Destaque (20)

Holas[1].docmo
Holas[1].docmoHolas[1].docmo
Holas[1].docmo
 
Pérez Gaudio, "La Transformación".
Pérez Gaudio, "La Transformación".Pérez Gaudio, "La Transformación".
Pérez Gaudio, "La Transformación".
 
Guide du membre.Que faire en cas de décès ou d'inaptitude?
Guide du membre.Que faire en cas de décès ou d'inaptitude?Guide du membre.Que faire en cas de décès ou d'inaptitude?
Guide du membre.Que faire en cas de décès ou d'inaptitude?
 
Dossier presse Bien Vieillir et Bien-être à Domicile
Dossier presse Bien Vieillir et Bien-être à Domicile Dossier presse Bien Vieillir et Bien-être à Domicile
Dossier presse Bien Vieillir et Bien-être à Domicile
 
UN ÁNGEL CON NOSOTROS
UN ÁNGEL CON NOSOTROSUN ÁNGEL CON NOSOTROS
UN ÁNGEL CON NOSOTROS
 
T 142-1996
T 142-1996T 142-1996
T 142-1996
 
Cambios en la accion docente
Cambios en la accion docenteCambios en la accion docente
Cambios en la accion docente
 
Intercatedras de practicas profesionalizantes 3er año 2011
Intercatedras de practicas profesionalizantes 3er año 2011Intercatedras de practicas profesionalizantes 3er año 2011
Intercatedras de practicas profesionalizantes 3er año 2011
 
Les marchés à procédure adaptée
Les marchés à procédure adaptéeLes marchés à procédure adaptée
Les marchés à procédure adaptée
 
test
testtest
test
 
Mémoire 1e essai
Mémoire 1e essaiMémoire 1e essai
Mémoire 1e essai
 
Relations des collectivités / associations et problématiques des marchés publics
Relations des collectivités / associations et problématiques des marchés publicsRelations des collectivités / associations et problématiques des marchés publics
Relations des collectivités / associations et problématiques des marchés publics
 
Eco, "Crítica del Periodismo".
Eco, "Crítica del Periodismo".Eco, "Crítica del Periodismo".
Eco, "Crítica del Periodismo".
 
Resolucion conflictos
Resolucion conflictosResolucion conflictos
Resolucion conflictos
 
Por qué interesan las informaciones
Por qué interesan las  informacionesPor qué interesan las  informaciones
Por qué interesan las informaciones
 
Air Max 2013 RA9565
Air Max 2013 RA9565 Air Max 2013 RA9565
Air Max 2013 RA9565
 
Hijos
HijosHijos
Hijos
 
Diaporama Wuala
Diaporama WualaDiaporama Wuala
Diaporama Wuala
 
Intercatedras de practicas profesionalizantes 3 er año
Intercatedras de practicas profesionalizantes 3 er añoIntercatedras de practicas profesionalizantes 3 er año
Intercatedras de practicas profesionalizantes 3 er año
 
Le fou et le sage
Le fou et le sageLe fou et le sage
Le fou et le sage
 

Semelhante a LAY_Leangsros_brouillions_finale

Guide de bonne pratiques développer les compétences par le numérique
Guide de bonne pratiques   développer les compétences par le numériqueGuide de bonne pratiques   développer les compétences par le numérique
Guide de bonne pratiques développer les compétences par le numériqueJose Antoine VALBRUN, M.Sc. (LION)
 
Panorama des ressources numériques pour la jeunesse en bibliothèque
Panorama des ressources numériques pour la jeunesse en bibliothèquePanorama des ressources numériques pour la jeunesse en bibliothèque
Panorama des ressources numériques pour la jeunesse en bibliothèqueAnne-Gaëlle Gaudion
 
Après Télécom parisTech : portraits d'ingenieurs
Après Télécom parisTech : portraits d'ingenieursAprès Télécom parisTech : portraits d'ingenieurs
Après Télécom parisTech : portraits d'ingenieursTélécom Paris
 
E learning dossier de com pour icf
E learning dossier de com pour icfE learning dossier de com pour icf
E learning dossier de com pour icfGilles Ducloux
 
Télécom ParisTech infos #9 - septembre 2013
Télécom ParisTech infos #9 - septembre 2013Télécom ParisTech infos #9 - septembre 2013
Télécom ParisTech infos #9 - septembre 2013Télécom Paris
 
Le E-Learning Ou la formation par le web 2.0
Le E-Learning Ou la formation par le web 2.0Le E-Learning Ou la formation par le web 2.0
Le E-Learning Ou la formation par le web 2.0cciducher
 
Tendances mondiales de l’école 2.0 au primaire et au secondaire
Tendances mondiales de l’école 2.0 au primaire et au secondaireTendances mondiales de l’école 2.0 au primaire et au secondaire
Tendances mondiales de l’école 2.0 au primaire et au secondaireecolebranchee
 
CONCEPTION ET RÉALISATION D’UNE PLATEFORME D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...
CONCEPTION ET RÉALISATION D’UNE PLATEFORME  D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...CONCEPTION ET RÉALISATION D’UNE PLATEFORME  D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...
CONCEPTION ET RÉALISATION D’UNE PLATEFORME D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...BerengerBENAM
 
Parlons d'avenir avec Télécom ParisTech
Parlons d'avenir avec Télécom ParisTechParlons d'avenir avec Télécom ParisTech
Parlons d'avenir avec Télécom ParisTechTélécom Paris
 
Le Nouvel Obs - Écoles du web
Le Nouvel Obs - Écoles du webLe Nouvel Obs - Écoles du web
Le Nouvel Obs - Écoles du webHETIC
 
Actes numériques du colloque international e-éducation "Place des apprenants ...
Actes numériques du colloque international e-éducation "Place des apprenants ...Actes numériques du colloque international e-éducation "Place des apprenants ...
Actes numériques du colloque international e-éducation "Place des apprenants ...Mission laïque française
 
Séminaire 01052015-yassineaydi [mode de compatibilité]
Séminaire 01052015-yassineaydi [mode de compatibilité]Séminaire 01052015-yassineaydi [mode de compatibilité]
Séminaire 01052015-yassineaydi [mode de compatibilité]gharbi wajdi
 
Lettre semestrielle mars2014
Lettre semestrielle mars2014Lettre semestrielle mars2014
Lettre semestrielle mars2014Télécom Paris
 
Appel d'offres E10 - La grande école du numérique
Appel d'offres E10 - La grande école du numérique Appel d'offres E10 - La grande école du numérique
Appel d'offres E10 - La grande école du numérique HETIC
 
Livret référentiel CS environnement numérique & reseaux
Livret référentiel CS environnement numérique & reseauxLivret référentiel CS environnement numérique & reseaux
Livret référentiel CS environnement numérique & reseauxCREPS de Montpellier
 

Semelhante a LAY_Leangsros_brouillions_finale (20)

Dossier m-learning
Dossier m-learningDossier m-learning
Dossier m-learning
 
Guide de bonne pratiques développer les compétences par le numérique
Guide de bonne pratiques   développer les compétences par le numériqueGuide de bonne pratiques   développer les compétences par le numérique
Guide de bonne pratiques développer les compétences par le numérique
 
Panorama des ressources numériques pour la jeunesse en bibliothèque
Panorama des ressources numériques pour la jeunesse en bibliothèquePanorama des ressources numériques pour la jeunesse en bibliothèque
Panorama des ressources numériques pour la jeunesse en bibliothèque
 
Catalogue frequence-ecoles-20132014
Catalogue frequence-ecoles-20132014Catalogue frequence-ecoles-20132014
Catalogue frequence-ecoles-20132014
 
Après Télécom parisTech : portraits d'ingenieurs
Après Télécom parisTech : portraits d'ingenieursAprès Télécom parisTech : portraits d'ingenieurs
Après Télécom parisTech : portraits d'ingenieurs
 
E learning dossier de com pour icf
E learning dossier de com pour icfE learning dossier de com pour icf
E learning dossier de com pour icf
 
Télécom ParisTech infos #9 - septembre 2013
Télécom ParisTech infos #9 - septembre 2013Télécom ParisTech infos #9 - septembre 2013
Télécom ParisTech infos #9 - septembre 2013
 
Le E-Learning Ou la formation par le web 2.0
Le E-Learning Ou la formation par le web 2.0Le E-Learning Ou la formation par le web 2.0
Le E-Learning Ou la formation par le web 2.0
 
Tendances mondiales de l’école 2.0 au primaire et au secondaire
Tendances mondiales de l’école 2.0 au primaire et au secondaireTendances mondiales de l’école 2.0 au primaire et au secondaire
Tendances mondiales de l’école 2.0 au primaire et au secondaire
 
CONCEPTION ET RÉALISATION D’UNE PLATEFORME D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...
CONCEPTION ET RÉALISATION D’UNE PLATEFORME  D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...CONCEPTION ET RÉALISATION D’UNE PLATEFORME  D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...
CONCEPTION ET RÉALISATION D’UNE PLATEFORME D’ENSEIGNEMENT HYBRIDE D’UNE UNIV...
 
Parlons d'avenir avec Télécom ParisTech
Parlons d'avenir avec Télécom ParisTechParlons d'avenir avec Télécom ParisTech
Parlons d'avenir avec Télécom ParisTech
 
Le Nouvel Obs - Écoles du web
Le Nouvel Obs - Écoles du webLe Nouvel Obs - Écoles du web
Le Nouvel Obs - Écoles du web
 
Aiodm microsoft
Aiodm microsoftAiodm microsoft
Aiodm microsoft
 
Actes numériques du colloque international e-éducation "Place des apprenants ...
Actes numériques du colloque international e-éducation "Place des apprenants ...Actes numériques du colloque international e-éducation "Place des apprenants ...
Actes numériques du colloque international e-éducation "Place des apprenants ...
 
Séminaire 01052015-yassineaydi [mode de compatibilité]
Séminaire 01052015-yassineaydi [mode de compatibilité]Séminaire 01052015-yassineaydi [mode de compatibilité]
Séminaire 01052015-yassineaydi [mode de compatibilité]
 
Mon stage covage networks
Mon stage covage networksMon stage covage networks
Mon stage covage networks
 
Lettre semestrielle mars2014
Lettre semestrielle mars2014Lettre semestrielle mars2014
Lettre semestrielle mars2014
 
Keynote 2 petko_f
Keynote 2 petko_fKeynote 2 petko_f
Keynote 2 petko_f
 
Appel d'offres E10 - La grande école du numérique
Appel d'offres E10 - La grande école du numérique Appel d'offres E10 - La grande école du numérique
Appel d'offres E10 - La grande école du numérique
 
Livret référentiel CS environnement numérique & reseaux
Livret référentiel CS environnement numérique & reseauxLivret référentiel CS environnement numérique & reseaux
Livret référentiel CS environnement numérique & reseaux
 

LAY_Leangsros_brouillions_finale

  • 1. MINISTERE DE L’EDUCATION, DE LA JEUNESSE ET DES SPORTS INSTITUT DE TECHNOLOGIE DU CAMBODGE DEPARTEMENT DE GENIE INFORMATIQUE ET COMMUNICATION RAPPORT DE STAGE D’INGÉNIEUR DE QUATRIÈME ANNÉE Titre : ChildSafe Hotline Etudiant : LAY Leangsros Spécialité : Génie Informatique et Communication Tuteur de stage : M. HAO Jeudi Année scolaire : 2014-2015 ក្រសួងអប់រំយុវជន និងរីឡា វិទ្យាស្ថា នបច្ចេរវិទ្យារម្ពុជា ច្េប៉ា តឺម្៉ាង់ ច្ទ្យពច្ោសល្យព័ត៌មានវិទ្យា និងទ្យំនារ់ទ្យំនង របយោរណ៍ ចុុះរម្មសិរា វិសវររឆ្ន ំទ្យី៤ ក្បធានបទ្យ : រម្មវិធីសក្ម្ង់ពត៌មានរបស់រុមារ និសស ិត : ឡាយ លាងក្សស់ ឯរច្ទ្យស : ព័ត៌មានវិទ្យា និងទ្យំនារ់ទ្យំនង ក្រូទ្យទ្យួល្បនទុរ : ច្លារ ច្ៅ សឺឌី ឆ្ន ំសិរា : ២០១៤-២០១៥
  • 2. Institut de Technologie du Cambodge Golden Gekko (DMI) I REMERCIEMENTS Je tiens à exprimer particulièrement ma profonde gratitude et reconnaissance aux personnes suivantes qui m’ont aidé à terminer le stage proposé avec grand succès au cours de mon projet de quatrième année : Son Excellence Dr. OM Romny, directeur de l’ITC pour la bonne administration de l’institut et de sa bonne coopération avec d’autres université partenaires aux niveaux local, régional et international et renforce la qualité de la formation des ingénieurs et techniciens. M. LAY Heng, chef du Département de Génie Informatiques et Communication, pour sa bonne gestion, de bons conseils et de bonnes relations avec les entreprises publiques et privées. M. KMEZIC Milan, sous-directeur, et Mme. COLEMAN Belinda, chef de RH, qui ont créé le programme de Moville, et pour leur certification du stage. M. SING Chandara, chef d’équipe Android qui m’avoir fait confiance et permis d’effectuer mon stage au sein de Golden Gekko et pour ses conseils lucides et pertinents. M. HAO Jeudi qui est mon maître de stage qui me support sur le tous le document et m’a conseillé de préparation de rapports et sa corrections qui mènent à bien ce projet M. CHEANG Polen, mon tuteur de stage qui a su m’apporter son expérience pour me guider et me conseiller tous au long du projet. Je tiens à remercier sincèrement à mes collèges avec qui je travaillais quotidiennement. Ils me m’avaient conseillé de manière à obtenir un bon résultat pendant le travail. Enfin, je tiens à remercier grandement à mes parents pour un soutien financier d’encouragement et de motivation tout au long de ma vie.
  • 3. Institut de Technologie du Cambodge Golden Gekko (DMI) II អារម្ភកថា ការសិកានៅនេប៉ា តឺម្៉ាង់ ពត៌មានវិទ្យានិងទ្យំនាក់ទ្យំនង ខ្ញំមានការអារម្មណ៍ នៅន ើ ការអភិវឌ្ឍណ៍ ការសរនសកម្មវីធីន ើប្រព័នធប្រតិរតតិការណ៍ នអនប្េយ។ រច្ចញរបនន ទ្យូរស័ពទ ឆ្លា តវវជាផ្ននកម្ួយេ៏សំខាន់កនញងការទ្យំនាក់ទ្យំនង។ វាពិត ជាឳកាស ម្ួយេ៏ពិនសស ររស់ខ្ញំ ផ្េ បនច្ញុះកម្មសិកានៅកនញងកម្មវិធី ម្ូវញិ ររស់ ប្កុម្ហញន ហគូ េននហគកកូ។ ខ្ញំបននធវើកម្ម វិធីម្ួយ ផ្េ មានន្ម ុះថា ឆ្ល នសសវ ហតឡាញ។ ឆ្ល នសសវហតឡាញ ជាកម្មវិធីម្ួយ ររស់អងគការ ន្ហវន អញិននធើណាសសិនណា ់ ផ្េ ច្ូ រួម្យ៉ាងសកម្ម កនញងការការពារ កញមារពីការរំនោភរំពាន។ នហតញន ច្ំរងវនការរនងកើតកម្មវិធីននុះគឹនេើម្បី ផ្លា ស់រតូរពី ប្កដាស នៅជាឌ្ីជីថ នៅន ើនថរននាត។ នដាយនហតញថាឆ្ល នសសវ នប្រើប្បស់ ប្កដាស់ នេើម្បីកត់ប្ារបយការណ៍ ។ រនាទ រ់ពីពីរផ្ខនប្កាយម្កវនការនធវើកម្មសិកា កម្មវិធីអនញញ្ញា ត ឲ្យរញគគ ិក ររស់អងគការ រនងកើតរបយការណ៍ យ៉ាងងាយ។ ភាសាកំពយូរទ្យ័រផ្េ ខ្ញំ បននប្រើ បស់អំឡញងនព នធវើគំនោងននុះគឺ Java. RESUME Dans mon étude au Département de Génie Informatique et Communication, je suis intéressé par le développement d’applications Android. De nos jours, téléphone intelligents font partie intégrantes de la communication. Il était donc une grande opportunité pour moi de faire mon stage dans le programme de Moville au sein de l’entreprise de Golden Gekko. J’ai fait une application qui a été nommé ChildSafe Hotline. ChildSafe est un programme de l’organisation de Friends International, qui participe activement à la protection des enfants vulnérables. La raison principale à développer cette application est de transformer du papier au numérique sur une tablette. En effet, ChildSafe utilisait du papier pour conserver des rapports. Cette application aide l’organisation à faciliter de diriger des reports. Après deux mois de mon stage, l’application permit employées de l’organisation à créer le rapport facilement. La programmation que j’ai utilisée lors de ce projet est programmation en Java.
  • 4. Institut de Technologie du Cambodge Golden Gekko (DMI) III ABSTRACT Within my study in Department of Information and Communication, I am interested in Android Application Development. Nowadays, Smartphone is an integration part of communication. It was a great opportunity for me to do my internship in Moville program of Golden Gekko. I have done an application which was named ChildSafe Hotline. ChildSafe is a program of Friends International organization, which participate actively to protect the vulnerable children. This application help the organization to facilitate the reports management. After two months of my internship, application allow employees to create report easily. The programming which I used in this project is Java programming.
  • 5. Institut de Technologie du Cambodge Golden Gekko (DMI) IV TABLE DES MATIERES REMERCIEMENTS ............................................................................................................... I RESUME .................................................................................................................................II ABSTRACT........................................................................................................................... III TABLE DES MATIERES.................................................................................................... IV LISTE DES ABREVIATIONS............................................................................................ VI LISTE DES ILLUSTRATIONS.........................................................................................VII LISTE DES TABLEAUX.................................................................................................. VIII I. INTRODUCTION ............................................................................................................1 1. PRÉSENTATION DU STAGE ................................................................................................1 a. Objectif........................................................................................................................1 b. Durée...........................................................................................................................1 1. PRÉSENTATION DE GOLDEN GEKKO.................................................................................1 a. Histoire de Golden Gekko...........................................................................................1 b. Départements ..............................................................................................................2 c. Conditions de travail...................................................................................................2 d. Adresses.......................................................................................................................2 II. PRÉSENTATION DU PROJET.....................................................................................3 1. PRÉSENTATION DU PROJET ...............................................................................................3 a. Équipe de Moville........................................................................................................3 b. Gestion de projet.........................................................................................................3 2. PROBLÉMATIQUE .............................................................................................................4 3. OBJECTIF .........................................................................................................................4 III. ANALYSE ET TECHNIQUE .........................................................................................5 1. BESOINS...........................................................................................................................5 a. Matériaux ....................................................................................................................5 b. User story....................................................................................................................5 c. UML d’activités...........................................................................................................6 2. PLAN DE PROJET...............................................................................................................6 IV. CONCEPTION DETAILÉE........................................................................................7 1. MON TRAVAIL DE STAGE..................................................................................................7 2. MÉTHODE DE SCRUM.......................................................................................................8 a. Scrum...........................................................................................................................8 3. OUTILS UTILITÉS ..............................................................................................................9 4. BASE DE DONNÉES ...........................................................................................................9 5. TECHNOLOGIES..............................................................................................................10
  • 6. Institut de Technologie du Cambodge Golden Gekko (DMI) V a. Bibliothèques.............................................................................................................10 b. API et Plugin.............................................................................................................11 6. OUTILS INTERNES...........................................................................................................12 a. Confluence.................................................................................................................12 b. JIRA...........................................................................................................................12 c. Gerrit.........................................................................................................................12 d. Web-mail ...................................................................................................................12 e. Bee Bole.....................................................................................................................12 f. Jandroid01 ................................................................................................................12 g. Archive ......................................................................................................................13 h. TestFairy ...................................................................................................................13 7. DIAGRAMME DE USE CASE ............................................................................................13 V. IMPLEMENTATION....................................................................................................14 1. PROCESSUS D’APPLICATION ...........................................................................................14 2. WORKFLOW ...................................................................................................................15 3. SOLUTION ET PROBLÈMES ..............................................................................................16 a. Problèmes..................................................................................................................16 b. Solutions....................................................................................................................17 4. ENVOIE LA FORME..........................................................................................................19 VI. CONCLUSIONS .........................................................................................................20 1. RÉSUMÉ DE PROJET ........................................................................................................20 a. Réalisation du projet.................................................................................................20 b. Point fort ...................................................................................................................20 c. Point faible................................................................................................................20 2. DIFFICULTÉS ..................................................................................................................20 3. EXPÉRIENCES.................................................................................................................21 4. PERSPECTIVE .................................................................................................................21 5. CONCLUSIONS................................................................................................................21 ANNEXES ..............................................................................................................................22 REFERENCES.......................................................................................................................31
  • 7. Institut de Technologie du Cambodge Golden Gekko (DMI) VI LISTE DES ABREVIATIONS ITC Institut de Technologie du Cambodge GIC Génie Informatique et Communication DMI Digital Management, Inc. UI User Interface UX User experience JSON JavaScript Object Notation XML Extensible Markup Language SDK Software Development Kit BE Back end BO Back office PM Project Manager QA Quality Assurance Dev Developer API Application Program Interface
  • 8. Institut de Technologie du Cambodge Golden Gekko (DMI) VII LISTE DES ILLUSTRATIONS Figure 1.2.1. Logo de Golden Gekko et DMI............................................................................1 Figure 2.1.2. Organigramme de l’équipe...................................................................................3 Figure 2.2. Logo de programme de ChildSafe...........................................................................4 Figure 3.1.3. Diagrammes d'activités.........................................................................................6 Figure 4.1.1. Méthodologie Scrum ............................................................................................8 Figure 4.4.1. Bibliothèques utilisées........................................................................................10 Figure 4.4.2. Fonctionement d’EventBus ................................................................................11 Figure 4.6. Diagramme de Use Case .......................................................................................13 Figure 5.1. Processus d’application .........................................................................................14 Figure 5.1.1. Cycle de code .....................................................................................................15 Figure 5.2.1. Interface de page ChildSafe (Page 4ème ).............................................................16 Figure A.4. Page: Child Safe ...................................................................................................23 Figure A.3. Page: Case Report.................................................................................................23 Figure A.2. Les relations entre les tables d'une base de données ............................................23 Figure A.6. Accueil sans rapport .............................................................................................24 Figure A.5. Menu.....................................................................................................................24 Figure A.8. Message de pas internet........................................................................................24 Figure A.7. Résultat de recherche............................................................................................24 Figure A.12. La vue en détail 4................................................................................................25 Figure A.11. La vue en détail 3................................................................................................25 Figure A.10. La vue en détail2.................................................................................................25 Figure A.9. La vue en détail 1..................................................................................................25 Figure A.14. Structure de class 2.............................................................................................26 Figure A.13. Structure de class 1.............................................................................................26 Figure A.15. Layouts d’application .........................................................................................27 Figure A.16. Entré de Matériaux Design.................................................................................28 Figure A.17. Class : RestApi.java............................................................................................29 Figure A.18. Class: FIMovilleApplication.java.......................................................................29 Figure A.19. Méthode soumettre de class FormReportActicity.java.......................................30
  • 9. Institut de Technologie du Cambodge Golden Gekko (DMI) VIII LISTE DES TABLEAUX Tableau 4. Plan de projet ...........................................................................................................7 Tableau A.1. Planification de sprints.......................................................................................22
  • 10. Institut de Technologie du Cambodge Golden Gekko (DMI) 1 I. INTRODUCTION Dans un premier temps, nous ferons état de décrire sur l’information générale du stage qui pour objectif et la durée. Dans l’étape suivante nous présenterons de l’entreprise. 1. Présentation du stage a. Objectif L’objectif du stage est de permettre aux étudiants à appliquer ce qu’ils ont appris dans la class et aussi à s’adapter à la vie professionnelle dans un établissement public, une entreprise ou organisation. À la fin du stage, nous devons faire un rapport de notre projet. b. Durée La durée du stage proposé est au moins de deux mois. Pour moi, il faisait deux mois et 10 jours. Mon stage a été effectué du 20 Juillet jusqu’à 30 Septembre 2015. 1. Présentation de Golden Gekko a. Histoire de Golden Gekko Golden Gekko (DMI) a été créée en 2005. Elle est une l’entreprise internationale. Avec une globale présence et plus de 220 mobiles experts, elle a développé des cents d’Applications pour plus de 200 industries and entreprises connu. Tous les solutions sont commercial qui s’est concentrées sur UX/UI design, user testing et qualité de service. Golden Gekko est seulement un fournisseur de solution mobile dans le monde qui a obtenu ‘Trusted Developer Status’ de AQuA. Pour instant elle a coopéré avec DMI, entreprises de secteurs Technologie de Mobile. Figure 1.2.1. Logo de Golden Gekko et DMI
  • 11. Institut de Technologie du Cambodge Golden Gekko (DMI) 2 b. Départements Ella est composée de 6 départements, RH & Administration, Qualité de service, Opérations IT, UI/UX design, S.A & Développement, Chef de Projet & Équipe. c. Conditions de travail - L’horaire de travail est : Lundi à Vendredi : 9h00 à 18h00 - Divertissements  Billard : Tous les temps libres.  Beer O’clock : Tous les Vendredi de 17h :00 à 18h :00  Bar O’clock : Tous les Vendredi à partir de 18h :00 à 18h :00 d. Adresses L’entreprise se trouve en quatre pays. Pour avoir aperçu de les travails et enter en contact avec nous, vous pouvez consulter la location au suivant. LONDON Golden Gekko Ltd. 2ème étage , rue 2 Sheraton London W1F 8BH Info: +44 20 8816 7285 NEW YORK 25 Broadway 9ème étage, 1004 New York BARCELONA Calle Bruc 49, Principal 08009 Barcelona +34 93 001 3261 PHNOM PENH Rue 106 House, 14 Phnom Penh Tel : 023 986 556
  • 12. Institut de Technologie du Cambodge Golden Gekko (DMI) 3 II. PRÉSENTATION DU PROJET La deuxième partie du rapport porte sur présentation du projet, alors que problématiques en constitue la deuxième partie. La troisième partie contient objectif. 1. Présentation du projet a. Équipe de Moville Moville vient de mots Mobile et Village. Elle est un programme pour des étudiants qui viennent des universités, qui ont besoin de faire du stage. Elle est composée de 7 personnes Ce programme faisait trios mois. Le programme donne une opportunité aux étudiants à apprendre et appliquer sa connaissance à un projet proposé par l’entreprise. Ce programme marche tous les années, une fois par année. Nous somme la deuxième promotion de Moville. b. Gestion de projet Structurer et piloter un projet, c’est maximiser nos chances de succès. La gestion de projet est une démarche visant à organiser de bout en bout le bon déroulement d’un projet. C'est tout l'opérationnel et le tactique qui fait qu'un projet aboutit dans son triangle qualité-coût-délais (QCD). Voici le schéma de l’organisation des tâches avec nombre de personne qui travaillent dans chaque tâche : Figure 2.1.2. Organigramme de l’équipe Puis on planifie ces tâches à des personnes. Avec une date de début et une durée maximale. (Voir la planification avec date fixé : Tableau A.1. Planification de sprints) PM 1 pers Designer 1 pers BO & BE 1 pers Android Dev 1 pers iOS Dev 1 pers QA 2 pers
  • 13. Institut de Technologie du Cambodge Golden Gekko (DMI) 4 2. Problématique Les rapports du ChildSafe sont en papier qui est difficile à diriger. La gestion de de rapports est une problématique très sensible. La difficulté de compte es rapports, voir le rapport en détail, voir le nombre de personnes qui sont consonants dans le rapport. Ce sont un soucie qui fait l’organisation faire face à problème perd les rapports, le temps, etc. Figure 2.2. Logo de programme de ChildSafe 3. Objectif L’objective principale était de réaliser une application sur une tablette permettant de créer des rapports et de pouvoir les envoyer au server. Chef d’administration au côté serveur peut voir détail des rapports envoyées.
  • 14. Institut de Technologie du Cambodge Golden Gekko (DMI) 5 III. ANALYSE ET TECHNIQUE Pour réaliser cette application, il est nécessaire d’analyser sur les besoin et processus d’application. Avant de commencer le développement d’application, une étude sur laquelle a été faite. Cela a permis de profiter le temps et éviter de faire des choses inconnues. Ainsi, 1. Besoins a. Matériaux Le développement se concentre sur une seule tablette. La tablette dont nous avons besoin est : - Tablette :Samsung Galaxy Tab A 8.0 - OS : plate-forme Android avec version plus de 4.0 Android est un système d'exploitation basé sur le noyau Linux. Le projet pour le développement du système Android est appelé Android Open Source Project (AOSP) et est géré principalement par Google. b. User story Dans cette partie, on décrit les user stories. Voici Le User Story : - En tant qu'utilisateur, je peux créer un rapport. - En tant qu'utilisateur, je peux sauvegarder un rapport. - En tant qu'utilisateur, je peux modifier un rapport. - En tant qu'utilisateur, je peux supprimer un rapport. - En tant qu'utilisateur, je peux envoyer un rapport au server. - En tant qu'utilisateur, je peux voir la liste de rapports envoyés. - En tant qu'utilisateur, je peux voir la liste de rapports sauvegardés. - En tant qu'utilisateur, je peux chercher un rapport. - En tant qu'utilisateur, je peux voir le détail d'un rapport et le modifier.
  • 15. Institut de Technologie du Cambodge Golden Gekko (DMI) 6 c. UML d’activités Pour comprendre notre système, j'ai navigué en utilisant les diagrammes d'activité. Certaines activités sont grandes et complexes. Les diagrammes sont présentés avec des illustrations en face. Le schéma suivant est un diagramme d'activité de l'administrateur. Avec ce système, nous pouvons savoir ce que nous devrions faire dans chaque activité. 2. Plan de projet Le projet a duré 2 mois. Il a y deux sprints. Le sprint est une itération ou boite de temps de 2 à 4 semaines au sein de laquelle l’équipe de développement va concevoir, développer et tester un ensemble de fonctionnalités du produit à réaliser. Dans ce projet, chaque sprint a duré de 2 à 3 semaines. Le suivant Le precident liste de rapports Brouillons Page 1 Page n+1 Page 4 Page 7 Page n+5 Ajouter Soumettre Validé Non Validé Réussi Echoueé Figure 3.1.3. Diagrammes d'activités
  • 16. Institut de Technologie du Cambodge Golden Gekko (DMI) 7 IV. CONCEPTION DETAILÉE Nous procéderons à une description détaillée des principales approches des outils utilisés avec une définition du concept de chaque outil. Nous apporterons d’abord des précisions sur la méthode de Scrum. Dans l’étape suivante, nous présenterons des outils utilisés. Puis base de donné, technologies, outils internes, et la dernière le diagramme activité de UML. 1. Mon travail de stage Mon travail porte sur toute l’interface et le processus d’application. Je n’ai pas besoin de designer l’interface par moi-même. Donc j’ai gagné un peu de temps à d’autre travail. Semaines Sprint 1 Sprint 2 Délai Acceptation de Client Fin de projet Tâches 1 2 3 4 5 6 7 8 9 10 Analyser et créer base de donné Implémenter interface Implémenter validation Envoyer rapport Fixer des erreurs Modifier le code Rechercher sur nouvelles technologies Tableau 4. Plan de projet Dans un premier temps, il est le sprint 1. J’ai étudié la besoin de l’interface dont il a besoin. Dans cette première semaine je trouver quelques bibliothèques qui correspondent à l’interface de conception de Matériel Design. Cette semaine j’ai créé la base de données. Pendant la deuxième et troisième semaine j’ai implémenté interface. J’ai fini mon tâche de crée interface dans le Sprint 1. Dans le sprint 2, j’ai implémenté les pages validations. Donc ce sprint, il est plus difficile tâche de projet. Mon projet a été délai une semaine à cause de temps est très court pour à
  • 17. Institut de Technologie du Cambodge Golden Gekko (DMI) 8 implanter tous la fonction complètement. Cette semaine délia là, j’ai fini la fonction d’envoyer un rapport au server. Puis. Pour la durée de l’acceptation de client. J’ai continué à fixer des erreurs. Puis j’ai une autre semaine à réviser et changer certaines de fonction dans le code pour faire bien sa performance et obtenir un code de bonne qualité. 2. Méthode de Scrum a. Scrum Scrum est une méthode agile de gestion de projets. Elle est spécialement adaptée aux projets informatiques, notamment en génie logiciel, avec trois fondements principaux : transparence vis-à-vis du client, inspection et adaptation continuelle. L'idée principale de Scrum est qu'il n'est pas toujours intéressant de suivre un processus prédictif figé pour gérer un projet : les besoins et les tâches qui en découlent sont ajustés régulièrement pendant le déroulement du projet. Scrum est donc une méthode adaptative, qui tient son inspiration de la théorie de contrôle empirique des processus. Figure 4.1.1. Méthodologie Scrum Scrum dans la méthode agile ce sont 4 valeurs fondamentales: l’équipe, l’application, la collaboration, l’acceptation du changement. En appliquant ce principe, on assiste généralement à un gain de productivité par rapport à une approche traditionnelle, puisqu’on ne perd pas un temps considérable en rédaction, validation puis mises à jour de spécifications détaillées. Il est sans doute bon de préciser également que l’on ne néglige pas la conception du produit pour autant. La conception fait partie des tâches sous-jacentes à la réalisation d’une
  • 18. Institut de Technologie du Cambodge Golden Gekko (DMI) 9 fonctionnalité. Nous avions une rencontré tous les jours pendant de 15 à 30 minutes. La rencontré était normalement de 11h 30 à 12h : 00. Nous avons parlé de ce que nous avions fini, et de quelle problème que nous étions en face, et de ce que nous ferions. 3. Outils utilités - Ubuntu - MySQL Workbench - Android Studio - Cola - Meld Linux en particulier la version Ubuntu est simple d'utilisation, plus rapide et plus sécurisé que Windows. Il est disponible gratuitement et librement. Pour la conception de base de données j’ai choisi MySQL Workbench. J’ai utilisé cet outil pour construire les relations des tables de base de donné. Android Studio exploite les capacités intelligentes d’édition de code de IntelliJ IDEA, comme le refactoring et l’analyse de code. Cet IDE vous permet également d’éditer et de pré-visualiser vos mises Android à travers plusieurs tailles d’écran, différents langages et même des versions différentes de l’API Android. Vous pourrez également facilement utiliser Google Cloud Backends, Endpoints et Google Cloud Messaging. Cola est utilisé pour faciliter à commettre le code au Gerrit. Après on a modifié le code, puis on pouvait commettre en utilisant cet outil. Meld est un petit outil de comparaison et de fusion bien sympathique. Une fois l’importation effective vous pouvez constater que les différences sont immédiatement visibles et indiquées en rouge. On peut très bien voir que le fichier de gauche contient des lignes qui ne sont pas présentes dans le fichier de droite. 4. Base de données J’ai choisi SQLite pour stocker des informations. SQLite est un système de gestion de bases de données relationnelles. SQLite utilise efficacement la mémoire,
  • 19. Institut de Technologie du Cambodge Golden Gekko (DMI) 10 l'espace disque et la bande passante de disque. (Voir la Figure A.2. Les relations des tables de base de données pour en savoir) 5. Technologies a. Bibliothèques Dans ce part je parle des bibliothèques utilisées dans ce développement. Je pense l’utilisation de ces bibliothèques est efficace. dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:design:22.2.1' compile 'com.github.ganfra:material-spinner:1.1.0' compile 'com.android.support:recyclerview-v7:22.2.0' compile 'de.greenrobot:eventbus:2.4.0' compile 'com.android.support:cardview-v7:22.0.+' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.jakewharton:butterknife:7.0.1' ////Securirty compile 'com.dmi.security:security:1.2@aar' } Figure 4.4.1. Bibliothèques utilisées - Butter Knife Butter Knife est une bibliothèque d’injection de vues. Elle repose sur le principe d’annotation processing afin de générer du code boiler plate pour vous. Fini les findViewById et les inner-classes pour les listeners ! De plus le code généré est facilement debuggable. Pour injecter une vue, il suffit d’utiliser l’annotation @Bind: @Bind(R.id.name) AutoCompleteTextView mName; @Bind(R.id.age) EditText mAge;
  • 20. Institut de Technologie du Cambodge Golden Gekko (DMI) 11 - EventBus EventBus est un bus d’évènement spécialement conçu pour Android. Il facilite le découplage entre les composants d’une application par l’utilisation de messages au lieu des "classiques" callbacks. Il est possible de choisir si l’on souhaite traiter le message sur le thread UI ou sur un thread de background. Figure 4.4.2. Fonctionement d’EventBus - Retrofit Retrofit permet de transformer une API REST en une interface Java puis de la consommer. Les annotations permettent de manipuler la requête :  définir le type de la requête (GET, POST, PUT, DELETE and HEAD),  manipuler l’URL (Path, Query, QueryMap),  définir le corps (Body),  de construire une requête avec les paramètres encodés ou multi-part,  de gérer les en-têtes (Headers). b. API et Plugin - TestFairy J’ai utilisé ce plugin pour mettre application déployé de jandroid01 au service TestFairy. Je décrirai un peu détaillé à partie des outils internes. J’ai ajouté ce plugin dans le root de build.gradle classpath 'com.goldengekko.gradle:testfairy-plugin:1.0.0.0' - Sécurité Il fait l'ouverture de session et engendrer l’access token par soi- même pendant envoyer la forme au server avec le nom d’utilisateur et mots de passe donné.
  • 21. Institut de Technologie du Cambodge Golden Gekko (DMI) 12 Si le réseau n’est pas disponible, il va reconnecter le service automatiquement. Il garante que la forme peux être envoyé au server. J’ai ajouté ce plugin dans le build.gradle d’application compile 'com.dmi.security:security:1.2@aar' 6. Outils internes a. Confluence Confluence est l'endroit où vous créez, organisez et parlez de travail avec votre équipe. Il s’agit d'un lieu central où vous pouvez travailler ensemble sur les projets qui sont en cours. Il donne les informations des tous les projets de l’entreprise. En plus, dans laquelle on peut trouver le Profile de tous les employées. Les informations que l’on peut trouver peuvent être l’histoire d’apprentissage, courriel, numéro de téléphone de chaque employée, etc. b. JIRA JIRA est un système de suivi de bugs, un système de gestion des incidents, et un système de gestion de projets. c. Gerrit Gerrit est une application Web gratuite de revue de code pour le travail en équipe. Chacun peut y lire, approuver ou rejeter les modifications d'un code source via un navigateur web. Il s'utilise avec Git qui s'occupe de poster ces changements de code. d. Web-mail Tout le personnel doit avoir sa propre adresse mail pour envoyer et recevoir des courriels. Cet email est créé par l'entreprise. Vous pouvez vous identifier aux systèmes cités ci-dessus comme JIRA, Confluence, Gerrit etc. e. Bee Bole Bee-Bole est un système qui est utilisé pour enregistrer le temps de travail chaque semaine. f. Jandroid01 Jandroid01 est un système de Jenkins qui est utilisé pour vérifier si le code engagé est succès déployé. On l’utilise pour déployer une nouvelle version de l’application Android aux QA ou clients.
  • 22. Institut de Technologie du Cambodge Golden Gekko (DMI) 13 g. Archive Archive est un site que l’on peut trouver des versions de application à déverminer. Toutes les versions ont été stockées dans le répertoire de ce site. h. TestFairy TestFairy est une puissante plate-forme d’application de test qui aide les développeurs mobiles à distribuer leurs applications à tester et fournit des vidéos qui montrent exactement ce qui s'est passé côté client pendant le test. 7. Diagramme de Use Case Un diagramme de cas d'utilisation est une représentation graphique des interactions entre les éléments d'un système. Un cas d'utilisation est une méthode utilisée pour l'analyse du système à identifier, clarifier et organiser les exigences du système. Dans ce contexte, le terme ‘système’se réfère à quelque chose qui est développé ou utilisé. Utilisation des diagrammes de cas sont employés dans UM, une notation standard pour la modélisation d'objets et de systèmes du monde réel. Dans ce schéma, il y a un seul acteur est un utilisateur normal. En bref, l'utilisation diagramme de cas montrent l'interaction entre l'acteur qui nous avons appelé l'utilisateur normal et le système que nous avons appelé l'application. Nous allons voir les besoins de ChildSafe Hotline ci-dessous des cas d'utilisation. Utilisateur Créer un rapport Sauvegarder Envoyer Voir les listes Voir détail Modifier Chercher Envoyer Supprimer Figure 4.6. Diagramme de Use Case
  • 23. Institut de Technologie du Cambodge Golden Gekko (DMI) 14 V. IMPLEMENTATION Dans le travail, j’ai écrit du code utilisant le langage JAVA. Dans ce qui suit, je montrai une partie de mon code JAVA en partie de solution aux problèmes. Cette parie s’occupe du parcourt un processus après son changement et crée l’objet de Hotline pour former le objet de JSON. Je commence par processus d’application. 1. Processus d’application Figure 5.1. Processus d’application Comme le montre la figure 5.1, quand on crée un rapport sur un phone ou tablette. Puis on peut l’envoyer au server. Au server nous utilisons Google App Engine, elle est sécurité, on va décrire un peu détail dans le partie solution. Ici on propose que le server réponse le ‘id’ à client. Client utilise cet ‘id’ pour créer un nouvelle rapport dans la base de donné. Ensuit on peut utiliser l’ordinateur pour voir des rapports. Pour accéder ce site, on a besoin entrer le nom d’utilisateur et les mots de passe. La raison que le ‘id’ de rapport devrait être créé par le server c’est pour le but de permettre des plusieurs utilisateurs d’obtenir le ‘id’différent pour ses rapports. Il évitait la même ‘id’ pour des différents rapports. Il pourrait être en format : CSH00001, CSH00002 … . Tous les opérations d’envoi, il incrémentait le ‘id’ avec la valeur 1.
  • 24. Institut de Technologie du Cambodge Golden Gekko (DMI) 15 2. Workflow Moi, je suis Dev. Je suis concentré, en premier lieu, l’écrit le code et fixe des erreurs. Après j’ai fini une fonction ou fixé un problème, je commis le code au Gerrit. Ensuite, j’ai commencé à faire une autre fonction. Dans cette situation j’attends mon code vérifié par mon maître de stage. Apres sa vérification et le code est fusionné, je peux tirer ce code au mon local de ordinateur. Si le code n’est pas vérifié par lui à cause de mauvais implémenté. Je dois corriger ou refaire cette fonction, puis je décommis ce code. Je peux accéder le Jandroid01 dans lequel je peux déployer une nouvelle version de ChildSafe Hotline. Après déploiement, les applications seront mis au TestFairy et un autre `a Archive dans laquelle QA peuvent accéder pour installer cette application dans tablette pour tester. Alor de test, si QA trouvait un problème, il créait le ticket d’issue qui est assigné à moi dans le système de JIRA. Le ticket qui est le major, sa priorité est haute, il doit être mis à première ligne. Alors, ce que je dois faire maintenant c’est que je fixe ces erreurs, puis je ferme ce ticket d’issue. Après quelques modifications, je déploie une nouvelle version pour QA de continuer ce test. Figure 5.1.1. Cycle de code Commettre Non fusionné Archive Debug.apk App.apk Déployer Git Jandroid01 Confluence Jira TestFair y Coder & Fixer des erreurs Gerrit fusionné Créer anoncé note Verifier Créer erreurs notes AssignerRésoudre Dev Production Déployer QA Vérifieur Clients
  • 25. Institut de Technologie du Cambodge Golden Gekko (DMI) 16 Le client va obtenir la dernière version qui n’a pas d’erreurs, sur tout il n’y a pas de crash. La nouvelle version déployée est mis à TestFairy qui nom avec ChildSafe- 1.0.0.16-debug.apk. Une autre est mis en Archive avec le nom ChildSafe-1.0.0.16- release. 3. Solution et problèmes a. Problèmes Je suis confronté à quatre grands problèmes que je n'arrive pas à résoudre seul.  Page Indicateur  Action de Boutons ‘Next’  formate JSON  Envoie au server Figure 5.2.1. Interface de page ChildSafe (Page 4ème)  Le premier est que la forme comporte sept pages. Par conséquent, il était difficile à contrôler l’objet de chaque page. La forme a besoin d’être validé avec couleur blanche s’il est valide et rouge s’il est invalide. Quand le ‘Further action required’ check box est choisi ‘No’ la page indicateur vient floue avec l’opacité de 20%.  Ensuite, Le bouton ‘Next’ change le texte à ‘Save Draft’ si la forme est invalide,
  • 26. Institut de Technologie du Cambodge Golden Gekko (DMI) 17 mais s’il est valide, il change à ‘Submit’. Quand je le change, l’opération de bouton change également à sauvegarder au brouillions ou soumettre au server.  Le troisième problème, c’est que la formate de JSON. Comme il y a sept pages, chaque page a différence objet. Je dois organiser le formate de objet qui correspondance à la besoin de Back-end. La difficulté est que je dois mettre le numéro identifié (id) de chaque objet dans son ordre. Ici, le numéro identifié de mon Android est différent du numéro identifié de Back-end.  Dernier c’est que l’envoie au server. A cause de formate de JSON, access token, au server il a fait un problème pendant l’envoie le forme au server. A Back-end, il est sécurité, il a besoin de nom d’utilisateur et mots de passe pour accéder le lien à envoyer. Il a deux opérations possibilités, ce sont de créer nouveau rapport et modifier vieux rapport. b. Solutions  Pour la solution au premier problème, j’ai utilisé CirclePagerIndicator qui est implémenté View dans le class. Dans ce class, on a utilisé Paint pour peinture la cercle de page indicateur.  Le deuxième problème j’ai utilisé bibliothèque de l’EventBus. Quand utilisateur clique sur le bouton ‘Submit’, puis dans chaque fragment, j’ai un methode onLeavePage qui est implémenté de l’interface PreviousNextFragmentCallback. J’ai appelé cette méthode pour poster tous les objets de chaque Fragment au FormReportActivity. FramentCaseReport.java , il est comme Publisher public void onLeavePager() { setValues(); EventBus.getDefault().post(mCaseReport); } Concernant la méthode ‘onEvent’, son rôle est de obtenir l’objet quand un objet est poster d’autre class. FormReportActivity.java, Il est comme Subsriber public void onEvent(CaseReport caseReport) { mCaseReport = caseReport; }
  • 27. Institut de Technologie du Cambodge Golden Gekko (DMI) 18  Pour le quatrième problème, j’ai utilisé Retrofit. J'arrive à envoie un message depuis le Service à l'activity en utilisant Event Bus. Builder de l'Adapter qui se trouve dans l’Application est déjà initialisée tant que l’application commence avec la méthode static. Donc, quand on veut envoyer un rapport, on n’a pas besoin d’enregistrer encore une fois. restApi.submit(hotline, isUpdatingReport, new Callback<String>() { @Override public void success(String caseNumber, Response response) { //Réussi } @Override public void failure(RetrofitError error) { //Echoué } }); (Pour en savoir plus voir Figure A.19. Méthode soumettre de class FormReportActicity.java à page 31 de partie annexes)  Lorsque le service rencontre une erreur HTTP, il en informe immédiatement l'activity qu'une erreur s'est produite et puis sauvegarder le rapport dans la liste de brouillions. Dans le cas, le rapport n’a pas de ‘id’, il enverra en utilisant méthode de submit. S’il réussit, il donne une réponse en string dont il est ‘id’ de rapport. Maintenant je sauvegarde ce rapport avec ce ‘id’ dans la base de donné puis réaliser le liste. C'est envoyer un rapport au service depuis l'activity. Dans le cas, un rapport a un ‘id’, il enverra en utilisant méthode de update, afin de mettre, j’ai réalisé le liste de rapports.  Le dernier problème, j’ai résolu en créant un objet. En utilisant Retrofit, ce problème est résolu, public class Hotline { private Caller caller; private Beneficiary beneficiary; @SerializedName("childSafe") private ChildSafe childSafes; private List<FollowUp> followUps; private List<Referral> referrals; private CaseReport caseReport; // Setter et Getter }
  • 28. Institut de Technologie du Cambodge Golden Gekko (DMI) 19 Mais il n’a pas résolu le problème ‘id’. Ici, j’ai mis un id de server dans le base de donné. Puis je peux obtenir cet id et mettre dans l’objet avant d’envoyer au server. public final static String strCaseType[][] = { {"12", "Child separated from family"}, {"13", "Accident"}, . . . {"37", "Other"}}; } 4. Envoie la forme Dans cette application, il y a deux méthode possible à accéder le server, POST et PUT. J’ai utilisé la méthode POST tant que utilisateur envoyait un nouveau rapport. Dans le cas, utilisateur envoyait le rapport modifié, j’ai utilisé la méthode PUT. Pour chaque méthode, il utilisait le même lien. public interface Api { @POST("/api/caseReports/v1") public void submit(@Body Hotline hotline, Callback<String> callback); @PUT("/api/caseReports/v1") public void update(@Body Hotline hotline, Callback<String> callback); } Quand on envoie un rapport, Retrofit reliait le lien de POST avec le domaine de site internet https://friends-intl-hotline-kh-stage.appspot.com. Alor il vient : - pour utilisation officiel : https://friends-intl-hotline-kh-stage.appspot.com/api/caseReports/v1 - pour le test : https://friends-intl-hotline-kh-test.appspot.com/api/caseReports/v1 Le paramètre ‘Callback<String>’, après l’envoie on obtenait la réponse de server. Cette réponse est le résultat si l’envoie est réussite ou échoué. Le réponse de server est un ‘id’ pour un rapport.
  • 29. Institut de Technologie du Cambodge Golden Gekko (DMI) 20 VI. CONCLUSIONS Dans cette dernière section, je parlerai sur la conclusion de projet. La première partie je parlerai de réalisation du projet. Je parlerai également des expériences que j’ai obtenues pendant le stage. 1. Résumé de projet a. Réalisation du projet Toutes les tâches de projet, j’ai complètement fini avec bon résultat. Après la PM, le projet est satisfait le client. Actuellement, interface suivi le designer est 95% le même couleur et dimensions. En s’agissant de processus de chaque tâche, il a été complétement fini 100% qui ont correspondues à la planification de projet et le besoin de client. b. Point fort L’application est facile à utiliser grâce à son interface graphique bien organisé. La performance en ce qui concerne la vitesse de création et mettre le donné dans la forme de rapport sont bien rapide. Il s’agit de recherche des rapports est aussi vite, le résultat montré pendant l’utilisateur entre le mot clé est également marche bien. Bien qu’il a y a plusieurs cents des rapports cette fonction marche toujours bien car il a le temps délai pendant la performance. c. Point faible Comme cette application se concentre sur une unique tablette. Donc, l’interface d’application peut être mauvaise vue dans autres téléphones intelligents. C’est-à-dire qu’il marche bien sur un seul type de tablette. 2. Difficultés Tous s’est très bien déroulé, sans encombre. Maître de mon stage a ouvert à toutes discussions. J’ai apprécié son disponibilité qui toujours prête à répondre à mes interrogations. Mais il y avait une difficulté, c’est que la planification du projet est trop courte, comme je n’ai pas expérience à faire le réel projet, il a été un peu grand pour moi à finir ce projet selon la date limité. En conséquent, Je n’ai pas pu finir le projet sans délai. J’ai demandé la PM pour une semaine délai. En fin, elle a accordé ma demande. Une autre difficulté était les changements besoins de clients. Quand il les changeait je devais change également l’interface et le code. C’était une raison de délai.
  • 30. Institut de Technologie du Cambodge Golden Gekko (DMI) 21 3. Expériences Dans le cadre de mon stage, il était très enrichissant car j’ai pu découvrir le monde de l’innovation de manière professionnelle. Cela m’a permis de découvrir un nombre impressionnant dans le secteur de la mobile technologie. Le travail est complètement différent de l’apprentissage. Pendant le stage, j’ai appris de geston de travail en équipe. En plus, j’ai également appris le mode de travaille. Ce stage m’a aussi permis de comprendre le fonctionnement du monde des entreprises internationales : leur politique, leurs rouages et estimer les problèmes liés au commerce extérieur. En plus, je sais comment faire le rapport du stage. Il a été en tous points bénéfiques pour moi. 4. Perspective Ce projet était en phase 1. Je crois qu’il a été achevé assez bien. Mais on attend encore de client pour sa réponse s’il veut continuer à phase 2. Dans la phase 2, il y aura des nouvelles fonctions. Les fonctions seraient pu ajouter dans ce phase 2 peuvent être : - Utilisateur peut capturer les photos et les mettre dans le rapport. - Utilisateur peut enregistrer le son pendent la mission est en course. - Utilisateur peut synchroniser des rapports entre tablette et server. - Application sera disponible sur tous les téléphones intelligents d’Android. 5. Conclusions Ainsi, j’ai effectué mon stage de fin année à l’entreprise Golden Gekko au sein de la grande entreprise DMI (Digital Management, Inc.). Lors de ce stage de 10 semaines, j’ai pu mettre en pratique mes connaissances théoriques acquises durant ma formation, de plus je me suis confronté aux difficultés réelles du monde du travail et la vie professionnelle. Après ma rapide intégration dans l’équipe, j’ai eu l’occasion de réaliser plusieurs tâches qui ont constitué une mission de stage. Je pense que cette expérience à l’entreprise m’a offert une bonne préparation a mon insertion professionnel car elle fut pour moi une expérience enrichissante et complète qui confort mon désir d’exercer mon futur métier de développer dans le domaine de mobile technologie.
  • 31. Institut de Technologie du Cambodge Golden Gekko (DMI) 22 ANNEXES Platform Sprint Start Date End Date Result Design Android 1 22 Jul 4 Aug Done Design Android 2 5 Aug 18 Aug Done Design Android 3 19 Aug 25 Aug Done Design Android 1 22 Jul 4 Aug Done Design Android 2 5 Aug 18 Aug Done Design Android 3 19 Aug 25 Aug Done Design B.O 1 5 Aug 18 Aug Done B.E 1 22 Jul 6 Aug Done B.O 1 18 Aug 25 Aug Done Android 1 29 Jul 13 Aug Done QA 1 14 Aug 18 Aug Done Client Review 1 19 Aug 20 Aug Done Android feature Complete 2 19 Aug 7 Sep Done Tableau A.1. Planification de sprints
  • 32. Institut de Technologie du Cambodge Golden Gekko (DMI) 23 Figure A.2. Les relations entre les tables d'une base de données Figure A.3. Page: Case Report Figure A.4. Page: Child Safe
  • 33. Institut de Technologie du Cambodge Golden Gekko (DMI) 24 Figure A.5. Menu Figure A.6. Accueil sans rapport Figure A.7. Résultat de recherche Figure A.8. Message de pas internet
  • 34. Institut de Technologie du Cambodge Golden Gekko (DMI) 25 Figure A.9. La vue en détail 1 Figure A.10. La vue en détail2 Figure A.11. La vue en détail 3 Figure A.12. La vue en détail 4
  • 35. Institut de Technologie du Cambodge Golden Gekko (DMI) 26 Figure A.13. Structure de class 1 Figure A.14. Structure de class 2
  • 36. Institut de Technologie du Cambodge Golden Gekko (DMI) 27 Figure A.15. Layouts d’application
  • 37. Institut de Technologie du Cambodge Golden Gekko (DMI) 28 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/dateRequired" style="@style/Widget.AppCompat.Spinner.Underlined" android:layout_width="match_parent" android:layout_height="wrap_content" android:focusable="false" android:hint="Date" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/performedBy" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/case_manager" android:singleLine="true" /> </android.support.design.widget.TextInputLayout> Figure A.16. Entré de Matériaux Design
  • 38. Institut de Technologie du Cambodge Golden Gekko (DMI) 29 public class RestApi { private static Api mApi; private static final String PASSWORD = "**********"; private static final String USERNAME = "**********"; public RestApi() { } public static void initialize(Context context) { if (mApi == null) { final String serverUrl = context.getString(R.string.server_url); final SecurityOkClient client = new SecurityOkClient(context, serverUrl, USERNAME, PASSWORD); final SecurityRestAdapterBuilder builder = new SecurityRestAdapterBuilder(client); builder.setEndpoint(serverUrl); RestAdapter restAdapter = builder.build(); restAdapter.setLogLevel(RestAdapter.LogLevel.FULL); mApi = restAdapter.create(Api.class); } } public void submit(Hotline hotline, boolean isUpdate, Callback<String> callback) { if (isUpdate) { mApi.update(hotline, callback); } else { mApi.submit(hotline, callback); } } } Figure A.17. Class : RestApi.java public class FIMovilleApplication extends Application { @Override public void onCreate() { super.onCreate(); RestApi.initialize(getApplicationContext()); } } Figure A.18. Class: FIMovilleApplication.java
  • 39. Institut de Technologie du Cambodge Golden Gekko (DMI) 30 private void sendReportToServer() { mProgressDialog.show(); RestApi restApi = new RestApi(); Hotline hotline = prepareHotline(); if (!mFurtherActionEvent.isRequired()) { hotline.setAdditionalInfo(null); hotline.setFollowUps(null); hotline.setReferrals(null); } boolean isUpdatingReport = !mCaseReport.getCaseNumber().isEmpty(); restApi.submit(hotline, isUpdatingReport, new Callback<String>() { @Override public void success(String caseNumber, Response response) { mCaseReport.setCaseNumber(caseNumber); DBHelper db = new DBHelper(FormReportActivity.this); Intent intent = getIntent(); db.deleteReport(intent.getIntExtra(ID, DEFAULT_VALUE)); //Save to database with Case Number mCaseReport.setCaseNumber(caseNumber); new SaveReport(hotline); mProgressDialog.dismiss(); Toast.makeText(FormReportActivity.this, getResources().getString(R.string.sent_success) + getString(R.string.case_number_is) + caseNumber, Toast.LENGTH_SHORT).show(); setResult(RESULT_OK); finish(); } @Override public void failure(RetrofitError error) { //Failed Toast.makeText(FormReportActivity.this, getResources().getString(R.string.fialed_sending), Toast.LENGTH_SHORT).show(); new SaveReport(getApplicationContext(), true, mCaller, mBeneficiary, mCaseReport, mReferralList, mFollowUpList, mChildSafeDatas, mAddiontionalInformation, mFurtherActionEvent ); setResult(RESULT_SAVE_DRAFT); mProgressDialog.dismiss(); finish(); } }); } Figure A.19. Méthode soumettre de class FormReportActicity.java
  • 40. Institut de Technologie du Cambodge Golden Gekko (DMI) 31 REFERENCES - Guide à la rédaction de mémoire, Comité Scientifique de l’ITC, [2013]. - Rapport De Stage D’ingénieur De Quatrième Année, M. HE Bunna, [2015]. - Mémoire de Fin D’études, M. TITH Dara, [2014] - Document Android, Développeurs Android, https://developer.android.com/guide - Android: les bibliothèques utiles, Benjamin Lacroix, [On-line] [22 octobre 2014]: http://blog.xebia.fr/2014/10/22/android-les-bibliotheques-utiles/ - EventBus Document, Github: https://github.com/greenrobot/EventBus - Dictionnaire WordReference, Dictionnaires de langue en ligne: http://www.wordreference.com/fren - Guide de démarrage Scrum, Agiliste: http://www.agiliste.fr/guide-de-demarrage- scrum - Material Spinner, Ganfra: https://github.com/ganfra/MaterialSpinner - Android ViewPagerIndicator, Github: https://github.com/JakeWharton/ViewPagerIndicator