분류 전체보기 (169) 썸네일형 리스트형 [Android] CoroutineWorker (WorkManager)를 사용하는 방법과 다양한 옵션. 이전에 작성했던 글인 BatterySaveMode 관련된 작업을 추가할 때도 그랬지만, 실무를 진행하면서 CoroutineWorker를 사용하여 기능을 개발하는 일이 종종 있다.그리고 대부분 생각보다 무겁지 않은 작업을 수행하기 때문에 디테일하에 CoroutineWorker를 살펴볼 일은 많이 없다. 필자도 마찬가지였고, 그래서 CoroutineWorker에서 작업을 할당하고 수행하는 부분에서 문제를 겪어 이유를 찾고 수정하는데 생각보다 많은 시간이 들었다. 따라서, 이번 기회에 CoroutineWorker에 대하여 조금 더 디테일하게 사용하는 방법을 알아보고자 한다.우선,CoroutineWorker를 사용하는 이유는 무엇인가?다양한 이유가 있어서 사용하겠지만 필자가 생각하는 CoroutineWorker.. [Android] BatterySaveMode (PowerSaveMode) 옵션과 유의해야할 점 필자가 업무를 진행하면서 다양한 환경에 대해 고려하고 테스트하면서 업무를 진행했지만, 한 가지 놓쳤던 환경이 있다.그것이 바로 BatterySaveMode(PowerSaveMode)인데, 한국 폰에서는 절전 모드라는 이름의 옵션으로 확인이 가능하다. 이 절전모드에 따라서 달라지는 부분으로 인해 오류가 발생하는 부분이 있었고, 다양한 환경에서 테스트를 해보다가 우연히 동료의 핸드폰에 절전모드가 되어있어 해당 문제의 원인을 발견하여 해결을 했다. 이번 글에서는 간단하게 절전 모드 옵션을 체크하는 방법과, 발생할 수 있는 문제에 대하여 확인해 보도록 하겠다.우선,절전 모드를 체크하는 방법과 옵션을 변경할 수 있는 방법을 알아보자. 절전모드를 체크하기 위해서는 PowerManager를 사용하여 체크를 해야 하므.. [Android] Network 연결 여부를 화면과 API에서 체크하는 방법. 업무를 진행하다 보면, 네트워크가 끊겼을 때 혹은 네트워크가 불안정한 경우 어떻게 처리할 것인가? 에 대한 고민을 하게 된다. 네트워크에 연결이 되어 있지 않으면 화면을 변경한다던지, 네트워크에 관련된 메시지를 보여준다던지 등 다양한 방법으로 처리가 가능한 부분인데, 이번에는 이 네트워크 연결에 대한 체크를 할 수 있도록 간단한 코드를 안내하고자 한다. 필자는 Koin을 사용하고, Compose 환경에서 예제를 만들었지만 DI를 통한 주입 방식이 다른 경우 것을 제외하고는 대부분의 환경에서 동일하게 사용이 가능할 것이다.우선,Koin을 사용하여 네트워크에 관련된 Util을 주입해주어야 하고, Compose를 사용하기 때문에 다음과 같은 Koin 라이브러리를 추가해 주고 시작하도록 하겠다.implement.. [Compose] Compose환경 WebView에서 JavascriptInterface를 사용할 때 주의할 점 필자가 실무를 진행하면서 Compose 환경에서 webView를 사용해야 할 케이스가 생겼다.webView는 여러모로 많이 사용해 보았기 때문에 아주 쉽게 구현하여 확인하고 끝낼 생각이었지만, 생각지도 못한 부분에서 오류가 발생하여 해결하는데 시간을 좀 소모하였다. 명확하게 원인을 파악한 것은 아니지만, 같은 문제를 해결하고 있는 사람들을 위해 문제 점과 해결한 방법에 대해서 작성해보고자 한다.우선 문제점은 다음과 같다. 웹뷰를 선언하여 특정 버튼을 눌렀을 때, webView를 열어 이후 프로세스를 진행하도록 해야 한다.여기서 webView에서 android로 호출하는 javascriptInterface는 정상적으로 동작하고 있었으나, android에서 webView로 호출하는 javascriptInte.. [Compose] Side Effect 관련 API 재 정리 약 2년 전, Compose를 처음으로 공부하면서 Side Effect에 대해서 공부하면서 글을 작성했었다.2022.06.08 - [Android/Jetpack Compose] - [Jetpack] Compose 사용하기 - 2. Side Effect와 Coroutine 12022.06.09 - [Android/Jetpack Compose] - [Jetpack] Compose 사용하기 - 2. Side Effect와 Coroutine 2 공부하던 당시 보고 있던 책의 순서에 따라 공부하면서 작성했었는데, 실무에 적용하기 전 이론으로만 공부했던 부분이라 정확히 어떻게 사용하고, 사용할 수 있는지에 대해 이해를 하지 못한 상태로 작성했었다. 최근 실무를 진행하면서 recomposition 관련해서 자주 생각.. [Compose] SwipeToDismiss를 사용하여 스와이프 이벤트를 추가해보자. 필자가 업무를 진행하다 iOS에서는 익숙하지만 Android에서는 그렇게 익숙하지 않은 제스처 이벤트인 Swipe 하여 Item의 데이터를 변경하는 방법에 대하여 찾아보게 되었다.빠르게 확인하고 적용해본 결과 서비스에 해당 기능은 추가하지 않았지만 작성해 두면 생각보다 사용할만한 곳들이 많이 생길 것 같아서 예제를 만들어보기로 했다. 이번 예제는 Compose에서 제공해주는 SwipeToDismiss Component를 사용하여 해당 이벤트를 구현하였으며, 실무에서 사용할 때 사용할법한 이벤트를 추가하여 구현하였다.우선, 위에서 언급한대로 SwipeToDismiss Component부터 확인해 보자.fun SwipeToDismiss( state: DismissState, modifier: Mo.. [Compose] 다양한 방법으로 Drawer를 구현해보자 - Scaffold, ModalDrawer 최근 업무를 진행하다, 카카오톡에서 보이는 채팅방 서랍 같은 메뉴를 만들어야 했다. 기존에 Compose Sample을 만들 때 해당 UI인 Drawer를 구현해 보았지만, 좌우가 반대이기도 하고 다른 방식을 사용할 수 있었기 때문에 BottomSheet와 마찬가지로 2가지 방법으로 해당 UI를 구현해보고자 한다. 제목에 기술한 Scaffold와 ModalDrawer 말고도 Custom 해서 비슷한 UI를 구현할 수 있지만, 이번에는 해당 케이스는 제외하고 Compose에서 Component로 제공해 주는 2가지 방식만 작성하겠다. 우선 처음으로는 가장 기본적인 Scaffold를 사용하여 구현하는 방법이다. @Composable fun Scaffold( modifier: Modifier = Modifie.. [Android] Android 14 (SDK 34) 버전을 targetSDK로 사용할 때 주의할 점 몇가지 필자가 회사에서 앱을 업데이트하는데, target SDK version을 34로 올렸을 때 발생했던 문제에 대해 간략하게 작성해두고자 한다.런타임시에만 에러가 발생하는 케이스도 존재하기 때문에, 코드로 수정한 후에 직접 실행하여 모든 경우를 체크해 보는 것이 좋다는 것을 미리 언급하고 글을 작성하도록 하겠다. 해당 버전을 targetSDK로 사용하게 되었을 때 변경이 이루어지는 부분은 공식 문서를 보면 알겠지만 상당히 많다.하지만 이러한 문제들은 고려하면서 작업하면 되지만, 필자가 아래에 작성할 몇 가지는 심사 제출을 시도하지 않으면 알 수 없는 부분이 존재하므로 간략하게나마 작성하고자 한다. 부디 이 글을 보는 개발자분들은 앱이 죽는 문제가 있는데 심사가 딜레이되어 똥줄 타는 일이 없길 바란다. *24.. 이전 1 2 3 4 5 6 ··· 22 다음