BigJeon Android 개발 블로그

안드로이드(Ko)_옵저버 (설명, 예시)_EventListener 본문

AOS - Kotlin

안드로이드(Ko)_옵저버 (설명, 예시)_EventListener

Big-Jeon 2021. 4. 3. 17:25
반응형

이번 포스팅에서는 저번 포스팅인 RecyclerView에 이어 실제로 자주 사용하고 편리한 기능인 옵저버에 대하여 다루어 보겠다.

우선 옵저버란 무엇일까?

 

옵저버란?

옵저버는 코틀린의 기초문법중 하나에 속한다.

옵저버(Observer)는 그대로 해석하면 감시자인데, 이름에서도 알수있다시피

특정 키가 입력 됐다든지, 어느 정보가 새로 업데이트 됐다든지등

어느 특정 부분을 감시하고

특정한 조건이되면 미리 정해놓은 동작을 실행시키는 문법이다.

 

예를들어) 특수문자가 불가한 입력창에서 특수문자가 들어갈시 알림을 띄워주는 동작

 

같은것들이 옵저버를 이용한다고 할수있다.

 

옵저버의 편리한점은 생명주기가 destroy되기 전까지 계속해서 특정 부분을 감시하고있기때문에 즉각적인 반응이 가능하고, 개별적인 구현없이 종합적인 감시가 가능해 코드가 간결해진다는 장점이있다.

 

실제 사용시에는 LiveData와 연결하여 특정 단어 검색시 타이핑만으로 미리 결과를 보여주는경우 사용이 가능하다.

 

그럼 예제를 한번 살펴보자.

---------------------------------------------------------------------------------------------------------------------------------이번 예제에서는 간단하게 버튼 클릭시 Count가 1씩 증가하는데 Count가 2의 배수가 될때 마다 "2의 배수입니다"라는

Toast문구를 화면에 띄워주고 Count가 10일시 다시 Count를 1로 초기화 시켜주고 1로 코기화 됨을 Toast 문구로 띄워주는 예제를 다루어보겠다.

 

1)activity_main.xml

우선 레이아웃에는 Count를 1 증가시킬 버튼 한개와 Count값을 출력해줄 TextView한개를 추가해주었다.

 

activity_main.xml

레이아웃은 따로 설명하지 않겠다.

 

2)MainActivity.kt

코드 이쁘게 넣는방법없나....스샷밖에 모르는데...

 

위의 코드에 주석을 달아놨으니 주석과 함께 본다면 이해할수있을것이기에,

동작원리만 적어보겠다.

버튼의 클릭시 Count는 1씩 증가 하게되고,  Counter에서 Count가 설정해놓은 조건에 해당하는지 확인한다,

만약 조건에 해당한다면 EventListener의 OnEvent를 호출하게된다.

OnEvent의 경우 아래의 EventToaster에 override를 해줘 특정 조건마다 실행해줄 동작을 설정해주었기 때문에

조건에 맞는 동작을 실행하게 되는것이다.

마지막으로 Count가 10에 도달하게되면 Count가 다시 1로 초기화 됨을 알려주며 Count가 1로 초기화 된다.

 

*실행화면*

정상적으로 알림이 뜨는걸 확인가능하다.

이렇게 간단하게 observer개념을 사용해 보았는데,

실제 사용할때는 더욱 많은 기능을 추가할수있고, 응용또한 무궁무진하다.

따라서 이 옵저버 패턴의 작동 원리를 잘 기억해두면 나중에 큰 도움이 될거라 생각한다.

 

다음 포스팅에서는 코루틴을 다루어 보도록 하겠다.

(진짜 포스팅하는 방법좀 찾아봐야겠다...스샷으로 하는거 너무 구리다...)

 

잘못된 내용이나 빠진 내용에 대한 지적은 항상 감사합니다.

반응형