안드로이드/응용4 [Android/서비스] 앱 간 통신 문제 : 현재 회사에서 POS 앱을 만들고, 클린아키텍처 기반으로 앱을 구성하였으며, 특히 앱은 화면만 그리고 기능적인 부분은 aar형태의 SDK를 만들어서 종속성을 주입하여 사용하고 있었습니다. 하지만 주변장비(스캐너, 프린트, 카드리더기)에 제조사가 늘어남에 따라 제조사에서 제공한 jar, aar 형태를 sdk에 전부 넣다보니 점점 비대해져 장비에 대한 Data Layer 만 별도의 서비스 앱을 만들어서 운영할 계획입니다. 해결법 : 우선 서로다른 앱간의 통신을 위해 IPC( Inter-Process Communication)를 도입하였습니다. 구현 1. 서비스 호출 : 우선 SDK에서 서비스를 호출2. 연결완료3. 메시지 송신 : 연결이 완료되면 메세지를 통해 필요한 명령을 수행하고 해당 함수를 s.. 2025. 1. 2. [Android/Jetpack Compose] 더블클릭 및 다중클릭 막기 CompositionLocalProvider( LocalSafeClickableInvoker provides SafeClickableInvoker() // SafeClickableInvoker 추가)개요다중 클릭 및 동시 탭 방지는 모바일 앱에서 중요한 기능 중 하나입니다. 사용자의 빠른 연속 클릭이나 여러 손가락으로 발생하는 동시 탭은 의도치 않은 동작을 유발하거나 앱의 안정성을 해칠 수 있습니다. 특히 결제, 데이터 저장과 같은 민감한 작업에서는 이러한 문제를 미연에 방지하는 것이 필수적입니다.이러한 문제를 효과적으로 해결하기 위해 safeClickable이라는 확장 함수를 만들어 보겠습니다.이 글에서는 safeClickable의 구현 방식과 사용 방법을 알아보고, 이를 실제 프로젝트에서.. 2024. 12. 1. [Android/Jetpack Compose] KIOSK 모드에서 다이얼로그 호출 시 시스템 네비게이션 숨기는 방법. 문제 : KIOSK 모드에서 다일로그/팝업 호출 시 시스템 하단 시스템 네비게이션이 호출 되는 문제원인 : Dialog 호출 시 기존에 폼이외에 별도로 새로운 폼을 뜨우기 때문에, 기본 폼에 상태바를 제거해도 나타나는 문제. @Composablefun MinimalDialog(onDismissRequest: () -> Unit) { Dialog(onDismissRequest = { onDismissRequest() }) { Card( modifier = Modifier .fillMaxWidth() .height(200.dp) .padding(16.dp), shape .. 2024. 6. 9. [Android/Jetpack Compose] 서명창(signature) 만들기 1. Canvas를 이용하여 UI 구성 1. 포인터 정보를 저장 할 Data class 생성data class PathState( val path: Path, val color: Color, val stroke: Float,) 2. Composalbe 생성@Composablefun ComposeSignature( modifier: Modifier = Modifier, signaturePadColor: Color = Color(0xFFEEEEEE), signaturePadHeight: Dp = 500.dp, signatureColor: Color = Color.Black, signaturePadCardElevation: Dp = 4.dp, signature.. 2024. 5. 19. 이전 1 다음