본문 바로가기

Android

[Android] Firebase Crashlytics 연동하기 기존에 에러 로깅 툴은 Firebase에서 Fabric에서 쓰던 라이브러리로 써봤는데 이번엔 새로운 Firebase Crashlytics를 적용해보기로 했다. fabric에서 쓰던 라이브러리보다 많이 바뀔 수도 있다고 경고를 하긴 하는데 일단 Firebase에서 본격적으로 시작한 거니까 한 번 써 보는 것도 좋을 것 같다는 생각이 들어 적용하게 되었다. (library 이름이 com.crashlytics.sdk.android:crashlytics에서 com.google.firebase:firebase-crashlytics로 변경됨...) 연동방법은 이 링크를 참고하면 된다.(https://firebase.google.com/docs/crashlytics/get-started-new-sdk?hl=en&pl..
[Android] 인앱 결제가 안 될 때 체크해야 할 사항 기존 사내에 있던 프로젝트를 개발 버전과 운영 버전으로 따로 분리시키면서 개발 쪽 플레이스토어 프로젝트를 하나 추가하는 작업을 하게 되었다. 그 과정에서 있었던 이슈 및 처리방안에 대해 간단히 정리하고자 한다. 1. 당시 상황 - 개발 프로젝트는 알파 트랙에만 등록 - 개발용 앱은 DeployGate로 배포 1. 개발 프로젝트에서 결제가 안 되는 이슈 - 테스트 계정(구글 플레이)이 알파 내부 테스트에 등록되어 있는지 확인 - 테스트 계정으로 해당 알파 프로그램에 참여했는지 확인 - 테스트 계정이 결제 테스트용으로 등록되어 있는지 확인 2. 운영 프로젝트에서 결제가 안 되는 이슈 - 실제 결제는 실제 배포 버전보다 낮거나 같은 버전에서만 동작하므로 실제 결제 테스트는 무조건 테스트 계정으로 해서 확인해야..
[Android] Retrofit2 Gson 사용 시 주의사항 회사 신규 프로젝트에 Retrofit2를 사용하고 있던 중에 200 성공 응답을 받고 실패 로직을 타는 경우가 있었다. 분명 콜은 한 번만 들어갔고 다른 이슈 사항이 없었음에도 다시 Retry를 하는 증상이었는데 원인을 분석해보니 EOF Exception과 함께 실패로 처리가 되었던 것이 문제였다. Gson컨버터를 쓰려면 서버 쪽에서 body에 "{}"을 넣어줘서 처리를 하면 해결이 된다. 끝.
[Android] 상수 관리하기 기존 상수 관리에는 2가지 방법이 있다. 1. 클래스 하나를 생성한 후 상수를 넣는 방법 장점 시스템 메모리를 적게 차지 단점 코드상으로 안전 장치가 없음 2. Enum으로 관리하는 방법 단점 그냥 상수보다 시스템 메모리를 약 13배 차지(int의 경우) 런타임 메모리 오버헤드 증가 장점 컴파일, 런타임 단계에서 체크 가능 안드로이드에서는 이러한 두 가지 방법의 장점을 둘 다 이용하기 위해 TypeDef라는 Annotation을 제공하고 있으며 또한 Proguard에서도 Enum 타입에 대한 최적화를 도와준다고 한다. 다만 proguard를 이용하는 방법은 완벽한 최적화를 보장하지 않기 때문에 최대한 TypeDef를 이용하는 것이 좋을 것 같다. TypeDef를 이용하는 방법은 다음과 같다. String..
[Android] 앱 디자인 참고 1. uplab : https://www.uplabs.com/ UI Kits, Icons, Templates, Themes and More - UpLabs www.uplabs.com 2. behance : https://www.behance.net/ 최고의 Behance 오늘의 큐레이터 추천 프로젝트 www.behance.net 3. dribbble : https://dribbble.com/ Dribbble - Discover the World’s Top Designers & Creative Professionals Discover the world’s top designers & creatives Dribbble is the leading destination to find & showcase crea..
[Android] Kotlin 공부 - (1) 기본 문법 훑어보기 공부하는데 참고한 자료입니다.(https://kotlinlang.org/docs/reference/basic-syntax.html) Basic Syntax - Kotlin Programming Language kotlinlang.org Package Java와 동일 Function fun 함수명(파라미터명: 타입...): 리턴 타입 fun 함수명(파라미터명: 타입...) = 리턴 값 Java에서 void 역할은 리턴 타입을 Unit으로 하거나 생략하면 됨 Variable 상수는 선언할 때 val로 선언 변수는 선언할 때 var로 선언 전역으로 선언할 때는 Java와 동일 Comment Java와 동일 Templates 어떤 String 틀 안에 바로 변수 혹은 상수값, 식을 바로 넣어줄 수 있음 Stri..
[Android] Firebase Analytics, Crashlytics 연동하기 Firebase Analytics, Crashlytics 연동 소개 Android에 Firebase Analytics, Crashlytics를 연동할 수 있습니다. 준비물 Android Studio 연동할 프로젝트 실습 https://firebase.google.com에서 오른쪽 상단의 콘솔로 이동 클릭 프로젝트 추가 버튼 클릭 프로젝트 이름 입력 프로젝트에 Google 애널리틱스 설정 여부를 선택한 후 계속 GA를 선택했다면 계정 선택 후 프로젝트 만들기, 없다면 바로 만들어짐(추후에 추가 가능) 다음 화면에서 Android 모양의 버튼 클릭 안드로이드 패키지 입력 google-services.json을 다운로드해서 app 폴더에 넣음 앱에 의존성 추가 정상적으로 되었다면 Analytics Dashbo..
[Android] Mac OS의 Android Studio에서 키보드가 정상적으로 동작하지 않을 때 원인 : Mac OS의 특수문자를 지원해주는 'hold down key' 기능이 활성화되기 때문 해결 : 터미널에서 다음과 같이 입력하면 된다. defaults write -g ApplePressAndHoldEnabled -bool false 참고 : https://stackoverflow.com/a/53938438