Android
-
[Android]CurrentLocationRequest가 뭘까?안드로이드/정리 2023. 3. 22. 02:16
안드로이드에서 위치정보를 사용하려고 할 때 주로 FusedLocationProviderClient를 사용한다. 위치정보의 정확성은 필요하지만 지속적으로 필요하진 않았기에 getLastLocation이나 requestLocationUpdates을 사용하지 않고, getCurrentLocation을 사용하려 했다. ❓이 때 해당 메소드의 매개변수에서 의문이 생겼다. 해당 메소드의 매개변수는 다음과 같은데 먼저 첫 번째 메소드의 첫 번째 매개변수의 Int는 위치정보를 어떤점에 우선순위를 두고 가져올 것인지 정하는 Priority이다. 문제는 오버로딩한 그 다음 메소드의 매개변수이다. CurrentLocationRequest라는 클래스를 필요로 하는데 검색해도 쉽게 나오지 않아서 그냥 공식문서를 찾아보게 됐다...
-
[TIL]2023년3월15일TiD 2023. 3. 15. 20:58
#안드로이드12(SDK 31) 이상 부터의 위치 권한 코드상에서 정확한 위치(FINE_LOCATION)를 요청해도 사용자는 대략적인 위치(COARSE_LOCATION)만 허용할 수 있다. 이를 고려해 정확한 위치를 요청할 경우 대략적인 위치를 요청도 함께 해야한다. 그렇지 않을경우 아래의 오류코드를 Logcat에 남긴다. ACCESS_FINE_LOCATION must be requested with ACCESS_COARSE_LOCATION. 그리고 대략적인 위치의 오차 범위는 약 3제곱키로미터고 정확한 위치의 오차 범위는 일반적으로 50미터이다. (정확한 위치의 오차는 기기 성능이나 장소에 따른 영향을 생각한듯) 위치 정보 액세스 권한 요청 | Android 개발자 | Android Developers ..
-
[Android]Button 클릭효과 주기(Ripple effect)안드로이드/정리 2023. 2. 10. 17:26
안드로이드 기본 버튼은 클릭하면 기본적으로 다음과 같은 에니메이션 효과가 있다 클릭한 부분부터 영역내에 원모양으로 퍼져나가면서 색이 변하는 효과인데 공식 이름은 Ripple effect 라고 한다. 하지만 ImageButton과 Button 의 background나 src 속성을 이용해 모양은 바꾸면 해당 효과는 사라진다 본인은 디자인적인 감각은 없지만ㅎㅎ... 이런 사소한 디테일은 신경쓰는터라 꼭 효과를 주고싶었고 검색을 통해 이름이 ripple effect 라는 것을 알게 됐고 여러 글들에서 제안하는 방법을 적용해봤지만 적용하려는 리소스가 xml drawable이 아니라 이미지파일임 딱 해당 이미지 영역 까지만 효과가 적용되야함 위의 조건을 만족하는 코트는 다음과 같았다. 태그 안에 태그를 작성하고 ..
-
[Android][View] view의 리스너는 해당 동작으로 발생하는 상태변화 이후에 실행된다.안드로이드/트러블 슈팅 2022. 11. 29. 03:21
⛔️Chip 을 기준으로 작성된 글입니다. 다른 View에서는 다른 결과가 나올 수 있습니다. Chip에는 isChecked 라는 메소드가 있다. 말 그대로 체크가 된 상태인지 아닌지를 알려주는 메소드이다. (좌 : checked(true) | 우 : not checked(false)) 그리고 해당 chip에 부여해주는 클릭리스너에서 이 상태를 가지도 분기문을 작성할 때가 있는데 이 때 조건을 반대로 주어야 한다. 부여된 클릭리스너는 해당 chip의 isChecked가 변경 된 다음에 호출되기 때문이다. 예 ) isChecked 가 trure 일 때 클릭하면 A라는 메소드를 실행하고, false 때 클릭하면 B라는 메소드를 실행 시키고 싶다면 {chip -> when(chip.isChecked){ tru..
-
[android][style,theme] theme.xml 에서 style 만들어도 적용 안될때안드로이드/트러블 슈팅 2022. 11. 24. 20:42
문제 개발중에 Chip을 사용하는데 디자인도 바꾸고 다크모드도 대응할 겸 theme.xml 에서 커스텀 style를 적용하고 싶었다. 그래서 다음과 같이 style를 만들었고 적용했다. 그런데 왠걸 적용이 안된다. 그런데 chipBackgroundColor 는 되고 다른 건 안되고 정말 난감 했다. 해결 이유를 도통 모르겠어서 삽질만 몇시간 하다가 결국 부캠 멤버십 캠퍼분들에게 도움을 요청했는데 이유는 다음과 같다. 위와같이 deprecated 되서 다른 방식으로 적용되는 것도 있고, https://m2.material.io/components/chips/android#action-chip 이런식으로 자동 완성만 믿고 잘 못된 속성을 정해준 것도 있었다. 예전에도 삽질하다가 실패한 내용인데 캠퍼분들에게 ..
-
[Android][Firestore] Firestore 호출 응답 기다리기안드로이드/트러블 슈팅 2022. 11. 23. 00:34
나는 firestore에서 데이터를 호출하는데 callback 방식을 사용하지 않고 그 응답에 대응하기위해 다음과 같은 코드를 작성했다 suspend fun callAllKeyword(): String?{ var resultString: String? = null val firestoreAsync = CoroutineScope(Dispatchers.Default).async { firestore.collection("keywords").get() .addOnSuccessListener { result -> result.documents.forEach { resultString += it.data?.toString() } Log.d("FIRESTORE_CALL_KEYWORD", "callAllKeyword..
-
[그룹프로젝트]우리가 domain 모듈을 도입한 과정부스트캠프/그룹프로젝트 2022. 11. 17. 02:27
먼저 우리 팀은 학습을 목적으로 app(ui) 모듈과 data 모듈을 나눠서 멀티모듈로 구조를 구성했다. 안드로이드 모듈화 가이드: https://developer.android.com/topic/modularization?hl=ko 앱 아키텍처 가이드 : https://developer.android.com/jetpack/guide?hl=ko 그리고 app 모듈에서 패키지 구조를 구성한다음 data 모듈의 패키지 구성을 계획 할 때 여러 의견이 나왔는데 다음과 같다. 1. 일반적인 구성 data(module) repository(interface와 Impl클래스) datasource(local, remote source) entity(데이터 소스에서 사용되거나 반환하는 데이터 클래스) 2. data 모..