본문 바로가기

IT/Android

(51)
안드로이드 스튜디오 / GoogleMap 클러스터링 마커에 uri를 통해 이미지 로드시 기본마커 나타날때 구글맵 클러스터링 마커에 glide를 이용하여 이미지를 표시하려고 했는데, 이미지를 로드하기 전에 마커가 먼저 찍혀버려서 기본 마커가 표시되고 난 다음에 이미지 마커가 표시되는 현상이 생겼다. >>> 마커render가 완료되기 전에는 마커를 안보이게 하고, 마커render가 완료된 시점에 마커를 보이게 해야 한다. onBeforeClusterItemRendered에서 marker visible을 false로 해주고, onClusterItemRenedred에서 marker visible을 true로 해주었다. override fun onBeforeClusterItemRendered( item: MyItem, markerOptions: MarkerOptions ) { super.onBeforeClusterI..
안드로이드 스튜디오 / navigation fragment backStack 없애기 (popupTo / popUpToInclusive) navigation component를 이용하여 fragment를 이동시켰는데, 뒤로가기를 누르면 원치 않는 backstack이 남아있는 문제가 생겼다. 예를들어, 회원가입시 아이디 중복확인 -> 핸드폰 인증 -> 회원 정보 입력 -> 회원가입 완료 플로우를 framgent 이동으로 한다. 회원가입이 완료가 되어도, 뒤로가기 누르면 회원정보 입력 fragment가 그대로 남아, 회원가입이 또 요청가능해지는 경우가 생길 수 있다. 이를 해결하기 위해 회원가입 activity를 따로 띄워, 회원가입 완료시 activity를 종료하는 방법이 있다. 프로젝트가 SAA(Single Activity Architecher)로 이루어져있으면 위의 방법으로는 해결하기 곤란하다. 같은 모든 화면이 fragment로 구성되..
안드로이드 스튜디오 / 버튼 중복 클릭 방지하기 - api 중복 요청 없애자 모든 사용자가 버튼을 의도한대로 한번만 누르면 참 좋겠지만.. 사용자를 다 통제할 수는 없었다. 버튼을 눌러 api를 요청하고, 응답을 기다리는 그 사이에 버튼을 한 번 더 클릭하여 api가 중복으로 호출되는 일이 발생했다. 해결방법은 다양하게 있을텐데 (interval 시간을 주는 등) 중복클릭 방지처리를 해야하는 버튼이 많아서 간단하게 enabled 설정값만 주었다. fun btnClick(view: View){ if(view.isEnabled){ api 호출 } view.isEnabled = false } dataBinding을 사용해서, viewModel에서 버튼 클릭 함수를 다뤄줬다. 버튼이 isEnabled이 true인 경우에만 호출을 해주었고, 클릭 이벤트가 생기면 isEnabled를 fal..
안드로이드 스튜디오 / 안드로이드 스튜디오에서 하드코딩 string 찾기 다국어 지원을 위해 string값들을 정리하고 있었는데, 숨어있는 하드코딩된 string이 자꾸 나왔다 과거의 나를 탓하며... 한 번에 찾는 방법 없을까 구글링을 해보니 역시 방법이 존재했다. 1. ctrl+shit+alt+i -> Hardcoded strings 2. 맨 마지막줄 Ignore lines whole content matches this regular expression 이 조건 잘 활용해야된다 그대로 냅두면 모든 문자열이 검색 안되는 상황 발생한다. 3. 짠 조건에 맞는 모든 스트링 파일들이 다 나온다 https://youngest-programming.tistory.com/225
안드로이드 스튜디오 / 다국어 지원 string.xml 파일 생성하기 + chatGPT로 string파일 번역하기 핸드폰 언어 설정을 영어로 하면 앱의 글씨가 영어로 번역되는 방법을 소개하겠읍니다 다국어 지원을 위해서는 string.xml 파일을 각 언어에 맞게 생성을 해주어야 한다. 1. values - string.xml - Open editor 2. 플러스 버튼을 누르고 -> 추가할 언어 선택 3. 언어 적용 앱 이름이나, key 같은 언어에 따라 안바뀌는 string 값들은 Untranslatable을 체크해주면 된다. +) 여러분은 ChatGPT 쓰세요...
Geocoder - getFromLocation() deprecated 해결 getFromLocation(double latitude, double longitude, int maxResults) 메소드가 API33에서 Deprecated되었다. getFromLocation(double latitude, double longitude, int maxResults, android.location.Geocoder.GeocodeListener) 를 대신 사용하면 된다. //Fetch address from location geocoder.getFromLocation(latitude,longitude,maxResult,object : Geocoder.GeocodeListener{ override fun onGeocode(addresses: MutableList) { // code } o..
안드로이드 / EditText text 위로 정렬 android:gravity 속성을 top으로 설정하면 multiLine인 EditText의 text를 위로 정렬할 수 있다.
안드로이드 스튜디오 / GPT-3 API를 이용한 모바일 챗봇 만들기 구현 기능 gpt-3 api 통신을 통한 채팅 temperature, frequency panalty 값 설정 채팅 화면 초기화 채팅 내용 공유 (시스템 공유하기 사용) 오프라인 환경에서도 채팅내용 불러오기 기술스택 & 라이브러리 IDE -> Android Studio Language -> Kotlin Network -> Retrofit,OkHttp Coroutine Dependency injection -> Dagger Hilt Android Jetpack (ViewModel, LiveData, viewBidning, RecyclerView, Room, Navigation) 1. 프로젝트 구성 안드로이드 클린아키텍처를 구성하고자, data, domain, app 모듈을 분리하고, hilt로 의존성 주입..

반응형