에르노트

Anko를 대체할 안드로이드 확장 라이브러리 Splitties 본문

Dev/Android

Anko를 대체할 안드로이드 확장 라이브러리 Splitties

두콩 2020. 1. 20. 15:36

코틀린 안드로이드 확장 라이브러리로 유명했던 Anko가 2019년 12월부로 Deprecated 되었다.




Anko가 처음 등장할 때에 반해 이제 다른 좋은 대안들이 생겼으며, 더불어 안드로이드 자체의 최적화도 많이 진행되었다고 한다. 따라서 더 이상 Anko를 지속해서 개발할 이유가 없기에 이와 같은 결정이 내려진 것 같다. 그럼에도 불구하고 Anko는 글을 쓰는 현 시점에서 굉장히 훌륭한 라이브러리이며 기존의 프로젝트를 갈아엎을 이유는 전혀 없다고 본다. 다만 유지보수와 신규 버전 대응을 고려하면 이제 앞으로 새롭게 개발할 프로젝트에서 Deprecated된 라이브러리를 채용하기는 영 찝찝한 감이 있다. 다행히 Anko는 떠나는 와중에 그 대안들을 명확하게 제시했고, 그 중 하나가 Splitties이다.



Splitties 자체가 원래 있는 영단어는 아니다. split(쪼개다)에서 파생된 일종의 고유명사로 보면 될 것 같은데, '쪼개져있는 라이브러리' 정도로 보면 얼추 들어맞지 싶다. 최대한 가볍고 간단한 접근을 위해서 딱 필요한 기능만 뽑아서 쓸 수 있도록 쪼개놓은 것이다.


아래는 ReadMe에 적혀있는 작명의 이유이다.


This project is named "Splitties" because it is split in small modules, distributed as independent libraries, so you can add only the ones you need to your project/module, helping reduce the size of the final binary that users devices will need to download and keep in the limited storage (BTW, everything is limited).



코를린이 멀티플랫폼을 지원하듯 Splitties 역시 Multiplatform(아직까지는 JVM과 JS만을 지원)을 지원할 목적으로 만들어졌다. 하지만 아직까지 코를린 자체에 대한 확장은 비트 플래그와 컬렉션에 관한 내용이 전부이다. 반면 안드로이드에서는 상당히 많은 확장 기능들을 지원하는데 다음과 같다.





기존에 Anko와 상당 부분이 겹친다. 바꿔 말하면 대체제로서 아주 훌륭하다! Anko랑 뭐가 다른지는 여기에 잘 설명되어 있다.



우선 가장 만만한(?) Toast 구현 확장을 활용해보았다.

implementation 'com.louiscad.splitties:splitties-toast:2.1.1'
먼저 앱 단위 build.gradle에 의존성을 추가해준다.
toast("Very very simple!!")

그리고 나서 한줄, 그것도 toast 함수 하나면 끝이다!

Toast.makeText(this, "Very very simple!!", Toast.LENGTH_SHORT).show()

기존 코드도 한줄로 표현되기는 하지만.. 액티비티가 아닌 곳에서 사용하려면 Context를 어찌저찌 잘 넘겨주어야하고, 또 Toast.LENGTH_SHORT를 매번 붙여줘야하고, 굳이 show()까지 호출해줘야하는 귀찮은 과정이 매번 반복되어야했다. 한눈에 봐도 훨씬 더 간단하게 사용할 수 있다는 것이 느껴진다.





Comments