“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”루팅(root + ing)이란 UNIX 계열 운영체제에서 최고 관리자 권한인 root 권한
개요 특정 branch를 그대로 복사하여 새로운 Repository를 만들고 싶을 때가 있다. Git 명령을 통해 간편하게 가능하니 아래와 같이 따라해보자 복사하려는 Branch를 Clone Clone한 (Repository 이름).git을 '.git'으로 변경
“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”Android는 iOS에 비해 상대적으로 단말기 특성이 존재하는 편이다. 내가 가지고 있는
회사에서 서비스 중인 앱 하나를 유지보수하는데 Rest API 요청할 때 Exception을 뱉어내는 일이 발생했다.java.lang.runtimeexception: Stub!이걸로 무려 4시간을 삽질한 결과 원인은 Apache 라이브러리였다.Apache 라이브러리는
Android 프로젝트에는 assets 디렉토리를 생성할 수 있다.이 assets 디렉토리는 앱에서 사용해야할 파일을 미리 저장해놓고 앱 내에서 필요할 때 꺼내서 사용할 수 있도록 도와주는 디렉토리이다.우선 assets 디렉토리 만드는 방법부터 알아보겠다.main 패키
회사에서 서비스하는 앱 중 에서 중국에서 앱이 간헐적으로 크래쉬 되는 현상이 있었다.원인은 서버로부터 FCM 토큰을 발급받지 못하여 Exception을 뱉어낸 것이다.중국은 인터넷 검열을 위해 국가적 차원에서 만리방화벽(GFW)이란 방화벽을 운영하는데 구글 서비스가 이
일전에 클립보드에 대하여 포스팅을 한 적이 있는데 샘플 소스로 텍스트를 예로 들어 작성했었다. 이번 포스팅에선 텍스트 외에 이미지(Uri)를 처리하는 방법을 작성해보고자 한다.ClipboardManager 사용법은 이전 포스팅 참고바랍니다.우선 코드는 Glide를 통해
비디오 파일로부터 썸네일을 가져오거나 이미지 파일의 해상도 등미디어 파일의 메타데이터를 가져와야할 경우가 있다.Android에서는 이를 쉽게 가져올 수 있는 라이브러리를 제공하는데MediaMetadataRetriever가 그것이다.간단하게 비디오파일의 해상도와 썸네일을
이전에 UncaughtExceptionHandler를 이용하여비정상종료 예외처리에 대해서 포스팅을 한 적이 있었다.당시 포스팅에선 발생한 Exception에 대해 Log만 출력하고 앱을 종료하는 예제를 작성했는데 이렇게 되면 UX면에서 부자연스럽다는 생각이 들어 개선을
카카오톡 공유 API 사용법을 포스팅해보려고 한다.카카오톡에서는 대화방에 템플릿 형식으로 데이터를 공유하는 API를 제공한다.템플릿 종류는 유형에 따라 여러가지가 있으며이번 포스팅에선 간단하게 기본 템플릿을 이용하는 방식으로 포스팅 해보고자 한다.템플릿 종류에 따라 템
지난번에 okhttp logging 방법을 포스팅했었는데 오늘은 이를 활용하여 더 보기좋게 가공하는 방법을 포스팅해보고자 한다.Okhttp client에 HttpLoggingInterceptor를 추가하여 요청과 응답에 대한 로그 출력을 하는 방법으로 지난 포스팅을 작
단말기에서 다크모드(나이트모드)를 활성화하면 앱도 다크모드가 활성화된다.다크모드 설정을 따로 해주었다면 문제가 없겠지만 특별한 설정을 해주지 않을 경우시스템이 프로젝트를 생성하면서 만들어지는 다크모드 기본값으로 색을 구성하여UI가 매우 어색해진다.다크모드에 맞게 색상값
개요 앱에서 단말기의 사진을 가져올 때 SAF를 통해 사진을 가져왔다. Android 13부터는 PhotoPicker를 제공하여 사진을 더 쉽게 가져올 수 있게 되었다. PhotoPicker를 사용하려면 먼저 아래와 같은 선결 사항이 필요하다. 1.7.0 버전 이상
“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”런타임에서 minSDK, targetSDK가 필요할 때가 있다.gradle에서 BuildC
“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”CoroutineExceptionHandler는 Coroutine 빌더 내에서 발생하는 E
“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”Retrofit을 이용해서 Rest API를 호출할 때요청과 응답을 로그에서 보고싶을 때가