Thursday, 11 March 2010

Evaluando librerias de acceso a Twitter

Hoy he estado evaluando las diferentes librerias que hay hechas para acceder a Twitter y las únicas dos librerias que tenían algo de documentación eran Twitter4j y java-twitter. Además ambas librerias podian importarse como dependencias de maven.

La verdad es que no he tardado en decantarme por Twitter4j ya que java-twitter es una api mal diseñada ya que para hacer lo mismo que Twitter4j tienes que escribir el doble de código. Para muestra un boton:

Queremos ver los últimos mensajes públicos de Twitter, en java-twitter tendriamos lo siguiente:

import java.util.List;
import net.unto.twitter.Api;
import net.unto.twitter.TwitterProtos.Status;
import net.unto.twitter.methods.PublicTimelineRequest;
import net.unto.twitter.methods.PublicTimelineRequest.Builder;

public class JavaTwitterService {
public List<Status> getStatusListWithJavaTwitter() {
Api api = Api.builder().build();
Builder builder = api.publicTimeline();
PublicTimelineRequest request = builder.build();
List<Status> messages = request.get();
return messages;
}
}


mientras que en Twitter4j se convierte en:

import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class Twitter4jService {
public ResponseList<Status> getStatusListWithTwitter4j()throws TwitterException {
Twitter twitter =
new TwitterFactory().getInstance();
ResponseList<Status> messages = twitter.getPublicTimeline();
return messages;
}
}


Este último me parece mas natural, y con menos código. Además Twitter4j no tiene ninguna dependencia y no parece muy pesado ya que no llega a los 300k. Lo único que no he podido testear a fondo es el tema del rendimiento. Las páginas de ambos:

java-twitter : http://code.google.com/p/java-twitter/
Twitter4j: http://twitter4j.org/en/index.html

No comments:

Post a Comment