Programming/TIL (22) 썸네일형 리스트형 20.12.03(목) TIL - FCM 푸시가 왔을 때 액티비티에서 이벤트 처리하는 법 요구사항 FCM 푸시알람이 오면 사용자가 알람을 클릭하지 않더라도 액티비티가 이동한다. 문제해결과정 LiveData를 사용하는 것까지는 좋았는데.. FirebaseMessagingService 클래스 내부에 public 으로 변수를 선언해도 접근이 안 되었다. 열심이 구글링한 결과 핵심은 싱글톤!! 싱글톤 클래스에 livedata를 선언해야 서비스 클래스와 액티비티(프래그먼트) 클래스 모두에서 접근이 가능했다. 구현내용 1. LiveData를 포함한 싱글톤 클래스 Event를 생성한다. object 키워드로 클래스를 정의하면, 싱클톤 패턴이 적용되어 객체가 한번만 생성된다. 2. FirebaseMessagingService 클래스의 onMessageReceived 메소드에 값을 업데이트해준다. onMes.. 20.09.11(금) TIL 1. 락커가 잠겼는데 서버에 이용시작 등록이 되는 경우가 있고, 락커가 열렸는데 서버에 이용시작 등록이 되지 않는 경우가 있다. 후자의 경우 무료로 자전거를 이용하게 되므로 큰 문제이다! 일단 블루투스의 연결상태나 송수신 상태를 잘 파악하고 에러 처리하는 게 중요하다. 일단 세세하게 에러 상황을 나누어 보았다. 1) 블루투스 연결 실패시 2) 연결 성공후 데이터 전송 실패시 3) 데이터 전송 성공후 수신실패시 1은 현재 여러가지 상황에서 에러처리하고 있고 사용자에게도 블루투스 연결이 안된다고 안내가 간다. 2는 throwable로 에러를 받아 로그를 찍고 있다. 3도 연결이 된 이상 송수신은 문제가 없이 데이터 전송하면 거의 0.3초만에 응답이 왔다.. 2,3은 지금까지 개발하고 테스트하면서 발생한 적은.. 20.09.10(목) TIL 1. 사용자가 생기니 crashlytics에 버그가 쌓인다ㅎ 정확한 플로우를 알 수가 없어 테스트하기가 힘들지만 개발과정에서 예상하지 못했던 문제들을 발견해서 다행이다. 한편으로는 이런 에러도 발생할 수 있구나하는 신기한 마음도 든다. 근데 업무가 많은 상황에서 우선순위를 잡기가 힘들다. 2차 개발, 기획팀의 추가 요청, 서버 보안적용 요청, 블루투스 안정화 등등.. 일단 카톡도 죽는데.. 나 혼자 완벽하게 하는 것은 현실적으로 무리같다. 콘솔상의 비정상 종료 미발생 통계가 97-98 수준에서 급하고 자주 발생하는 에러부터 해결하는 것으로! 2. 로그인/회원가입 시 핸드폰 번호를 입력하는데 에뮬레이터에서 구분자(-)가 나타나지 않는 현상이 발생했다. 처음에는 에뮬레이터 자체의 문제인가? 디바이스가 달라서.. 20.09.09(수) TIL 1. 아침에 release 버전으로 build했는데 앱을 실행하자마자 죽고 난리가 났다. 로그를 찍어보아도 a.a.b 이런식으로 암호화되어서 나오고 통신하는 값은 다 null값이 뜨고 무언가 이상했다. 다행히 스토어에 올라간 버전은 정상 작동되었는데.. 처음에는 서버의심하다가 안드로이드 스튜디오 문제인가 하면서 한 시간 가량을 헤맸다. 그러다 뭔가 build 하는 과정에서 잘못된 것 같아서 commit 창에서 변경된 사항을 보았더니 minifyEnabled=true 로 변경되어있었다. 나는 이걸 변경한 적 없으므로 일단 minifyEnabled=false로 되돌렸더니 동작은 잘 되었다. 그 다음에 이게 뭐지?하면서 찾아보니까. 코드를 난독화하는 설정이었다. 클래스와 멤버 이름을 줄여서 로그 찍을 때 a... 20.09.08(화) TIL 1. fcm 푸시 보내는 형식이 안드로이드와 iOS가 달라서 변경할 필요가 있었다. 기존에 notification이 아니라 data에 내용을 넣어달라고 요청했는데 iOS는 notification이 있어야 알람이 가나 보다.. 문제는 안드로이드가 백그라운드에 있을 때 onMessageReceived가 호출되지 않아서 푸시를 클릭했을 때 액티비티 이동처리를 할 수 없고 무조건 홈화면으로 간다는 것.. 그래서 click_action을 추가해달라고 요청한다음 해당 manifes에 intent-filter를 넣어서 인텐트로 data정보를 받을 수 있도록 처리하였다. https://knoow.tistory.com/182 2. 태블릿에서 이미지뷰가 잘리는 현상이 발생했다. scaleType=centerCrop으로 했.. 20.09.07(월) TIL 1. 플레이 스토어에서 '기기가 이 버전과 호환되지 않습니다'라고 나오는 문제가 발생했다... 콘솔에서 보니 지원되는 기기가 0이었다. 디바이스의 특정 하드웨어인 카메라 기능을 사용하기 때문에 앱의 manifest.xml 파일에 아래와 같이 선언하였는데 이 코드가 문제였다. 우선 안드로이드 SDK에 정의된 camera2에는 플래그가 없고, required 속성을 지정하지 않아 기본값이 true가 되었다. 이 경우, 기기에 지정된 기능이 없는 경우 앱을 사용할 수 없기 때문에 어떤 장치도 이를 지원하지 않는다고 나온다. 그래서 모든 기기에 camera2가 없으니 sdk버전과 상관없이 설치가 안 되었던 것이다. 그래서 아래와 같이 변경하여 업데이트 하였다. 일주일만에 플레이스토어 승인 받았더니 바로 이런 문.. 20.09.03(목) TIL 1. firebase crashlytics 라이브러리 추가하고 강제로 에러 나게 하는 테스트코드도 작성해서 빌드했는데 콘솔의 대시보드에서는 에러가 보고되지 않았다. 객체를 생성해주지 않은 것 같아서 예제 코드에서 catch 구문에 FirebaseCrashlytics.getInstance().recordException(e) 이 한 줄 추가해주었더니 잘 되었음! https://stackoverflow.com/questions/49528780/fabrics-crashlytics-with-firebase-cant-be-disabled-for-debug-builds/52135955 https://black-jin0427.tistory.com/210 2. AES 암호화에서 initVector랑 secretKey값.. 20.09.02(수) TIL 1. 어제 master 브랜치에서 작업을 했는데 변경사항들을 dev로 다시 가져오고 싶어서 rebase를 사용함. 원래 dev에서 작업하고 master에 병합해야하는데.. 빨리 버전 업데이트 해야 한다는 생각에 마음이 급해서 그냥 master에서 작업해버림.. 2. 플레이스토어에 버전 1.0 올려서 심사중인데 버전 1.1을 올리게 되면 1.0심사는 그대로 멈추게 되는 것인지 1.0과 1.1 심사가 동시에 이루어지는지 궁금했다. 1.0이 비활성화된다고 콘솔에 뜨는 것으로 보아 전자가 맞는 것 같긴한데 그래도 정확하게 확인을 하기 위해 고객센터에 문의해 보았다! 마음이 급해서 메일 보내놓고도 채팅으로 물어보려고 하는데.. 코로나로 인원이 없는지 자꾸 채팅이 어렵다고 나왔다. 그래도 버튼 활성화 되길 기다려서.. 이전 1 2 3 다음