분류 전체보기 (175) 썸네일형 리스트형 [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로 사용하게 되었을 때 변경이 이루어지는 부분은 공식 문서를 보면 알겠지만 상당히 많다.하지만 이러한 문제들은 고려하면서 작업하면 되지만, 필자가 아래에 작성할 몇 가지는 심사 제출을 시도하지 않으면 알 수 없는 부분이 존재하므로 간략하게나마 작성하고자 한다. 부디 이 글을 보는 개발자분들은 앱이 죽는 문제가 있는데 심사가 딜레이되어 똥줄 타는 일이 없길 바란다. * 2.. [Compose] 다양한 방법으로 BottomSheet를 구현해보자. - BottomSheetScaffold, ModalBottomSheet, CustomBottomSheet Compose 환경에서 개발을 진행하다 보니, BottomSheet Component를 사용하는 경우가 상당히 많다. 특정 버튼 및 아이템을 눌렀을 때, 페이지보다 가볍게 해당 아이템에 대한 디테일한 정보 혹은 다음 Depth의 정보를 보여주기 위해 많이 사용한다. UX 관점에서 생각했을 때 BottomSheet를 사용하는 다양한 이유가 존재하겠지만, 정말 단순하고 직관적으로 위와 같은 이유로 모바일 환경에서 많이 사용한다고 느낀다. 그리고 그 자주 사용하는 BottomSheet를 구현하는 것에 있어서 다양한 방법이 존재했고, 필요에 따라서 선택해서 구현하기 위해 조금 더 디테일하게 공부하고 정리하기 위해 이 글을 작성하게 되었다. 글의 제목으로 작성했듯이 필자는 이 3가지 방법으로 BottomSheet.. [Android] 정책 변경 후 구글 플레이스토어 개발자 계정 생성부터 신규 앱 배포까지 과정 정리 - 2주간 테스터 20명 유지하기 구글 플레이 콘솔 정책 변경에 따라, 23년 11월 13일 이후 개발자 계정을 만든 개발자는 특정 테스트 요구사항을 충족해야 Google play에 앱을 게시할 수 있도록 변경되었다. 필자는 앱 개발을 19년도부터 진행했지만, 개발자 계정을 만들고 배포하기까지의 과정이 간단했기 때문에 별다른 생각을 하지 않고 필요하면 그때 개발자 계정을 만들어서 사용해야겠다고 생각했다. 하지만 이렇게 신규 개발자 계정에 대한 정책이 바뀌고 나서, 한번 찾아보니 여간 귀찮은 프로세스가 아닌지라 정책이 바뀌고 나면 미리 만들어서 프로세스를 진행시켜 둬야겠다고 생각했다. 따라서, 이번 글에는 간단하게 앱을 만들어서 그 앱을 배포하기 까지의 과정을 간단하게, 신규 개발자가 궁금할만한 것들만 작성해보고자 한다.우선, 개발자 계정.. 이전 1 2 3 4 5 6 7 ··· 22 다음