티스토리

Technote
검색하기

블로그 홈

Technote

bumjae.tistory.com/m

공부한 내용을 정리하는 블로그

구독자
1
방명록 방문하기

주요 글 목록

  • Retrofit 과 Coroutine 사용시 enequeue 내부적 구현 viewModelScope.launch{ RetrofitService.naverService.getSearchNews(query = keyword, sort = "sim").run{ if (isSuccessful){ ... } else { ... } } } Retrofit을 사용할 때 Coroutine과 사용하게 되면 enqueue()의 비동기 코드를 실행하는 코드가 없어도 스스로 값을 가져오게 된다. 그래서 바로 Response를 사용해 요청 이후의 응답을 바로 받아 사용을 한다. 이 동작에 대해 이해하려 한다. enequeue의 내부적 구현 Retrofit 사용 API Interface 구현체 내부적 구현 사용 개발자는 Interface에 추상적인 api 함수들을 Retrofit Annotaion과 .. 공감수 0 댓글수 0 2024. 1. 2.
  • Retrofit 사용 API Interface 구현체 내부적 구현 사용 개발자는 Interface에 추상적인 api 함수들을 Retrofit Annotaion과 함께 정의한다. interface NaverApi { @GET(RetrofitService.NEWS_END_POINT) suspend fun getSearchNews( @Header("X-Naver-Client-Id") clientId : String = BuildConfig.NAVER_CLIENT_ID, @Header("X-Naver-Client-Secret") clientPw : String = BuildConfig.NAVER_CLIENT_SECRET, @Query("query") query : String, @Query("sort") sort : String, ): Call } Retrofit Builde.. 공감수 0 댓글수 0 2023. 12. 22.
  • RoomDB warning: Schema export directory is not provided Room을 사용 중 빌드 창 warning 문구 warning: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false. Room 라이브러리를 사용해서 Database 스키마를 생성할 때 exportSchema 설정에 의해 위의 경고가 뜬다. exportSchema는 Boolean 타입으로 Database Schema를 폴더로 내보낼지 정할 수 있다. default 값이 true로 되어있어 경로를 지.. 공감수 1 댓글수 1 2023. 11. 29.
  • Android Studio New LogCat Android Studio Dolphin 버전에서 새로 나온 LogCat의 필터 쿼리 내 앱에서 발생하는 내용만 보기 (PIDs for the local app project) package:mine 내 앱에서 발생하는 내용에서 필터링 (ex) ViewModel 또는 UiState라는 문자가 포함된 내용만 필터링 package:mine ViewModel | UiState 패키지, 태그, 레벨 조합 package:my-package-ID, tag:my-tag, level:ERROR -를 붙여 특정 태그 제외 -tag:exclude-this-tag 정규 표현식 (~을 키값 뒤에 붙여준다) tag~:regex-tag Logcat https://brownsoo.medium.com/새로운-로그캣-필터-쿼리-a77.. 공감수 0 댓글수 0 2023. 2. 27.
  • Android 13에 따른 compileSdkVersion , targetSdkVersion 타겟 33 구글 정책 변경 SDK 버전을 높이기 위해 변경된 사항과 수정해야 할 사항들 중 중요하다 판단되는 것들을 알아보고 정리 Performance and battery Foreground Services (FGS) 작업 관리자 Android 13(API 33)에서는 타겟 SDK 버전과 관계없이 사용자가 "알림 창"에서 "포그라운드 서비스"를 중지할 수 있다. FGS 작업 관리자라고 하는 새로운 기능에는 현재 포그라운드 서비스를 실행 중인 앱 목록이 표시된다. 이 목록에는 활성 앱이라는 라벨이 적용되어 있다. 각 앱의 옆에는 중지 버튼이 있다. 아래 그림은 Android 13을 실행하는 기기에서 FGS 작업 관리자 워크플로를 보여준다. JobScheduler를 사용한 작업 미리 가져오기 처리 개선 JobScheduler는 앱이.. 공감수 0 댓글수 0 2022. 12. 23.
  • Android GoogleMap Ensure that the "Google Maps Android API v2" is enabled. 구글맵 키 오류 어느 순간 잘 뜨던 구글맵이 뜨지 않아 Logcat을 보았다. Authorization failure과 Ensure that the "Google Maps Android API v2" is enabled. 인증키 오류의 Log들이 찍힌 걸 확인 관련 검색을 해보면 Api가 활성화되어있나 확인해 보고 제한사항을 줄 때 패키지 이름을 제대로 주라는 말들이 대부분이다. 하지만 API도 다 활성화되어있고 제한사항의 패키지 이름과 Api 제한사항도 다 맞춰서 해놓았는데도 같은 오류가 반복되었다.. Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream().. 공감수 0 댓글수 1 2022. 8. 1.
  • 무선 Debugging 사용 USB 케이블이 불편해 케이블을 이용하지 않고 테스트 폰을 연결하는 방법을 알아보았다. Android 11부터 무선 디버깅(wireless debugging)이 추가 되었다. 포스팅에서 이전 버전의 방법과 추가된 기능의 방법을 포스팅 할 것이다. Android 11 이전의 방법 디바이스에서 adb를 위한 TCP/IP port를 열어놓고, PC에서 adb로 디바이스 IP:port 로 연결 1) USB 연결 2) Android Studio 에서 Terminal 실행 : Android Studio 하단에 Terminal을 연다. 3) 다음의 커맨드를 실행해서 adb를 위한 tcpip 포트를 연다. > adb tcpip 5555 뒤에 오는 5555는 포트번호로 사용가능한 포트를 써준다. adb가 터미널에서 실행.. 공감수 0 댓글수 0 2022. 3. 22.
  • Result API registerForActivityResult() / startActivityForResult() deprecated startActivityForResult()가 deprecated된 이유 AndroidX Activity, Fragment에 도입된 Activity Result API 사용을 적극 권장하고 있음 결과를 얻는 Activity를 실행하는 로직을 사용할 때, 메모리 부족으로 인해 프로세스와 Activity가 사라질 수 있음 기존 Activity에서는 startActivityResult를 통해서 콜백을 등록하고, onActivityResult에서 콜백을 처리한다. 두 메서드가 같은 곳에서 구현을 해야하는데, 메모리 부족으로 제대로 동작을 안할 수 있다는 것 - Activity가 종료되었다가 다시 생성되었을 때 Activity에게 결과를 기다리는 중임을 다시 알려야 한다. 기존 API 화면 전환 startActi.. 공감수 0 댓글수 0 2022. 3. 21.
  • Exception 종류 오류가 시스템 레벨에서 발생한다면, 예외(Exception)는 개발자가 구현한 로직에서 발생한다. 예외는 발생할 상황을 미리 예측하여 처리할 수 있다. 예외는 개발자가 처리할 수 있기 때문에 예외를 구분하고 그에 대한 처리 방법을 명확히 알고 적용하는 것이 중요하다. Exception 종류 내용 ClassNotFoundException 클래스를 찾지 못함 CloneNotSupportedException 인터페이스를 미구현함 IllegalAccessException 클래스에 접근 불가함 InstantiationException 추상 클래스, 인터페이스를 인스턴스화 하고자 함 InterruptedException Thread가 중단됨 NoSuchFieldException 지정된 필드가 없음 NoSuchMet.. 공감수 0 댓글수 0 2022. 3. 10.
  • Emulator Toast 보이지 않을때 뒤로 가기 두번 클릭후 종료 구현중 Toast Message가 Test 단말기에서는 나오나 Emulator 에서는 나오지 않아 찾아보았다. 1. Device Manager에서 해당 Emulator의 데이터 지우기 (WipeData) 위 방법을 해보아도 Toast가 출력되지 않을시 아래 방법 실행 2. Tools > SDK Manager > SDK Tools > Android Emulator 설치 2번째를 해보니 Toast 출력 확인 공감수 0 댓글수 0 2022. 3. 9.
  • Emulator / System UI isn't responding 해결법 간혹 Emulator를 사용하다 보면 System UI isn't responding이라는 오류 팝업이 뜬다. 찾아보니 컴퓨터 하드웨어 성능 문제가 제일 크다고 한다. 남은 하드 용량, 전반적 컴퓨터 성능(CPU, GPU, RAM 등등), 에뮬에 할당한 메모리 용량 등이 원인이 될 수 있다고 한다. PC가 에뮬을 가상 머신으로 돌리는데 성능이 딸린다는 것 (회사 노트북이 안좋다..) 간단한 해결방법을 찾았지만 이 방법을 사용 시 Emulator에 저장한 설정, 데이터가 전부 삭제되니 주의 1. Android Emulator 종료 특별히 따로 설정을 하지 않았다면 에뮬레이터에 대한 정보는 아래 경로에 저장된다. 2. 아래 경로에 가서 파일 삭제 C드라이브 -> 사용자 or User -> "현재 사용자명" .. 공감수 0 댓글수 0 2022. 1. 19.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.