- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CustomTab
- Kotlin
- coroutine
- pullrequest
- rxjava
- errorhandling
- blog
- withContext
- 안드로이드
- KotlinInAction
- github
- 코틀린
- 책리뷰
- androidstudio
- jlpt
- posting
- 일본어기초
- GIT
- ai
- Android
- 진짜일본어
- 진짜학습지후기
- PR
- n3문법
- 일본어문법
- suspend
- 진짜학습지
- 학습지
- 책추천
- webflux
목록안드로이드 (73)
코딩하는 개굴이
지난번에, 아래 링크 포스팅에서 Optimize Import 를 Macro 로 지정해놓았더니 몇개 이상의 Import 들이 상위 패키지가 겹치면 그냥 묶어버리는 현상이 발생하였다. https://yejinson97gaegul.tistory.com/entry/Android-Studio-Android-Macro-feat-Save-All-Reformat-Optimize (증말… 하나하나 일일이 풀어주는데 놓치는것도 생기고 귀찮기 그지없다… 편리함을 위해 불편함을 감수하다니..) 사실, 그래도 큰 문제는 없긴하지만 불필요한 subpackages 까지 포함되는 문제와, 그러한 이유로 lint rule 로 이를 막고 있는 경우도 있다. 그래서 오늘은 Optimize Import 시 “single name impor..
비동기 작업 관련 개발을 하고 있던 중, 생각 외로 시간이 오래 걸린다 싶은 경우가 있을 수 있다. 얼마나 걸리는지 파악해보고 Thread 분리를 수행할지 어찌 할지 등을 고려해야하기 때문인데, Android Studio 의 Profiler 를 활용해 이를 측정하고, UI Janky frame (버벅거림) 을 확인할 수 있는 방법에 대해 알아보자. Android Studio Profiler Android Studio Profiler (구 Android Monitor 도구) 는 앱의 CPU, Memory, Network, Battery 리소스를 사용하는 방법을 이해하는데 도움이 되는 실시간 데이터를 제공하는 도구이다. 기본적인 사용 방법에 대해 Developers 가이드에 기입되어있는 내용은 아래와 같다...
RxJava 는 비동기를 위해 주로 사용되는데, 그냥 사용한다고 비동기 처리가 수행되는 것이 아니라, 스케줄러를 통해 스레드를 분리해주어야한다. 스케줄러란? Scheduler 는 RxJava 의 코드가 어느 스레드에서 실행될 것인지를 지정하는 역할을 수행한다. 스케줄러의 지정은 subscribeOn, observeOn 연산자를 이용한다. subscribeOn: Observable 이 데이터의 흐름을 발생시키고 연산하는 스레드를 지정할 수 있다. 데이터를 발생시키는 쪽에서 흐름을 제어하기 위해 사용 observeOn: Observable 이 Observer에게 알림을 보내는 스레드를 지정할 수 있다. 전달받는 쪽에서 데이터를 처리하는 부분을 위해 사용 스케줄러의 종류 💡 RxJava 에서는 Computat..
Subject 는 데이터 스트림과 subscriber 성격을 둘다 갖고있다. Observable 과 Observer 를 둘다 구현한 추상 타입이기 때문에, 하나의 소스로부터 다수의 subscriber 에게 멀티 캐스팅이 가능한 장점이 있다. Observer 를 직접 구현하기 때문에, onNext, onError, onComplete 등의 이벤트를 수동으로 subscriber 에게 전달해줄 수 있다. 데이터 스트림의 성격 예를들어 PublishSubject 를 기준으로 살펴보자. 간단하게 PublishSubject 는 가장 단순한 구현체로, 이벤트를 subscriber 에게 전달할 수 있다. 단, 구독한 시점에서부터 발생하는 데이터를 전달하기 때문에, 데이터가 모두 발행된 뒤 구독하면 받을 수 없다. va..
Android 에서 비동기 실행을 할때 본인은 간혹 실수하여 에러를 마주하곤 한다. 바로 View 를 UI Thread 에서 변경하지 않아서 발생하는 것이 그것이다. 안드로이드 시스템은 애플리케이션이 실행되면 하나의 실행 스레드로 애플리케이션의 프로세스를 실행하는데, 이것을 메인 스레드라고 한다. UI 도구 키트 구성 요소를 생성 및 조작할 때 상호작용하는 스레드가 MainThread 이며, 그렇기 때문에 UI Thread 라고도 불린다. Main Thread 에서는 오래 소요되는 작업을 수행하지 않는 것을 권장하는데, 오래 소요되어 응답성/반응성이 떨어진다면 사용성이 떨어지거나 ANR 이 발생할 수 있기 때문이다. 따라서, 안드로이드 스레드 사용 시 아래와 같은 사항을 유념해야한다. 시간이 오래걸리는 ..
개발하면서 Radio Button 을 사용하게 되었는데, 생각 외로 이상한 현상이 있었다. 어느 버튼이 눌린 것인지 알아야하는거면 position 으로 radio group 에서 listener 를 달면 되겠지? 라고 생각하며 xml 을 이리 짜둔 상태에서 실행해보니, 재미있는 현상이 발생하더라. 동시에 여러개가 선택되는 것이 아닌가? 이게 뭔일이래… (본래 Radio Button 이란 CheckBox 와는 달리, 한번에 하나만 선택될 수 있도록 하는 특징이 있다.) 생각보다 원인은 쉬운 것이었다. 아래 xml 에서 어떤 것이 잘못된 건지 알 수 있을까? 바로, RadioButton 에 id 를 지정하지 않은 것이 원인이었다. 따라서 listener 도 돌지 않고, 한번에 하나만 선택되는 것도 되지 않았..
💡 해당 포스팅은 Notion AI를 이용하여 작성되었습니다. (자동 작성된 내용을 토씨 하나 안 바꾸었음을 알립니다. 심지어 이 정보창도 AI 검수를 시켰습니다.) Notion AI를 이용하는 방법은 Notion AI 기능 사용하기 포스팅을 참고해 주세요. 안드로이드 앱을 개발하다보면 다양한 에러가 발생할 수 있습니다. 이 문서에서는 자주 발생하는 몇 가지 에러와 그 해결 방법에 대해 설명하겠습니다. 1. Gradle 에러 Gradle build 시 다음과 같은 에러가 발생할 수 있습니다. Could not find com.android.tools.build:gradle:4.1.2. 해결 방법: build.gradle 파일에 다음 dependency를 추가합니다. dependencies { classp..
androidx core-ktx 를 추가하고 있던 와중 아래와 같은 에러가 발생하게 되었다. /Users/user/.gradle/caches/transforms-2/files-2.1/4fa6e55d833d1d339902e36b265b6c73/core-1.7.0-alpha02/res/values/values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found. 본인의 경우는 대상으로 하고 있는 targetSdkVersion/compileSdkVersion 이 31인데, 적용하고자 하는 core-ktx 버전이 1.9.0 이었기 때문에 버전 호환 문제로 발생한 것으로 추정되었다. 따라서, 31 당시 최신 버전이었던 1.6.0 으로 버전을 ..
coil 라이브러리를 써보겠다고 추가했더니 아래와 같은 에러가 떴다 One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.core:core-ktx:1.7.0. AAR metadata file: /Users/son-yejin/.gradle/caches/transforms-3/95e9b203..
Android 개발을 하면서 과정에서 제일 많이 경험하는 과정 중에 하나가 로그를 이용한 분석일 것이다. 로그는 실시간으로 앱을 디버깅하며 문제를 분석하는데 매우 중요한 역할을 한다. 이번에 Android Studio 가 Eel 로 업데이트되며, 더 잘 활용할 수 있는 방법을 알아보도록 하자! 창 띄우기 Locat 창은 하단의 탭에서 확인할 수 있겠지만, 만일 없다면 View> Tool Windows > Logcat 에서 켤 수 있다. 이번 Android Studio eel 에서 로그 캣을 처음 킨 사람이라면 새삼 달라진 UI 에 당황할 수도 있을것이다. (사실 본인이 그러하여, 해당 포스팅을 작성하게 되었다.) 여러 창 띄우기 로그 탭에서 + 를 누르거나, 특정 탭에서 split right 등을 수행하..