목록전체 글 (140)
시배's Android
Android : Deep dive into SavedStateHandle | Romman Sabbir SavedStateHandle: APIs, how it works with ViewModel and survive the Configuration changes. rommansabbir.com Basic AndroidX 라이브러리에서 도입된 SavedStateHandle은 Android 애플리케이션에서 구성 변경 중에 데이터를 유지하고 복원하는 편리한 방법을 제공합니다. SavedStateHandle은 이 기능을 구현하기 위해 여러 핵심 구성 요소와 메커니즘을 활용합니다. Android SavedStateHandle의 내부 구현을 탐색하고 작동 방식을 이해해보겠습니다. SavedStateHandle은 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Z5p9B/btsrh2Y2RvL/fg9kZ7KSQ1QkjqdD1sbgNk/img.jpg)
Compose 레이아웃 기본사항 | Jetpack Compose | Android Developers Compose 레이아웃 기본사항 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Jetpack Compose를 사용하면 앱의 UI를 훨씬 쉽게 디자인하고 빌드할 수 있습니다. Compose developer.android.com Basic of Composable functions Composable 함수는 Compose의 기본 구성 요소입니다. Composable 함수는 화면의 일부를 설명하는 Unit을 내보내는 함수입니다. 이 함수는 일부 입력을 받고 화면에 표시되는 내용을 생성합니다. Composable 함수는 여러 UI 요소를 내보낼 수 있습니다. 그러나 요소들이 어..
Singleton "싱글톤 패턴"은 클래스가 하나의 인스턴스만 가지고 있도록 보장하며, 그 인스턴스에 대한 전역 접근점을 제공합니다. object SingletonExample { fun doSomething() { println("Singleton : Doing something") } } // Usage SingletonExample.doSomething() Decorator "데코레이터 패턴"은 동일한 클래스에서 다른 객체의 동작을 동적으로 추가할 수 있게 해줍니다. 이 때 다른 객체들의 동작에 영향을 주지 않고 개별 객체에 동작을 추가할 수 있습니다. interface ChrismasTree { fun decorate() : String } class PineChrismasTree : Chrism..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWM6RQ/btsrdhtOBjK/jDTDKp0e0NLrlzCHNMhbHk/img.jpg)
Mastering Flow: Seamless Asynchronous Programming in Kotlin As software development continues to evolve, the need for efficient and elegant solutions to handle asynchronous operations becomes… medium.com 소프트웨어 개발이 계속 발전함에 따라 비동기 작업을 처리하는 효율적이고 우아한 솔루션이 점점 더 중요해지고 있습니다. Kotlin의 세계에서 하나의 특별한 솔루션은 Flow API입니다. Flow는 비동기 작업에 새로운 패러다임을 제공하여 개발자들에게 데이터 스트림을 다루는 간결하고 직관적인 방법을 제공합니다. 이 포괄적인 탐구에서 우리는 Kot..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LnE8d/btsq8KiM305/WMCa7v0b3W2drrvTXxF2Qk/img.png)
CompositionLocal을 사용한 로컬 범위 지정 데이터 | Jetpack Compose | Android Developers CompositionLocal을 사용한 로컬 범위 지정 데이터 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. CompositionLocal은 암시적으로 컴포지션을 통해 데이터를 전달하 developer.android.com Introducing CompositionLocal 보통 Compose에서는 데이터가 매개변수로 각 컴포저블 함수에 따라 UI 트리를 통해 아래로 흐릅니다. 이렇게 하면 컴포저블의 종속성이 명시적으로 드러납니다. 그러나 색상이나 글꼴 스타일과 같이 매우 자주 널리 사용되는 데이터의 경우에는 번거로울 수 있습니다. 다음 예시..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oMOnx/btsqZuozh7V/RGNrlLi3FfS5phGbsMwVMK/img.png)
Compose의 시맨틱 | Jetpack Compose | Android Developers Compose의 시맨틱 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 컴포지션은 앱의 UI를 설명하고 컴포저블을 실행하여 생성됩니다. 컴포지션은 UI를 설명하는 developer.android.com 만약 당신의 앱이 Compose foundation 및 material 라이브러리에서 제공하는 composables 및 modifiers로 구성되어 있다면, Semantics 트리는 자동으로 생성되어 채워집니다. 그러나 사용자 정의 저수준 composables를 추가하는 경우에는 수동으로 해당 semantics를 제공해야 할 수 있습니다. 화면의 요소의 의미를 정확하게 또는 완전히 나..
Compose 성능 | Jetpack Compose | Android Developers Compose 성능 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Jetpack Compose의 목표는 처음부터 우수한 성능을 제공하는 것입니다. 이 페이지에서는 최고의 성능 developer.android.com Properly configure your app 만약 앱의 성능이 좋지 않다면, 설정 문제일 수 있습니다. 첫 번째로 확인해야 할 구성 옵션은 다음과 같습니다. Build in release mode and uose R8 성능 문제가 있을 경우 앱을 릴리스 모드로 실행해 보는 것이 좋습니다. 디버그 모드는 많은 문제를 발견하는 데 유용하지만, 성능에 상당한 비용을 부과하며..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bK52fT/btsqRg3Ysu7/8MdTaSbKuok5KyIfsOU3nk/img.jpg)
Jetpack Compose 아키텍처 레이어링 | Android Developers Jetpack Compose 아키텍처 레이어링 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 Jetpack Compose를 구성하는 아키텍처 레이어와 관련 디자인에 developer.android.com Layers 각 레이어는 낮은 수준에서부터 쌓여져 높은 수준의 구성 요소를 만들기 위한 기능을 조합합니다. 각 레이어는 하위 레이어의 공개 API를 기반으로 구축되며 모듈 간 경계를 확인하고 필요한 경우 어떤 레이어든 교체할 수 있도록 합니다. 이제 아래에서 위로 이러한 레이어들을 살펴보겠습니다. Runtime (런타임) : 이 모듈은 remember, mutableStat..