본문 바로가기

Mobile/Android12

[Android] gRPC keepAlive 적용기 문제상황서비스 운영 중, 앱에서 실시간 데이터가 갱신이 되어야 하는 상황임에도 불구하고 실시간 정보가 제대로 갱신되지 않는 것 같다는 요구사항이 들어왔다.해결과정현재 우리는Android 에서 gRPC Java 를 통해 server 와 통신 중에 있으며, StreamObserver 로 응답 값을 받아오고 있다.당시 문제가 되는 rpc 는 Server Stream 이었다.원인 분석Q) 서버에서는 응답 값을 정상적으로 전달하였는가?⇒ YES.server 측 로그 분석 결과, client 로 정상적으로 응답 값을 전달을 시도한 것으로 확인했다. (하지만 client 에서 메시지를 받지 못하였음)============근데 전송 당시에 실제 서버에 남은 로그가 존재했던가? 아니면 아무런 이상이 없었던가?Q) 네트워.. 2024. 5. 25.
[Android] 코드 최적화 proguard-android-optimize 관련 이슈 proguard-android-optimize.txtproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '[proguard-rules.pro]()'“proguard-android-optimize.txt” 는 최적화 수준이 “proguard-android.txt” 에 비해서 더 공격적으로 최적화를 진행한다.따라서 난독화 도구에 의해 런타임에서 제네릭 정보를 제거하거나 변경할 수 있다.따라서, 타입 정보가 반드시 필요한 매서드의 경우에는 오류가 발생한다.ex) 나는 com.google.gson.reflect 의 TypeToken 과 같은 메서드를 사용했었다.해결1. 위에서 사용한 “proguard-android-optimize.txt.. 2024. 5. 25.
[Jetpack] Compose 간단 개념 정리 Composable typestateful상태가 변하면 자기 자신과 child 의 Composable 을 재구성(re-compose) 한다.stateless스스로 재구성할 수 없기 때문에 부모의 Composable 이 재구성되면 자신도 재구성한다.composable 종류LayoutBoxConstraintLayoutBoxWithConstraintsColumnRowFoundationBaseTextFieldLazyRowCanvasShapeImageTextLazeColumnMaterialAlertDialogRadioButtonButtonScaffoldCardSliderCircularProgressIndicatorSnackbarDropdownMenuSwitchCheckboxTextFieldFloatingActio.. 2024. 5. 25.
[Jetpack] Navigation 간단 개념 정리 설명내비게이션 아키텍처에서는 내비게이션 스택을 이용해 사용자 경로를 추적함목적지 사이의 이동, 내비게이션 스택 관리와 관련된 모든 작업은 NavHostController 에서 제공하는 하나의 Navigation Controller 에 의해 처리된다.목적지앱을 구성하는 각 화면(컴포저블 또는 액티비티 등)Navigation Host사용자가 이동할 목적지의 placeholer 역할을 한다.Navhost 호출 시에는 시작 목적지와 내비게이션 그래프 역할을 하는 Composable 인 NavHostController 인스턴스를 전달해야 한다.Navigation Graph이동 가능한 목적지로 이용할 수 있는 모든 컴포저블로 구성된다.목적지들은 Route 형태로 선언된다.목적지 추가하기sealed class Nav.. 2024. 5. 25.
proto file 한글 주석이 깨지는 현상 visual studio project 에서 사용하는 proto file 을 android project 로 파일 째로 copy & paste 할 경우, 한글 주석이 깨지는 현상 --> 일단 파일 열어서 내용 전체를 copy & paste 하는 걸로 해결 이유는, visual studio 에서 만든 proto file 이 utf-8 로 되어있지 않은 것으로 파악됨. 좀더 알아봐야함 2023. 5. 19.
[해결][Android] Error: tools:replace specified at line:22 for attribute android:appComponentFactory 에러 내용 Merging Errors: Error: tools:replace specified at line:22 for attribute android:appComponentFactory, but no new value specified Example_Project.app main manifest (this file), line 21 Error: Validation failed, exiting Example_Project.app main manifest (this file) 해결법 menifest 에서 tools:replace="android:appComponentFactory" 제거 2022. 11. 22.