Créateur d'applications Android en ligne en Français

Votre profil
Se déconnecter
Créateur d
Créateur d
Créateur d
Créateur d
Créateur d
alt_image_de_flag
Make me Droid

Publicité
Sources de données JSON
Certains écrans ou éléments graphiques dans l'éditeur peuvent et/ou doivent être associés à une source de données, qui est leur source de contenu.

Par exemple, l'écran liste dynamique a besoin d'une source de données qui lui fournisse une liste d'éléments, et cette liste est alors convertie et affichée sur l'écran. Mais ces sources peuvent aussi être utilisées à bien d'autres endroits dans vos applications.

Parmi les différents types de sources de données possibles, le format JSON peut-être utilisé dans Make me Droid.

Si vous possédez un site internet et avez des compétences techniques, ce format vous permer de contrôler totalement le contenu de vos applications à distance. Sinon, vous pouvez également trouver du JSON partout sur internet, et l'utiliser dans votre application.
JSON, c'est quoi?
C'est un format permettant d'organiser des informations et de les regrouper. Ceci facilite l'échange de données entre les sites internet, les mobiles, etc.

Les informations sont soit des objets contenant des couples "un identifiant" + "une valeur", soit des listes (un tableau de valeurs). Chaque "valeur" peut être une chaîne de caractères, un nombre, un sous-objet, ou une liste.

Prenons un exemple:
		{
			"nom" : "doe",
			"prenom" : "john",
			"adresses" : [
				{"rue" : "rue st germain", "ville" : "paris"},
				{"rue" : "chemin des ponts", "ville" : "cambrais"}
			]
		}
	
Dans cet exemple, notre JSON est un objet (notation {...}) contenant un nom, un prénom, et une liste (notation [...]) d'adresses.
Pourquoi utiliser du JSON?
De nos jours, de nombreux sites internet (Youtube, Flickr, Soundcloud, Facebook, Twitter, etc) fournissent à leurs utilisateurs des API permettant de récupérer du contenu de leurs sites au format JSON.

Ce contenu peut être des listes de photos, de commentaires, des informations sur un utilisateur, un nombre de sons dans une bibliothèque, un nombre de "j'aime" sur un article. Et ces API JSON vous permettent de récupérer toutes ces informations dynamiquement!

Coté Make me Droid, nous vous offrons la possibilité de facilement lire ce contenu, et de le convertir en mots-clés, que vous utilisez alors sur vos écrans.
Comment démarrer?
Si vous créez votre propre JSON, fournissez l'URL en tant que source de données quelque part, dans votre application.

Si vous souhaitez utiliser une API existante fournie par exemple par Youtube, Flickr ou autre site populaire, il vous faudra généralement être inscrit sur ces sites, dans leur partie développeurs, et obtenir une clé d'API. Cette clé leur sert simplement à identifier qui fait appel à l'API.

Ensuite, il vous faut comprendre les API disponibles, dans la documentation de chaque site. Par exemple, Flickr propose un grand nombre d'API sur son site, voir la documentation Flickr. Parmi elles, l'API flickr.people.getPublicPhotos permet de récupérer la liste des photos d'un utilisateur. L'URL pour appeler ce service sera alors:

http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=VOTRE_CLE_D_API&user_id=ID_DE_L_UTILISATEUR&format=json

En retour, vous obtenez par exemple le contenu suivant:
		jsonFlickrApi({
			"photos" : {
				"page":1,
				"pages":4,
				"perpage":100,
				"total":"340",
				"photo": [
					{"id":"10175341775", "title":"wooden planks ... [explored]"},
					{"id":"10158609995", "title":"29 - what a strange house number [explored]"}
				]
			}
		}
	
Dans votre application, vous pouvez alors, par exemple:
  • Utiliser l'URL en tant que source de données pour une galerie horizontale. La galerie ayant besoin d'une liste, vous devrez fournir dans Champ liste la valeur photos->photo, indiquant ainsi que le champ "photo" de l'objet "photos" du contenu JSON sert de base à votre galerie.
  • Dans votre galerie, vous pouvez alors utiliser un élément texte avec le mot-clé $[title].
  • Vous obtiendrez alors une galerie, affichant sur chaque page le titre de la photo.
  • Avec un peu d'entrainement, vous pourrez ensuite afficher les photos, les commentaires associés à chaque photo, le nombre de "j'aime", ouvrir le site web de l'auteur lors d'un clic, etc.
Notation pour accéder aux mots-clés
Voir la documentation sur les sources de données.
Ce n'est pas simple! J'ai besoin d'aide...
Le contenu dynamique JSON est très puissant, et rend votre application dynamique donc attractive. Mais il n'est pas forcément évident de tout comprendre au début.
  • Renseignez-vous sur les forums et pages de documentation des sites qui fournissent des API JSON.
  • Recherchez des exemples sur votre moteur de recherche préféré.
  • Faites vos essais dans votre application.
  • Cherchez des réponses et posez vos questions sur notre forum, en nous précisant bien ce que vous souhaitez faire, ce que vous avez essayé, ce qui ne fonctionne pas, ainsi que le nom de votre application et des écrans concernés, pour que nous puissions vous aider.
Lister du contenu par morceaux (avancé)
Depuis votre site internet, vous pouvez mettre à disposition de l'application une page qui retourne du JSON et qui retourne des valeurs par blocs, par exemple 10 par 10, si vous avez un grand nombre d'informations.

L'exemple qui suit est en PHP uniquement, mais libre à vous bien sur de générer les données JSON de la manière que vous voulez.

Format d'appel à votre page web (ce que l'application vous enverra):
  • Format des paramètres: méthode GET (paramètres passés dans l'URL).
  • Paramètre "si" (nombre): Position au sein de votre liste globale à partir de laquelle commencer à retourner les éléments. Le premier élément est à l'index 0. Les utilisateurs faisant défiler les éléments, votre page web est appellée à plusieurs reprises et demande les éléments à partir de positions différentes, afin de compléter la liste.
  • Paramètre "cnt" (nombre): Nombre d'éléments à retourner.
  • Paramètre "s" (caractères): Mot(s)-clé(s) recherché(s) par l'utilisateur. Filtrez les résultats retournés en fonction de cette recherche.
  • Paramètre "sort": Champ sur lequel trier les résultats.
  • Paramètre "sortdir": Les résultats doivent être triés par order croissant (sortdir=0) ou décroissant (sortdir=1).

Format de la structure à retourner:
  • La chaîne de caractères au format JSON, comportant les éléments suivants:
    • totalItems: Le nombre total d'éléments disponibles pour la liste, dans votre base de données ou tableau complet.
    • itemCount: Le nombre d'éléments retournés dans cette structure JSON.
    • items: Une liste de sous-éléments représentant des couples "identifiant":"valeur", ou tout autre contenu JSON de votre choix. Ces identifiants sont utilisés dans les écrans de l'éditeur via $[identifiant].
Exemple de retour:

{"items":[{"titre":"Premier titre", "image":"http:\/\/monserveur.com\/img.jpg"}, {"titre":"Second titre", "image":"http:\/\/monserveur.com\/img2.jpg"}], "totalItems":3, "itemCount":2}


Exemple de code source en PHP:
Le tableau sera probablement remplacé par une base de données dans une situation réelle.

<?

$si = $_GET["si"];
$cnt = $_GET["cnt"];

$outputArray["items"] = array();

$items = array(
    array("titre"=>"Premier titre", "image"=>"http://monserveur.com/img.jpg"),
    array("titre"=>"Second titre", "image"=>"http://monserveur.com/img2.jpg"),
    array("titre"=>"Troisième titre", "image"=>"http://monserveur.com/img3.jpg")
);

$pos = 0;
for ($i=$si;$i<count($items) && $pos<$cnt;$i++)
{
    $outputArray["items"][$pos] = $items[$i];
    $pos++;
}

$outputArray["totalItems"] = count($items);
$outputArray["itemCount"] = min(count($items), count($outputArray["items"]));

// TODO: Gérez également le tri des résultats.

$encodedJSONList = json_encode($outputArray);

print_r($encodedJSONList);

?>

Exemple de code PHP accédant à une base de données MySQL:

Télécharger