Pierre-Yves Ricau

I write code, and I like it.

My CV »

Blog entries


Square Cash - you owe me money!

This week, Square introduced Square Cash, a new service that lets you send money to your friends through email.

To use it, just send your friend an email with the amount in the subject and Cc cash@square.com.

That's it, you don't need to install any new app, go through a painful signup process, or use a specific email provider.

It's free, simple, secure.

Read this entry »


Transparency with JPEGs done right

A few months ago, Square published a great article on Transparency with JPEGs on Android. It's definitely worth reading! Just don't use the provided code yet :) .

Romain Guy suggested in the comments that you can do this in a much more efficient and simpler way, either by using a BitmapShader or by playing with Porter-Duff blending modes.

Using a bitmap shader is great for dynamic masks. To apply a static mask to a bitmap loaded from a JPEG, Porter-Duff is the way to go, as we will see in this article.

Read this entry »


Chathead Basics

Facebook recently released a new feature in Facebook Messenger: Chatheads.

Sheldon Chathead

I was surprised that chatheads could be drawn on top of any app. Here is a quick explanation of how it works.

Read this entry »


Android String Placeholders

This article reviews different ways to create dynamic translatable strings in Android.

Quick reminder

In Android, message strings are extracted to XML files, and the system loads the resources corresponding to the current configuration.

res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="sexy_button_title">Click me, I'm famous!</string>
</resources>

res/values-fr/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="sexy_button_title">Cliquez-moi, parce que je le vaux bien !</string>
</resources>
Resources resources = context.getResources();
String sexyButtonTitle = resources.getString(R.string.sexy_button_title);

Read this entry »


Android Adapter Good Practices

In Android, the standard way to display a list of items is to use ListView together with a ListAdapter. The ListView draws the currently shown items, and the ListAdapter provides the ListView with the View corresponding to each item.

The aim is to create only the necessary number of views to fill the screen, and reuse these views as soon as they disappear.

This article will explain various ListAdapter patterns and good practices.

Read this entry »



Renaming the Android Manifest package

I recently needed to be able to change the package name of an app at build time. This is a common need when you have a paid and a free version of an app. It's also useful if you want to be able to install multiple versions of an app on your phone, such as a "dev" and a "stable" build.

Read this entry »



Paris Android Dev Lab

Introduction

Un Android Developer Labs (ADL) s'est déroulé à Paris jeudi 27 et vendredi 28 octobre 2011, traitant de l'optimisation des applications Android pour les tablettes.

J'ai eu la chance d'être invité à cet évènement ; j'en ai donc profité pour prendre des notes afin de pouvoir retranscrire le déroulement de cette journée (l'ADL du vendredi).

Apéro

Read this entry »


Coup de balai : déblayer les branches d'un repo Git

Comme je vous l'indiquais dans un précédent article, chez Siine, nous hébergeons nos projets sur GitHub, et chaque User Story fait l’objet d’une branche dédiée.

Lorsqu'une branche qui a fait l'objet d'une pull request est validée, elle est mergée sur la branche d'intégration. Nous n'avons cependant pas pris l'habitude de supprimer ces branches une fois mergées. Je pense que nous aurions probablement du les supprimer au fur et à mesure, car nous nous retrouvons aujourd'hui avec de nombreuses branches mergées, qui ne servent à rien et qui polluent nos repository.

Branches konary by Krzysztof

Notez que G

Read this entry »