Initiation à Parse – stocker et accéder à des données

Salut à toutes et à tous, avec ce tuto, vous allez apprendre à stocker des données sur Parse et à y accéder.

Ce tuto n’est bien entendu pas exhaustif mais à pour but de vous familiariser avec Parse. Il se base essentiellement sur le guide de démarrage et la documentation qui sont très ‘developer-friendly’ (mais uniquement en anglais). Donc si tu es à l’aise avec l’anglais, saute directement sur leur doc. Sinon, c’est parti!

 

1 – Le setup

Rien de sorcier, la création de compte est simple (via email ou facebook)

Une fois connecté, sur le dashboard tu créés une app en cliquant sur ‘create a new app’

tuto_parse01

Puis comme le suggère leur kit de démarrage (quickstart guide) tu choisis successivement data> mobile> android> native(java)> new project

A partir de là, tu installes leur SDK, tu connectes l’application à Parse et puis ca y est ton app est connecté à Parse. Il ne te reste plus qu’à faire un test en créant un object parse que tu lies à un bouton. Normalement, il n’y a pas de difficultés particulièrement dans la mesure où le tuto d’installation de Parse guide très bien l’utilisateur.

Regardons maintenant plus en détail

 

2 – Stocker un objet sur le serveur de Parse

Tous les objects que tu vas stocker sur Parse sont des ParseObjects.

La particularité c’est qu’il n’est pas nécessaire de déclarer l’object en amont pour pouvoir en créer un. Dans ton code lorsque tu voudras sauvegarder une donnée sur Parse voilà ce que tu feras :

ParseObject gameScore = new ParseObject("GameScore");

gameScore.put("score", 1337);

gameScore.put("playerName", "Sean Plott");

gameScore.put("cheatMode", false);

gameScore.saveInBackground();

 

Là par exemple, je viens de créer un object Parse qui s’appelle gameScore de la classe GameScore et qui possède les arguments ‘score’ (integer), ‘playerName’ (String), ‘cheatMode’ (boolean) et dont les valeurs respectives sont 1337, Sean Plott, false.

Une fois l’object créée, la méthode saveInBackground() envoit l’objet dans le cloud de Parse. Et ça y est la donnée est stockée dans les serveurs de Parse ! Magique!

 

Maintenant vérifions que la donnée se trouve bien sur le serveur. Depuis l’interface web de Parse, choisis ton projet et clic sur le bouton Core (icône atomique sur la gauche du menu principale)

tuto_parse02

puis dans le menu de gauche clic sur l’onglet Data.

tuto_parse03

Là, tu y verras les classes d’objet que Parse a stocké et les entrées. La prise en main est là aussi très simple est intuitive.

A chaque fois qu’un nouvel objet est créé, Parse créé et spécifie automatiquement les 3 champs objectId, createdAt et updateAt en plus de ceux envoyés par ton app (ici: score, playerName, cheatMode,)

Pour stocker un objet sur le serveur lorsque l’utilisateur n’a plus de connection internet, au lieu d’utiliser saveInBackground(), il faudra utiliser saveEventually().

 

3 – Récupérer une donnée depuis Parse

La récupération depuis Parse d’une donnée se fait à l’aide de l’object ParseQuery et de sa méthode getQuery() . Donc pour récupérer des entrées de l’objet GameScore, il faudra écrire:

ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore");

 

Ensuite si tu connais précisement l’id de l’entrée il suffit de mettre ceci

query.getInBackground("xWMyZ4YEGZ", new GetCallback<ParseObject>() {

public void done(ParseObject object, ParseException e) {

if (e == null) { // object will be your game score } else { // something went wrong } } });

 

Cela permet donc de récupérer aisément tout l’objet. Pour récupérer, une des valeurs de l’objet ce n’est pas bien plus compliqué. Il suffit d’utiliser une des méthodes get() correspondantes.


int score = gameScore.getInt("score");

String playerName = gameScore.getString("playerName");

boolean cheatMode = gameScore.getBoolean("cheatMode");

String objectId = gameScore.getObjectId();

Date updatedAt = gameScore.getUpdatedAt();

Date createdAt = gameScore.getCreatedAt();

 

4 – créer une sous-classe de ParseObject

Nous avons vu dans la partie 2 que l’on pouvait stocker directement des ParseObjects sans les déclarer. Cependant il est fort probable qu’à l’usage vous allez plutôt vouloir créer des classes d’objets. Voyons comment nous devons procéder.

1- on crée une sous-classe de ParseObject en y rajoutant au début l’annotation @ParseClassName et sans oublier au moins un constructeur par défaut.


@ParseClassName("Armure")

public class ParseArmure extends ParseObject{}

la valeur de ParseClassName doit être la valeur que vous devez passer dans le constructeur de ParseObject. Cela permettra d’éviter de refaire incessamment des références à cette valeur. (comme c’est le cas dans la partie 2 de ce tuto)

2- Il faut maintenant informer Parse que vous avez créé une sous-classe de ParseObject et que vous allez l’utiliser. Pour cela, dans le onCreate() de l’activité principale vous allez mettre cette instruction pour chaque sous-classe de ParseObject que vous avez créé.

ParseObject.registerSubclass(Armor.class);

 

5 – accesseur, mutateur

Comme pour tout objet java, vous allez pouvoir créer vos getters and setters.


// Armure.java

@ParseClassName("Armure")

public class Armor extends ParseObject {

    public String getDisplayName() {

         return getString("displayName");

    }

    public void setDisplayName(String value) {

         put("displayName", value);

    }

}

 

 

Voilà pour cette petite initiation à Parse! Ils restent encore beaucoup de choses à découvrir. Mais avec ce premier tuto, vous avez de quoi vous faire la main assez rapidement. 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *