Sur la route d'Oxiane digressions diverses

LeBlog OXiane

19 jan
2012

Sauvegarder simplement en base de données avec ORMLite sous Android

Bonjour,

Je voudrais vous parler d’une bibliothèque très pratique pour sauvegarder des données dans la base SQLite d’un téléphone Android. Cette bibliothèque s’appelle ORMLite.

Je vous ai déjà parlé d’une autre bibliothèque pratique pour faire un parsing JSON : JacksonPaser.
Les deux bibliothèques peuvent s’associer parfaitement, ce qui offre un bon socle pour commencer un projet Android.

Ormlite supporte les connections JDBC à MySQL, Postgres, H2, SQLite, Derby,
HSQLDB, Microsoft SQL Server.
Mais ce qui nous intéresse ici c’est qu’ORMLite supporte les appels natifs à la base de données SQLite sous Android.

Si vous avez déjà essayé de faire de la sauvegarde en base sous android, vous vous êtes sûrement aperçu combien c’est fastidieux.
Personnellement je ne trouve pas cela très pratique. Je préfère utiliser un ORM (Object Relational Mapping) qui fait un mapping entre mes objets métier et les enregistrements en base de données.

Certes on peut avoir des dégradations de performances, mais au vu du confort apporté au niveau de la programmation, le choix est vite fait.

Installation

Il faudra télécharger 2 fichiers jar, les déposer dans un répertoire lib et les ajouter dans le CLASSPATH.
Vous trouverez les 2 fichiers suivant ici http://ormlite.com/releases/

– ormlite-android-X.XX.jar
– ormlite-core-X.XX.jar
Lire la suite du bllet »

shocq

shocq

19 jan
2012

Jackson : Une librairie pratique pour parser un flux JSON sous android

Bonjour,

Je vais vous parler d’une librairie très pratique dans les projets Android, lorsque vous avez besoin d’interroger des services JSON.

Cette librairie permet de transformer (on dit dé-sérialiser) le flux JSON en objet métier.
On verra à la fin de cet article que l’on peut même faire l’inverse : c’est à dire transformer (dans ce cas on dit sérialiser) un objet métier en flux JSON.

Cette librairie s’appelle JacksonParser. Elle peut s’utiliser sur Android mais aussi dans projet JAVA standard.
Il existe évidemment d’autres librairies mais les avantages de JacksonParser sont :
– sa vélocité
– ses possibilités de configuration
– c’est open-source

Un petit rappel sur ce qu’est JSON:
JSON est un format d’échange de données,
– facile à écrire et à lire
– c’est un format léger
– facilement analysable par un programme

Je vous invite à vous rendre ici : http://jackson.codehaus.org/

et à télécharger
– jackson-core-asl-X.X.X.jar
– jackson-mapper-asl-X.X.X.jar

Une fois ceci fait il faut inclure les 2 fichiers jar dans votre projet et les ajouter au CLASSPATH.

Ensuite je vous conseille de construire vos objets métiers en fonction de la structure du flux JSON que vous lisez.

Voici l’exemple d’un flux JSON

{
	"typeList": "",
	"collabo": [
		{
			"nom": "Abdennadher", "prenom": "Walid"
		},
		{
			"nom": "Hocq", 	"prenom": "Sylvain"
		}

	]
}

Lire la suite du bllet »

shocq

shocq

18 jan
2012

Quand l’implication n’est pas si logique

Je fais généralement attention à ne pas utiliser de jargon dans mes communications, en particulier par mail, mais le jargon se cache parfois où on ne l’attend pas.

J’en ai fais l’expérience hier, un moment où l’on se repasse mentalement tous ses mails des 20 dernières années.

Ainsi, il m’arrive très souvent d’écrire des choses comme :

« préparation du cours => je ne viendrai pas sur paris la semaine prochaine »

J’ai découvert hier que le symbole « => » n’est pas nécessairement compris comme l’implication logique par tout le monde.
Quand on relis ce que j’ai écris en traduisant le « => » comme une simple version plus esthétique de la flèche « -> » ou par « faire » ça devient effectivement peu logique.

« préparation du cours : faire : je ne viendrai pas sur paris la semaine prochaine » ça ne veut rien dire.

En discutant un peu, on se rend compte que certains traduisent ce symbole par « donc, conséquence, … » mais effectivement l’implication logique ça relève plutôt des études informatiques (ou peut-être en philosophie).

Dorénavant, je ferai bien plus attention quand j’écrirai mes mails.

Jean-Francois Lefevre

jflefevre

10 jan
2012

iOS & Modal Partial Curl & SQLite

Pour poursuivre avec mon précédent billet (ici), j’ai eu l’envie de tester SQLite avec iOS.

Qu’est-ce que SQLite ?

En gros, c’est une base de données légère intégrée au programme stockée dans un fichier.

Plus d’informations sur le site officiel et sur wikipedia.

L’intérêt est donc d’avoir peu de données à mettre dans notre base embarquée car une app trop lourde est souvent rédhibitoire pour une installation sur iPhone.

Je conseillerai de ne pas dépasser les 100 ko pour rester cohérent.

Comment fait-on alors ? Lire la suite du bllet »

Manuel François

tHeFeaTuReDMaN

3 jan
2012

Comment avoir un émulateur Android performant?

Bonjour,

Si vous avez déjà essayé de créer une application sans avoir de machine android physique, vous avez certainement dû éprouver quelques frustrations face à la lenteur de l’émulateur android proposé de base avec le SDK Android.
Si c’est vrai pour faire du développement sur Android 2.x, ça l’est encore plus sur tablette.
L’émulateur HoneyComb est inutilisable, ça rame énormément même avec un corei7, et 8Go de RAM…

En fait le problème c’est que l’émulateur reproduit le comportement d’un processeur ARM, or les PC ont des architectures X86. Sur Apple il n’y a pas de problème car l’iPhone et l’iMac possèdent la même architecture, donc pas besoin de reproduire le comportement du processeur puisque que c’est le même. On parle dans ce cas de simulateur et non plus d’émulateur.
Définition et comparaison wikipédia ici : http://fr.wikipedia.org/wiki/%C3%89mulation.

Heureusement il existe un portage d’android, vers des architectures X86.

Ainsi il est possible d’installer android directement sur un PC avec des archi X86. Sur le site ont retrouve les versions d’android 2.3, 3.0 et même 4.0 en développement.
Chacune de ces versions est déclinée en plusieurs types d’archi : eeepc, AMD brazos, asus laptop, tega v2.

Le but pour nous, c’est d’avoir l’équivalent d’un émulateur HoneyComb, on va donc installer une de ces versions sur une machine virtuelle. On utilisera VirtualBox :
https://www.virtualbox.org/wiki/Downloads

Voilà donc comment procéder pour installer une machine virtuelle qui tourne sous android.

1. Installer VirtualBox

2. Créer une machine virtuelle :

On lui configurera 1Go de RAM, un disque dur (2ou 3 Go devraient suffire), une mémoire video de 8mo(c’est la valeur par défaut), et une carte réseau de type PCnet-FAST III avec un accès par pont.

3. Je vous conseille, si vous pouvez, d’utiliser 2 souris

(dont une dédiée à la machine virtuelle). En effet j’ai l’impression que la gestion de la souris et moins bien gérée que pour les autres systèmes…
Dans l’onglet USB, ajoutez un filtre depuis un périphérique et ajoutez-lui une des 2 souris.

4. Ajouter l’iso que vous avez télécharger depuis le site Android-X86,

dans le lecteur CD de la machine virtuelle.
https://www.virtualbox.org/wiki/Downloads
Je vous conseille de prendre la version eeepc. Dans mon cas pour avoir un HoneyComb, j’ai pris la version : android-x86-3.2-RC2-eeepc.iso

5. Démarrer la machine,

lancer l’installation et suivre les étapes.

Personnellement j’ai formaté le disque en deux partitions, comme sur la plupart des téléphones. Et j’ai créé une carte SD virtuelle comme proposé par l’outil à la dernière étape.

6. A la fin de l’installation, avant de redémarrer, pensez à éjecter l’ISO du lecteur CD.

7. Vous remarquerez que le système démarre rapidement et qu’il est super fluide

. Il est même plus fluide que sur n’importe quelle tablette !!!

8. Il faudra configurer le réseau manuellement.

Pour cela faire un ALT+F1, pour afficher un terminal avec une console.
Récupérer l’adresse IP de votre DNS, à l’aide de la commande

ipconfig /all

sur une commande DOS sous windows.
Vérifiez que vous avez bien une interface eth0 à l’aide de la commande

# netcfg

Si ce n’est pas le cas, alors, il y a un problème dans la configuration de la carte réseau de votre machine virtuelle.

Ensuite taper ces trois commandes (en remplaçant YOUR_DNS_SERVER_IP):

# netcfg eth0 up
# dhcpcd
# setprop net.dns1 YOUR_DNS_SERVER_IP

La combinaison de touche ALT+F7 permet de retrouver l’interface graphique. Et l’accès Internet devrait fonctionner.

Les limitations:

On a quand même quelques contraintes avec cet émulateur.
Certaines ne sont pas très gênantes : on a un clavier qwerty.
D’autres le sont plus : on ne peut pas simuler la rotation de l’écran, c’est vraiment gênant surtout quand on connaît le système de destruction, re-construction d’une activity.
Sans la gestion de l’orientation, on a pas de moyen facile de tester si on a bien géré le cycle de vie…
Et entre autres, on ne peut pas simuler un GPS, ni des appels téléphoniques.

On voit bien que même avec cette solution, il est quand même préférable d’utiliser un appareil physique.

Et si Google nous proposait un simulateur android x86, ce ne serait pas une bonne idée ? … Si c’était le cas, ce serat sûrement mieux intégré qu’une VirtualBox, et on n’aurait pas nécessairement besoin d’une tablette par développeur pour faire des applications HoneyComb ou IceCreamSandwitch.
En plus, rappelez-vous, quand on créé un device Android Virtuelle (AVD), depuis le SDK Tool, Google a prévu un champ pour choisir l’architecture. Ce champ s’appelle CPU/ABI mais on a toujours qu’un seul choix possible…
On peut espérer que Google nous dira « Coming Soon ! » car Intel monte un prototype de smartphone androidX86 en partenariat avec Google…

http://www.01net.com/editorial/551324/intel-montre-un-prototype-de-smartphone-android-x86-sous-medfield/

http://www.frandroid.com/actualites-generales/88941_lg-presentera-au-ces-le-premier-smartphone-android-avec-un-processeur-intel/

shocq

shocq