전체 글 95

[React-Native] ReactNative 에서 Android Native 함수 호출

개발 중이던 Android 앱의 특정 기능들을 다른 ReactNative 앱과 결합할 일이 생겼다. 그래서 가장 먼저 Android 앱에서 필요한 기능들을 하나의 라이브러리 모듈로 통합을 해두었고, ReactNative 앱에서 생성된 Android Project 에 모듈을 Import 해주었다. 해당 모듈에는 필요한 기능들을 모두 사용하는 Activity 까지 넣어두었기 때문에, ReactNative 앱에서 Activity 를 호출해주기만 하면 됐다. 다만, 본 글에서는 ReactNative 에서 Android Project 를 생성하고, Android Project 내에서 ReactNative 에서 사용할 수 있는 함수를 어떻게 만들고, 호출하는지에 대해 정리한다. 1. Create React Nati..

ReactNative 2022.11.17

Kotlin 으로 JWT 를 Decode 하기

JWT 는 JSON Web Token 의 약자로, 서버 API 를 호출할 때 토큰으로 주로 사용된다. JWT 는 크게 Header, Payload, Signature 라 불리는 세 개의 부분으로 나눌 수 있다. Header 에는 인코딩 알고리즘과 토큰의 타입을 정의하는 내용을 담고 있고, Payload 는 JWT 에 넣고 싶은 데이터를 가진다. 마지막으로, Signature 는 Header 와 Payload 의 내용을 검증할 때 사용한다. JWT 문자열을 생성하는 것은 jwt.io 홈페이지에서 해볼 수 있다. 이제 본 글의 목적에 맞게 JWT 문자열을 디코딩하여, 인코딩 했을 때의 JSON 값들을 추출하는 코드를 구현해보자. 우선, 디코딩을 하고자 하는 JWT 값을 선정한다. 본 글에서는 jwt.io 페..

NotePad 2022.11.09

화면 자동 꺼짐 없이 항상 화면을 키고 싶을 때

Android App 뿐만 아니라, 화면을 보여주는 전자 제품들의 대부분은 디스플레이 출력에서 많은 전력을 소모한다. 심지어 Android App 은 적은 배터리 용량으로 돌아가기 때문에, 배터리 효율을 위해서 디스플레이가 자동으로 꺼지도록 설정이 되어있다. 하지만, 앱을 개발하다보면 디스플레이가 자동으로 꺼지지 않도록 하고 싶은 경우가 존재한다. 예를 들어, 영화나 동영상 감상을 할 때나, 어떤 작업을 하다가도 생각할 시간이 자주 필요한 상황이다. 그럴 때는 Android Device 가 Awake 상태를 유지하도록 해줘야한다. 출처 : https://developer.android.com/training/scheduling/wakelock 1. 대안책 1-1) DownloadManager 만약 앱이 ..

Android Developer 2022.11.03

Android Vitals 와 Firebase Crashlytics 연동

개발을 하다보면 예상치 못한 에러를 자주 마주하게 된다. 보통 Android 앱을 개발할 때, 가상 머신이나 실제 기기를 PC 와 연결하여 Android Studio 의 Logcat 이나 Run 창을 확인하면서 에러의 내용을 파악하고, 그에 맞게 코드를 수정한다. 그런데, Logcat 이 가끔씩 연결이 끊겨서 실시간으로 로그를 볼 수 없는 경우나 디버깅 모드가 지원되지 않는 기기에 APK 를 설치하여 테스트해야하는 경우 등, PC 와 연결하지 못한 상태에서 에러가 발생하는 경우도 흔하다. 그럴 때는 보통 전후 과정을 확인하고, 어디에서 오류가 발생했을 지 추측을 하여 에러를 잡는다. 하지만, 에러문을 직접 눈으로 확인하지 못하기 때문에 불확실한 추측으로 코드를 수정하게 될 수도 있다. 게다가, 디버그 상..

Android Developer 2022.11.02

Firebase Console 과 Android App 연동

Firebase 와 Android App 을 연동하면, Firebase 에서 제공하는 다양한 서비스들을 이용할 수 있다. 앱 크래쉬나 ANR 종료 등을 리포트 받을 수 있는 Firebase Crashlytics, 푸쉬 알림을 보낼 수 있는 Firebase Cloud Messaging(FCM), 각종 통계 수치를 볼 수 있는 Firebase Analytics 등등... Firebase 와 연동하여 다양한 서비스들을 제공 받을 수 있다. 위에 예로 든 서비스 외에도 다양한 서비스들을 Android App 과 연동하기 위해서는 Firebase Console 에서 "google-service.json" 파일을 발급 받아서 App 프로젝트 내에 넣어줘야한다. 이제 Firebase 와 Android App 을 연동..

Android Developer 2022.11.02

RadarChartView 직접 만들기 : 3. Custom Drawing

RadarChartView 직접 만들기 : 2. Creating a View Class RadarChartView 직접 만들기 : 1. CustomView Overview 개발을 하다보면 외부 라이브러리를 쓰기 보다는 직접 필요한 라이브러리를 만들어서 쓰고 싶은 낭만(?) 같은게 생긴다. 특히, 필자는 나만의 CustomVie choboit.tistory.com 이전 글에서는 CustomView 클래스를 만드는 방법에 대해 정리했다. 이번 글에서는 CustomView 에서 직접 그려보는 방법에 대해 정리한다. 본 글은 Android Developer 공식 문서를 기반으로 작성한다. 출처 : https://developer.android.com/develop/ui/views/layout/custom-vie..

Android Developer 2022.10.14

RadarChartView 직접 만들기 : 2. Creating a View Class

RadarChartView 직접 만들기 : 1. CustomView Overview 개발을 하다보면 외부 라이브러리를 쓰기 보다는 직접 필요한 라이브러리를 만들어서 쓰고 싶은 낭만(?) 같은게 생긴다. 특히, 필자는 나만의 CustomView 를 만들고 싶다는 생각이 Android 를 처음 choboit.tistory.com 지난 글에서는 CustomView 에 대한 이론적인 내용을 다뤄보았다. 이번에는 CustomView 를 만드는 기본적인 방법에 대해 기술한다. 출처(공식 문서) : https://developer.android.com/develop/ui/views/layout/custom-views/create-view 1. Overview 잘 만들어진 CustomView 는 마치 잘 만들어진 Cl..

Android Developer 2022.10.12

MusicXML 4.0 Tutorial - File Structure

본 글은 W3C 의 MusicXML 공식 문서를 기반으로 작성한다. 이전 글은 MusicXML 의 기초적인 내용을 정리했다. 이번 글에서는 MusicXML 의 구조에 대해 알아보고, 더 많은 MusicXML 문법을 정리한다. 1. Adapting Musical Scores to a Hierarchy 이전 글에서 다뤄봤던 예시 악보는 한마디만 있는 간단한 악보였다. 이번에는 더 많은 Part 와 더 많은 Measure(마디) 로 이루어진 악보를 예시로 삼아서 학습한다. 보통 XML 은 계층구조로 데이터를 표시하지만, 실제 악보는 계층 구조보다는 격자(Lattice) 구조에 가깝다. 그렇다면 MusicXML 은 XML 과 실제 악보 간의 구조적 차이를 어떻게 극복하였는지 알아보자. MusicXML 은 2가지..

NotePad 2022.09.21
반응형