목록Android (2)
Shunz Android Dev Note
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chtUtn/btsC7mqThAv/uajSlTClBkqjE0H6a8x0c1/img.png)
이번 시간에는 네트워크 연결 상태를 실시간으로 옵저빙 할 수 있는 방법에 대하여 포스팅을 해 보겠습니다. Compose 기반으로 작성되었지만, Compose가 아닌 기존의 UI 개발 방식(명령형)에서도 사용을 할 수 있습니다. 솔루션1 ConnectivityObserver 라는 인터페이스를 생성합니다. 네트워크 연결 상태를 실시간 받기 위하여 Flow 형태로 응답을 받도록 메서드를 하나 선언합니다. 상태는 총 4가지를 가지고 있습니다. interface ConnectivityObserver { fun getFlow(): Flow enum class Status { Available, Unavailable, Losing, Lost } } 인터페이스를 구현한 구체 클래스를 생성합니다. getFlow()의 내..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/p7ONA/btsA2vLeJZb/Fm2okX4r3Q0yfmHfCxBwzk/img.png)
독자는 Android 앱을 개발하면서 LiveData를 자주 사용 해 보았을것입니다. LiveData는 사용하기 쉽고, UI에 표시하기 위하여 필요한 상태를 옵저빙함에 있어 안전하게 라이프 사이클을 관리 할 수 있도록 도와주는 편리한 툴입니다. 생성하기도 쉽고 업데이트하기도 쉽습니다. 또한 옵저빙하기도 쉽습니다. 그래서 개발자들이 간단한 옵저빙이 필요한 모든 곳에서 사용하는 것일 수 있다고 생각합니다. Presentation(UI) 계층에는 괜찮거나, 클린코드 관점에서의 죄책감도 들지 않고, 해가 되지는 않습니다. 하지만 Domain 이나 Data 계층에서는 더 나은 솔루션이 있습니다. 사실, 이런 주제가 나온 것은 처음이 아닙니다. 블로그 게시글, 샘플 및 책에서 좋은 솔루션으로 제공되는 reposit..