어플리케이션(프로그램)을 개발할 때 오픈 소스를 사용하는 것은 시간을 절약할 수 있으며 버그를 줄일 수 있는 효과적인 방법 입니다. 자동차를 만드는것에 비유하자면, 바퀴부터 발명해서 자동차를 만드는 것 보다 이미 만들어진 부품을 가져다가 잘 조립하고 디자인과 차별적인 기능을 추가로 개발하는것이 훨씬 효율적인 것처럼 말이죠. 그래서 오늘은 안드로이드 개발자를 위한 최고의 오픈 소스 라이브러리 Best 27에 대해서 알려드리도록 하겠습니다.
안드로이드에서 기본적으로 제공하는 토스트는 회색의 팝업 한가지밖에 없지만, StyleableToast를 다용하면 다양하고 화려한 토스트를 사용할 수 있습니다.
CoordinatorTabLayout은 TabLayout과 CoordinatorLayout의 조합을 쉽게 구현할 수 있는 기능을 제공합니다.
3. Picasso
Picasso는 안드로이드용 이미지 다운로드 및 캐싱 라이브러리 입니다. Picasso는 캐싱, 스레딩, 이미지 처리를 위한 모든 기능을 제공하기 때문에 코딩의 번거로움을 덜어줍니다. 단 한줄의 코드만 넣어주면 됩니다.
4. excelPanel
excelPanel은 이것은 2 차원 RecyclerView입니다. 과거 데이터를 로드할 뿐만 아니라 향후 데이터를 로드할 수도 있습니다.
안드로이드에는 전화번호 구문을 분석하고 파싱을 해주는 무료 솔루션이 많지 않은데요. Libphonenumber는 구글에서 만든 전화번호 파싱, 유효성 검증, 포맷팅 라이브러리 입니다.
Horizontal Calendar은 제목처럼 가로 달력을 제공하는 라이브러리 입니다.
7. ObjectBox
ObjectBox는 데이터베이스 관련 작업을 최적화 해서 처리할 수 있는 기능을 제공합니다. 데이터베이스 관련된 기능을 Objecbox로 처리하고 다른 부분을 개발하는데 시간을 쓸 수 있습니다.
8. CounterFab
이 라이브러리는 오른쪽 상단 모서리에 카운터 배지를 표시하는 FloatingActionButton 하위 클래스입니다.
9. AwesomeBar
AwesomeBar는 상단 내비게이션바에 참신한 디자인을 적용할 수 있게 해줍니다.
10. Dagger 2
Dagger 2는 의존성을 분석하고 코드를 생성하여 자동으로 코드 명확성을 향상시킵니다. 이 오픈 라이브러리는 모바일 결제회사인 Squre와 구글의 기여로 만들어 졌습니다.
11. Butter Knife
Butter Knife는 안드로이드용 뷰 바인딩 라이브러리로 반복적인 코드를 작성하는 번거로움을 없애줍니다. 안드로이드 앱 개발에서 View 변수 선언, 연결, 리스너를 연결하는 노가다 작업을 줄여주는 기능을 제공합니다.
12. Material About
Material About은 앱 이용자에게 개발자에 대한 소개 페이지를 만드는데 유용합니다.
13. ZXing
ZXing은 구글에서 제공하는 오픈소스입니다. QR코드 스캔기능이 있는 앱은 대다수가 이 라이브러리를 사용했다고 보면 될정도로 널리 사용되고 있습니다. 총 15가지의 바코드를 인식할 수 있습니다.
14. Retrofit
Retrofit는 REST API를 Java 인터페이스로 변환 해주는 라이브러리 입니다. 이 라이브러리를 사용하면 Java로 거의 모든 RESTful API와의 통신을 위한 코드를 작성할 수 있습니다.
ArcNavigationView는 내비게이션뷰를 곡선으로 처리할 수 있는 기능을 제공합니다.
16. Lottie
Lottie는 Bodymovin을 사용하여 JSON으로 내보낸 Adobe After Effects 애니메이션을 파싱하여 모바일에 렌더링해주는 라이브러리 입니다.
ShimmerRecyclerView는 콘텐츠가 로딩되고 있음을 사용자에게 보다 명확하게 보여줄 수 있는 커스텀 RecyclerVew 입니다.
18. LeakCanary
LeakCanary는 스퀘어에서 개발한 메모리 Leak을 탐지하는 라이브러리 입니다. 단 한줄의 코드로 적용이 가능하며 이 것만으로 메모리 Leak이 발생하면 개발자가 확인 할 수 있습니다.
19. Tape
Tape는 Queue 처리를위한 클래스 모음입니다. 불안정한 환경에서 데이터 스트림 및 다운로드하는 기능을 제공합니다. 대기열 처리 작업도 수동으로 코딩하는 대신 Tape으로 쉽게 처리할 수 있습니다.
20. Jitpack.io
Jitpack.io는 별도 설정 없이 GitHub 저장소의 주소를 원격 저장소로 사용할 수 있게 해줍니다. JitPack이 해당 저장소의 코드를 빌드 후 바이너리 형태로 제공해주기 때문에 개발자가 저장소에 별도 작업을 해줄 필요가 없습니다.
21. EventBus
EventBus는 안드로이드에 최적화된 Publish/Subscribe 이벤트 버스입니다. 컴퓨넌트간의 커뮤니케이션을 간단하게 구현할 수 있으며, 이벤트를 주고 받는 컴포넌트 들의 관계를 알아저 맺어줍니다.
22. PreviewSeekBar
PreviewSeekBar는 동영상을 재생중에 Seekbar를 움직일 경우 해당 구간의 영상을 미리보기로 볼 수 있게 해주는 기능을 제공합니다.
23. Chuck
Chuck은 OkHttp를 사용할 경우 앱 내의 모든 HTTP 요청과 응답을 인터셉트할 수 있는 기능을 제공합니다. 콘텐츠를 검사 할 수있는 UI 도 제공됩니다.
CameraFragment는 카메라 기능을 쉽게 앱에 구현할 수 있도록 도와주는 라이브러리입니다. 이 라이브러리로 카메라 미리보기 화면캡쳐 사진찍기 기능을 쉽게 구현할 수 있으며, 자신이 원하는 레이아웃을 적용할 수도 있습니다.
25. Shortbread
Shortbread는 @Shortcut 주석이 달린 액티비티와 메소드에 바로가기를 만들어 줍니다. 이 라이브러리를 사용하면 manifest를 수정, XML 생성, 숏컷 매니저를 사용할 필요가 없습니다.
Android-SwitchIcon은 구글 런처 스타일의 스위치 온/오프 기능을 제공하는 라이브러리 입니다.
27. FadingTextView
FadingTextView는 몇 초마다 자동으로 TextView의 컨텐츠를 변경할 수 있게해줍니다.