Поиск по этому блогу

четверг, 8 мая 2014 г.

Подборка полезных библиотек для разработки в Android

Последнее время для упрощения кода, да и вообще упрощения своей жизни я начал использовать разнообразные библиотеки которые упрощают работу с разного рода функциями которые часто использую, такие как создание запросов на сервер, загрузка картинок или парсинг json.

Сегодня я хочу рассказать вам о нескольких библиотеках которые я использую и которые смогут помочь вам в дальнейшей разработке.


1. Asynchronous Http Client


Офф. сайт: loopj.com/android-async-http

Это простая библиотека у которой есть куча функций. Создание get, post и file запросов на сервер.

Подключение элементарнейшеее, скачать jar файл и скопировать его в папку libs/, а дальше просто делайте запрос на сервер как вам нужно. На сайте приводится куча примеров как лучше сделать что бы было понятно и просто. 

Вот самый простой пример post запроса на сервер.
AsyncHttpClient client = new AsyncHttpClient();
client.post("ссылка на сервер", new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        // тут выводим response например в Log.d();
    }
});


Запрос с параметрами:
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
AsyncHttpClient client = new AsyncHttpClient();
client.post("ссылка на сервер", params, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        // тут выводим response например в Log.d();
    }
});


2. Universal Image Loader for Android


Офф. сайт: github.com/nostra13/Android-Universal-Image-Loader

Простая и классная библиотека которая может скачивать картинки с сервера, обрабатывать ошибки. 
Имеет собственный гридвью для вывода картинок и галерею. Так же может быть использована в кастомных адаптерах, то есть очень коммуникабельная. Простая в использовании.

Пример загрузки картинок с удаленного сервера:

DisplayImageOptions options = new DisplayImageOptions.Builder()
                                .cacheInMemory(true).cacheOnDisc(true)
                                .displayer(new RoundedBitmapDisplayer(20)).build();
ImageLoader.getInstance().displayImage(
                                "ссылка на картинку",
                                itemIcon, options, null);


itemIcon — это imageView в который отображаем картинку \ картинки. Это пример использования из амоего адаптера.

null — если нулл то обработает само ошибку.

Больше примеров можете посмотреть по ссылке которую я привел выше, их там уйма.

3. JSoup


Офф. сайт: jsoup.org

Я уже писал статью по этой библиотеке но раз уж пошла такая пьянка то и сюда ее добавлю. Простая библиотека которая раскрывает вам большое количество возможностей по парсингу сайтов. На сайте имеется CookBook в которой можно просмотреть все возможности библиотеки в примерах, сюда же я могу включить только основную функцию парсинга по id.

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#element");
for (Element link : newsHeadlines ) {
    // сюда выводим в лог например текст
    Log.d(TAG, link.text());
}


Таким образом мы выведем весь текст который находится по ссылке en.wikipedia.org в div id=element.

4. GSON


Офф. сайт: code.google.com/p/google-gson

Огромная мощная библиотека позволяющая работать с огромными количествами получаемых json данных с серверов. Имеет очень большой функционал, в user guide он писывается весь.

Советую ее использовать когда у вас какой-то большой проект, этой библиотекой вы сможете автоматизовать свою работу, вам не придется все время писать один и тот же код чтения гсона. С этой библиотекой вы создаете класс который вмещает в себя сеттеры и геттеры того или иного параметра и далее работаете с этими сеттерами и геттерами. 

Если же проект небольшой то я думаю не стоит усложнять его еще и такими сложными функциями, хотя на вкус и цвет фломастеры разные.

5. Android Priority Job Queue


Офф. сайт: github.com/path/android-priority-jobqueue

Очень удобная библиотека в плане загрузки в фоне, например когда у вас сложности с интернетом но вам нужно выкачать какое-то количество данных, вот эта библиотека придет вам на помощь. Она ставит в очередь на скачку все что вы ей дадите. 

Как с ней работать можно глянуть вот по этой ссылке, там всего лишь два куска кода, первый вы создаете класс в котором описываете добавление работы в стек, а вторым пунктом является вызов и добавление работы собственно в этот класс и все. 

Так же пример приводить не буду так как на git hub и так понятно описано.

6. Android WScratchView


Офф. сайт: github.com/winsontan520/Android-WScratchView

Крутая библиотека для людей которые хотят сделать стирание стикеров у себя в приложении как это например в картах на пополнения счета раньше было (не знаю как сейчас, давно не покупал). 

Встраивается в пару шагов. Сперва вам нужно добавить WScratchView на ваш xml
<com.winsontan520.WScratchView
    android:id="@+id/scratch_view"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_centerInParent="true" />


А далее работать с ним из своей Activity \ Fragment. Например вот работа из onCreate():
scratchView = (WScratchView) findViewById(R.id.scratch_view);

    // настройка программно
    scratchView.setScratchable(true);
    scratchView.setRevealSize(50);
    scratchView.setAntiAlias(true);
    scratchView.setOverlayColor(Color.RED); 


Как понятно из кода сперва мы находим этот WScratchView, дальше настраиваем его размер и цвет. Две булевых настройки — первая это задаем что бы стирабельная была, вторая что бы размывало задний фон.

Вот и все, смотрится круто. 
Как раз недавно ее использовал в проекте, заказчик остался доволен (:

Вывод:


Используйте библиотеки когда есть возможность, код становится проще и читабельней чем когда пытаешься городить велосипед который работает через раз. Сталкивался с такими товарищами в проектах, плакал горькими слезами когда разбирался в том коде. 

Не говнокодьте товарищи! У меня все, всего хорошего.