Skip to content

Commit eb216da

Browse files
author
Johan Poirier
committed
Typos on square libs article
1 parent e6fff54 commit eb216da

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed
Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
---
1+
---
22
layout: post
33
title: Les libs Android de Square
44
author: johanpoirier
@@ -21,7 +21,7 @@ Nous allons donc voir quelque unes de ces librairies illustrées dans une petite
2121

2222
Dagger se veut comme un successeur de Guice dont le créateur [Bob Lee](https://twitter.com/crazybob) est justement le CTO de Square. Il a voulu créer un framework d'injection de dépendances rapide et moderne qui fonctionne aussi bien en java "classique" que sur Android avec sa JVM Dalvik adapté au mobile.
2323

24-
A l'instar d'[AndroidAnnotations](http://androidannotations.org/), Dagger s'appuie sur la génération de code à la compilation (JSR 269 : Annotation Processing). Pour chaque classe gérée par Dagger, une classe est créee contenant toute la logique d'injection en se basant sur le graph d'objet. C'est cette classe qui s'occupera d'invoquer les constructeurse t injecter les variables annotées en @Inject (JSR 330).
24+
A l'instar d'[AndroidAnnotations](http://androidannotations.org/), Dagger s'appuie sur la génération de code à la compilation (JSR 269 : Annotation Processing). Pour chaque classe gérée par Dagger, une classe est créee contenant toute la logique d'injection en se basant sur le graph d'objets. C'est cette classe qui s'occupera d'invoquer les constructeurs et injecter les variables annotées en @Inject (JSR 330).
2525

2626
Dagger se passe donc de tout usage de réflexion contrairement à Guice (et sa version pour Android : RoboGuice). Et ceci est une bonne chose pour nos applications Android car le principal défaut de Guice était bien le temps de construire le graph au démarrage de l'application.
2727

@@ -66,14 +66,14 @@ public class DaggerModule {
6666
}
6767
{% endhighlight %}
6868

69-
Ce module est indispensable pour construire le graph d'objet :
69+
Ce module est indispensable pour construire le graph d'objets :
7070

7171
{% highlight java %}
7272
// graph construction from the module and its entry points
7373
ObjectGraph objectGraph = ObjectGraph.create(new DaggerModule());
7474
{% endhighlight %}
7575

76-
Grâce à ce graph d'objet, nous pouvons injecter les classes gérées par Dagger :
76+
Grâce à ce graph d'objets, nous pouvons injecter les classes gérées par Dagger :
7777

7878
{% highlight java %}
7979
// self inject
@@ -97,7 +97,7 @@ public abstract class DaggerActivity extends Activity {
9797
}
9898
{% endhighlight %}
9999

100-
Le module de mon application s'occupe de fournir les instances via des @Provides et sert de point d'entrée à toute mon application pour fournir le graph d'objet :
100+
Le module de mon application s'occupe de fournir les instances via des @Provides et sert de point d'entrée à toute mon application pour fournir le graph d'objets :
101101

102102
{% highlight java %}
103103
// the entry point is where the graph begins
@@ -138,7 +138,7 @@ Otto est un bus d'évènements permettant de découpler les différentes parties
138138

139139
### Le principe
140140

141-
Le principe est simple.
141+
Il est extrêmement simple.
142142

143143
Pour publier un évènement, il faut poster un évènement sur le bus :
144144

@@ -171,7 +171,7 @@ Pour ne plus recevoir les évènements, il suffit de se désenregistrer :
171171
bus.unregister(this);
172172
{% endhighlight %}
173173

174-
Enfin, il est possible de fournir une valeur dès l'enregistrement sur le bus via des @Produce. Cela peut permettre ainsi de fournir le dernier évènement publié sur le bus au client qui vient de s'enregistrer.
174+
Enfin, il est possible de fournir une valeur dès l'enregistrement sur le bus via des @Produce. Cela peut permettre ainsi de fournir le dernier évènement publié sur le bus au client qui vient juste de s'enregistrer.
175175

176176
{% highlight java %}
177177
// useful when you need to know what was going on before you listened
@@ -182,7 +182,7 @@ public AwesomeEvent produceAwesomeEvent() {
182182
}
183183
{% endhighlight %}
184184

185-
Les producteurs comme les clients souscripteurs doivent s'enregistrer sur le bus.
185+
Les producteurs comme les clients souscripteurs doivent s'enregistrer auprès du bus.
186186

187187

188188
### En pratique sur Android
@@ -238,7 +238,7 @@ public class MainActivity extends Activity {
238238

239239
@Subscribe
240240
public void displayNetworks(final NetworksAvailableEvent event) {
241-
// event is coming from the background, requestiing UI thread
241+
// event is coming from the background, requesting UI thread
242242
runOnUiThread(new Runnable() {
243243
@Override
244244
public void run() {
@@ -251,7 +251,7 @@ public class MainActivity extends Activity {
251251
}
252252
{% endhighlight %}
253253

254-
L'évènement NetworksAvailableEvent est produit par un BroadcastReceiver qui tourne en background :
254+
L'évènement NetworksAvailableEvent est produit par un BroadcastReceiver qui tourne en background. C'est lui qui va poster des évènements sur le bus.
255255

256256
{% highlight java %}
257257
// event post on the bus
@@ -284,7 +284,7 @@ public class WifiInfoReceiver extends DaggerBroadcastReceiver {
284284
{% endhighlight %}
285285

286286

287-
## [Retrofit](https://github.com/square/retrofit) : une interface REST
287+
## [Retrofit](https://github.com/square/retrofit) : un client REST
288288

289289
Retrofit est un client REST pour Android, dans le même esprit que Spring Android [RestTemplate](http://static.springsource.org/spring-android/docs/1.0.x/reference/html/rest-template.html).
290290

@@ -301,14 +301,14 @@ public interface Github {
301301
@GET("orgs/square/repos")
302302
List<Repo> getSquareRepos();
303303

304-
@GET("orgs/square")
305-
Org getSquare();
304+
@GET("orgs/square/repos/{id}")
305+
Repo getSquareRepo(@Named("id") String id);
306306
}
307307
{% endhighlight %}
308308

309309
Les classes Repo et Org sont de simples POJOs qui ont les mêmes attributs (même partiellement) que ceux de l'API appelée.
310310

311-
Pour utliser mon interface, il nous faut utiliser un RestAdapater :
311+
Pour utliser notre interface, il nous faut utiliser un RestAdapater :
312312

313313
{% highlight java %}
314314
// the RestAdapter builder is nice
@@ -356,11 +356,11 @@ public class DaggerModule {
356356
}
357357
{% endhighlight %}
358358

359-
Nous utilisons Gson comme librairie de sérialisation/désérialisation et le client HTTP par défaut d'Android. A ce propos, Square propose une autre librairie nommée [OkHttp](https://github.com/square/okhttp) qui est un client HTTP+SPDY pour Android. OkHttp permet de pouvoir compter sur le même client http sur toutes les versions d'Android et ne pas dépendre de la version d'Android. Il faudrait le tester et surtout attendre une version plus finalisée.
359+
Nous utilisons Gson comme librairie de sérialisation/désérialisation et le client HTTP par défaut d'Android. A ce propos, Square propose une autre librairie nommée [OkHttp](https://github.com/square/okhttp) qui est un client HTTP+SPDY pour Android. OkHttp permet de pouvoir compter sur le même client http sur toutes les versions d'Android et ne pas dépendre de la version de celui-ci. Il faudrait le tester et surtout attendre une version plus finalisée.
360360

361361

362362
## Conclusion
363363

364-
Dagger, Otto et Retrofit sont de petites librairies, encore jeunes mais très prometteuses. Elles sont parfaitement adpatées à un contexte d'utilisation mobile car elles ont été pensé pour. ELles fonctionnent parfaitement ensemble mais si vous ne devez en retenir qu'une, je vous conseille Otto qui est un merveilleux petit outil pour découpler les composants de votre application Android.
364+
Dagger, Otto et Retrofit sont de petites librairies, encore jeunes mais très prometteuses. Elles sont parfaitement adpatées à un contexte d'utilisation mobile car elles ont été pensé pour. Elles fonctionnent parfaitement ensemble mais si vous ne devez en retenir qu'une, je vous conseille Otto qui est un merveilleux petit outil pour découpler les composants de votre application Android.
365365

366-
Par ailleurs, [Pierre-Yves Ricau](https://github.com/pyricau), le créateur du projet AndroidAnnotations, a fourni un exemple d'intégration de Dagger, Otto et AndroidAnnotations sur Github : [CleanAndroidCode](https://github.com/pyricau/CleanAndroidCode).
366+
Pour rappel, ces 3 librairies sont illustrées dans une application Android sur Github : [squarelibs-android-demo](https://github.com/johanpoirier/squarelibs-android-demo). Dans le même registre, [Pierre-Yves Ricau](https://github.com/pyricau) a fourni un exemple d'intégration de Dagger, Otto et AndroidAnnotations sur Github : [CleanAndroidCode](https://github.com/pyricau/CleanAndroidCode).

0 commit comments

Comments
 (0)