2 - Android avec MySQL et PHP : Partie Serveur


Dans cette partie , on va se concentrer sur la partie Serveur : Mysql + Php .
  1. Création de la base de données MySQL : 

  2.  Voici les tables de notre base foodapp_db.
     
     Lancer ce script dans SQl du phpmyadmin:

     Jusqu'ici la base est préparée avec des données . 
     







  3.  Création des services web  avec PHP:
  4.  Pour que notre application Android peut communiquer  avec la base de données MySQl , il faut l'intervention des webservices . Le client fait appel au service (écrite en PHP) , qui va se connecter à la base et récupérer les informations puis retourner le résultat en JSON à notre application via des requêtes HTTP . 
    Le script PHP va récupérer les données depuis la base de données MySQL. 
    Ensuite les données seront encodées au format JSON et envoyées au système Android. Ensuite, l'application Android va obtenir ces données codées. Il les analysera et les affichera sur l'appareil Android.    
     Dans nos services , on a besoin des informations liées à la base : Url du serveur (localhost dans notre cas ), nom de la base de données , user et le mot de passe pour se connecter à chaque fois . Donc , on crée un fichier db_config.php :

    Ensuite , on crée le script de la connection à la base db_connect.php :

    Maintenant , pour récupérer des données de la base, on utilise les requêtes simple de MySQL et le retour sera sous forme JSON :
    1.  get_all_categories.php : 


    2. - get_all_products.php :


    3. - get_categorie_products.php: 


    4. - add_product.php :

     

    Jusqu'ici , nos services sont prêts à utiliser , vous pouvez ajouter d'autres en inspirant des services précédents .
    N'oubliez de mettre les fichiers php dans un dossier sous C:\wamp\www\ , par exemple sous : C:\wamp\www\tuto.
  1. Tester les webservices :

Il nous reste que de tester les webservices .C'est simple !
On accède à http://localhost:81/tuto/  (pour moi mon serveur est sous localhost:81 ). Vous allez voir tous vos scripts php , y accéder est voir le résultat .
etc..

Dans l'article suivant , on va récupérer les données via nos services avec Android .

Android avec MySQL et PHP : Partie Client



Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.

1 - Android avec MySQL et PHP : Introduction


Bonjour ,dans cette série on va vous montrer comment la communication d'une application Android avec une base de données MySQL se fait en utilisant les services web écrites en PHP .
On va prendre comme exemple une application d'un restaurant : 
  1. Un menu dont on affiche les catégories existants : Pizza , cake , jus etc.. avec une image représentative pour chacune.
  2. Pour chaque catégorie , on affiche la listes des aliments dans une ListView .
  3. Option pour ajouter un nouveau aliment dans la base via l'application .
  4. Autre option pour supprimer un aliment dans une catégorie choisie
Donc , on va voir comment récupérer , ajouter , supprimer des données de la base MySQL via une application Android en utilisant protocole  HTTP .
En faite , la méthode la plus répandue de se connecter à une base de données MySQL à distance à partir d'un appareil Android, est d'utiliser un service.

MySQL est habituellement utilisé avec PHP, donc le moyen le plus simple et le plus évident est d'écrire un script PHP.
Et pour faire des connexions avec le script PHP, nous allons utiliser le protocole HTTP du système Android.
Voila l'architecture de notre application :


Vous pouvez utiliser notre exemple et l'améliorer selon vos besoins .
Pour notre base de données :


Pour les images dans la base , on va insérer les urls  correspondants (à afficher ) . Nous allons voir comment afficher une image à partir de la base .

JSON:

JSON (JavaScript Object Notation)  est une format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript.
Lorsque l'pplication android fait un apple à un service (en php) , le service va se communiquer avec la base MySQL , et il va retourner le résulat sous la forme JSON (compréhensible par Android et facile à analyser  ).

Un message JSON peut comprendre soit un JSONObject ou un JSONArray :


Pour les opérations , on va écrire chaque fonction dans un script PHP.

Le code PHP sera très simple :

  1. se connecter à la base de données
  2. exécuter une requête SQL (qui peut comprendre  avec un bloc WHERE en fonction des données des valeurs POST/GET)
  3. l'envoie  (la résultat) en format JSON

Pour le protocole HTTP ,deux méthodes couramment utilisées pour une requête-réponse entre un client et le serveur sont: GET et POST.
  1.   GET : Demande des données d'une ressource spécifiée (de la base) 
  2.   POST : Soumettre des données vers la base .
Dans la partie Android , l'affichage des données (catégories et aliments) sera dans un ListView et GridView personnalisées avec des images .


Dans l'article suivant , on va commencer à écrire nos scripts  avec PHP et créer  notre base de données .

2 - Android avec MySQL et PHP : Partie Serveur

Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.

[Tutoriel] : Les notifications sous Android


Les notifications servent à afficher des messages dans la barre d'état dans une application Android. L'implementation d'une notification est très simple Lorsqu'elle s'affiche , l'utilsateur peut cliquer sur cette notification qui va le rediriger vers une activité dans notre application .
L'affichage de la notificaton est personnalisée. 
Dans notre cas , on va crée une application Android dont elle a deux bouttons : l'un  pour l'affichage et l'autre pour supprimer la notification .
C'est simple ; C'est parti !

C'est la layout de notre activité : Avec deux bouttons 

Dans l'activité principale :

Comme vous voyez , on va créer deux méthodes : supprimerNotification et ajouterNotification.
A noter que chaque notification a une ID pour l'identifier .


Il nous reste qu'ajoute la permission de vibration lors de la notification:




Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.

Web Service SOAP sous Android [ Partie 2 / 2 ]



Bienvenue, on a vu dans la première partie comment on crée un webservice avec des méthodes qu'on va les appelés avec notre application android .

1. Rappel
Notre webservice a deux méthodes :  
  1.  getAllClients(): retourne une liste des clients 
  2.  getClientsSalary(float a, float b) : retourne la liste des clients dont le salaire est entre a et b (Client.salary)

 2. Projet Android
Notre webservice a deux méthodes , donc on va les appeler via une application android .
On crée un nouveau projet Android (J'utilise Eclipse ADT ).
Après la création du projet , on ajoute la permission INTERNET dans le fichier AndroidManifest.xml.


On a besoin d'une bibliothèque pour consommer les webservices Soap : c'est KSoap2 
SOAP (protocole Simple Object Access) est un protocole léger utilisé pour l'échange d'informations dans un environnement décentralisé. Il a été développé par Microsoft et a été proposée comme une interface standard à l'Internet Engineering Task Force (IETF). Une demande SOAP se compose principalement de trois parties:

  1.   Enveloppe - Il définit un cadre pour décrire ce qui est dans un message et comment le traiter. 
  2.  Règles - Il comprend un ensemble de règles de codage pour exprimer instances de types de données définis par l'application. 
  3.  Convention - Utilisé pour représenter les appels et les réponses de procédure à distance.

Dans ce tutoriel, nous allons apprendre comment envoyer des requêtes SOAP utilisant Android. Pour mettre en œuvre les requêtes SOAP utilisant Android, nous pouvons utiliser la bibliothèque Ksoap2. Ce est une bibliothèque client SOAP léger pour la plate-forme Android.

Pour télecharger la bibliothèque: ksoap2-android-assembly-3.4.0-jar-with-dependencies.jar.
On ajoute cette bibliothèque dans le dossier libs dans notre projet Android.
 Il faut la cocher dans les dépendances du projet .

Revenons à notre webservice . 
Url : http://localhost/tutozonetuto/Service1.asmx
Résultat : Affichage de nos deux méthodes .


 Si on accède à l'une des méthodes , on voit :
La requête: 


La réponse : 



Il y a des informations qu'on va les utiliser dans notre projet (paramètres ):

NAMESPACE = http://tempuri.org/
SOAP_ACTION = http://tempuri.org/getAllClients
METHOD_NAME = getAllClients
URL = http://localhost/tutozonetuto/Service1.asmx

  

On a besoin d'une classe Client qui décrit un objet Client .

On ajoute ce code à notre activité: Pour le moment on va appeler notre webservice et on affiche le résultat dans le logcat.

Lorsqu'on teste notre application , on voit dans le log :

 

  Il nous reste que transformer la réponse en données compréhensible pour notre application afin les exploiter.
Il y des cas ou passe des paramètres à notre méthode , pour le faire il suffit d'ajouter PropertyInfo au requête.

Pour le parsing c'est bientôt.

Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus. 

Web Service SOAP sous Android [ Partie 1 / 2 ]



Bienvenue à tous , dans ce tutoriel on va voir comment créer un webservice SOAP avec C# et comment on va le consommer avec Android.

Un web service permet la communication et l’échange de données entre une application et un système via internet. SOAP (Simple Object Access Protocol) est un protocole réseau permettant de faire des appels de procédures sur une machine distante à l’aide d’un serveur d’application.

On va créer une simple application qui affiche une liste de clients [id,name,salary] , avec une simple recherche (filtrage selon le nom [name] et le salaire [salary]).

1. Environnement du travail
Web service Asp.net [c#]:
  • Visual studio
  • IIS Server  
Android [Java] :

   2. Création , publication et le test du service web SOAP:
 Commençant par la création et la publication du webservice.(Pour plus de details visitez cet article sur codeproject.com) .
On va créer un webservice avec deux methodes :
  1. getAllClients(): retourne une liste des clients
  2. getClientsSalary(float a, float b) : retourne la liste des clients dont le salaire est entre a et b (a< Client.salary
 On va créer une méthode initialisation pour initialiser notre liste des clients (d'objet Client)
  • Exécuter Visual Studio et créer un nouveau application de web service: TutoZoneWebServiceSoap
Création du projet
Arborescence du projet


  •  Dans le fichier Serrvice1.asmx, vous allez trouver une fonction hello World:

  • On va créer notre objet Client (id, name ,salary):

  • Remplaçons maintenant la fonction Hello world par :

  • Testons alors notre web service: Générer  puis  publier.
  •  Voici les étapes de la publication
 
Résultat de la publication

Enfin on publie le webservice pour le tester (Exécuter):
  • On accéde à http://localhost/TutoZoneTuto/ :
Resultat

Si on accede à la methode getAllClients : http://localhost/TutoZoneTuto/Service1.asmx/getAllClients:
 
Retour du fonction

3. Partie Android:  Utilisation du service web SOAP:
On va voir cette partie dans la 2 éme partie de ce tutoriel .

Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.

Introduction aux WebServices en C# .NET


Un webservice est un protocole qui permet à un logiciel d'appeler à distance des fonctions d'un autre logiciel par le web (c'est à dire le protocole HTTP).
Les webservices ne sont pas destinés directement aux utilisateurs du web. Même s'ils utilisent le même moyen de communication par des requêtes HTTP, Ils permettent à des logiciels de discuter entre eux et sont bien souvent invisibles pour l'utilisateur final.
. Ainsi, il est possible de faire communiquer ensemble des applications développées avec des technologies différentes.

Nous utiliserons IIS comme serveur web et implémenterons un webservice en ASP.NET qui sera ensuite consommé dans une Winform cliente.

La configuration utilisée pour ce tutorial est :
- Windows 8.1
- IIS 8.5 avec support de ASP.NET (Internet Information Services)
- Visual Studio .NET 2012

Pour installer IIS  sur Windows


  1. Cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes, puis sur Activer ou désactiver des fonctionnalités de Windows.
  3. Dans la boîte de dialogue Fonctionnalités de Windows, cliquez sur Services Internet (IIS), puis sur OK.



Création d'un projet

Pour bien comprendre comment on crée un webservice avec des des simmples lméthodes (à utiliser ulturiérement), on va créer un nouveau projet  avec visula studio


Création d'un nouveau projet : Application de service Web ASP.NET
Un projet sera crée avec une classe Service1.asmx qui a une seule méthode Hello World.




Notre web service comporte une seule méthode HelloWorld qui retourne une chaine de caractére (string= "Hello World ").Elle est précédée par [WebMethod] pour inqdiquer qu'lle est une méthode web .
Pour tester notrre web service , on génére notre projet , puis publier.


On choisit une application web  à ouvrir (aprés sa création )





 
Le résultat est :


 Maintenant tout bien est configuré. On lance notre application , ou via le navigateur ,on accede au site publié: 
  Le lien va nous citer les méthodes existantes (dans notre cas uniquement helloWorld qui retourne un string ). En cliquant sur la méthode , on va bien le résulat :
 


[Tutoriel J2EE] : Installation de Hibernate avec Eclipse

  Hibernate est un framework (ensemble de bibliothèques, d'outils et de conventions permettant le développement d'applications )permettant de resoudre le problème d'adaptation entre le paradigme objet et les SGBD (système de gestion de base de données).

  #1. Introduction générale:

Pour faire simple, les SGBD sont complexes d'utilisation et contraignant, hibernate permet au programmeur, d'accéder à la base de données en créant des objets, ce qui simplifie grandement la tâche.
Dans cet article , on va voir comment créer créer, configurer et dévlopper avec Hibernate sur Eclipse. On va prendre comme exemple l'insertions et la récupération des données à partir d'une base de données MySQL .
Si vous avez des problémes n'hésitez pas d'ajouter un commentaire. 

  #2. Téléchargement des outils :

  • L’environnement de développement Java EE Eclipse (j'ai choisi Version Indigo 3.7) :http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
  • Un serveur MySQL Wampserver :http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
  • Les dernières librairies Hibernate :http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
  • Le connecteur JDBC mySQL mysql-connector-java (préférez la version « Platform indépendant », dans un zip): http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
  • Apache Tomcat :http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
Après avoir télécharger tous ses outils , installer Wampserver afin de créer notre base de données à utiliser.

  #3. Création de la base de données:

 Pour notre premier exemple on va utiliser une simple table (Food) dans une base tutozonedb:



Le schémas suivant explique bien le fonctionnement du hibernate et son relation avec la base de doonées et les entitées: 

#4. Configuration hibernate avec eclipse:

 Passons à l'installation des prérequis nécessaires sous eclipse.On 

4.1 . Installation de Hibernate synchronizer :

Lancez Eclipse, puis accédez au menu Help -&amp;gt; Install new software, puis (add) ajoutez la source:
 http://hibernatesynch.sourceforge.net/ 
on donnant comme nom: Hibernate synchronizer.
Et on continue l'installation puis redémarrer Eclipse.


4.2 . Installation de Hibernate Tools:

De même , on accède au menu Help -&amp;gt; Install new software, puis ajoutez la source:
 http://download.jboss.org/jbosstools/updates/stable/{nom de la version}/ 
(remplacez {nom de la version} par le nom en minuscules de votre version d’Eclipse( indigo,luna etc..) et en donnant Hibernate Tools comme nom de l'entrée. puis on coche tous les "hibernate tools" et suit l'installation.


Ou bien via le marketplace d'Eclipse , on cherche Hibernate Tools:


 Pour vérifier que Hibernate est bien ajouté  à Eclipse : allez vers menu window -&amp;gt; open perspective -&amp;gt; other  , il faut que tu vois Hibernate parmi la liste :


#5. Création de la première projet java EE et configuration:

5.1 . Configuration du serveur Tomcat:

Après avoir télécharger Tomcat ,  extrayez-le dans le dossier de votre choix.
Puis, dans Eclipse, dans l’onglet « Servers », cliquez sur le lien pour ajouter un nouveau serveur. Si jamais il est absent, clic droit sur la zone, puis New -&amp;gt; Server.
Choisissez le type de serveur , puis terminez le formulaire en configurant le chemin des binaires Tomcat.

Donner le chemin ou vous avez extracté le apache Tomcat :


5.2 . Création du projet java EE:

 Créez votre projet Java EE avec un clic droit dans l’explorateur de projets, puis New -&amp;gt; Dynamic Web Project.


Le nom du projet : HibernateTutoZone

L'exploration du projet donne :


5.3 . Changement du "Project Facet":

5.3.1  . Importation du connecteur JDBC MySQL:

La source de données choisie pour cet article est MySQL. Il est évidemment possible d'en choisir une autre comme Oracle, SQL Server ou même un simple fichier XML pourvu que vous disposiez des drivers JDBC adaptés.
 Il faut d’abord extraire le connecteur mySQL du zip téléchargé. Il suffit de prendre le jar, uniquement (mysql-connector-java-5.1.33-bin.jar) et on le met dans  le dossier « lib » du dossier « WEB-INF » du dossier « WebContent »
 Maintenant on va donc le linker(il doit être inclus dans le Classpath de Tomcat). Allez dans les propriétés du projet, puis dans le « Java Build Path ».

5.3.2  . Configuration du facet JPA:

Il faut désormais passer à la configuration du facet JPA pour le projet. Pour cela, clic droit sur le nom du projet dans l’explorateur de projets à gauche, puis sur Properties. Allez dans la rubrique « Project Facets », puis cochez la ligne JPA et passez la version en 2.0. Allez ensuite terminer la configuration en cliquant sur « Further configuration required.. » 
 Une fois le bouton « New.. » cliqué, entrez un nom pour votre librairie « personnalisée » par exemple hibernatelibraries, et cliquez sur « Add External JARs » en veillant à ce que le nom de votre librairie « personnalisée » soit sélectionné. Extrayez dans le dossier de votre choix (mais situé à l’extérieur du dossier du projet) les librairies contenues dans les dossiers suivants du dossier lib du zip de Hibernate



Il faut avoir : 

 

Une fois les librairies linkées, on va dans les « Project Facets », et on configure la connexion qui sera placée dans le fichier « persistence.xml » :


Puis on clique sur Next :
On sélectionne la version de MySQL JDBC (5.1) dans le l'onglet Name/Type 


 Ensuite on importe la librairie de jdbc :





Maintenant on configure la connection à notre base de données "tutozonedb", et on teste la connection (Il faut que la base de données soit crée)


A la fin on termine la configuration et une fichier persistance.xml sera généré

 Voici qu'est ce on va obtenir si on clique 2 fois sur le fichier persistance.xml


Le champ « Name » est le nom de votre persistence-unit, celle qui sera appelée lors de ce petit morceau de code très utile: 
Persistence.createEntityManagerFactory("Hibernate Tutozone") ;
Le champ « Persistence Provider » est obligatoire pour le bon fonctionnement d’Hibernate. Sa valeur est « org.hibernate.ejb.HibernatePersistence ».
Jusqu'à maintenant , voici le source du fichier :


Maintenant on va créer notre entitée FOOD. Clic droit sur dossier src/ -&amp;gt; new -&amp;gt; JPA Entity. Et on donne le nom de la classe et on ajoute les attributs (Comme dans la table du Bd)
Voila le contenu du Food.java après la génération :
Revenons à la fichier persistance , on ajoute l'entité à mapper :


 Ensuite, on passe à l’onglet « Connection » :
Il faut changer le « Transaction type » sur la valeur « Resource Local ». Le plus pratique est de cliquer sur « Populate from connection.. » et de sélectionner celle qu’on a créée un peu avant.



Le source du fichier persistance.xml , sera changé: 

La dernière chose à faire (enfin, à part tester), est de rajouter le dialecte de la base de données pour Hibernate. Dans mon cas, ce sera « mySQL5 (InnoDB) ». Il faut donc cliquer sur l’onglet « Source » et éditer manuellement le XML pour rajouter une autre ligne:

Une fois terminé, on enregistre le XML, et on peut tester ! 

#6. Tester le projet :

6.1.  Avec Servlet:

 Maintenant, on va tester notre configuration , on va essayer d'ajouter des données à notre base via une servlet .Pour cela , clic droite sur le package , new -&amp;gt; Servlet , et on la donne TestServelt comme nom.
Pour le moment , on va juste tester la connection à la base sans ajouter des données.  On fait une instance d' un EntityManager, et commencer une connexion qui ne fera rien sur la base dans la méthode doGet.

Et on exécute , si vous obtenez une page blanche, aucune erreur 500 alors tout fonctionne bien:


On change doGet  pour ajouter des données à la base , et on ré exécute:

Vérifier votre base maintenant , vous devez voir la nouvelle ligne ajoutée:
 Vous pouvez maintenant créer vos transactions comme vous voulez .

6.2.  Avec classe main java: 

De même , on crée une classe java (Test.java) main ,mais on va récupérer les données de la base cette fois :

Et voilà !


Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.