본문 바로가기

android51

[Android] 안드로이드 위젯 알아보기 3편 - Glance, Compose, Kotlin (Android Compose Glance Appwidget) 상호작용 지난 2편에서는 간단한 앱 위젯을 만들어봤다면 이번 3편에서는 액티비티 실행, 서비스 실행 등 앱 위젯 상호작용에 대해서 알아보자!# 상호작용 종류- 활동 실행 (Activity)- 서비스 실행- 브로드캐스트 이벤트 전송- 콜백 실행 상호 작용이 가능한 종류로는 위 4가지가 있다.위 종류에 대한 작업을 실행하려면 GlanceModifier.clickable 메서드를 사용하거나 Button의 onClick 메서드처럼 Action클래스에서 정의해 주면 된다. 하나하나 살펴보자!## 활동 실행 (Activity)만약 어떠한 Action이 들어왔을 때 액티비티를 띄워주고 싶다면 아래와 같이 actionStartActivity라는 메서드를 사용한다. actionStartActivity에는 총 3가지를 제공할 수 .. 2024. 5. 3.
[Android] 네트워크 보안 구성 SSL 핀셋(pinset) 검증 SHA-265 키 구하기 - 공개키 핀닝 (android network-security-config pin-set key setting) SSL Pinning을 해야하는 이유 with android Glide javax.net.ssl.SSLHandshakeException: Pin.. 이번 공부노트는 안드로이드 SSL Pinning 할 때 여러 가지 방식이 있지만 Network Security Configuration 방식에서 pin-set SHA-265 Key를 구하는 방법을 포스팅해 보겠다. 나도 회사에서 받은 프로젝트에 Network Security Configuration로 SSL Pinning이 되어있어서 키 값을 구해야 하는 상황이었다. 구글링을 해보면 전부 Gradle를 통해서 다른 SHA-265 Key 즉 D9:8F:58~~~~ 이런 식으로 되어있는 키 값 구하는 법 밖에 안 나와서 나처럼 pin-set SHA-265 key를 구하고 싶은 사람을 위해 포스팅을 하기로 결정했다. 본 포스팅은 SHA-265 key 값을 구하는 게 주목적이기 때문에 SSL Pinning을 해.. 2024. 3. 20.
[디자인패턴 - 데코레이터패턴] 데코레이터패턴이란? 예제를 통해 이해하기 (Decorator Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 데코레이터 패턴 ## 정의 데코레이터 패턴은 기존 코드를 수정하지 않고도 기능을 동적으로 추가하거나 변경할 수 있게 해주는 디자인 패턴이다. 이 패턴은 구조 패턴의 한 종류로, 기본적인 객체에 추가적인 기능을 부여하기 위해 '감싸는' 형태로 적용된다. 이를 통해 기존 클래스를 수정하지 않고도 새로운 기능을 추가할 수 있다. ### 장점 기존 코드를 수정하지 않고도 기능을 추가하거나 변경할 수 있다. 단일 책임 원칙을 준수한다. 각 데코레이터는 자신의 기능만을 추가하므로 기능이 분리되어 코드의 유지보수가 쉽다. ## 예제 시나리오 어느 한 사람이 카페에 가서 아이스티의 샷 추가를 하는 상황이다. ### 구현 순서 1. 음료를 나타내는 Beverage 인터페이스 생성 (음료 설명, 가격 반환 메서드 포함.. 2024. 3. 10.
[Android-Compose] 안드로이드 컴포즈 애니메이션 예제와 함께 알아보기!(animateColorAsState, AnimatedVisibility, fadeIn, fadeOut ) 이번 공부 포스팅은 컴포즈 애니메이션에 대해 간단하게 알아보겠다. # animateColorAsState 우선 이 컴포저블 함수는 이름에서도 알 수 있다시피 Color에 관련한 애니메이션 함수이다. 인자로는 targetValue, animationSpec, label, finishedListener 4가지가 들어가야 한다. 그중 우리가 여기서 볼 거는 targetValue이다 이 인자에는 바꾸고 싶은 색상을 넣으면 된다. 나머지 인자들은 옵션이기 때문에 더 자세히 알고 싶으시면 따로 검색을 하는 걸 추천한다. 반환은 State 로 되기 때문에 by를 통해 값을 받아오는 게 깔끔하고 좋다 아래는 animateColorAsState의 유무의 차이이다. 사람에 따라서는 차이가 없다고 느낄 수도 있지만 작은 디.. 2024. 1. 12.
[Android] 안드로이드 인앱결제 관련 이론 정리 이번 포스팅을 해볼것은 안드로이드 앱내에 인앱결제 관련해서 이론적으로 정리해보겠다. ※ 본 포스팅의 참고 문서는 최신 문서가 아닌 예전 문서를 바탕으로 작성 된 것이므로 잘못된 내용이 있으면 댓글 부탁드립니다 :)# 인앱결제의 종류## 1. 일회성 제품 - 일회성 제품은 사용자가 결제 방법으로 반복되지 않는 단일 요금을 지급함으로써 구매할 수 있는 컨텐츠. Google Play 결제 라이브러리에서는 정기 결제를 "INAPP"이라고 칭한다. 일회성 제품은 아래 두가지 종류로 나뉜다.👉 소비성 제품 : 소비성 제품은 사용자가 게임 내 컨텐츠를 받기 위해 소비하는 제품. ex) 게임 머니 👉 비소비성 제품 : 비소비성 제품은 한 번 구매하면 영구적인 혜택을 제공하는 제품 ex) 프리미엄 업그레이드## 2. 정.. 2023. 12. 1.
[오류] 안드로이드 Google 애널리틱스 이벤트 로깅이 안되는 이슈 해결방법 (Android Google Analytics Event Logging) 이번 오류 포스팅은 안드로이드 Google 애널리틱스 이벤트 로깅이 안 잡히는 이슈 해결방법을 포스팅해보겠다. 물론 다른 경우에 따라 이 해결방법이 아닐 수도 있지만 나에 경우는 이 오류였기 때문에 혹시나 나랑 같은 분이 계실까 봐 공유를 한다. # 오류 발단 우선 나의 경우는 바텀내비게이션에 특정 탭을 누르면 이벤트를 발생시키는 로직을 구현하였다. 그래서 이벤트 명을 click_therapist_home_healclass_navigation으로 설정을 하였고 전달해 주는 매개 변수는 없었다. # 오류 원인 바로 본론으로 오류의 원인으로 말하면 위에 이벤트명이 너무 길었던 게 오류의 원인이었다. 이 오류를 어떻게 알게 되었냐면 처음에는 코드에 문제가 있는지 코드를 수정해도 봤는데 아무리 해도 달라지지 않.. 2023. 11. 10.