Ensar Hamzaçebi

An Android Developer

Her Android Developer'in Bilmesi Gereken Kütüphaneler 01

| Comments

Kütüphaneler yazılım dünyasının olmazsa olmazlarıdır diyebiliriz. Android programlamada da geçerli olan bir durum olduğu için sizlere her android developer'ın bilmesi gereken 3 kütüphaneden şöyle kısace bahsetmek istiyorum. Kütüphanelerin kendi linklerini başlıklarda verdim kütüphaneler hakkında ayrıntılı bilgi edinmek isterseniz başlıklara tıklayabilirsiniz.

1. GSON

Gson, java objelerini JSON'dan serialize ve deserialize etmemizi sağlayan bir java kütüphanesidir. Bu kütüphaneyi API'ler ile iletişim kurmakta sık sık kullanırız. API'den gelen json datanın parse edilmesi ve ya API'ye gönderilmek üzere dataların JSON'a çevirilmesinde kullanılır diyebiliriz.

1
2
3
4
5
// Serialize 
String userJSON = new Gson().toJson(user);

// Deserialize
User user = new Gson().fromJson(userJSON, User.class);

2. RETROFIT

Kendi sitelerinden:“Retrfit REST API'ınızı bir java interface'a dönüştürür.” Bu bir projedeki API isteklerini organize etmekte kullanılabilecek çok zarif bir yöntem. Request metodu ve relative URL, bir annotation ile eklenir. Buda kodunuzu çok basit ve temiz kılar.

Annotationlar ile kolay bir şekilde request body ekleyebilir, URL ve ya header'ı manipule edebilir ve parametre ekleyebilirsiniz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public interface RetrofitInterface {

    // asynchronously with a callback
    @GET("/api/user")
    User getUser(@Query("user_id") int userId, Callback<User> callback);

    // synchronously
    @POST("/api/user/register")
    User registerUser(@Body User user);
}


// example
RetrofitInterface retrofitInterface = new RestAdapter.Builder()
            .setEndpoint(API.API_URL).build().create(RetrofitInterface.class);

// fetch user with id 2048
retrofitInterface.getUser(2048, new Callback<User>() {
    @Override
    public void success(User user, Response response) {

    }

    @Override
    public void failure(RetrofitError retrofitError) {

    }
});

Son olarak retrofit gson kullanmaktadır.

3. EVENTBUS

Eventbus uygulamanızın farklı kısımlarının birbiri ile haberleşmasini kolaylaştıran çok kullanışlı bir kütüphanedir. Mesela herhangi bir activity'den halihazırda çalışan bir servise herhangi bişey gönderirken ve ya fragmentlar arasında iletişimi kolaylaştırmada kullanılabilir.

Dataların tutulduğu bir sınıf oluştur.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class PositionEvent {
    private int positionX, positionY;

    public PositionEvent(int x, int y){
        this.positionX = x;
        this.positionY = y;
    }

    public int getPositionX(){
        return positionX;
    }

    public int getPositionY(){
        return positionY;
    }
}

Eventin tetikleneceği activityde register ol.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private EventBus bus = EventBus.getDefault();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  ...
    bus.register(this);
  ...
}

@Subscribe
public void onEvent(EyePositionEvent event){
//gelen data ile bişeyler yap. Burası event tetiklendiğinde 
//çalıştırılacak yer.
}

Son olarak eventin tetikleneceği yer.

1
2
3
4
5
6
7
private EventBus bus = EventBus.getDefault();
...
PositionEvent event = null;
...
//cx ve cy kullanılacak datalar.
event = new EyePositionEvent(cx, cy);
bus.post(event);

Comments