JIGGAG

10월 한달동안 로그

2020년 11월 1일

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

  • Android

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 위치 권한
  • 참고: 안드로이드 백그라운드 앱 실행