본문 바로가기

전체 글103

[Android-FCM] 앱이 Background일때 푸시가 오면onMessageReceived가 작동하지 않는 이슈 해결방법 이번 포스팅은 삽질 포스팅이다. 무려 이 이슈 때문에 4일을 여러 가지 시도를 해보면서 고민해 봤던 거 같다. 우선 결론부터 말하자면 프론트 쪽을 바꿀게 아니라 백엔드 쪽을 바꿔야 한다. 나는 이것도 모르고 프론트에서 4일 동안 헤맸다. # 문제 상황 내가 구현하려고 했던 로직이고 간단하게 그려보았다 여기서 문제 상황은 3~4번째 사이에서 문제가 일어났다. 푸시 메시지를 수신 시 자동으로 호출되는 onMessageReceived 메서드에서 노티 클릭 시 PendingIntent를 만들어 putExtra로 데이터를 SplashActivity에 넘겨주었다. 하지만 SplashActivity에서 getStringExtra로 값을 로그로 출력해 보면 값이 비어있었다. 여기서 나는 아래와 같은 시도들을 했다. -.. 2023. 2. 9.
[Android] DI(Dependncy Injection) 알아보기! 이번 공부 할 내용은 안드로이드 개발 시 필수 적인 DI를 알아보겠다. # DI(Dependncy Injection)란? 의존성 주입을 먼저 알아보기 전에 의존성을 알아야 이해가 더 쉽기 때문에 의존성을 먼저 알아보자! ## 의존성(Dependncy)이란? - 객체지향 언어에서는 두 클래스 간 관계를 의미한다. 예를 들면 "A.class가 B.class를 의존한다"라고 했을 때 B.class가 변경 또는 추가가 되면 A.class도 영향을 미치는 것이다. 더욱더 자세히 예제를 만들어 보면 "자동차는 엔진에 의존한다"라는 의존성 예제가 있으면 엔진을 수정하게 되면 수정된 엔진에 따라서 자동차를 수정해야 한다. 엔진의 변화가 자동차에게도 영향을 미쳤기 때문에 자동차는 엔진에 의존한다고 볼 수 있다. 이제 이.. 2023. 2. 5.
[Git] .gitignore 파일이란? 깃허브에 코드를 푸시하다 보면 API 키 값, 서버 API URL 등 올려서는 안 되는 값들이 있다. 그럴 때는 .gitignore을 이용한다. 이제부터 .gitignore파일이 정확히 무엇인지 알아보자! # .gitignore 란? 위에서도 간단하게 설명했지만 올려서는 안 되는 보안 키 값들 프로젝트와 관련이 없는 파일 등 이러한 값을 git 레포에 올리지 않고 제외시키는 파일이다. .gitignore 파일은 보통 깃 레포 만들 때 같이 만들어지며 프로젝트 최상위 위치에 존재하게 된다. # .gitignore 작성 패턴 .gitignore 파일을 작성할 시 아래와 같은 패턴이 있다. 표준 Glob 패턴을 사용 '#'로 시작하는 라인은 무시 (주석 역할) 슬래시(/)로 시작하면 하위 디렉터리에 적용되지 .. 2023. 2. 5.
[네이버 아이디 로그인 오류(네아로)] Fatal Exception: kotlin.UninitializedPropertyAccessExceptionlateinit property oauthLoginCallback has not been initialized 해결 방법 얼마 전 Firebase crashlytics에 아래와 같은 이슈가 올라왔다. Fatal Exception: kotlin.UninitializedPropertyAccessExceptionlateinit property oauthLoginCallback has not been initialized 상세하게 살펴보니 네이버 로그인 시 발생하는 이슈였다. 그래서 나는 열심히 구글링을 해 원인과 해결방법을 찾았다. 이제부터 공유를 해보겠다. # 이슈 원인 ※그전에 필자는 네아로 sdk v5.1.1 버전을 사용하고 있다. EncryptedPreferences 클래스에 정의된 lateinit 코드로 인해 크래시가 발생하는 것으로 보인다. object EncryptedPreferences { private latei.. 2023. 1. 24.
[Android-Compose] 안드로이드 컴포즈 Text HyperLink (텍스트 하이퍼링크) 적용하기 이번 공부 노트는 Android-Compose에서 텍스트 내용 중 하이퍼링크를 적용하는 법을 알아보겠다. 아래 코드는 스택오버플로우에서 구했는데 정확히 그 링크를 찾지 못하였다..ㅜㅜ # 적용 코드 import android.os.Build import android.text.SpannableString import android.text.style.URLSpan import android.text.util.Linkify import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.mater.. 2023. 1. 15.
[Android] 안드로이드 전화번호 포맷 맞춰주기 (전화번호 사이에 하이픈(-) 넣기) 오늘의 공부 내용은 전화번호 양식에 맞게 파싱을 해보겠다. 보통 회원가입 화면을 만들 때 전화번호를 받는다. 이때 전화번호 양식을 맞춰야하는데 보통 01012345678 처럼 하이픈(-)을 제외한 전화번호를 입력받는다. 하지만 여기서 중간마다 하이픈을 넣어주고 싶으면 여러 방법이 있는데. 이번 포스팅에서는 안드로이드에서 기본적으로 제공해주는 PhoneNumberUtils을 이용해 볼 것이다. # 오늘의 예제 화면 미리 보기 본 예제는 ViewBinding을 사용한다 아직 숙지가 안되어 있다면 링크를 클릭해 학습을 하고 오는 걸 추천한다. 이름, 나이, 전화번호를 입력받고 그 결과를 출력하는 간단한 예제이다. 여기서 중요 포인트는 전화번호를 하이픈(-) 제외 후 입력받고 결과는 전화번호 사이에 하이픈을 추.. 2022. 12. 28.