분류 전체보기185 [Android/Kotlin] 데이터 캐싱을 통해 API호출 최적화하기 🤔 고민해본 사항원래는 Fragment를 호출할때마다 API를 호출하도록 로직을 작성했었다.근데 이렇게하면 내가 발급받은 API의 일일호출량은 최대 1000개로 제한되어있어서, Fragment를 몇번만 접속해도 API호출량을 초과하는 문제가 발생할 수 있었다. 심지어 배포예정 앱이였기 때문에 여러명의 사용자들이 동시에 앱을 접속할 경우, 일일호출량을 쉽게 넘어버려 호출에러가 발생할 수 있었다... 실제 배포앱에서는 굉장히 치명적인 오류라고 할수있다. 따라서 앱을 처음 다운로드하거나, 위치가 크게 변경했을경우에만 API를 호출하고그렇지 않은 경우에는 로컬 데이터베이스 캐싱을 적용하는 방식으로 결정했다.또한 로컬데이터베이스에 저장하면 오프라인상태에서도 이용가능하기 때문에, 재난관리앱에서는 특히 유용하다고 .. 2025. 5. 28. [Android/Kotlin] 하버사인 공식 사용해, 지도에 대피소 효율적으로 표시하기 🤔 고민해본 사항우선 나는 공공API를 통해 대피소관련 데이터를 불러와서, 내위치 근처에있는 대피소를 지도에 마커로 표시해주는 앱을 구현중이였다. 근데 전체 데이터를 다 불러오면 API호출이 너무 잦고, UI면에서도 안좋을것같았다. 그리고 무엇보다 전체 데이터를 다 불러오는건 내앱 취지에 안맞았다. 그래서 사용자 위치를 기준으로 반경 5km이내의 대피소만 화면에 표시해주는 방식으로 구현했다.이 방식은 Haversine 공식을 사용해서, 사용자 위치와 대피소 위치간의 거리를 계산하여 필터링해주는 방식으로 구현했다!그리고 맵이 시작될때 CircleOverlay를 생성하여 바운더리를 만든다음, 반경5km밖에 있는 마커들은 제거해주는 방식도 같이구현해서 좀 더 깔끔하게 보이도록 했다. 💻 구현하기1. 현재위.. 2025. 5. 28. [Android/Kotlin] pdf 뷰어 띄우기 회원가입할때 보여줄 이용약관 동의서를 pdf로 보여주려고한다.pdf를 보여주는 방법도 다양한데 나는 pdf뷰어를 통해서 보여주는 방식으로 개발해보려고한다. 1. 먼저 보여줄 pdf파일을 넣어주기project 모드로 바꾸기-> app -> src -> main -> assets 폴더에 pdf파일을 넣어준다. 2. Android 7.0이상에서는 파일 uri를 노출하려면 FileProvider를 통해서 노출시켜야한다FileProvider - 앱 내 파일을 안전하게 다른 앱에 제공하기위한 매커니즘 / uri를 반환하는 역할 그럴려면 FileProvider로 uri객체를 가져와야하는데,직접적으로 파일 uri객체로 가져올 수 없기때문에 assets파일을 복사해서 진행해야한다 res/xml/file_paths... 2025. 4. 29. [에러] org.jetbrains.kotlin.gradle.tasks.CompilationErrorException: Compilation error. See log for more details Caused by: org.jetbrains.kotlin.gradle.tasks.CompilationErrorException: Compilation error. See log for more details앱을 실행했더니 처음 뜨는 오류는 이거였다.jetbrains의존성을 설정안해서 나타나는 오류인줄 알아서 jetbrains의존성을 설정했더니 아래와 같은 오류가 또 발생했다. Schema export directory was not provided to the annotation processor so Room cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument by appl.. 2025. 4. 22. [Android/Kotlin] splashscreen 화면 구현하기 예전에 splash화면 띄우는 작업을 한적있었는데, 그때는 SplashActivity를 새로 하나 만든다음에 AndroidManifest에서 SplashActivity에다가 intent-fileter를 적용해주는 방식으로 진행했었다.그치만 이방법은 SplashActivity를 하나 더 생성해야했고, 레이아웃을 또 디자인해야된다는 번거로움이 있었다. 찾아보니깐 Material3 방식 SplashScreen을 사용하면 Activity를 따로 생성할 필요없이 아이콘만 지정해주면 가운대에 해당 아이콘이 뜨도록 할 수 있었다. 먼저 의존성을 추가해준다build.gradle.kts(app)// Splashscreen implementation ("androidx.core:core-splashscreen:1... 2025. 4. 21. [에러] 에뮬레이터 위치 설정이 안되는 에러 에뮬레이터 위치설정하면 원래 설정이되었는데, 업데이트가 되지않고 대구쪽에만 위치가 설정되는 문제가 발생했다.찾아보니깐 Tools-> SDK Manager -> Android SDK에 들어가서 Google APIs Intel x86_64 Atom System Image가 설치되어있는지 확인해본다. 나는 설치가 안되어있어서 설치를해주고, 에뮬레이터를 다시 실행해주니깐 위치변경이 잘 되었다. 참고 블로그:https://velog.io/@ramen/Android-%EC%97%90%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0-%EC%9C%84%EC%B9%98-%EC%84%A4%EC%A0%95%EC%9D%B4-%EC%95%88-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%8A%88 2025. 4. 15. 이전 1 2 3 4 5 ··· 31 다음