Beruflich Dokumente
Kultur Dokumente
Matin :
- Rencontre avec Catherine Delmas et Pierre Delmas
- Prise en main du projet
- Installation des logiciels ncessaires (Android Studio, FileZila)
- Dbut de mise en forme du premier formulaire de commentaire d'un enseignant
Erreur sur le thme
Modification d'une ligne dans le style.xml :
Modifier
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Par
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
Aprs-midi :
- Cration de l'interface du formulaire
Nom de l'enseignant
Commentaire
Choix du stage
Utilisation d'un Spinner
Ajout des bouttons Ajouter Image et Termin
Positionns en fonction de la zone de texte, ainsi ils ne sont pas recouvert
par celle-ci lorsquelle s'agrandi
Jour 2 : Mardi 5 Janvier 2016
Matin :
- Rdaction du fichier php faisant le lien entre la base de donnes et l'application
Cration d'une base de donnes de test grce WampServer et PhpMyAdmin
Insertion d'enregistrement dans une table cre au pralable dans la base
Constat du retour de l'information en JSON grce au fichier php
Aprs-midi :
-Rdaction de la partie client sur l'application Android
Essai avec une mthode n'utilisant pas Async Task
http://blog.erlem.fr/android/30-android-connexion-a-mysql-a-l-aide-de-php
Cette solution ne fonctionne pas avec les nouvelles versions d'Android
Recherche de ressources pour utiliser Async Task et tests
Installation de GenyMotion
Crtion d'un compte sur le site : https://www.genymotion.com/#!/
Tlcharger via un site quelconque le setup et installer GenyMotion
Renseigner les paramtres du proxy dans Paramtres > Rseau > Utiliser un
proxy HTTP
Ajout des terminaux virtuels correspondant aux besoins :
Google Nexus 7 4.1.1 API 16 800x1280 (Priphrique 7'')
Motorola Xoom 4.1.1 API 16 1280x800 (Priphrique 10,1'')
Samsung Galaxy S3 API 16 720-1280 (Priphrique 4,8'')
Inconvnient de cette mthode : Le choix de version et d'appareils est moins important
que celui propos par Android Studio, de plus pour une version donne certains appareils
ne sont pas prsent, ce qui mne au fait que pour une versions donne d'Android
certaines rsolutions ne sont tout simplement pas reprsentes par des appareils.
Avantage : GenyMotion est moins gourmand en ressources que Android Studio
- Rsultat :
Le rsultat n'est pas trs lisible car ici seul le JSON t import, il n'a pas
encore t analys par l'application.
Jour 6 : Lundi 11 Janvier 2016
Matin :
- Cration du 'parser JSON' qui permettra l'application de mettre en forme et d'interprter
les informations reus en JSON
Cration de la classe Enseignant dans l'application de test
- Cration d'une seconde application de test afin de mieux comprendre le fonctionnement
d'un JSON parser, celui-ci fonctionnant avec une Api en JSON, la structure est trs
similaire celle qui sera utilise pour l'application finale
Rsutat :
Aprs-midi :
- Cration de la classe patient pour stocker les donnes reues grce au parser
- Poursuite des recherches sur l'ordonnancement des donnes JSON grce un Parser
Jour 7 : Mardi 12 Janvier 2016
Matin :
- Plusieurs essais de modifier le Parser de l'application mto pour faire fonctionner
l'application sur la base de donnes de test
Les donnes JSON de l'api mto ne sont pas organises de la mme manire
que sur le JSON de la base de test, ce qui empche le fonctionnement du parser
Aprs-midi :
- Recherche sur comment modifi le parser actuel ou comment en re-crer un
fonctionnant pour la base de donnes utilise.
- Ceci fait, ouvrir le projet Android Studio et normalement les librairies sont visibles
dans la fentre project l'intrieur du sous-dossier libs
- Ensuite, aller dans File > Project structure, cliquer sur app puis sur l'onglet
dependencies
- Cliquer sur le petit + vert en haut a droite, slectionner file dependency et
l, aller cherche les fichiers dans le dossier libs de l'application
- Une fois les fichiers ajouts, il faut aller modifier le build,gradle qui se trouve dans
<nom de l'application> / app / src
- Il faut lui indiquer les dpendances que l'on ajoutes l'instant, pour cela, il faut
ajouter ce code la fin du fichier :
dependencies {
- Aprs cela, veiller ce que les versions renseignes plus haut dans le fichiers
correspondent bien la version d'android vise et la version minimale de
fonctionnement pour l'application.
-Une fois tout ceci fait, pour commencer utiliser GSON il suffit d'utiliser ces
imports :
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
Aprs-midi :
GSON fonctionne
un tutoriel propose un petit jeu d'essais avec la classe GSON :
https://sites.google.com/site/gson/gson-user-guide
le problme est que lorsque l'on ajoute < \'' > dans une chane de caractres
cela fait planter l'application.
il faut donc trouver d'o viens le problme afin de pouvoir mener des tests plus
concluants
Problme, elle ne trouve que le premier lment du fichier JSON et affiche dailleurs
que le tableau est de longueur 1
Aprs-midi :
- La mthode prcdente n'est apparemment pas la bonne
- Il faudrait utiliser l'outil db4o
Jour 14 : Jeudi 21 Janvier 2016
Matin :
- Reprise zro du TP n4 sur les taches asynchrones et les thread
la classe Async qui drive de la classe AsyncTask fonctionne correctement
Elle est appelle via l'activit ActImport qui lui fourni l'url du serveur
- Reprise du TP n3 sur les bases de donnes objets
Jour 15 : Vendredi 22 Janvier 2016
Matin :
- Application des connaissances apprises par les TP dans l'application de test d'import des
donnes JSON
Il apparat qu'une base de donnes objet (dcrite dans le TP n3) s'avre inutile
dans notre situation.
Aprs-midi :
- La solution prcdente tait donc plus ou moins correcte, il faut simplement russir
remplacer tout le texte instanciant l'objet patient par le fichier JSON
-Ce dernier commenant par '' [{ '' il faut commencer par crer un tableau ( [ ) contenant
des objets ( { ) qui eux mme contiennent les donnes (les paires nom : valeur)
Jour 16 : Lundi 25 Janvier 2016
Matin :
- Recherche sur la faon de faire en sorte de rcuprer l'objet dans le tableau de taille 1
sans avoir besoin de crer une liste entire
Aprs-midi :
- Rcupration des information d'un patient en utilisant la mthode qui permet d'aller
cherche une information pour un clef donne dans le fichier JSON (paire clef : valeur).
de la sorte, l'objet patient est cr et instanci avec les bonnes donnes
Jour 17: Mardi 26 Janvier 2016
Matin :
- Application de la solution trouve aux enseignants de la base de donnes de la
Colinre :
chaque enseignant possde un boolen qui est 'true' si il est administrateur,
sinon 'false'
ce boolen n'arrive pas s'instancier parce qu'il est contenu sous forme de 0 et
de 1 dans le JSON
solution : criture d'une condition instanciant les drits de l'enseignant en fonction
des 1 et des 0 pour les passer en 'true' ou 'false'
if (jsonObj.getString("droits").equals("1")) {
enseignant.setDroitsEnseignant(true);
}
else {
enseignant.setDroitsEnseignant(false);
}
Aprs-midi :
- Runification des deux applications (celle d'import de donnes et celle du commentaire
de l'enseignant)
Affichage du nom de l'enseignant en haut de la page ainsi que vous tes/ntes
pas administrateur de cette application en fonction des droits de l'enseignant pass dans
la requte du script php d'import qui a terme sera gr par l'cran de connexion.
Jour 18: Mercredi 27 Janvier 2016
Matin :
- Ecriture du script php qui permettra d'importer les stages de la base en fonction du code
d'un enseignant donn
Utilisation de la fonction recupererStagesParCodeEnseignant()
Elle renvoie un array de stages
Prend en paramtre le code d'un enseignant (int)
- Problme, mme en respectant les types dans le script php le navigateur affiche ceci au
lieu d'un JSON standard. On peu tout de mme voir le JSON, mais des caractres
unicode sont passs dans le fichier.
Aprs-midi :
Solution : Le problme venait du fait que la mthode toArray() n'avait pas t crer
auparavant, donc le rsultat ne pouvais pas tre converti en tableau affichable par le
navigateur.
Formatage de la rception de l'information dans l'application cliente :
Cration de la classe Stage qui sera implmente par les informations reuent
par le JSON
Jour 19: Jeudi 28 Janvier 2016
Matin :
Ecriture du script php utilisant la mthode :
recupererEtudiantsStagesParCodeEnseignant() qui permet de retourner une liste
d'etudiants par le code de l'enseignant en faisant un jointure par la table stage
Aprs-midi :
Cration de la classe Etudiant
Stockage des donnes rceptionnes par l'application Android dans une liste d'Etudiant
Jour 20 : Vendredi 29 Janvier 2016
Matin :
Trie des stages en fonction du code de l'enseignant en utilisant la table SQL
affectation qui attribut des codes de stages des codes etudiants. C'est cette table qui
fait la jointure entre Enseignant et Etudiant par Stage
L'application Android ne reoit maintenant que les stages en fonction du code de
l'enseignant renseign dans le script php simulant une connexion d'enseignant.
ainsi, le ''texte par dfaut'' sera ce dernier. Car le spinner affiche toujours le premier item
quand rien n'est slectionn.
Aprs-midi :
Cration d'une application de test pour le formattage de la zone de commentaire
Il faudrait que l'utilisateur ai la possiblilit de formatter son texte (ex : italique,
gras, soulign)
Utilisation des balises html dans la zone de texte, ainsi que des fonctions
permettant de retourner la postion du pointeur
Lors du clic sur le boutton si rien n'est selectionn la balise ouvrante et la balise
fermante se placent la ou est le curseur et celui-ci est automatiquement replacer au millieu
de celles-ci.
Si une selection est faite, les balises vont automatiquement se placer au
dbut et la fin de la selection
Le boutton prvisualiser permet de voir le rendu du commentaire dans
une textView cot
Jour 25 : Vendredi 5 Fvrier 2016
Matin :
Mise au point sur l'application avec Mme Delmas
Intgration de l'application du commentaire formattable l'application android principale
Installation d'une scrollView permettant de naviguer plus aisment sur le
formulaire.
Des erreurs apparaissaient lors du clique sur un boutton type
souligner/gras/italique si le curseur ne se trouvait pas dans la zone de texte
try/catch afin d'ignorer les erreurs qui nempchent en aucun cas
l'application de fonctionner
Aprs-midi :
Recherches sur le problme de la touche entre du clavier du tlphone non reconnue
par l'application
Essaies avec le code de la touche <insert le code>
Utilisation de la valeur ENTER
Aucune des solutions ne fonctionne
STOCKAGE DU COMMENTAIRE DANS UN DOCUMENT TEXTE
EXPORT BASE DE DONNEES
CONNEXION BDD DISTANTE
FORMULAIRE DE CONNECTION
Jour 26 : Lundi 8 Fvrier 2016
Travail domicile pour cette semaine
Tlchargement d'android studio / genymotion / wampserver / filezila
Installation d'android studio / genymotion / wampserver / filezila
Jour 27 : Mardi 9 Fvrier 2016
Utilitaire
Il faut ensuite envoyer le rsultat de la saisie de la comboBox l'application
MainCommentaire.
Jour 31 : Lundi 22 Fvrier 2016
Le proxy automatique ne fonctionne pas
Passage sur le proxy des salles informatique des BTS SIO
Changement de machine, tlchargement des logiciels ncessaires pour travailler
problme avec le port 80 wamp n'arrive pas y accder cause d'une autre
application
il faut dsactiver le service sql
Jour 32 : Mardi 23 Fvrier 2016
Passage des paramtres de l'enseignant qui se connecte de l'activit de connexion a
celle du commentaire
Ses informations restent vides
Li aux asynctasks mal faites
Dpt des scripts php sur le serveur distant
Deux d'entre eux ne fonctionnent pas
L'un comportait une faute de frappe dans le nom de l'enseignant
recherch
Pour l'autre il manquait la mthode toArray() pour les enseignants
Mise en place d'une classe EnseignantConnect
Mise au point sur l'avancement du projet avec Mme Delmas et Mr Romeuf
L'application requiert une connexion constante ce qui est gnant
Ajout d'une base de donnes type dB4o
Jour 33 : Mercredi 24 Fvrier 2016
les scripts n'tant accessibles que via https, il faut changer la classe httpurlconnection
par httpsurlconnection
un probleme survient apparement sur la ligne du bufferedreader
le tout retourne une nullPointerException pour chaque appel la base
Jour 34 : jeudi 25 Fvrier 2016
Rception de l'application modifie par Mr Romeuf
Cration d'un dossier db4o dans les rpertoires de l'mulateur genymotion pour
que l'application puisse stocker en locale une base de donnes
le dossier et le fichier de stockage sont bien prsents, pourtant
l'application plante et dit que le fichier n'existe pas
Certaines lignes ne fonctionnent pas, notamment une erreur lie au fait que la
version de wamp est trop ancienne
Jour 35 : Vendredi 26 Fvrier 2016
Ressource Android :
http://developer.android.com/guide/topics/resources/string-resource.html#q=escapedchar
https://googlegson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/JsonDeserializer.ht
ml
LIENS :
Jonction Android PHP MYSQL
http://www.mybringback.com/android-sdk/12924/android-tutorial-using-remote-databasesphp-and-mysql-part-1/
Tuto Async task
http://www.tutos-android.com/asynctask-android-traitement-asynchrone-background
tuto general
http://sdz.tdct.org/sdz/creez-des-applications-pour-android.html
correction bug lignes
https://books.google.fr/books?
id=9CoUCwAAQBAJ&pg=PA102&lpg=PA102&dq=saisie+de+plusieurs+lignes+d
%C3%A9veloppement+android&source=bl&ots=RwCBS5-NGY&sig=GFzR7jgWHjRsgKHBsfevIhZAkI&hl=fr&sa=X&ved=0ahUKEwj5x-
XhgpXKAhXFNxQKHaYNDywQ6AEIKTAC#v=onepage&q=saisie%20de%20plusieurs
%20lignes%20d%C3%A9veloppement%20android&f=false
solution balises html dans le texte :
https://openclassrooms.com/courses/creez-des-applications-pour-android/tp-un-bloc-notes
http://www.throrinstudio.com/dev/android/formater-une-textview-avec-du-code-html/
concatener plusieurs lignes dans une base de donnes
http://www.journaldunet.com/developpeur/pratique/developpement/12307/commentconcatener-plusieurs-lignes-en-une-seule-chaine-dans-une-base-de-donnees.html
widget simples
https://openclassrooms.com/courses/creez-des-applications-pour-android/les-widgets-lesplus-simples
GSON
http://www.jmdoudoux.fr/java/dej/chap-gson.htm
JSON testeur
http://www.jsoneditoronline.org/
DOC JSON
http://docs.postgresqlfr.org/9.4/functions-json.html
conversion tableau
http://stackoverflow.com/questions/15609306/convert-string-to-json-array
upload images
http://stackoverflow.com/questions/5579186/how-to-upload-image-captured-from-camerain-an-android-app