10/25 ~ 10/31
RN 0.63.3 + Flipper 0.63.0
RN android
왜!!!
java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
FCM token
언젠가 매일 오던 푸시가 오지 않는다
원인파악을 위해 서버에 에러 로그를 찍어두고 시간이 흘러...
Error: Requested entity was not found
푸시 토큰이 변경되었는지 확인
로그인마다 새로 토큰을 가져오는데 이게 DB 업데이트가 안되고 있나보다
파라미터로 넘기는 토큰을 읽어오지 못해서 구조를 살짝 바꿨는데 이게 문제가 되고 있어 다시 원복
10/18 ~ 10/24
xcode
V12 업데이트 했더니 RN 0.63.0에서 이미지가 보이지 않는다
기존 프로젝트에 RN을 업데이트 하지 않고 사용하고자 xcode v11 다운
xcode-select -p
=> 현재 사용중인 Xcode 확인
Xcode-select -s ${변경하려는 Xcode}
=> 다른 xcode로 선택
Xcode-select로 버전 선택해서 빌드
안드로이드
커스텀 폰트의 font-weight 볼드가 적용되지 않는다
Font-family 자체 볼드가 적용되며 font-weight을 주면 기본 폰트가 적용되버림
노트
매일, 매주, 매월
나름 정리하고 있다고 생각했는데 노트에 매일 투두 리스트를 적어두며 써내려가는 모습을 바로 옆에서 직관하고 나니 갑자기 의욕 추가
CICD
빌드 시간을 줄이고자 캐시
그럼에도 ios 빌드는 오래걸린다
iOS 빌드를 해주는 툴을 찾아봐야지 -> Circleci 동작하는걸 보니 기분이 좋아져서
최신
라이브러리 메이저 버전 업데이트 진행
기존 코드에 영향이 없는지 체크하는게 일
테스트코드를 잘 작성했다면 이럴때 안정감있게 효과를 얻을 수 있을텐데
10/11 ~ 10/17
CICD
업무 생산성을 위해 준비했는데 왜 사용하지 않는거지?
bitrise가 ui가 직관적이라서 처음 시작했는데 무료버전에서는 30분 타임아웃이 있어서 ios 빌드를 테스트해보지 못했다
어차피 유료버전을 써야한다면 circleci로 하는게 좋지 않을까해서 넘어가는중
ios 빌드 환경인 macos는 유료버전을 사용해야하지만 어쨌는 안드로이드부터 설정을 해봐야지
bugsnag
라이브러리 업데이트
native 영역에서 bugsnag 설정 -> js에서 start
Js 에러 발생 -> js bugsnag handler -> native bugsnag handler 전달하는 방식인가
프로세스
RN 안드로이드 빌드 후 항상 프로세스를 잡아먹는 java
매번 강제종료하기 귀찮아서 빌드 후 프로세스를 자동으로 킬까지 해주는걸 해보자
pgrep -f java
=> 실행 중인 java pid를 반환
pkill -9 -f java
=> java 프로세스 종료
프로세스 종료
10/4 ~ 10/10
Kakao map Native module
AndroidX
레거시 프로젝트 관리
react-native-firebase v5 라이브러리에서 빌드 실패
현재 firebase 라이브러리는 v6가 릴리즈 되어있으므로 마이그레이션을 생각 -> v6가 릴리즈되어있는 상황에서 왜 이 버전을 선택하였는지 파악이 되지 않은 상태
jetifier로 androidX를 사용할 수 있도록 지원
reacrt-native-firebase Androidx
실행컨텍스트
알고 있다고 생각했던 그 사실에 대해 한번 더 깊이 알아보기
코드가 실행되는 시점의 환경
나(코드)를 실행하고자 하는 위치의 환경과 당시 내가 처한 환경
당시 나의 환경을 돌아보고 없으면 나를 불러낸 위치의 환경을 둘러본다
10/1 ~ 10/3
Kakao map
* React native kakao map sdk
MainActivity에서 KakaoMapActivity로 전환은 시켰는데 다시 돌아오지 못해 헤매는중
네이티브 모듈로 만들고 싶은데
직접 MainActivity에서 호출하고 넘겨주면 가능하지만 외부 모듈에서 MainActivity값을 어떻게 알아내지?
Android background service
앱을 백그라운드 상태에서도 GPS를 이용하고 싶은데 일정시간(30초정도) 지나면 연결이 끊겨버림
찾아보니 안드로이드 백그라운드에서 메모리를 계속 사용하는 앱을 종료하고 있음
백그라운드에서 위치 정보를 가져오려면 권한을 항상 허용으로 해줘야하는데 이건 퍼미션이 추가되어야함
앱에서 서비스를 시작할 때마다 사용자가 백그라운드에서 앱의 위치 정보 액세스를 허용하는지 확인
항상 허용, 앱 사용중에만 허용 => 백그라운드 권한이 필요한 경우 항상 허용
값이 있는지에 대한 체크가 추가적으로 필요
참고: 안드로이드 백그라운드 위치 권한 옵션
참고: 안드로이드 Q 위치 권한
참고: 안드로이드 백그라운드 앱 실행