RSS Feed

MonBonCoin – l’aventure arrive à sa fin ?

28 November 2011 par SeB 15 commentaires »

L’aventure MonBonCoin a commencé il y a presque deux ans. Au départ, réalisée pour m’amuser et me faire la main sur le développement Android, je me suis vite rendu-compte que beaucoup de personnes était intéressées pour l’utiliser. Récemment, le petit MonBonCoin Mini avait rejoint le projet et il restait encore pas mal d’évolutions à venir. Cette application m’a permis d’apprendre énormément sur le développement Android mais aussi sur la publication d’applications mobiles.

Malheureusement, suite à différents événements, le site officiel a demandé le retrait de toutes les applications relatives à leur site de l’Android Market. C’est donc pourquoi, je vous annonce l’arrêt des mises à jours. Je trouve ça dommage (pour tout le monde). Je connais des personnes qui sont devenues accroc au site rien qu’à cause de l’application Android. :-)

Il est temps pour moi de passer à d’autres projets (il y en a des nombreux dans les cartons). Je vous dis donc à très bientôt !

PS : Si quelqu’un aurait une solution pour débloquer la situation, qu’il n’hésite pas à me contacter par mail.

 

MonBonCoin Mini – Le Bon Coin sur Android en toute simplicité

19 July 2011 par SeB 3 commentaires »

MonBonCoin est disponible sur l’Android Market depuis plus d’un an. L’application a énormément évolué et il est temps de faire le point.

Au départ, l’application était extrêmement simple : une localisation automatique, un champ de recherche et rien d’autre ! Il n’était même pas prévu de faire des mises à jours. Les utilisateurs étant au rendez-vous, les nouvelles fonctionnalités ont suivi.

Alors qu’est-ce que MonBonCoin ? C’est une application qui permet de consulter les petites annonces du site leboncoin.fr en améliorant l’expérience utilisateur sur le téléphone. Pour rappel, ce n’est pas l’application officielle du site. Elle reprend les couleurs du site pour ne dépayser personne. ;-)

Aujourd’hui, les fonctionnalités proposées sont :

  • Localisation (GPS ou réseau) optionnelle
  • Nombreux critères de recherche (régions, catégories, prix, titres, urgent, type de vendeur, filtres avancés, etc…)
  • Recherche sur les offres et les demandes
  • Tri des annonces (date ou prix)
  • Indicateur des annonces déjà lues
  • Gestion des recherches favorites avec des alertes (système de notifications)
  • Contacter le vendeur (mail, téléphone ou SMS)
  • Visualiser le lieu de l’annonce sur une carte
  • Partager l’annonce (mail, SMS, twitter, etc…)
  • Visualiser l’annonce originale dans un navigateur
  • Nombreux paramètres de l’application

Il reste encore quelques fonctionnalités à ajouter mais la version actuelle commence à être complète et stable. Merci à tous les utilisateurs sans qui l’application ne serait jamais devenue ce qu’elle est aujourd’hui.

Etant toujours à l’écoute des utilisateurs, je vous propose de me contacter sur mon site pour m’indiquer :

  • ce que vous aimez
  • ce que vous n’aimez pas
  • ce que vous souhaitez

Tout ceci afin de définir à quoi ressemblera la prochaine version majeure de MonBonCoin. En attendant, l’application actuelle continuera d’évoluer et une version alternative est dès à présent disponible : MonBonCoin Mini !

Cette version “mini” n’a rien à envier à la version classique. Certains utilisateurs étaient gênés par le fait de ne pas pouvoir installer l’application sur la carte SD (ce qui est impossible avec le service d’alertes), alors que d’autres n’approuvaient pas les autorisations demandées. Afin de répondre à toutes ces exigences, MonBonCoin Mini nécessite un minimum de droits tout en permettant un maximum de fonctionnalités. Vous retrouverez donc toutes les fonctionnalités de MonBonCoin sauf :

  • La localisation par GPS ou réseau
  • Contacter le vendeur par téléphone ou SMS
  • Les alertes de nouvelles annonces

Si vous appréciez cette application, n’hésitez pas à mettre une bonne note sur l’Android Market afin d’améliorer sa visibilité et surtout d’en parler autour de vous ! :-)

 

Nexus S – 5 jours plus tard

23 March 2011 par SeB 7 commentaires »

Après plus d’un an et demi de bons et loyaux services, mon HTC Hero mérite bien sa retraite. :-) Le titre de la note ne laisse aucune surprise sur son remplaçant : le Nexus S !

Ceux qui me connaissent seront sûrement surpris du choix puisque que je suis devenu fan des téléphones HTC. De plus, je trouve que les Samsung font un peu trop plastiques. Cependant, je voulais changer et surtout avoir un Google Dev Phone. Histoire d’être à jour régulièrement avec une ROM vanilla sans trop chercher et bidouiller. ;-)

Avant l’achat, j’étais déjà conscient des défauts de ce téléphone et de ce qui allait me manquer mais j’y reviendrai plus bas… En revanche, j’ai été agréablement surpris de la finition. Même si le téléphone fait plastoc, il le fait moins que ce que je m’attendais.

Installation

Ma toute première intention a été de vouloir rooter le Nexus S. Je me suis un peu battu avec les drivers mais l’opération se fait assez facilement. La suite de l’installation reste de l’Android classique.

J’ai tout de même eu un souci. J’avais au préalable sauvegardé toutes mes données de mon HTC Hero avec Titanium Backup pour les restaurer sur le Nexus S. La restauration des MMS rend impossible l’utilisation de l’application Message (passage de Eclair à Gingerbread difficile ?). Du coup, j’ai pu récupérer tous mes SMS mais pas les MMS. :-(

Défauts

  • Pas de LED de notification et je n’ai pas encore compris comment fonctionnait NoLED. Il est possible également d’installer un kernel personnalisé afin d’utiliser BLN pour se servir des boutons rétro-éclairés comme notification.
  • Pas de HTC Sense :
    • Widget météo moins sympa : il faut que je teste MIUI Digital Weather Clock Widget
    • Widget calendrier pitoyable : à remplacer par Smooth Calendar ou Android Agenda Widget
    • Pas de compteur de messages non lus sur les raccourcis Messages et E-Mail
    • Aspect visuel des SMS pas terrible
    • Délai de récupération des E-Mails très réduit
    • Téléchargement des pièces jointes des E-Mail chaotique (voir impossible)
    • Pas de Widget Favoris pour les contacts et les pages web
    • Pas de Polite Ringer : je vais devoir ajouter de nouvelles fonctionnalités dans I’m a Superphone
    • Et sûrement pleins d’autres encore… :-/
    • Le bouton zoom qui s’affiche tout le temps dans le navigateur
    • Le clavier

Points forts

  • Le téléphone est ultra réactif
  • Les pages web se téléchargent et s’affichent plutôt rapidement
  • Les listes des contacts et des SMS s’affiche rapidement
  • La batterie semble bien tenir la charge. Je me demande si je dois vraiment utiliser Locale ou Juice Defender
  • Le mode paysage pour gaucher est là !
  • Le clavier plus réactif

Applications

Je n’ai pas encore testé de nouvelles applications.

Le mot de la fin

Ce n’est pas le téléphone high-tech que tout le monde attend en 2011. Néanmoins, je trouve qu’il a un aspect esthétique plutôt sympa (pour un Samsung). Je regrette beaucoup HTC Sense mais je pense que c’est une question d’habitude. Reste à savoir combien de temps je vais tenir sans installer une ROM personnalisée et donc perdre le premier intérêt d’avoir un Google Dev Phone (à savoir les mises à jour officielles régulières)…

 

xBill débarque sur Android

12 January 2011 par SeB 1 commentaire »

Connaissez-vous le fameux jeu xBill ? C’est un jeu assez simple où il faut empêcher de petits personnages, nommés Bill, d’installer un virus sur des ordinateurs. Ce jeu tourne sous Android maintenant. Et vous pouvez dès à présent écraser les Bill avec vos doigts ! ;-)

Ça fait plus d’un an que j’ai réalisé ce portage mais je n’avais jamais pris le temps de le publier. Après trois réécritures complètes du code, je me suis enfin décidé à le mettre sur l’Android Market. J’espère qu’il vous plaira. N’hésitez pas à me faire part de vos retours ou vos suggestions.

Le jeu idéal pour se défouler sur un bouc émissaire ! :-P

 

Au coeur du système Android – permettre l’installation sur la carte mémoire avec Froyo 2.2

3 November 2010 par SeB Pas de commentaire »

Continuons le tour du système Android avec un sixième billet dans la série sur Au coeur du système Android.

Introduction

L’une des grandes nouveautés apportées avec la version Froyo 2.2 est la possibilité d’installer les applications sur la carte mémoire plutôt que dans la mémoire interne de l’appareil. Cette fonctionnalité permet de ne plus saturer la mémoire du téléphone. Pour installer une application sur la carte mémoire, il faut que les développeurs l’autorisent. Une mise à jour des applications est donc nécessaire pour ajouter ce comportement.

Solution

Pour que les utilisateurs puissent installer vos applications sur la carte mémoire, il faut donc les déclarer comme installables sur ce support. Ceci ce fait dans le fichier AndroidManifest.xml en y modifiant la déclaration du tag suivant :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 android:installLocation="auto"
 ...>

L’attribut installLocation peut prendre les valeurs auto, preferExternal ou internalOnly. Attention, cette balise n’est disponible que depuis Android 2.2. Alors, si vous développez une application compatible avec Android 1.5 il faut modifier la configuration du SDK dans le fichier AndroidManifest.xm comme ceci :

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />

Prenez garde à toujours utiliser du code compatible avec l’API 3 (ie. Android 1.5).

Il n’est pas recommandé d’installer des applications sur la carte mémoire si elle utilise des fonctionnalités telles que les services, les alertes, les IME, les papiers peints animés, les widgets, etc…

Conclusion

Après une mise à jour de votre application sur l’Android Market, vos utilisateurs pourront la déplacer sur la carte mémoire.

 

Au coeur du système Android – rendre visible son application sur l’Android Market pour les HTC Wildfire

11 October 2010 par SeB Pas de commentaire »

Continuons le tour du système Android avec un cinquième billet dans la série sur Au coeur du système Android.

Introduction

Toutes les applications que j’ai pu réaliser sont compatibles avec Android 1.5 et supérieur. Or de nombreux utilisateurs, possédant un HTC Widlfire,m’ont signalé qu’ils ne les voyaient sur l’Android Market. Après quelques recherches, je me suis rendu compte que ce téléphone a un écran de taille réduite qui restreint l’accès aux applications sur le Market.

Solution

Pour que les HTC Wildfire puissent voir vos applications sur l’Android Market, il faut donc les déclarer comme compatibles avec les téléphones ayant un écran de taille réduite. Ceci ce fait dans le fichier AndroidManifest.xml en y ajoutant les lignes suivantes :

<supports-screens android:smallScreens="true"
 android:normalScreens="true"
 android:anyDensity="true"
 android:largeScreens="true"
 android:resizeable="true" />

Attention, cette balise n’est disponible que depuis Android 1.6. Alors, si vous développez une application compatible avec Android 1.5 il faut modifier la configuration du SDK dans le fichier AndroidManifest.xm comme ceci :

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />

Prenez garde à toujours utiliser du code compatible avec l’API 3 (ie. Android 1.5).

Conclusion

Après une mise à jour de votre application sur l’Android Market, elle sera visible des HTC Wildfire.

 

Java – impossible de supprimer des éléments dans une liste

2 September 2010 par SeB 3 commentaires »

Parfois, le Java peut nous rendre quelque peu perplexe. Prenons par exemple le code suivant :

String s[] = {"1","2","3","4"};
List<String> l = Arrays.asList(s);
l.remove("1");

Ces lignes de code Java semblent correctes. Pourtant, à l’exécution, elles vont lever l’exception suivante :

java.lang.UnsupportedOperationException
java.util.AbstractList.remove(Unknown Source)
java.util.AbstractList$Itr.remove(Unknown Source)
java.util.AbstractCollection.remove(Unknown Source)

Mais pourquoi la classe List propose une méthode remove() qui n’est pas supportée ? Rappelons que List est une interface. En fait, la faute revient à la méthode Arrays.asList() qui retourne une liste liée à un tableau et donc non modifiable. Si vous voulez modifier une liste créée à partir de cette méthode, il faut utiliser le code suivant :

List<String> l = new ArrayList<String>(Arrays.asList(s));

La liste obtenue est modifiable. Vous pouvez y ajouter ou y enlever des éléments sans risquer une exception. ;-)

 

Android Software – un an déjà !

23 August 2010 par SeB 6 commentaires »

Ça fait un moment que je dois écrire cette note pour vous parler du site Android Software. C’est un site qui présente de nombreuses applications pour Android. Les fiches sont en français. Attention, ce ne sont pas des tests des applications puisque certaines fiches sont des “copier/coller” des présentations des éditeurs. Néanmoins, le site a le mérite de faire connaitre toutes ces applications. Et il en présente énormément.

Je tiens d’ailleurs à remercier Lorand, l’administrateur du site, d’avoir mis gracieusement pendant quelques temps une bannière de publicité pour MonBonCoin. Merci aussi d’avoir fait connaitre certaines de mes autres applications pour Android sans que je lui en parle.

Pour finir, Android Software fêtait sa première année d’existence la semaine dernière. Pour l’occasion, Lorand avait organisé des concours. Ce week-end j’ai eu l’agréable surprise d’apprendre que j’étais l’heureux gagnant d’une licence CoPilot Live. Cool ! Pour être franc, je visais le téléphone Acer Stream. Non pas que je n’ai plus de téléphone mais pour faire des tests pour mes applications sur d’autres modèles que le HTC Hero. :-) Mais je ne vais pas me plaindre. Une licence pour ce logiciel de navigation est un très beau lot ! ;-)

Bon anniversaire à Android Software ! Je souhaite encore un bravo et mes encouragements à Lorand pour tout ce qu’il fait pour nous, les utilisateurs francophone d’Android.

 

JAXB – ignorer les espaces inutiles dans les fichiers XML

19 August 2010 par SeB 2 commentaires »

JAXB permet de générer des classes Java à partir de XSD pour manipuler du XML plus facilement. En clair, il permet de générer un parseur et un générateur de flux XML en Java. Ce qui fait gagner énormément de temps en développement.

En revanche, par défaut, le parseur JAXB n’ignore pas les espaces inutiles (appelés whitespaces). Pas de panique, l’API JAXB permet de le faire assez simplement. Il faut seulement créer un filtre et l’appliquer lors de la lecture du flux XML.

Le code du filtre ressemble à ceci :

public class WhitespaceFilter implements EventFilter {
	public boolean accept(XMLEvent event) {
		return !(event.isCharacters() && ((Characters)event).isWhiteSpace());
	}
}

Ensuite, pour l’appliquer il suffit d’instancier votre parseur de cette façon :

	JAXBContext jc = JAXBContext.newInstance("mon.package");

	// instancie le parseur XML pour ignorer les espaces inutiles
	XMLInputFactory inputFactory = XMLInputFactory.newInstance();
	XMLEventReader eventReader = inputFactory.createXMLEventReader(new FileInputStream("/monrepertoire/monfichier.xml"));
	eventReader = inputFactory.createFilteredReader(eventReader, new WhitespaceFilter());

	// parse le fichier XML
	Unmarshaller u = jc.createUnmarshaller();
	grid = (PCCADGRID)u.unmarshal(eventReader);

Cet exemple supprimer les espaces inutiles entre les balises XML. En revanche, les espaces inutiles sont toujours présents dans les valeurs. Pour supprimer ces derniers, il faut mettre en place un adaptateur. Voici son code :

public class NormalizedStringAdapter extends XmlAdapter {
	public String marshal(String text) {
		return text.trim();
	}

	public String unmarshal(String v) throws Exception {
		return v.trim();
	}
}

Il y a trois méthodes pour l’appliquer. Soit lors de l’initialisation du parseur :

Unmarshaller u = jc.createUnmarshaller();
u.setAdapter(new NormalizedStringAdapter());

Soit avec une annotation sur les champs concernés :

@XmlElement(required=true)
@XmlJavaTypeAdapter(NormalizedStringAdapter.class)
String name;

Soit avec une annotation dans les classes package-info pour l’appliquer à tous les champs du type chaine de caractère :

@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(value=NormalizedStringAdapter.class,type=String.class)
package mon.package;

Une fois cet adaptateur mis en place, les données XML que vous chargerez ne seront plus polluées par des espaces, retours à la ligne, tabulations, etc…

Notez qu’il existe également un adapteur qui permet de compacter les espaces. Comme ci-dessus, il supprime les espaces en début et fin de chaine mais réduit les multiples occurrences d’espace à un seul espace. Si vous le cherchez, c’est : javax.xml.bind.annotation.adapters.CollapsedStringAdapter.

 

I’m a Superphone – améliorez l’expérience utilisateur sous Android

7 July 2010 par SeB Pas de commentaire »

Connaissez-vous Sit And Speak, Flip And Sleep et Clutch And Wake ? Si c’est le cas, vous allez rapidement comprendre ce que fait I’m a Superphone. Cette application reprend toutes les fonctionnalités des trois précédemment citées. A cela, elle ajoute une interface pour paramétrer des comportements spécifiques selon vos besoins.

Pour rappel, voici les fonctionnalités dont bénificiera votre téléphone une fois I’m a Superphone installé :

  • mode voiture : votre téléphone passe automatiquement en haut-parleur quand il est posé à plat
  • mode discret : votre téléphone passe automatiquement et reste en mode silencieux s’il est retourné (à plat)
  • mode éveil : votre téléphone ne s’éteint plus tant que vous êtes en communication ou que vous le tenez dans votre main

Contrairement aux applications gratuites qui proposent une seule fonctionnalité non paramétrable, I’m a Superphone est une application payante. Je laisse le choix aux utilisateurs d’utiliser plusieurs petites applications gratuites ou bien d’acheter une seule et même application plus complète. A vous de choisir et de profiter de fonctionnalités avancées pour votre téléphone Android ! ;-)