4 thư viện Android hữu ích bạn nên biết

android tools

Để giảm thời gian phát triển một ứng dụng Android, mình thường sử dụng các thư viện Android mã nguồn mở có sẵn cho các phần Networking, UI, Dependency Injection (DI), Reactive Library… Có rất nhiều thư viện để lựa chọn nhưng tiêu chí của mình là đơn giản, dễ xài, performance tốt và đủ đáp ứng nhu cầu phát sinh trong việc phát triển ứng dụng Android.

Dưới đây là bốn thư viện mình đang dùng:

1. RxAndroid

Dạo gần đây khái niệm Reactive Programming khá phổ biển ở các blog, twitter hay Android Weekly, và RxAndroid là một trong những thư viện Reactive khá nổi tiếng trên Android.

Mình dần thay thế callback bằng RxAndroid. RxAndroid có phần map để transform data khá hay để custom lại những response từ backend trả về. Bên cạnh đó, observerOn hay subscribeOn giúp mình quy định việc mình thực thi trên thread nào hay khi trả về thì đẩy lên thread nào. RxAndroid còn rất nhiều chức năng thú vị khác mà mình cũng đang tìm hiểu.

Hơn nữa, RxAndroid với Retrofit khá tiện khi dùng chung.

Sử dụng RxAndroid cũng khá đơn giản:

Cho những bạn muốn tìm hiểu thêm về RxAndroid: http://blog.danlew.net/2014/10/08/grokking-rxjava-part-4/

2. Retrofit

Đa số ứng dụng Android hiện nay đều đi kèm với một backend server nên một thư viện giúp hỗ trợ giao tiếp với server sẽ rất hữu ích. Retrofit là một trong những thư viện nổi tiếng trong việc hỗ trợ Netwoking.

Một số lý do mà mình dùng Retrofit cho Networking:

  • Performance tốt.
  • Dễ sử dụng.
  • Dùng chung được với RxAndroid.

Dưới đây là phần so sánh performance với Volley và AsyncTask:

retrofit vs volley

Nguồn: http://stackoverflow.com/questions/16902716/comparison-of-android-networking-libraries-okhttp-retrofit-volley

Cú pháp thông dụng khi sử dụng thư viện Retrofit:

Định nghĩa API: 

Config cho Endpoint:

Gọi API:

3. Butterknife

Butterknife là thư viện Android hỗ trợ Bind view và tự động cast đúng kiểu cho từng loại view. Giảm thiểu việc viết findViewId quá nhiều trong code.

Butterknife generate code nên sẽ không lo chuyện performance ở runtime.

Thường mình viết một BaseActivity cho nó extends từ AppCompatActivity rồi implement lại hàm setContentView rồi bỏ ButterKnife.bind(this) vào hàm này.

Ví dụ:

4. Dagger

Dagger là một Dependency Injector (DI) cho Android và Java.

Một số link tham khảo về DI:

Cách mình sử dụng Dagger:

Bước 1: Bạn phải viết Module để Dagger hiểu cần phải provide những Object nào:

Có 2 kiểu Inject bằng Dagger:

Một là Inject tại chỗ khai báo thuộc tính của class

Hai là Inject ở constructor

Bước 2: Tạo ObjectGraph cho cả application:

Bước 3: Định nghĩa cho Module đó được dùng ở class nào:

 

Các bạn còn sử dụng những thư viện Android thú vị nào khác nữa và có ý kiến đóng góp cho bài viết của mình thì comment ở bên dưới nha ^^.

SSS Full-stack Engineer

Love Silicon Straits and want to know more about our company culture, working environment or job vacancies?
Find out more at careers.siliconstraits.vn.

Silicon Straits
Be Challenged. Be Inspired. Be Different.




Posted by

on September 8, 2015

in , ,

Comments

Follow us for more later

or subscribe with