오늘은 뭘 배울까?/삽질 기록5 결제 구현 중 productDetailsList가 empty list를 받아오는 이유 1. 증상 2. 원인 및 해결 방법 2-1. 타이밍 이슈 2-2. 플레이 콘솔에 상품을 제대로 등록했는가? 2-3. 패키지명이 일치하는가? 1. 증상 요즘 구독 결제 기능을 개발하고 있는데 플레이 콘솔에 등록된 상품 정보를 불러오지 못하는 이슈가 있었다. 코드를 정확히 짚어서 말해보자면 private fun querySubscriptionProductDetails() { val params = QueryProductDetailsParams.newBuilder() val productList: MutableList = arrayListOf() for (product in LIST_OF_SUBSCRIPTION_PRODUCTS) { productList.add( QueryProductDetailsParams... 2023. 11. 2. stateflow가 같은 값을 update 하는 이유 1. 증상 2. 한 번만 update하는 stateflow 예제 3. 여러 번 update하는 stateflow 예제 4. 해결 방법 4-1. state flow 나누기 4-2. state를 관리하지 않고 단발성으로 emit 하기 5. 결론 1. 증상 stateflow는 분명 이전 값과 현재 값이 일치하면 다시 update하지 않는다. 예를 들어 이전 값이 false였고 현재 값도 false면 update 하지 않으며 현재 값이 true가 되면 그때서야 update 함수가 먹힌다. 하.지.만 내 코드에서 stateflow를 collect 하는 부분이 계속 호출되는 문제가 발생했다. 로그를 찍어보니 계속 똑같은 값을 update 하고 있는데 내 머리로는 이해가 가지 않았다. 알고 보니 엄청 허무하고 부끄러.. 2023. 1. 26. GitHub 토큰 인증 로그인 : support for password authentication was removed 1. 사건 배경 2. 원인 3. 해결 방법 3-1. 토큰 생성 3-2. 자격 증명 설정 3-3. 토큰 사용 4. TMI 1. 사건 배경 분명 eclipse를 통한 git push를 잘 사용하고 있었는데 오늘 사용하려 했더니 계속 인증 실패가 떴다. 내가 브라우저 자동 로그인을 해놔서 아이디랑 비밀번호를 까먹었나? 그래서 브라우저로 로그인해봤는데 잘만된다. 이클립스에서만 로그인이 안된다. Can't connect to any URI: ~~ not authorized 연결할 수 없습니다. 인증되지 않았습니다. 이런 에러창만 보여주고 정확히 뭐가 문제인지도 모르겠고 해결책도 안 알려주니 미치고 팔짝 뛸 노릇 2. 원인 "support for password authentication was removed" ".. 2021. 8. 21. recyclerView를 업데이트 하는 5가지 방법 (notifyDataSetChanged를 사용하지 말자) 1. 사건 배경 2. 증상 3. 리스트를 업데이트하는 5가지 방법 3-1. 전체 업데이트 3-1-1. notifyDataSetChanged 3-2. 변경 3-2-1. notifyItemChanged 3-2-2. notifyItemRangeChanged 3-3. 추가 3-3-1. notifyItemInserted 3-3-2. notifyItemRangeInserted 3-4. 삭제 3-4-1. notifyItemRemoved 3-4-2. notifyItemRangeRemoved 3-5. 이동 3-5-1. notifyItemMoved 4. 해결 방법 5. 또 다른 문제 및 해결 방법 1. 사건 배경 블로그에 포스팅하기 위해서 양방향 바인딩 + recyclerView를 공부하고 있었다. 배달의민족 공지사항을 .. 2021. 6. 18. Observer가 LiveData를 관찰 못할 때 1. 사건 배경 2. 증상 3. 시도한 방법 3-1. LifeCyclerOwner 확인 3-2. 액티비티 수명 상태 확인 3-3. observerForever 사용 3-4. hasActiveObservers 사용 4. 결론 어쩐지 검색해도 해결방법이 안 나오더라니 이런 멍청한 실수를 하는 건 나밖에 없는 것 같아서 이 포스팅을 쓸까 말까 고민했다. 그치만 삽질하면서 배운 것도 있고, 만약 한 분이라도 이 글을 보고 문제를 해결하면 내가 그 분의 시간을 아껴드리는 거니까! 적어보기로 했다. 1. 사건 배경 Retrofit에 대한 정리 글을 올릴 때 글을 보시는 분들이 LiveData에 대해 모르고 계시면 헷갈릴까 봐 콜백 함수를 써서 예제를 만들었었다. 그리고 LiveData 예제를 만드는데 새로 만들기 .. 2021. 5. 5. 이전 1 다음