안드로이드 스튜디오 AVD에서 특별한 이유 없이 나타나는 ANR 문제를 해결하는 방법.안드로이드 ANR 문제 발생지난주, Trindex 앱 업데이트 준비하면서 여느 때와 같이 안드로이드 스튜디오의 AVD를 켰고, 앱을 구동해 보았다. 그러자 이전까지 이상 없이 동작하던 앱이 갑작스럽게 먹통이 되는 모습을 보였다. 앱 부팅까지는 정상 동작하는 것처럼 보였는데, 이후 반응이 전혀 없었다.이때 사용자 입력을 받게 되면 몇 초가 흐른 뒤 아래와 비슷한 ANR 메시지가 뜨면서 앱에서 튕겨나갔다. 전일 마지막으로 테스트를 했을 때에는 아무런 문제가 없었고, 이후 프로젝트에 변경된 내용도 전혀 없었기에 조금 황당한 현상이었다.ANR 오류는 Application Not Respoding으로 사용자의 입력에도 불구하고 ..
파이썬(Python)을 설치하고 VSCode 설정을 통해 파이썬 개발 환경을 구축하는 방법.파이썬(Python) 설치 방법파이썬은 개발자 편의를 위해 다양한 라이브러리가 제공되는 언어 중 하나다. 라이브러리 대부분은 파이썬 최신 버전에서도 잘 동작하지만 특정 라이브러리의 경우 지정된 버전 내에서만 제대로 된 동작을 보장받을 수 있다. 따라서 파이썬 설치 전 가장 먼저 해야 할 일은 함께 사용하려는 라이브러리의 호환 버전을 확인하는 작업이다.텐서플로우 경우를 예로 들 수 있을 것이다. 텐서플로우는 딥러닝 분야의 기초 라이브러리인데, 위 스샷에 보이는 것과 같이 파이썬 버전에 따라 호환성이 결정된다. 현재 내게 필요한 것은 아니지만 요즘 같은 대 AI 시대에 혹시 모를 상황을 대비하여 해당 호환 버전 내에서..
MPAndroidChart 라이브러리의 Legend(범례) 관련 코드를 개선하여 Y축 위치에 맞게 범례 아이콘을 표시하는 방법MPAndroidChart 3.1.0 라이브러리의 LegendMPAndroidChart 3.1.0 라이브러리에서는 차트의 범례 모양을 통해 해당 데이터가 좌측 Y축 데이터인지, 아니면 우측 Y축 데이터인지를 알 수 없기 때문에 Legend 레이블명 설정 시 해당 내용이 포함되도록 주의해서 사용해야 한다. Trindex 앱 역시 위 스샷에서와 같이 레이블 이름에 ◀(좌측 Y축) 표시나 ▶(우측 Y축) 표시를 추가해 주도록 처리했는데, 스마트폰 세로 모드 범례 표시의 경우 문자 한 자의 공간도 아쉽기 때문에 이 부분을 개선해 보기로 했다.MPAndroidChart를 라이브러리 자체를 ..
Deprecated된 안드로이드 메소드, setHasOptionsMenu(), onCreateOptionsMenu(), 그리고 onOptionsItemsSelected()를 대체하여 툴바 옵션 메뉴를 초기화하는 새로운 방법을 정리Deprecated 코드 발견Trindex 안드로이드 앱의 차기 업데이트를 준비하면서 AppCompat을 최신 안정화 버전인 1.7.0으로 적용해 주었다. 그러자 툴바 옵션 메뉴와 관련된 다음 메소드 3개가 deprecated 되는 것을 확인할 수 있었다.관련 내용을 확인해 보니 androidx.fragment에서는 이미 1.5.0-alpha05 버전부터 deprecated 되었던 내용이다. 그게 벌써 2022년 상반기의 일인데, AppCompat에는 이제서야 적용이 된 듯하다...
클립 스튜디오 페인트 애플리케이션에서 단축키를 설정하는 방법을 정리해 보았다. 이미지 편집기로서의 클립 스튜디오 페인트 기본 단축키 클립 스튜디오 페인트는 웹툰 작업에 특화된 애플리케이션이다 보니 이미지 편집용으로 사용하기에는 단축키 설정 상태가 아쉽다. 이미지 편집에서 가장 많이 사용하게 되는 기능 중 하나인 이미지 사이즈 조절만 해도 설정된 단축키가 없다. 하지만 다행스럽게도 클립 스튜디오 페인트에는 사용자가 직접 단축키를 설정할 수 있는 메뉴가 제공된다. 클립 스튜디오 페인트 단축키 설정 방법 단축키를 설정하는 방법은 다음과 같다. 먼저 클립 스튜디오 페인트 프로그램에서 단축키를 할당하려는 메뉴의 위치를 확인해 둔다. 그리고 사용하고자 하는 단축키를 연타하면서 우측 하단의 [작업 내역]에 추가되는 ..
안드로이드 스튜디오의 가상머신(AVD)에서 화면을 캡처하는 방법을 정리해 보았다. 안드로이드 스튜디오 가상머신(AVD) 안드로이드 가상머신(AVD, Android Virtual Device)은 안드로이드 스튜디오를 통한 안드로이드 앱 개발 시 실제 기기를 대신해 앱 설치 및 테스트를 할 수 있도록 도와주는 유용한 툴이다. 실제 기기의 동작을 가능한 한 최대로 구현해주고 있으며, 스크린샷을 찍는 간단한 기능은 기본적으로 제공된다. 크게 두 가지 방법이 있는데, 자주 사용하는 기능이 아니다 보니 매번 까먹게 되어 정리해 보았다. AVD 화면 캡처 방법 1 가장 기본적인 방법으로는 [Running Devices] 창 상단에 있는 카메라 아이콘 메뉴를 이용하는 방법이다. 메뉴가 눈에 바로 띄고 직관적으로 사용할..
Git을 통해 버전관리를 하는 프로젝트에서 커밋(Commit) 완료 후 작업 오류를 발견했을 때 작업 내용들은 그대로 유지하면서 커밋 이력만 취소하는 방법을 정리했다. 커밋 이전 상태로 돌려야 하는 상황은 생각보다 자주 있다 개발 중이던 Trindex 프로젝트 0.37.2 업데이트 버전에 대해 커밋을 마쳤을 당시 출시 업로드를 하기 직전 버전 코드를 하나 건너뛴 것을 발견하게 된 적이 있었다. 구글 플레이 콘솔에 마지막 출시된 버전 코드는 4였지만 업로드하려는 빌드의 버전 코드는 6이었던 것. 버전 코드 중복이나 숫자가 줄어든 것이 아니어서 크게 문제 될 것을 없어 보였지만 그래도 깔끔하게 수정해 주기로 했다. 다시 말하자면 최종 커밋 직전의 커밋으로부터 변경된 내용은 유지한 채 최종 커밋 이력만 취소하..
Trindex 앱의 0.37.2 업데이트에서 차트의 X축 눈금 간격을 월 단위나 년 단위로 표시되도록 개선했다. 당시 MPAndroidChart 오픈 소스 라이브러리 자체를 뜯어고치는 작업을 진행했었는데, 해당 내용을 정리해 보았다. MPAndroidChart가 주는 아쉬움 MPAndroidChart는 안드로이드 프로젝트에서 차트를 손쉽게 구현할 수 있도록 해주는 오픈 소스 라이브러리다. 가장 오래되고 널리 쓰이는 오픈 소스지만 2019년 이후로 버전 업데이트가 없고, 아직 기능적으로도 아쉬운 부분이 있는 라이브러리인데, 내가 가장 아쉽게 생각하는 부분은 X축을 날짜 기준으로 두었을 때 눈금의 간격을 인간 친화적으로 설정할 수 없다는 것이다. 바로 위와 같은 경우다. MPAndroidChart가 사용된 ..
안드로이드 스튜디오의 코드 편집기에서 표시되는 usages 등의 힌트들에 대해 표시 여부를 설정하는 방법을 정리해 보았다. 안드로이드 스튜디오의 코드 비전(Code Vision) 표시 안드로이드 스튜디오는 IDE로서 개발자의 편의를 위해 많은 기능들을 제공하고 있다. 그중 하나가 바로 소스코드 편집기의 코드 비전(Code Vision) 표시 기능이다. 이는 인레이 힌트(Inlay Hints) 기능 중 일부인데, 사용(usages), 상속자(inheritors), 관련된 문제(related problem), 코드 작성자 (code author)가 각 인스턴스, 메소드, 클래스 등에 표시되어 한눈에 그 상태를 파악할 수 있게 해주는 편의 기능이다. 안드로이드 스튜디오를 처음 설치하게 되면 해당 항목이 모두 ..
안드로이드 앱 출시 전 릴리즈 버전으로 빌드하여 테스트를 진행하는 방법과 첫 릴리즈 빌드에서 자주 발생하는 프로가드 오류의 해결 방법을 정리해 보았다. 안드로이드 릴리즈 빌드 테스트의 필요성 안드로이드 앱 개발 막바지에 접어들면 출시 전 릴리즈 빌드 된 버전으로 최종 테스트를 진행해 보아야 한다. 디버그 버전에서는 발생하지 않았던 문제가 릴리즈 버전에서 발생할 수 있기 때문이다. 대부분이 앱 축소, 난독화, 최적화 옵션을 적용하면서 발생하는 오류인데, build.gradle (Module :app) 파일의 release 블록 내 빌드 옵션 설정을 모두 false로 변경하면 간단히 해결할 수 있는 문제이지만 그것은 오류를 발생시키는 옵션을 포기하는 것일 뿐, 제대로 된 해결책이 아니다. 이 문제를 제대로 ..