728x90

분류 전체보기 134

ReactNative_ UserAgent 의 사용

딥링크, url 등 다른 앱이나 매체 통해서 공유하면 Preview 가 나오는걸 확인할 수 있음. 해당 url 이 가진 open Graph 정보를 화면에 보여주는 기능을 React Native 앱에서 구현하려 하니 이상하게 Firebase Dynamic ShortLink 만 제대로 표시가 되고 있질 않았음. 확인해보니 Meta Data 가 없는것임. 그래서 구글링과 계속적인 디버 깅한 결과 User-Agent 의 설정이 중요한 키였음. 그래서 위의 사진처럼 fetch 할때 User-Agent 를 설정하여 해당 url 의 open Graph 정보를 가져오려고 시도하였고 결국엔 가져오게 되었음. 하지만 위의 코드는 아직 정리중이라 나중에 좀더 완성시켜야 할 것 같음.

ReactNative 2024.03.04

AOS_ Rxjava 비동기와 동기

Rxjava 를 사용하면서 비동기와 동기식으로 사용하고 싶어짐. 하지만 내가 쓰고 있던건 대부분 비동기적인 방법을 사용했었음. 그래서 위의 사진처럼 비동기적으로 사용하고 있었기 때문에 자연스러운 화면 전환과 데이터 처리 등이 가능했던 것임. 하지만 한때는 데이터를 다 처리하고 나서 화면을 보여주고 싶을때가 있었음. 그래서 동기적으로 진행했어야 하는 상황이였는데 그때 이런 코드를 사용하면서 마지막에 blockingGet 으로 동기화 시켰음. 이젠 rxjava를 사용하면서 어느정도 구조가 이해되는 것 같음. == 참고 == *동기 방식은 작업을 순차적으로 처리하며, 다음 작업을 실행하기 위해 이전 작업의 완료를 기다립니다. *비동기 방식은 작업을 독립적으로 실행하며, 다른 작업을 실행하면서 작업의 완료를 ..

Java 2024.03.04

AOS_ SharedPreference의 commit 과 apply 차이

sharedPreference 관련 기능을 이용하여 이전 데이터를 저장 후 불러오는 기능을 만들고 있었음. 하지만 editor의 commit 과 apply 의 차이가 문득 궁금했었음. commit 은 동기적으로 기능하고 apply 는 비동기적으로 기능하는 것을 알게 되었음. commit 을 할 경우 일시적으로 앱이 멈춤현상이 있었지만 , apply 는 없었기 때문. 동기적으로 작업이 끝난 후 다음 작업이 이루어지므로 멈춤현상이 있었던 것임. 그래서 위의 사진처럼 비동기적으로 진행하기 위해 apply를 써줌. 그리고 gson을 이용하여 객체를 toJSON 형식으로 넣어줌으로써 나중에 다시 불러올때 객체형식으로 쉽게 불러올 수 있게함. 아래 사진처럼 . gson 과 type 을 통해서 원하는 객체형식으로 바..

Java 2024.03.04

AOS_ Map의 중복 제거

Map 안에 들어있는 아이템을 선회하면서 중복된 값을 제거하고 싶었음. 하지만 일반적인 for 문 돌리는 코드로 진행했을때 제대로 원하는대로 작동하질 않았음. 그래서 찾아보니 Iterator 반복문을 이용하는 방법이 있었음. 해당 아이템들을 직접 관리할 수 있게하여 수정 및 삭제를 하여 바로 해당 Map 객체에 반영하게끔 가능하게 하는 거였음. 위의 사진처럼 iterator 를 돌려서 해당 객체에 직접적으로 데이터 관리를 함으로써 손쉽게 수정 및 삭제가 가능하게 되었음. 단 iterator 에서 더이상 중복되는 데이터가 없을 경우 break; 를 걸어서 끝내도록 해야 함.

Java 2024.03.04

AOS_ ClickEvent 와 LongClickEvent 동시 사용

clickEvent 와 longClickEvent 를 구분해야 하는 상황이 옴. 현재 클릭 이벤트와 롱클릭 이벤트를 중복으로 사용하고 있기 때문에 롱클릭을 하더라도 클릭 이벤트 효과가 같이 발생됨. 롱클릭을 하더라도 클릭 이벤트 속성은 간섭을 안했으면 했었음. 그래서 위의 보이는 사진과 같이 return 값을 false -> true 로 바꿔준다면 일반 클릭 이벤트와 별개의 이벤트로 처리가 될 수 있음.

Java 2024.03.04

AOS_ HashMap 과 TreeMap 의 차이

HashMap 과 TreeMap 의 차이를 알게 되었음. 우선 HashMap 을 사용한다면 위의 사진처럼 entrySet 을 돌릴때 만약 키값이 "1", "2", "3", "4" .. 이런식의 숫자 스트링이라고 한다면 순서보장이 되질 않아 어쩔땐 4번이 첫번째가 될 수 있고 2번이 첫번째가 될 수 있음. 그래서 만약 순서보장을 해야한다면 밑의 사진처럼 TreeMap 으로 구성해야 순서를 보장받을 수 있음. 단, HashMap 과의 차이중 하나더 설명하자면, 속도가 HashMap 이 더 빠르고 TreeMap 이 좀 더 느리는 단점이 있으니 만약 데이터 구조가 클 경우 HashMap 을 사용해서 순서보장하거나 TreeMap 을 좀 더 최적화 시켜야 할 것 같음.

Java 2024.03.04

AOS_ Custom Dialog 배경 동적 조절

안드로이드 커스텀 다이얼로그를 생성후 보여주려고 하는데 width, height 가 내가 원하는 크기만큼 조절이 안되었음. 찾아보니 setContentView() 이후 아래의 코드를 넣어주면 작동이 된다는 stackoverflow 정보를 통해서 세팅해보니 원하는대로 설정이 잘 되었음. 우선 context 를 가져와 해당 window 크기를 구한 후 dialog width , height 에 직접 크기정보를 넣어주는 코드임. 위의 정보 토대로 커스텀 다이얼로그에 적용시키면 효율적으로 관리할 수 있겠다는 판단이 들었음.

Java 2024.03.04

AOS_ 데이터가 남아있을 경우 대비하여 초기화 진행하기

자바 개발을 하면서 커스텀 다이얼로그를 보여주면서 환경설정을 세팅해주었다. 근데 밑에 사진처럼 한번 세팅해주고 다시 show() 함수를 실행한다면 계속 처음에 세팅되었던 데이터 대로만 작동해서 다른 클릭 리스너가 통하지 않게 되는 현상이 발생 그래서 밑에 사진처럼 클릭 리스너를 public 화여 다른 클릭 이벤트를 원할때 show() 함수 다음으로 실행하게 하여 원하는 이벤트가 되도록 설정함.

Java 2024.03.04

ReactNative_ 여러개의 파일 작업 후 비동기식 렌더링

ReactNative 개발 중... 여러장 이미지 나 여러개 동영상 관련 작업을 모두 끝낸 후 렌더링 요청하고 싶었는데 하나의 파일 작업이 끝나면 바로 렌더링 되는 문제가 발생함. 그래서 비동기식으로 진행해서 모두 끝난 후 렌더링하도록 작업을 바꾸어야 하는데 어떻게 비동기식으로 처리해야 하는지 잘 몰랐음. solution : 아래 사진처럼 async안에서 await 비동기 처리 작업을 진행하여 완료가 끝날때까지 기다리게 하여 렌더링 문제를 해결할 수 있었음.

ReactNative 2024.03.04
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90