Jedną z zalet podczas tworzenia aplikacji na Androida jest mnogość dostępnych bibliotek i narzędzi. Jedne są bardziej popularne i ciągle wspierane, inne umarły wraz z wydaniem wersji 1.0. Chciałbym przedstawić 26 narzędzi i bibliotek, które moim zdaniem warto poznać.

Zdjęcie główne artykułu pochodzi z pexels.com

Oczywiście jest to tylko garstka tego, co jest dostępne, jednak są to rzeczy typu „must know” dla każdej osoby, która chce zagłębić się w programowaniu na platformę Android.

Biblioteki

1. ButterKnife

Jedna z bardziej znanych bibliotek na Androida. Dzięki ButterKnife możemy w bardzo łatwy sposób uniknąć mozolnego wywoływania findViewById() czy setOnClickListener(), a wszystko to za sprawą adnotacji.

2. Dagger

Jeżeli jeszcze nie słyszałeś o dependency injection to pora nadrobić zaległości! Dagger to wspaniała biblioteka znacznie ułatwiająca wstrzykiwanie zależności, dzięki któremu zyskujemy bardziej przejrzysty i łatwiejszy w utrzymywaniu oraz testowaniu kod.

3. Lombok + dodatek do Android Studio

W Javie nie mamy dostępnego mechanizmu właściwości (znanego między innym z C#), lecz tu z pomocą przychodzi Lombok w parze z jego dodatkiem do Android Studio. Dzięki nim, używając paru adnotacji, możemy automatycznie i w czasie kompilacji generować gettery, settery, konstruktory i wiele więcej.

4. EventBus

EventBus jest prostą biblioteką, która pozwala bardzo szybko zorganizować komunikację między wieloma klasami. Jej działanie opiera się na wysyłaniu eventów z jednej klasy do wielu innych, które je subskrybują. W Androidzie jej najczęstszym zastosowaniem jest komunikacja pomiędzy aktywnością a fragmentami w niej zawartymi.

5. Retrofit

Klient HTTP ułatwiający komunikację z zewnętrznymi API opartymi na architekturze REST. Używając adnotacji takich jak @GET, @POST czy @Header możemy wysyłać, pobierać dane lub modyfikować nagłówki.

6. OkHttp

Kolejna biblioteka będąca klientem HTTP, tym razem bardziej rozbudowana i pozwalająca na wiele więcej. OkHttp zastępuje nam domyślnego klienta dostępnego w Javie i, w przeciwieństwie do Retrofita, nie jest nastawiony głównie na architekturę REST.

7. Praca z bazą danych:

Praca z bazą danych bez ORM lub biblioteki pośredniczącej może przysporzyć sporo trudności, zwłaszcza początkującym programistom. Trzy ostatnie biblioteki, czyli greenDAO, SugarORM oraz ORMLite są typowymi ORMami, w których za pomocą paru adnotacji możemy automatycznie generować bazę danych i komunikować się z nią. Realm jest z kolei zamiennikiem SQLite dostępnym nie tylko na Androida, lecz również na inne platformy (co może w znaczy sposób ułatwić przenoszenie aplikacji na np. iOS).

Najnowszą biblioteką w tym zestawieniu jest Room. Dodaje ona dodatkową warstwę abstrakcji nad SQLite, dzięki czemu nie musimy implementować własnych klas (helperów) do używania bazy danych.

8. Pobieranie i cachowanie obrazów:

Kolejne zestawienie bibliotek, tym razem do pobierania i cachowania obrazków z internetu. Każda z nich ma swoje plusy i minusy, jednak wszystkie umożliwiają za pomocą paru metod załadowanie obrazka do ImageView bez potrzeby budowania zapytań.

9. Praca z JSON:

Podczas używania zewnętrznego API musimy znaleźć sposób na zamianę zwracanych przez nie danych w postaci JSONa na klasy modelu w aplikacji. Każda z wyżej wymienionych propozycji pozwala na serializację i deserializację JSONów.

10. Stetho

Biblioteka wydana przez Facebooka, pozwala na debugowanie aplikacji z poziomu Chrome Developer Tools. Pozwala ona na dostęp do informacji takich jak wychodzący ruch sieciowy, przegląd bazy danych, czy na przegląd hierarchii layoutu.

11. RxJava (RxAndroid)

Ostatnio mocno na popularności zyskuje programowanie reaktywne, oczywiście ma ono również swoją wersję dla Javy w postaci RxJavy. RxAndroid z kolei jest rozszerzeniem RxJavy, które uwzględnia specyficzne aspekty platformy Android.

12. Lambdy:

Jeszcze do niedawna, by używać lambd na Androidzie (które są dostępne od Javy 8), musieliśmy użyć biblioteki o nazwie Retrolambda. Obecnie są one już dostępne natywnie. Lambdy są bardzo przydatne podczas programowania na Androidzie na przykład podczas implementacji listenerów, kiedy kod całego interfejsu możemy zmieścić w dwóch linijkach.

13. Preferencje:

Używanie SharedPreferences na Androidzie nie jest rzeczą trudną, lecz skoro istnieje sposób na ułatwienie sobie tego, dlaczego z niego nie skorzystać? Dwie pierwsze biblioteki są stricte przeznaczone do pracy z preferencjami. Hawk, mimo że jest narzędziem znacznie bardziej rozbudowanym, również idealnie do tego się nadaje.

14. Interfejs Parcerable:

Każda z tych bibliotek ma celu zmniejszenie tzw. glue code związanego z implementacją interfejsu Parcerable i w każdej z pomocą paru adnotacji możemy to osiągnąć.

15. Android Architecture Components 

Android Architecture Components to zbiór nowych bibliotek prosto od Google. W jego skład wchodzi wspomniany wcześniej Room, LifeCycle, LiveData oraz ViewModel. Room służy do obsługi bazy danych, a pozostałe biblioteki pozwalają uniknąć problemów z cyklem życia androidowych komponentów.

16. Data Binding Library

Jak sama nazwa wskazuje, Data Binding Library wprowadza do Androida data binding, czyli mechanizm pozwalający na łatwiejsze połączenie kodu pisanego w Javie z tym, znajdującym się w plikach xml.

Pluginy do Android Studio

17. ButterKnife Zelezny

Tak jak ButterKnife eliminuje potrzebę używania findViewById(), tak ten dodatek pozwala na podstawie pliku xml automatycznie wygenerować pola w klasie, odpowiadające wszystkim widokom, którym zostało nadane id.

18. jRebel

Ten plugin zaoszczędza czas poświęcany na budowanie, instalowanie i uruchamianie aplikacji. Dodatek nie wymaga żadnej konfiguracji. Po zainstalowaniu od razu mamy dostępną opcję do budowania aplikacji za pomocą jRebel oraz do wprowadzania do niej nowych zmian.

19. Parcelabe Generator

Kolejny sposób na ułatwienie sobie implementacji interfejsu Parcelable. Tym razem nie jest to biblioteka tylko dodatek do Android Studio, który w mgnieniu oka sam zaimplementuje za nas cały interfejs Parcelable.

20. ADB WIFI

Bardzo dobre narzędzie, które pozwala na wyrzucenie kabla USB w trakcie debugowania naszych aplikacji. Jedynym wymogiem jest to, żeby zarówno komputer jak i telefon znajdowały się w tej samej sieci WI-FI.

21. DTO genator

Utworzenie modeli w kodzie jeszcze nigdy nie było takie łatwe. Na podstawie przykładowego tekstu w formacie JSON, DTO generator jest w stanie wygenerować odpowiedniki w postaci klas.

Inne

22. Proguard

Najpopularniejsze narzędzie na platformę Android służące do obfuskacji, czyli zaciemniania kodu. Po jego użyciu, zdekompilowana aplikacja w żadnym stopniu nie będzie przypominała tego co napisaliśmy, dzięki czemu wszystkie ukryte wewnątrz pliku apk informacje będą bardziej bezpieczne.

23. Kotlin 

Ostatnio coraz bardziej na popularności zyskuje Kotlin, czyli stosunkowo nowy język programowania, który jest kompatybilny z Javą. Żeby tego było mało, Google oficjalnie udziela wsparcia dla Kotlina jako języka obsługiwanego przez Androida. Więcej na temat języka Kotlin przeczytasz w tym artykule.

24. Genymotion

Alternatywa dla wbudowanego w Android Studio emulatora Androida. Umożliwia znacznie większe możliwości konfiguracji urządzenia niż domyślny symulator, a do tego jest od niego dużo szybszy.

25. Fabric

Zbiór narzędzi pozwalających nam na zarządzanie aplikacją oraz ułatwiający jej testowanie. Po dodaniu odpowiedniego komponentu Fabrica do naszej aplikacji, możemy na przykład zbierać statystyki o urządzeniach, awariach, czy czasie używania aplikacji.

26. Nyan Progress Bar

Ciekawy dodatek do Android Studio zamieniający wszystkie domyślne progress bary na animację Nyan Cata. Zdecydowanie najważniejsza pozycja na całej liście.

Podsumowanie

To tylko wycinek wszystkich bibliotek i narzędzi, które są dostępne dla programistów Androida. W praktyce zestawienie to moglibyśmy poszerzać w nieskończoność, lecz moim zdaniem każdy Andoird developer powinien znać zastosowanie większości z tych bibliotek, ponieważ niektóre z nich są bardzo często wykorzystywane.

Mateusz Michalski

Android Developer w Gorrion

Lider zespołu mobilnego. Jak sam wspomina, jego rozwiązania znajdują się w Waszych kieszeniach. Niedościgniony znawca memów i cytatów z polskich komedii.

Komentarze (0)