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