프로그래밍/Android 128

[안드로이드] 프로젝트에 Sentry 연동방법, Proguard 적용까지

Firebase Crashlytics는 Crash만 기록할 수 있지만, Sentry를 이용하면 Crash는 물론, 개발자가 직접 기록한 이벤트 로그를 확인 할 수 있고 오류가 난 디바이스의 정보와 회원 정보까지 쉽게 파악이 가능하다. 그래서 이번 프로젝트에서는 Sentry를 한 번 이용 해 보기로 했다. 기본 세팅 먼저 Sentry에 가입하고, Sentry에서 안드로이드 프로젝트를 만든 후 다음과 같이 대시보드에 진입 할 수 있는 상태가 되어야한다. 이 절차는 간단하므로 빠르게 스-킵! 먼저 공식 문서(docs.sentry.io/platforms/android/)가 말하는 대로, 안드로이드 프로젝트에서 세팅을 해 주어야 한다. // Make sure jcenter or mavenCentral is the..

[Kotlin/Java] 생년월일 기준으로 현재 만 나이 계산하기

입력한 생년월일을 기준으로 만 나이를 계산하는 코드다. calculateAge(date) >= 14 일경우, 만 14세 이상 조건을 만족하게 된다. /** * 생년월일을 기준으로 현재 나이 계산 * @param unix unixtimestamp */ fun calculateAge(date: Date?): Int { val birthCalendar = Calendar.getInstance() birthCalendar.time = date ?: Date() val current = Calendar.getInstance() val currentYear = current[Calendar.YEAR] val currentMonth = current[Calendar.MONTH] val currentDay = curr..

[안드로이드] 주식 봉차트 그리기 (Drawing candle stick chart with MPAndroidChart Library Example)

라이브러리 & 프로젝트 준비 프로젝트에 MPAndroidChart를 import 하는 법은 이전강의(아래 링크)에 잠깐 참고하고 오면된다. jizard.tistory.com/240 데이터 구조 봉 차트를 그리기 위해서 open, close,shadowHigh,shadowLow값을 전달 해 주어야한다. 봉차트를 보는 방법은 다음과 같다. 샘플 데이터는DataUtil.getCSStockData()를 통해서 가져오면된다. 빨간색으로 칠한 봉은 하루동안 가격이 오른 봉, 한국어로 양봉이고 푸른색으로 칠한 봉은 하루동안 최종적으로 가격이 내려간 봉, 음봉이다. open: 시작가 (시가) close: 종료가 (종가) shadowHigh: 장중 최고가 shadowLow: 장중 최저가 - 주식 자료형인 CSStock과..

[안드로이드] 주식차트 그리기 (Drawing LineChart with MPAndroidChart, Differentiate line colors by limit line value)

위 사진에 보이는 차트를 안드로이드 주요 차트 라이브러리인 MPAndroidChart를 이용해 그려볼 것이다. 내가 영어를 그닥 잘하지 않아서 그런건지 모르겠지만, 저런 차트를 그리고 싶은데 문서나 강의 같은걸 찾지 못했다. 그래서 블로그에도 올려서 방법을 공유 해 보려고 한다! MPAndroidChart 준비하기 MPAndroidChart 라이브러리를 사용하기 위해서 gradle에 다음과 같이 추가한다. allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { ... implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' 최신 버전으로 받고 싶다면 githu..

[안드로이드] Keytool을 이용해 KeyHash, SHA-1 얻기

안드로이드 키 해시 얻는 방법, 터미널에서 아래와 같이 입력 해 주면된다. 디버그 Keyhash 확인법 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64 릴리즈 Keyhash 확인법 디버그 확인 코드랑 같은데 variable만 다르다. keytool -exportcert -alias gnacompany -keystore -storepass -keypass | openssl sha1 -binary | openssl base64 디버그 SHA-1 / SHA-256 확인법 keytool..

[안드로이드] 주요 이미지 라이브러리 메모리 사용량 비교해보기! (Glide vs Picasso vs Coil)

안드로이드에서 Glide, Picasso, Coil 등 선택할 수 있는 이미지 라이브러리(Image library)의 폭은 넓다. 뭐 대부분 그냥 닥치고 글라이드! 하긴하지만, 메모리 관리 측면에서 누가 젤 잘하는지 항상 속으로 궁금했다... 주말에 심심하니까 간단히 테스트 해봤다. 비교군 - Glide: 1군 - Picasso: 2인자 - Coil: 떠오르는 신예 앱 기능 앱 자체는 간단하다. 화면 하나에 엄청나게 큰 이미지 목록을 보여주는거다. RecyclerView에 Adapter를 붙이고 로드! Coil 같은 경우에는 이미지 곡선처리하는데 이미지뷰 자체가 아닌 이미지 자체를 곡선처리 해버려서 모든 라이브러리가 곡선처리는 따로 하지 않도록 RoundedImageView라는 라이브러리를 사용하여 이미..

[안드로이드] 예제로 알아보는 Foreground Service

들어가기에 앞서 Foreground Service를 어떻게 이용하면 좋을까요? 간단한 예제를 통해서 알아보도록 하겠습니다. 예제로 만들어 볼 앱은 가짜 음악 플레이어 앱입니다. 멜론이나 벅스, 지니 등 음악 앱을 이용하면 상단 알림창에 현재 재생중인 음악이 뜹니다. 그리고 다음곡이나 이전곡, 재생 및 일시정지가 가능한데요, 이것은 Foreground Service로 구현할 수 있습니다. 또 다른 예시로는 현재 유저가 걷는 걸음이나 거리를 측정하는 피트니스 앱이 있겠네요. 서비스에 대해 궁금하시다면 Service 전반에 대한 내용을 다룬 이전 글을 참조 해 주세요. MusicPlayer Example activity_main.xml 사진과 같은 레이아웃을 만들어 줍니다. Start Foreground Se..