본문 바로가기
Development/Android (Kotlin)

Kotlin Anko 대체 라이브러리 Splitties

by 알 수 없는 사용자 2020. 3. 27.

안녕하세요 휴몬랩 초보 개발자 호Park 입니다.

이번엔 Kotlin Android 개발에 있어서 매우 유용한 라이브러리에 대해 이야기해 볼까 합니다

라이브러리란?

 

쉽고 간단하게 얘기하자면 그냥 가져다 쓰는 거라고 볼 수 있습니다.

이러한 복잡하고 사용하기 불편한 기능을 구글이나 다른 사람이 편하게 만들어 놓은 것을 우리가 그냥 가져다가 사용하는 것이라고 볼 수 있는데요 그렇다면 왜 그렇게까지 해야 할까요?

=> 이유는 재사용성으로 인한 코드 단축이 제일 크지 않을까요?!

2줄 짜리 코드를 100개 만들어야한다면 총 200줄이 될텐데,

그것을 한줄로 바꿔서 사용한다면 총 1 x 100 = 100줄이 되면 코드가 절반가량이나 줄어들겠죠?

코드가 단축되는것도 좋지만 무엇보다 같은 코드를 반복해서 사용해야할 경우 귀차니즘이 발동됩니다 ㅠㅠ

그런것을 방지하기 위해 우리는 라이브러리를 사용하게 됩니다.

 

한번도 안써본 사람은 있지만 한번만 쓴 사람이 없을만큼 편안한!!!

하지만 라이브러리 사용에도 단점이 존재한다 는 점!

IT업계는 항상 강조하지만 지금 이 순간에도 엄청난 발전을 하고 있습니다.

어제까지만해도 있었는데 오늘 갑자기 사라질 수 도 있는 곳이지요.

라이브러리 또한 마찬가지로 어느 날 갑자기 업데이트가 되지 않을 수 있고 서비스 중단이 될 수 도 있습니다.

그렇다면 이 라이브러리를 사용하고 있는 우리 앱들은 어찌될까요?

당장은 아무런 영향이 없지만 유지보수 하거나 업데이트시에 변경사항이 크다면..아무래도 쓰기 찝찝하겠죠?

새집으로 이사가는데 30년된 다 낡은 쇼파를 굳이 가져가야겠다면..ㅎㅎㅎㅎㅎ

 

그래서 그 예를 한번 살펴 보도록 하겠습니다.

 

코틀린 언어가 나오고부터 지금 시점까지 가장 유용하고 많이 쓰이던 라이브러리가 Anko 였습니다.
그런 Anko 라이브러리가 2019년 12월부로 deprecated가 되었죠 ㅠㅠ
기존에 있던 Anko는 사용할 수 있지만 지원이 멈추었기에 추후에 있을 유지보수와 업데이트를 생각하면 이미 사라진 라이브러리를 사용한다는건 좋은 선택은 아니라고 봅니다.

 

Anko 지원을 중단하게 된 이유로는 안드로이드 자체의 최적화가 지속적으로 진행되고 있으며 Kotlin 사용자들이 늘어남에 따라 더 안정되고 좋은 라이브러리들이 많이 나오게 되어 결국은 손을 놓게 되었다고 합니다. 흑흑!!

하지만 친절하게도 Anko 에서는 대안책까지 내놓았는데요.. (역시 내사랑 Anko!!)

 

정말 친절하게도 상황별로 Anko와 유사하거나 대체할 수 있는 라이브러리들을 나열해 놓았습니다.
그 중에서 이번에 살펴볼 라이브러리들은 ... 유틸리티 전용 라이브러중에 하나인 Splitties에 관하여 짧게 살펴보도록 할까요?!

 

Splitties

Splitties is a collection of small Kotlin multiplatform libraries (with Android as first target).

Splitties라고 이름을 짓게된 이유는 라이브러리들을 최대한 작게 쪼개어 놓았기 때문입니다.

예를들어서 a기능 b기능 c기능 모두 넣어논 A 라이브러리가 있다면 (그것이 Anko였죠..),

Splitties는 그 A라이브러리를 쪼개서 a라이브러리, b라이브러리, c라이브러리로 만들고 필요한 것만 가져다 쓰게끔 하였기에 그렇게 이름을 지었다고 합니다. 
어찌됬든, 그냥 무작정 큰 것을 가져다가 쓰는것보단 필요한것만 가져다가 쓰면서 최대한 앱의 무게를 줄이는것이 목표라는 것이지요.

 

안드로이드에서 사용할 수 있는 스플릿은..

너무 많지요?ㅠㅠ
초보 안드로이드 개발자가 사용하기에 유용한것 2가지만 살펴보도록 하지요..

 

 

제일먼저 Activity Split 에 관해서 알아봅시다!

안드로이드에서 Activity는 하나의 화면이라고 볼 수 있는데요, A라는 화면에서 B라는 화면으로 넘어가려면, 

	val intent = Intent(this, bActivity::class.java)   // this = 현재 activity
	startActivity(intent)  

이렇게 intent 객체를 생성해서 넘어가려고 하는 bActivity 클래스를 서술한뒤 startActivity 메소드를 통해 넘어가야합니다.

하지만 Acitivty Split을 사용한다면?

	start<bActivity>()

넘어가려고 할 bActivity만 <> 안에 써준다면 끝이죠!

2줄 짜리 코드를 Split 라이브러리를 통하면 이렇게 간단하게 깔끔한 한줄짜리 코드로도 실행 가능한 점!!! 

 

 

2줄 짜리 코드를 한줄로 하는게 모 별거라고..라고 생각될 수도 있지만 앞으로 이 Acitivity Intent 코드는 수 없이 쓰게 될텐데 저렇게 짧게 코드를 변경하는 것만으로도 행복함을 느낄 수 있습니다 :)

 

하나 더 Toast Split에 대해서 알아볼까요?

안드로이드 Toast 란?

 

앱을 사용하다보면 하단에 위의 이미지처럼 팝업 글씨가 보일 때가 있습니다.

이것을 toast 라고 하는데요, 이 toast를 사용하기 위해서는

Toast.makeText(this@MainActivity, "Hi There! This is a Toast.", Toast.LENGTH_SHORT).show()

이렇게 길게 (현재Activity, 토스트에 나올 TEXT값, 보여지는 시간).show() 를 입력해줘야 합니다.

하지만 toast spilt을 사용한다면?!

toast("Hi There! This is a Toast.")

아주 간단하죠?

안드로이드 스튜디오 내에서 사용되는 로그에 익숙해지기전에 안드로이드 초보 개발자들이 많이 쓰는 것이 toast 입니다. 그렇기 때문에 항상 toast를 쓰기위해서 저렇게 긴 줄을 보다는 짧고 간결한 한줄로 끝내는 마법이 필요한 것이죠!!

 

그렇다면 사용법은?

1. Splitties 깃헙에 들어가 어떤 라이브러리를 쓸 지 선택한다.

2. 선택한 라이브러리 화면에 (Activity Split 예제)

implementation("com.louiscad.splitties:splitties-activities:$splitties_version")

splitties_version은 현재 최신버전을 찾는다.

3. build.gradle 폴더에 

사용할 라이브러리를 넣고 우측 상단에 프로젝트 Sync Now 클릭!!

4. 클래스 페이지에서 바로 사용한다.

 

이 외에도 유용한 라이브러리들이 많으니 하나씩 사용해보고 익숙해지도록 많이 사용해보시길 바랍니다 :)

부디  Splitties는 영원하기를!!!!!!!!!

댓글