Android/도구 및 라이브러리(10)
-
Gradle dependencies | implementation vs api 차이, 언제 무엇을 써야 할까?
Android에서 환경 세팅을 할 때 library를 추가하기 위한 문법이 있다.implementation과 api.이 두가지를 혼용하여 사용하는 경우가 있는데 어떤 점이 다른걸까?📌 implementation vs api 차이implementation현재 모듈 내부에서만 라이브러리를 사용 가능.이 모듈을 의존하는 다른 모듈에서는 이 라이브러리를 사용할 수 없음.빌드 속도가 더 빠름 (다른 모듈에 영향을 주지 않아서!)api현재 모듈뿐만 아니라, 이 모듈을 의존하는 다른 모듈에서도 라이브러리를 사용 가능.즉, 이 모듈이 라이브러리를 공개(공유)하는 것과 같다.하지만 변경될 때 빌드 속도가 느려질 수 있음 (다른 모듈까지 영향을 받음)📌 예제 비교✅ implementation 사용dependencies..
2025.02.11 -
안드로이드 성능 최적화, 왜 경량 스레드(코루틴)를 써야 할까?
안드로이드에서는 흔히 API 통신을 할 때 Coroutine을 사용한다.코루틴은 안드로이드의 대표적인 경량 스레드 방식이다.그렇다면 스레드는 무엇이고, 그 안에서 경량 스레드는 무엇일까? 1. 스레드란?스레드(Thread) 는 프로세스 내부에서 실행되는 하나의 작업 흐름을 의미한다.흔히 프로세스와 많이 비교를 하는데 안드로이드로 따지자면 앱이라는 프로세스 안에 여러개의 스레드가 존재하는 것이다.즉, 스레드는 앱(프로세스)에서 여러개의 작업을 동시에 실행시켜주는 단위라고 생각하면 된다. 안드로이드 앱도 내부적으로 메인 스레드(Main Thread) 를 가지고 있고, UI를 업데이트하는 모든 작업은 여기서 수행이 된다.✅ 안드로이드에서 Thread안드로이드 앱에서는 기본적으로 하나의 메인 스레드(UI 스레드..
2025.02.08 -
Android Studio Compose에서 Color 미리보기 (게터 아이콘)
🌟 들어가기 전안드로이드 프로젝트를 구현하면서 Color 값 세팅은 필수적이다.그런데 게터 아이콘(왼쪽 여백)으로 Color 값을 미리보기 할 수 없다면일일히 값을 검색해서 세팅해야 하는 수고로움이 추가된다. Android Studio에서 Compose의 Color 값을 미리보기 할 수 있는 방법이 있을까? 🔍 세부 내용Compose Color Preview Plugin미리보기를 할 수 있는 방법은 IntelliJ에서 프리뷰 플러그인을 다운 받는 것이다. 1. File > Settings > Plugins 진입 2. Compose Color Preview 검색 후 설치 3. 게터 이미지로 Color Preview 확인기존에는 이렇게 왼쪽에 아무 것도 볼 수 없었다면,플러그인을 설치한 이후에는 게터 아..
2025.01.17 -
RxJava 배압(Backpressure) 이슈와 Flowable
🌟 들어가기 전안드로이드 개발자라면 누구나 익숙한 라이브러리인 RxJava.RxJava는 비동기 데이터 처리와 반응형 프로그래밍을 위한 Java 라이브러리다.(참고 링크 👉 https://anovice-dp.tistory.com/179) 데이터를 통신하는 과정에서 앱이 멈추지 않고 자연스럽게 흘러가며, UI가 변경되도록 도와준다.이렇게 유용한 RxJava를 사용할 때 주의할 점 있다. 바로 배압 이슈.Backpressure라고도 한다.🔍 세부 내용1. 배압이란?데이터를 생산하는 속도와 데이터를 소비하는 속도가 불균형할 때 발생하는 문제이다.생산자가 데이터를 너무 빨리 발행하고, 구독자가 이를 처리하지 못하면 데이터가 계속 누적되어 OOM 이슈가 발생한다.2. Flowable로 관리하기Flowable..
2025.01.13 -
[Android]DeepLink와 Scheme
2023.02.25 - [Android]Deeplink 안드로이드에서 딥링크 스킴은 인텐트(Intent)를 사용하여 특정 앱의 특정 화면으로 직접 이동할 수 있는 링크입니다. 이를 통해 사용자가 해당 앱을 설치하지 않았더라도 앱의 특정 화면으로 이동하여 더 나은 사용자 경험을 제공할 수 있습니다. 안드로이드 딥링크 스킴은 다음과 같은 형식으로 구성됩니다. scheme://host/path 여기서 scheme은 딥링크 스킴을 사용하는 앱의 이름이며, host는 해당 앱의 도메인 이름 또는 패키지 이름입니다. path는 앱 내에서 이동하고자 하는 특정 화면을 가리킵니다. 예를 들어, 만약 "myapp"이라는 이름을 가진 앱이 "myapp://main/home"이라는 딥링크 스킴을 가진다면, 이 링크를 클릭하..
2023.05.29 -
[Android/Async]RxJava에서 Throttle과 Debounce
RxJava에서 Throttle과 Debounce는 각각 데이터 스트림에서 지정된 시간 동안의 버퍼링된 이벤트를 처리하는 방법입니다. 이 두 연산자는 모두 데이터 스트림에서 지정된 간격 이상의 이벤트를 발생시키지 않도록 제어하며, 너무 많은 이벤트가 처리되어 성능 문제가 발생하는 것을 방지할 수 있습니다. Throttle은 이벤트를 지정된 시간 동안 버퍼링한 다음, 시간이 지난 후에 가장 최근의 이벤트를 처리합니다. 예를 들어, 1초 동안 Throttle을 적용하면 1초 동안 이벤트를 버퍼링하고, 1초 이후에 발생한 가장 최근의 이벤트를 처리합니다. 이를 통해 일정 시간 동안 반복적으로 발생하는 이벤트를 제한하고, 지정된 시간 동안 가장 최근의 이벤트만 처리할 수 있습니다. Debounce는 이벤트를 버..
2023.05.10