From 5eecc990db255046d3b0572700765c5c2da5a95c Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Sat, 7 May 2011 21:31:25 +0200 Subject: [PATCH 1/5] Ajout du bilan --- rapport/bilan.tex | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 rapport/bilan.tex diff --git a/rapport/bilan.tex b/rapport/bilan.tex new file mode 100644 index 0000000..583b4e6 --- /dev/null +++ b/rapport/bilan.tex @@ -0,0 +1,46 @@ +\documentclass[a4paper,11pt,french]{article} + +\usepackage[frenchb]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{verbatim} +\usepackage{graphicx} +\usepackage{hyperref} + +\hypersetup{% + colorlinks,% + linkcolor=black,% + filecolor=black,% + urlcolor=black,% + citecolor=black% +} + +\title{Bilan du groupe 42\\---\\Reconception du jeu Pticlic sous Android} +\author{Yoann \textsc{Bonavero} \and Bertrand \textsc{Brun} \and John \textsc{Charron} \and Georges \textsc{Dupéron} \\\\ Encadrant: M. Mathieu \textsc{Lafourcade}} + +\begin{document} + +\maketitle + +Notre projet \og{}Reconception du jeu Pticlic sous Android\fg{} été la création d'un ou plusieurs prototype(s) sous Android\texttrademark. +Nous avons, à leur actuelle, réalisé 2 prototypes. +\\ + +Nous avons donc commencé par utilisé l'API fourni par Google, nommé Android\texttrademark. Nous avons développé une application fonctionnelle utilisant cette API. Cet framework utilise le langague de programmation Java. Google a mis en place un plugin pour Eclipse nomme ADT\footnote{Android Development Tools} que nous avons donc utilisé. Une fois celle-ci fini et debogger par nos soin nous avons réaliser une alpha-test que nous avons envoyé à differentes connaissances. Une fois les retours des alpha-testeur nous avons donc commencé à réaliser une second prototype incluant les differentes remarque de ces testeurs (que nous remercions de leur attentions). + +Pour l'alpha-test, nous avons aussi réalisé un site web (\url{www.pticlic.fr}) pour que les différents testeur puissent s'inscrire et télécharger l'application sur leur téléphone. +\\ + +Pour le deuxième prototype nous avons radicalement changé la façon dont nous allions réaliser les differentes vue necéssaire pour mener à bien notre projet. La raison de ce changement est la difficulté rencontré par le groupe pour créer et modifier les vue avec l'API Android\texttrademark. Donc, nous nous sommes dirigé vers un developpement entiere en HTML5/PHP/Javascript, car nous avions plus de facilité de developpement avec ces outils qu'avec l'API proposé par Google. Pour que notre application affiche correctement notre application web, nous utilisons WebKit, fourni par Android\texttrademark, qui est un moteur de rendu HTML, ainsi qu'un moteur Javascript. L'un des avantages de l'utilisation des technologies du web, et qu'il rend notre application multi-platforme, en effet notre application sera fonctionnel sous Android mais aussi sur ordinateur traditionnel et sous iPhone (en utilisant le navigateur web). + +De plus, nous avons réalisé, sur notre site web, une interface pour que les joueurs puissent créer eux-même des parties (avec un mot centrale et autant de mots dans le nuage) en fonction de son avancement dans le jeu. +\\ + +\noindent Il nous reste donc à réaliser~: +\begin{itemize} + \item L'authentification dans l'application des utilisateurs; + \item d'attributer, à un joueur, le droit de crée un partie; + \item à afficher, dans la page de score, la personne qui a créé la partie. +\end{itemize} + +\end{document} From 05920d224f53a5a7c4bb6f1b8059f27f652fc150 Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Sat, 7 May 2011 21:32:41 +0200 Subject: [PATCH 2/5] Ajout d'un fonction info dans l'interface js pour afficher un boite de dialog avec un bouton 'OK' --- .../src/org/pticlic/js/JavaScriptInterface.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java index 9cf32c2..7f5b327 100644 --- a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java +++ b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java @@ -1,7 +1,9 @@ package org.pticlic.js; import android.app.Activity; +import android.app.AlertDialog; import android.app.ProgressDialog; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.preference.PreferenceManager; @@ -44,6 +46,19 @@ public class JavaScriptInterface { dialog = ProgressDialog.show(mContext, title, message); } + public void info(String title, String message) { + AlertDialog.Builder builder = new AlertDialog.Builder(mContext); + builder.setMessage(message) + .setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + /** Permet de retirer l'affichage de la boite de dialog * */ From c9b67033d69d92d8761f33861214ee9155b42bba Mon Sep 17 00:00:00 2001 From: Bertrand Brun Date: Sun, 8 May 2011 22:06:19 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Bug=20d=C3=BB=20au=20garbage=20collector=20?= =?UTF-8?q?d'Android(tm).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/serveur/php/ressources/pticlic.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/serveur/php/ressources/pticlic.js b/code/serveur/php/ressources/pticlic.js index 9cab12e..78b0f5d 100644 --- a/code/serveur/php/ressources/pticlic.js +++ b/code/serveur/php/ressources/pticlic.js @@ -257,12 +257,13 @@ ajaj.request = function(url, data, okFunction, smallErrorFunction, bigErrorFunct try { smallErrorFunction = smallErrorFunction || ajaj.smallError; bigErrorFunction = bigErrorFunction || ajaj.bigError; - var user = UI().getPreference("user"); - var passwd = UI().getPreference("passwd"); + var user = "" + UI().getPreference("user"); + var passwd = "" + UI().getPreference("passwd"); if (user != '' && passwd != '') { - // TODO : on transfère le user/passwd à chaque fois ici… c'est pas très bon. - data = $.extend({user:user, passwd:passwd}, data); + if (!data.user) data.user = user; + if (!data.passwd) data.passwd = passwd; } + return $.getJSON(url, data, function(data) { try { if (data && data.isError) { From f376caf180fb897622a9247590fdf9005050f9d6 Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Sun, 8 May 2011 22:07:49 +0200 Subject: [PATCH 4/5] Modification du bilan --- rapport/bilan.tex | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/rapport/bilan.tex b/rapport/bilan.tex index 583b4e6..19b00e4 100644 --- a/rapport/bilan.tex +++ b/rapport/bilan.tex @@ -6,6 +6,8 @@ \usepackage{verbatim} \usepackage{graphicx} \usepackage{hyperref} +\usepackage{graphicx} +\usepackage{um2/geometry} \hypersetup{% colorlinks,% @@ -15,32 +17,41 @@ citecolor=black% } -\title{Bilan du groupe 42\\---\\Reconception du jeu Pticlic sous Android} +\title{Bilan de TER - Groupe 42\\---\\Reconception du jeu Pticlic sous Android} \author{Yoann \textsc{Bonavero} \and Bertrand \textsc{Brun} \and John \textsc{Charron} \and Georges \textsc{Dupéron} \\\\ Encadrant: M. Mathieu \textsc{Lafourcade}} \begin{document} +\newgeometry{top=0.5cm, right=2cm, left=2cm, bottom=0.5cm} + \maketitle +\noindent Le sujet de notre projet a été défini comme suit : -Notre projet \og{}Reconception du jeu Pticlic sous Android\fg{} été la création d'un ou plusieurs prototype(s) sous Android\texttrademark. -Nous avons, à leur actuelle, réalisé 2 prototypes. -\\ +\begin{quotation} +\noindent L'étude et le prototypage d'une version [du jeu PtiClic] fonctionnant sur Android semble intéressante. En particulier on s'intéressera a deux aspects : les contraintes imposées par l'environnement smartphone, le biais qu'imposent ces contraintes sur le jeu et les données récoltées. Il s'agira donc de modéliser une version adaptée aux smartphones et d'en implémenter un prototype fonctionnel. \\ +\end{quotation} -Nous avons donc commencé par utilisé l'API fourni par Google, nommé Android\texttrademark. Nous avons développé une application fonctionnelle utilisant cette API. Cet framework utilise le langague de programmation Java. Google a mis en place un plugin pour Eclipse nomme ADT\footnote{Android Development Tools} que nous avons donc utilisé. Une fois celle-ci fini et debogger par nos soin nous avons réaliser une alpha-test que nous avons envoyé à differentes connaissances. Une fois les retours des alpha-testeur nous avons donc commencé à réaliser une second prototype incluant les differentes remarque de ces testeurs (que nous remercions de leur attentions). - -Pour l'alpha-test, nous avons aussi réalisé un site web (\url{www.pticlic.fr}) pour que les différents testeur puissent s'inscrire et télécharger l'application sur leur téléphone. -\\ - -Pour le deuxième prototype nous avons radicalement changé la façon dont nous allions réaliser les differentes vue necéssaire pour mener à bien notre projet. La raison de ce changement est la difficulté rencontré par le groupe pour créer et modifier les vue avec l'API Android\texttrademark. Donc, nous nous sommes dirigé vers un developpement entiere en HTML5/PHP/Javascript, car nous avions plus de facilité de developpement avec ces outils qu'avec l'API proposé par Google. Pour que notre application affiche correctement notre application web, nous utilisons WebKit, fourni par Android\texttrademark, qui est un moteur de rendu HTML, ainsi qu'un moteur Javascript. L'un des avantages de l'utilisation des technologies du web, et qu'il rend notre application multi-platforme, en effet notre application sera fonctionnel sous Android mais aussi sur ordinateur traditionnel et sous iPhone (en utilisant le navigateur web). - -De plus, nous avons réalisé, sur notre site web, une interface pour que les joueurs puissent créer eux-même des parties (avec un mot centrale et autant de mots dans le nuage) en fonction de son avancement dans le jeu. -\\ - -\noindent Il nous reste donc à réaliser~: +\noindent Rôles~: \begin{itemize} - \item L'authentification dans l'application des utilisateurs; - \item d'attributer, à un joueur, le droit de crée un partie; - \item à afficher, dans la page de score, la personne qui a créé la partie. +\item Chef de projet~: Bertrand \textsc{BRUN} +\item Responsable de la communication et de la logistique~: John \textsc{CHARRON} (les 3 premiers mois), Bertrand \textsc{BRUN} (par la suite) \\ +\end{itemize} + +\noindent Nous avons réalisé deux prototypes, l'un sous Android\texttrademark en Java à l'aide de l'Android Development Tools pour téléphones mobiles sous Android\texttrademark, l'autre pour tout type de smartphone en HTML5 et d'autres langages Web. Outre ces prototypes, nous avons réalisé un site Web (\url{www.pticlic.fr}) pour la gestion des utilisateurs et pour faire connaître notre application. Nous avons aussi fait testé notre application par des alpha-testeurs. +\\ + +\noindent En ce qui concerne le premier prototype, nous avons tout d'abord suivi ce qui a été prévu dans notre diagramme de Gantt initial : Georges \textsc{Dupéron} et Yoann \textsc{BONAVERO} ont travaillé principalement côté serveur et base de données alors que Bertrand \textsc{BRUN} et John \textsc{CHARRON} se sont occupés de l'application client. Le site Web n'avait pas été prévu initialement et a été réalisé par Yoann \textsc{BONAVERO} et John \textsc{CHARRON} alors que Bertrand \textsc{BRUN} et Georges \textsc{Dupéron} ont continué leur travail respectif. Le planning du projet a été modifié, nous avons opté pour deux itérations au lieu de quatre. +\\ + +\noindent Lors de la deuxième itération du projet, Yoann \textsc{BONAVERO} a continué à travailler sur le site Web, l'améliorant en ajoutant des pages telles que la partie 'Création de parties', Georges \textsc{Dupéron} sur l'application en HTLM5, Bertrand \textsc{BRUN} sur les modifications de l'application Android\texttrademark{} intégrant les modifications suite aux premiers alpha-tests alors que John \textsc{CHARRON} s'est penché sérieusement sur la dimension TALN du projet, un aspect du projet dont nous avions sous-estimé l'importance. +\\ + +\noindent Reste à faire~: +\begin{itemize} + \item améliorations/expérimentations sur des algorithmes de génération de mots centraux, mots nuages et relations + \item authentification des utilisateurs dans l'application + \item attribution à un joueur donné le droit de créer une partie + \item affichage de la personne qui a créé une partie dans la page de score \end{itemize} \end{document} From 08449d4296b0edcf40a9e721b2089ac55dd01bfa Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Sun, 8 May 2011 22:08:38 +0200 Subject: [PATCH 5/5] Modification du code Java pour la prise en compte des modifs cote serveur --- code/PtiClic/src/org/pticlic/FrontPage.java | 2 +- code/PtiClic/src/org/pticlic/Main.java | 8 ++--- .../org/pticlic/js/JavaScriptInterface.java | 30 +++++++++---------- .../src/org/pticlic/model/Constant.java | 2 +- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/code/PtiClic/src/org/pticlic/FrontPage.java b/code/PtiClic/src/org/pticlic/FrontPage.java index e13142f..e7a1343 100644 --- a/code/PtiClic/src/org/pticlic/FrontPage.java +++ b/code/PtiClic/src/org/pticlic/FrontPage.java @@ -22,7 +22,7 @@ public class FrontPage extends Activity { webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); - js = new JavaScriptInterface(this); + js = new JavaScriptInterface(this, webView); webView.addJavascriptInterface(js, "PtiClicAndroid"); Log.i("[INFO]", Constant.SERVER + Constant.SERVER_URL); webView.loadUrl(Constant.SERVER + Constant.SERVER_URL); diff --git a/code/PtiClic/src/org/pticlic/Main.java b/code/PtiClic/src/org/pticlic/Main.java index a62bc2c..44d4441 100644 --- a/code/PtiClic/src/org/pticlic/Main.java +++ b/code/PtiClic/src/org/pticlic/Main.java @@ -5,12 +5,11 @@ import org.pticlic.model.Constant; import android.app.Activity; import android.os.Bundle; -import android.util.Log; import android.webkit.WebChromeClient; import android.webkit.WebView; public class Main extends Activity { - + private WebView webView; private JavaScriptInterface js = null; @@ -26,9 +25,8 @@ public class Main extends Activity { webView.setVerticalScrollBarEnabled(false); webView.setHorizontalScrollBarEnabled(false); - js = new JavaScriptInterface(this); + js = new JavaScriptInterface(this, webView); webView.addJavascriptInterface(js, "PtiClicAndroid"); - Log.i("[INFO]", Constant.SERVER + Constant.SERVER_URL); } @Override @@ -36,7 +34,7 @@ public class Main extends Activity { super.onStart(); webView.loadUrl(Constant.SERVER + Constant.SERVER_URL); } - + @Override public void onBackPressed() { if (js.getScreen().equals("splash") || js.getScreen().equals("frontpage")) diff --git a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java index 7f5b327..807a2ce 100644 --- a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java +++ b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java @@ -1,22 +1,24 @@ package org.pticlic.js; import android.app.Activity; -import android.app.AlertDialog; import android.app.ProgressDialog; -import android.content.DialogInterface; import android.content.SharedPreferences; import android.preference.PreferenceManager; +import android.webkit.WebView; +import android.widget.Toast; public class JavaScriptInterface { private Activity mContext; private ProgressDialog dialog; private String screen; + private WebView webView; - /** Instantie l'interface et initialise le context */ - public JavaScriptInterface(Activity c) { + /** Instantie l'interface et initialise le context */ + public JavaScriptInterface(Activity c, WebView webView) { mContext = c; + this.webView = webView; } - + /** * Permet de setter une valeur dans les preferences * @@ -35,7 +37,8 @@ public class JavaScriptInterface { */ public String getPreference(String aName) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); - return prefs.getString(aName, ""); + String res = prefs.getString(aName, ""); + return res; } /** Permet d'afficher une progressbar @@ -47,16 +50,7 @@ public class JavaScriptInterface { } public void info(String title, String message) { - AlertDialog.Builder builder = new AlertDialog.Builder(mContext); - builder.setMessage(message) - .setCancelable(false) - .setPositiveButton("OK", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - } - }); - AlertDialog alert = builder.create(); - alert.show(); + Toast.makeText(mContext, message, Toast.LENGTH_SHORT); } /** Permet de retirer l'affichage de la boite de dialog @@ -67,6 +61,10 @@ public class JavaScriptInterface { dialog.dismiss(); } + public void switchCSS(String newTheme) { + webView.reload(); + } + /** Permet de quitter l'application * */ diff --git a/code/PtiClic/src/org/pticlic/model/Constant.java b/code/PtiClic/src/org/pticlic/model/Constant.java index 896540f..798d796 100644 --- a/code/PtiClic/src/org/pticlic/model/Constant.java +++ b/code/PtiClic/src/org/pticlic/model/Constant.java @@ -1,7 +1,7 @@ package org.pticlic.model; public class Constant { - public static final String SERVER_URL = "unstable/code/serveur/php/jeu.html"; + public static final String SERVER_URL = "unstable/code/serveur/php/jeu.php"; public static final String SERVER_AUTH = "SERVER_AUTH"; public static final String SERVER = "http://www.pticlic.fr/";