Android News

Aller au contenu | Aller au menu | Aller à la recherche

lundi 15 juin 2009

Tests unitaires sous Eclipse avec le plugin Android

Lorsqu’on travaille avec le plugin Android pour Eclipse, le lancement d’une configuration de type JUnit échoue avec un message qui ne vous aidera pas vraiment :

junitinternal

Cela est dû à l’inclusion du jar android dans le classpath ; ce jar contenant sa propre version de JUnit destinée à être utilisée dans un système Android, cela explique alors cette erreur (quoique …).

Dans la fenêtre «Run configurations», onglet «Classpath», vous trouverez une ligne «Android 1.5» que vous pouvez supprimer. Dorénavant les tests unitaires seront lancés avec une version standard de JUnit.

android15entry

Pour éviter cette manipulation à chaque fois qu’une configuration de test est créée, vous avez aussi la possibilité d’utiliser TestNG. Ainsi vous n’aurez plus de conflit avec le jar d’Android (bien entendu il s’agit d’utiliser les classes propres à TestNG et pas le support de JUnit). Le support de TestNG n’est pas intégré par défaut dans Eclipse, il existe pour cela un plugin.

vendredi 12 juin 2009

Binding JSON/Javabeans avec Jackson

Nous avions déjà vu comment sérialiser des objets en XML en utilisant des annotations, il est également possible de sérialiser/désérialiser des Javabeans en JSON en quelques lignes avec Jackson. Nous pouvons isoler ces lignes de code dans une classe JsonSerializer :

public class JsonSerializer implements Serializer
{
    private ObjectMapper om = new ObjectMapper();

    public void serialize(OutputStream os, Object o) throws IOException
    {
        serialize(new OutputStreamWriter(os), o);
    }

    public void serialize(Writer writer, Object o) throws IOException
    {
        try
        {
            om.writeValue(writer, o);
        } catch (JsonMappingException e)
        {
            System.out.println(e.getMessage());
        }
    }

    public <T> T deserialize(Reader reader, Class<T> clazz) throws IOException
    {
        return om.readValue(reader, clazz);
    }
}

Maintenant, dans un Service ou un Adapter Android, nous pouvons lire/écrire nos Javabeans dans des flux JSON :

JsonSerializer js = new JsonSerializer();

// exemple de sérialisation

js.serialize(flux, new Person("Florent", "Cappelle")
            {{
                    setTels(Arrays.<Tel>asList(new Tel("012345678", Tel.HOME_LANDLINE)));
                    setTels(Arrays.<Tel>asList(new Tel("062345678", Tel.MOBILE_LINE)));
                }}

);

// désérialisation

Person result = js.deserialize(reader, Person.class);

Le mécanisme de sérialisation utilise les noms des getters et les valeurs qu’ils retournent pour générer le flux JSON. Les collections et tableaux sont convertis en leurs équivalents en JSON, ce qui donne par exemple :

{“adresses”:[],”emails”:[], “firstname”:”Florent”, name:”Cappelle”, “tels”:[“number”:”0612345678”, “type”:1]}

Il est possible d’ignorer certains getters en les annotant avec @JsonIgnore et il existe d’autres annotations pour adapter vos Javabeans avec un format JSON prédéfini.

Jackson est donc un choix pertinent pour la stack de développement Google étant donné qu’il fonctionne aussi sur Google App Engine (sans avoir à le modifier contrairement à XStream).

À noter aussi que Jackson fournit des providers pour JAX-RS ainsi qu’une API bas niveau (et donc plus rapide).

mercredi 8 avril 2009

Android Windows Mobile : Peuvent-ils au moins partager un layout ?

Pour ceux qui suivent un peu l'actualité Windows Mobile, certains ont déjà pu apercevoir brièvement le nouveau Layout phare de Windows Mobile 6.5 : une structure de menus en nids d'abeille.

Peu de temps après, cette structure était plus ou moins abandonnée (allégée en fait) pour des raisons plus ou moins discutables. En effet, la structure en nid d'abeille est plus qu'intéressante de par ses propriétés mathématiques.

windo.png

Pourrait-on voir ce Layout débarquer bientôt sur Android ? C'est fort possible...

Lire la suite...

Faire fonctionner Maps et GPS sous Android

Lors du Bar Camp Android qui s'est tenu le samedi 28 Mars à la Cantine , Tarik Filali Ansary (SFEIR) a animé un atelier sur l’utilisation des MAPS et du GPS sous Android.   Voici comme promis donc, la présentation ainsi que les codes sources des différents tutoriaux présentés.   Au sommaire :  

  1. Accès au données GPS
  2. Gestion du changement de localisation
  3. Utilisation du GeoCoder
  4. Utilisation d’une MAP Activity
  5. Utilisation du Zoom sur une MAP
  6. Création de l’application Where Am i ?

  Enjoy Maps_GPS_src Maps & GPS

mercredi 1 avril 2009

Prise en main d'Android

Lors du Bar Camp Android qui s'est tenu le samedi 28 Mars à la Cantine , j'ai eu l'occasion d'animer plusieurs sessions qui avaient pour objectif de sensibiliser l'audience à cette nouvelle plateforme. Pour ceux et celles qui n'ont pas pu assister aux ateliers, voici les différents supports
Présentation d'Android
Installation de l'environnement de développement
Les loups ou mes chèvres

lundi 30 mars 2009

Quatre blocks d'une application Android

Je vous ai promis, les slides et les codes sources sont disponibles maintenant.

4blocks d'une application Android

src illustration