본문 바로가기

안드로이드20

[Kotlin] Coroutine 기본 개념 Android & Main Thread안드로이드의 View는 메인 스레드에서 업데이트가 된다. 그 이유는 서로 다른 스레드에서 View를 동시에 업데이트하면 문제가 발생할 수 있기 때문이다.안드로이드는 프레임 렌더링을 위해서 60fps(1초에 60 프레임 렌더링), 16ms(하나의 프레임을 렌더링 하는 데 걸리는 시간)에 달성해야 한다고 한다. 이 이하로 떨어지게 되면 시각적으로 봤을 때, 버벅거림이 발생하고 사용자에게 안 좋은 경험을 제공할 수 있기 때문이다. 스레드는 한 번에 하나의 일을 처리할 수 있다. 메인 스레드는 View 업데이트에 사용되어야 한다. 만약 View 업데이트가 아닌 다른 작업이 많아지거나 오래 걸린다면 메인스레드가 View 업데이트를 하지 못하게 된다. 결과적으로 View 업데.. 2025. 5. 29.
[Android] Shared Preferences. 앱 내 간단한 데이터 저장에 사용. 목차 Shared Preferences Shared Preferences 객체에 접근 Shared Preferences에 쓰기 Shared Preferences에서 값을 삭제하기 Shared Preferences에서 읽기 결론 Shared Preferences 크기가 크지 않은 비교적 간단한 데이터를 key-value 형태로 저장할 수 있게 도와주는 라이브러리입니다. (Shared Preferences API와 Preference API는 다릅니다.) Shared Preferences는 애플리케이션 내부에 저장됩니다. 따라서 앱을 지우거나 데이터를 삭제하면 Shared Preferences에 저장된 값 또한 사라지게 됩니다. Shared Preferences는 해당 경로에 .xml 형태로 저장됩니다. d.. 2023. 5. 19.
[Android] Dive into concept of Configuration. (App Lifecycle, 화면 전환 등) 목차 Configuration 소개 Activity Recreate 상태 보존 생성 제한 결론 Configuration 소개 Configuration 클래스는 응용 프로그램 리소스에 영향을 줄 수 있는 모든 장치 구성 정보를 설명한다. 여기에는 사용자 지정 옵션(화면 스케일, 로케일, 입력 모드, 화면 방향 전환, 화면 크기와 같은 장치 구성 정보가 포함된다. val config = resources.configuration와 같이 접근할 수 있다. 일부 기기 구성은 앱이 실행되는 동안 변경될 수 있다. 여기에는 다음이 포함되지만 이에 국한되지 않는다. 앱 디스플레이 크기 화면 방향 글꼴 크기 및 두께 언어 어두운 모드와 밝은 모드 비교 키보드 사용 가능 여부 구성 변경은 대부분 사용자 상호작용으로 인해.. 2023. 4. 23.
[Android] What is Gradle? What is Gradle? Gradle은 거의 모든 유형의 소프트웨어를 빌드할 수 있을 정도로 유연한 오픈 소스 빌드 자동화 도구이다.Gradle은 무엇을 구축하려고 하는지 또는 어떻게 구축해야 하는지에 대해 몇 가지 가정을 한다. 이러한 가정이 Gradle을 특히 유연하게 만든다. 안드로이드 스튜디오는 빌드 자동화 도구로 Gradle을 사용한다. 안드로이드 스튜디오에서 실제 빌드는 Gradle이 한다. Gradle은 다음과 같은 일을 한다. Compile : 리소스 및 소스 코드를 컴파일한다. (In Android, Kotlin, Java 코드 → 바이트 코드) Packaging : 코드를 패키징해서 aab, apk 파일로 만들어 준다. Test : 테스트 환경을 구축하고 지원한다. Deploy & .. 2023. 4. 19.
[Android] Dive into concept of Android Context. (Application Context and Context) 목차 Context 정의 Context Tree Activity Context, Application Context Activity Context Application Context Context 사용 Context 사용과 메모리 누수 1. static 변수에 ActivityContext 사용 2. singleton 객체에서 ActivityContext 참조 Context 정의 애플리케이션 환경에 대한 전반적인 정보를 담고 있는 인터페이스이다. 여기서 전반적인 정보란, 애플리케이션의 리소스 파일 혹은 View에 대한 정보 등을 포함한다. Context에 쓰임은 주로 activityContext, applicationContext와 같이 사용된다. Context Tree Context는 abstract c.. 2023. 4. 17.
[Android] Support different screen size. (큰 화면, 작은 화면 사이즈 대응) 이 글은 Compose를 사용하고 Bottom Navigation을 사용할 때 화면 사이즈에 대한 UI 구성을 부드럽게 하기 위한 간단한 예제이다. 이 예제는 Compose를 사용하였습니다. 이 글은 PC로 보는 것을 권장합니다. 1. Dependency 추가 Material3 Library Window Size Class를 사용하면 기기 화면 사이즈를 구할 수 있다. 실제 기기 사이즈와 앱 스크린 사이즈는 다를 수 있다. 출처 : https://developer.android.com/jetpack/androidx/releases/compose-material3?hl=ko 2. Code calculateWindowSizeClass()를 통해 window width size를 구할 수 있다. HomeScr.. 2023. 2. 28.
[Android] Jetpack Compose 개념 Introduce Jetpack Compose는 Android를 위한 현대적인 선언형 UI 도구 키트이다. 더 적은 수의 코드, 강력한 도구, 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화하여 앱에 생동감을 더해준다. 코드 감소 직관적 빠른 개발 과정 강력한 성능 간단한 Composable 함수 Compose를 사용하면 데이터를 받아서 UI 요소를 내보내는 Composable function 집합을 정의하여 사용자 인터페이스를 빌드할 수 있다. @Composable 주석이 있어야 함수가 데이터를 UI로 변환하기 위한 함수라는 것을 Compose 컴파일러에게 알릴 수 있다. 함수는 데이터를 받는다. 매개변수가 있을 수 있으며 이를 통해 앱 로직이 UI를 형성할 수 있다. .. 2023. 1. 29.
[Android] Concept of DI Hilt. Dive into Hilt Components. Component Hierarchy 기존 Dagger와 달리 Hilt 사용자는 Dagger의 Components를 직접 정의하거나 인스턴스화하지 않는다. 대신 Hilt는 사용자를 위해 생성되는 미리 정의된 Components를 제공한다. Hilt는 안드로이드 애플리케이션의 다양한 라이프 사이클에 맞춰 자동으로 통합되는 Components(및 해당 Scope Annotaion) 세트가 제공된다. 아래 Diagram은 Hilt Component의 계층 구성도를 보여준다. 각 Component의 주석은 해당 Component의 수명으로 바인딩 범위를 지정하는 데 사용되는 범위 지정 주석이다. Component의 화살표는 하위 Components를 가리킨다. 일반적으로 하위 Components의 바인딩은 상위 .. 2022. 11. 22.
[Android] 종속 항목 삽입(Dependency Injection)이란? Introduce 종속 항목 삽입을 구현하면 다음과 같은 이점을 누릴 수 있다. 코드 재사용 가능 리팩터링 편의성 테스트 편의성 종속성 항목 삽입이란? 클래스에는 흔히 다른 클래스 참조가 필요하다. 예를 들어 Car 클래스는 Engine 클래스 참조가 필요할 수 있다. 이처럼 필요한 클래스를 종속 항목이라고 하며, 이 예에서 Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 한다. 클래스가 필요한 객체를 얻는 세 가지 방법은 다음과 같다. 클래스가 필요한 종속 항목을 구성한다. 위의 예에서 Car는 자체 Engine인스턴스를 생성하여 초기화한다. 다른 곳에서 객체를 가져온다. Context Getter 및 getSystemService()와 같은 일부 Android API는 이러한.. 2022. 11. 19.
반응형