분류 전체보기

Android

구글 플레이 개발자 이름 주의 사항(오늘도 여전한 구글)

바로 본론으로 가보자면, 작년에 올려두었던 데모 앱이 갑자기 정책 위반으로 삭제되었다는 메일이 왔다. 작년에 올리고 손도 안댔는데 무슨 정책위반이야? 하고 메일을 열어보니 더 황당한 문제가 있었다. 내 블로그 이름처럼 플레이 스토어의 개발자 이름은 bonustrack02였다. 하지만, 개발자 이름이 정책 위반이라는 것이었다. (이 무슨 미친 소리인가 싶었다. 1년이나 됐는데 이제와서?) 더 이상 사용하지 않을 앱일지라도 기분이 나빠 이의 제기를 했다. 내 닉네임이 어떤 정책을 위반했길래 앱이 삭제되었을까? 나 참... 어이가 없었다. 그럼 개발자 이름이 만약 'freedom02' 이런 식이면 이것도 정책 위반이냐고;; 뭐 아무튼 나는 슈퍼 을이니깐 곧바로 이름을 변경했다. 무슨 볼드모트냐고 내가 내 닉네..

Android

원하는 화면에서 앱이 백그라운드로 진입 시 종료시키기(feat. Application)

회사에서 진행하는 프로젝트 요구 사항 중 특정 화면에서 앱이 백그라운드로 진입하면 앱을 종료시키는 상황이 있었다. 고민이 많았다. 매우 단순히 Activity가 onStop될 때, 꺼버리자! 라는 생각을 했는데 당연하게도 아주 우매한 생각이었다. 왜냐하면, 예를 들어 메인 페이지에서 설정 화면으로 이동할 때 onStop이 호출되고 그냥 앱이 종료되었다. (이것도 생각못하냐고 하면 뭐... 할 말이 없다) 그럼 어떻게 할까 일단 앱이 백그라운드로 진입할 때 무조건 onDestroy까지 호출될 수는 없었다. 여러 고민을 거쳐 결국 라이프사이클을 사용해 구현해냈다. 1. 먼저, 모듈 수준의 build.gradle에서 라이브러리를 추가해주어야 한다. implementation 'androidx.lifecycle..

프로그래머스

암호 해독 코틀린(Kotlin)

이번 문제는 이름이 흥미로워서 선택해보았다. 문제 cipher라는 문자열이 주어지고 code라는 정수가 주어지는데 간단히 for문을 사용해 code만큼의 step을 주면 되겠다! 생각했다. 풀이 여기서 평소와 다르게 for문의 시작 인덱스가 code - 1인데, 이는 무조건 cipher의 0번 인덱스의 값은 가져오면 안되기 때문이다. 실행 결과

프로그래머스

배열의 유사도 코틀린(Kotlin)

오늘도 코틀린 몸풀기용 문제를 하나 풀었다. 요즘 코틀린 공부를 책을 통해 하고 있는데 자바와 비교해서 하다보니 생각보다 쉽지 않은 언어같다. 문제 s1과 s2에 같은 원소가 있다면 result값을 1씩 증가시키면 되는 문제였는데, 가장 큰 고려사항은 s1과 s2가 중복된 원소가 있는 지였다. 그런데 제한사항에서 중복된 원소는 없다고 했으므로 각 원소의 중복 여부는 1번만 체크될 것이다. 예를 들어, "a"가 s1에 있고 s2에 "a"라는 원소가 있다면 무조건 "a"의 중복 횟수는 1번이다. 그래서 아주 마음 편하게 중첩 for문을 사용해 문제를 풀어보았다. 풀이 s1의 각 원소가 s2에 있는 지 확인하는 코드이다. 만약 s1의 원소가 s2에 있다면 리턴될 answer 변수에 1을 더한다. 실행 결과

Android

Android Studio Waiting For Debugger 현상 해결

오늘은 안드로이드 스튜디오가 나를 아침부터 지겹게 만들었다. 바로, 디버거가 제대로 안 붙는 버그 때문이었다.(거지같은..) 저녁을 먹고 나서야 해결했었는데 그 전에는 그냥 일반모드로 실행하고 로그캣에서 크래시날 때마다 에러를 확인하며 코드를 수정했다. 그렇게 버티다 결국 디버그모드가 필요했는데 제대로 실행되지 않았다. 스튜디오 하단의 task들은 정상적으로 수행이 되었고 빌드까지 successful 이라면서 정작 디바이스 화면에는 이 화면만 보이고 있었다. 결국 짜증이 극도로 올라온 상태에서 동료들과 식사를 마치고 다시 회사로 돌아오며 부장님께 슬쩍 여쭤보았다. 부장님, 혹시 디버그 모드로 계속 재실행하다보면 안될 때 어떻게 하세요? 휴대폰 껐다 키고, 스튜디오 캐시 날려봐 아까 오전부터 스튜디오 캐시..

프로그래머스

숨어있는 숫자의 덧셈(1) 코틀린(Kotlin)

이번 문제는 문자열 안의 숫자를 찾아 모두 더하는 문제이다. 문제 밑에 살짝 잘린 유의사항이 있는데 연속된 숫자도 한 자리 숫자로 취급한다고 한다. 내가 이 문제를 푼 방식은 문자열의 인덱스마다 문자를 정수로 형변환하고 그 값을 더해 리턴하는 것이었다. 그런데 만약 정수로 형변환할 인덱스의 문자가 정수형이 아니라면? 당연히 에러가 날 것이다. 형변환이 불가능하다고.. 그럼 어떻게 해야할까.. 나는 try-catch를 사용했다. 만약 형변환을 하는데 에러가 발생하면 그냥 반복문을 continue하도록 처리했다. 풀이 그리고 다시 Char to Int의 형변환을 알아보았는데 나는 전에 Character.getNumericValue()를 사용했었다. 하지만, 위의 메소드는 코틀린 버전이 낮을 때(1.5 이전)..

프로그래머스

옷가게 할인 받기 코틀린(Kotlin)

오늘도 코틀린 문법을 기억하기 위해 문제를 풀어보았다. 문제 문제를 보자마자 코틀린의 when을 사용하면 쉽게 풀 수 있겠다는 생각이 들었다. 다만 price가 Int형으로 주어지기 때문에 할인을 한 가격이 소수점이 나올 경우가 있어 계산된 값을 형 변환해주어야 했다. 풀이 처음엔 범위 연산을 until을 사용하지 않고 ..을 사용해 299999, 499999로 문제를 풀었는데 숫자가 보기 싫어서 until로 다시바꿔 풀어보았다. else -> answer = price.toDouble() else에서도 위처럼 문제를 풀었는데 굳이 메소드를 호출해 형변환하는 것이 불필요하다 생각해 곧바로 주어진 price를 리턴하는 것으로 바꿔보았다. 실행 결과

Android

안드로이드 스튜디오와 Gradle 버전의 호환성 이슈

최근 회사에서 디자인이 도착해 레이아웃 편집을 할 일이 많아져 작업을 하는데 이놈의 안드로이드 스튜디오에서 레이아웃 프리뷰가 안되는 버그가 계속 발생했다. 그래서 교수님께 여쭤보았더니 이유는 모르지만 현재 전기 뱀장어(Electric Eel) 버전이 xml 렌더링이 엄청 느려서 못 써먹겠더라.기린(Giraffe) 버전을 사용해봐 라고 답변을 해주셔서 기린 버전을 다운받으러 구글에 검색하니 일단 '안드로이드 스튜디오 다운로드'로 검색하면 뱀장어 버전만 다운로드 받을 수 있어 다시 '안드로이드 스튜디오 giraffe'로 검색해 다운로드하는 링크를 찾았다. 그런데, 이는 stable 버전이 아니고 Canary channel에서만 배포된다고 한다. 뭐 그게 베타 채널같은 느낌일까. 아무튼 따로 집에서도 똑같이 ..

Android

기존 프로젝트의 Java to Kotlin 전환 시 주의점

이번에 액티비티가 두 개 있는 정말 간단한 앱을 업데이트하면서 기존 Java로 작성된 파일을 Kotlin 변환 기능을 사용해 변경했다. 그리고 아무 생각없이 스토어에 업데이트를 올렸는데 내가 테스트해보니 이게 웬걸.. 그냥 실행조차 되지 않았다. 그래서 에러 로그를 보니 처음보는 에러가 있었다. 무슨 일일까 검색해보았다. 대부분 매니페스트에 액티비티가 등록되지 않은 경우가 많았는데 나는 이 경우일수는 없었다. 결국 여러 상황을 찾아보니 또 Gradle 문제였다. 프로젝트 수준의 build.gradle에서는 코틀린 플러그인이 제대로 추가되어있었는데, 모듈 수준의 build.gradle에서는 플러그인이 추가되어있지 않아서 .kt 확장자인 액티비티를 인식하지 못한 것이었다. 나처럼 무작정 Java to Kot..

프로그래머스

가장 큰 수 찾기 코틀린(Kotlin)

나는 오늘도 코틀린을 까먹지 않기 위해 간단한 문제를 풀었다. (회사에서는 자바 쓰는 중이라..) 문제 일단 리턴될 배열은 무조건 길이가 2이다. 그리고 0번 인덱스에는 최댓값, 1번 인덱스에는 해당 인덱스 값을 넣어주어야 한다. 최댓값 구하는 방식은 너무 유명해서 다들 알고 있을 것 같다. 갖고 있는 값과 비교해 새로운 값이 더 크면 기존 변수 값에 대입하는 방식이다. 풀이 실행 결과 이번 문제가 프로그래머스에서 푼 문제 중에 테스트 케이스가 가장 적은 문제였던 것 같다 ㅋㅋ

BonusTrack02.dev
'분류 전체보기' 카테고리의 글 목록 (15 Page)