목록안드로이드 (32)
SW 공부노트

Photo Picker Android 13에서 새롭게 공개된 Photo Picker는 앱에 전체 미디어 라이브러리에 대한 액세스 권한을 부여하지 않고도 사용자가 미디어 파일을 선택할 수 있는 안전한 방법을 제공합니다. 사용자가 사진 또는 비디오만 볼 수 있도록 지정할 수 있으며, 이미지 단일 및 다중 선택이 가능합니다. 이 라이브러리는 Android 11 이상의 기기에서만 지원됩니다. Photo Picker는 간단히 다음과 같은 과정을 통해 실행됩니다. registerForActivityResult(ActivityResultContract, Callback) -> ActivityResultLauncher 반환 ActivityResultLauncher.launch() 실행 Photo Picker를 구현하는..
Flow는 비동기적인 데이터 스트림이다. 따라서 코루틴의 suspend 함수와 다르게 여러 값을 순차적으로 보낼 수 있다. 예를 들어 Flow를 통해 데이터 베이스에서 실시간 업데이트를 수신할 수 있다. 데이터 스트림 생산자(Consumer): 스트림에 추가되는 데이터 생선 -> 비동기적으로 데이터 생산 (ex. Repository) 중개자(Intermediary, 선택사항): 스트림에 내보내는 각 값이나 스트림 수정 소비자(Producer): 스트림 사용 (ex. UI) Flow는 콜드 스트림이다. 즉, Flow가 collect 되기 전까지 실행되지 않는다는 것을 의미한다. 쉽게 말하면, Flow는 비동기로 동작하면서 여러 개의 값을 반환하는 함수를 만들 때 사용하는 콜드 스트림 방식의 코루틴 빌더이다..

Room DB Room은 앱을 견고하고 유지보수성이 뛰어나도록 만들어주는 라이브러리 모음인 AAC 중 하나이다. Room은 SQLite DB를 모두 사용할 수 있고, 더 쉽게 사용할 수 있도록 하는 라이브러리이다. Room 데이터베이스는 SQLite를 사용하기 위한 액세스 포인트이다. AAC의 다른 컴포넌트인 LiveData, ViewModel 등을 사용해 더 간편하게 DB를 관리하고 UI를 갱신할 수 있다. Room의 구성요소는 다음과 같다. Database: 기본 앱 데이터베이스 연결을 위한 기본 액세스 포인트 Dao(Data Access Object): 데이터베이스에 접근하는 함수를 포함한다. Model(Entity): 데이터베이스 내 테이블을 클래스로 나타낸 것이다. Gradle 설정 // Roo..

https://developer.android.com/codelabs/jetpack-compose-layouts?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fcompose%3Fhl%3Dko%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fjetpack-compose-layouts#0 Compose의 기본 레이아웃 | Android Developers 이 Codelab에서는 Compose에서 즉시 제공되는 컴포저블과 수정자를 통해 실제 디자인을 구현하는 방법을 알아봅니다. developer.android.com 본 글은 위 과정을 공부하며 작성한 글입니다. 왼쪽 ..