jetpack jetpack Compose를 사용하는 Android 맞춤 대화상자 이 대화 상자를 만드는 동안 사용된 구성 — 버전 작성: 1.1.0-alpha06 코틀린 버전: 1.5.31 안드로이드 스튜디오 : 안드로이드 스튜디오 범블비 | 2021.1.1 패치 3 이 튜토리얼의 최종 출력 스크린샷은 아래 이미지와 같습니다. 이 사용자 지정 대화 상자를 빌드하는 동안 일부 재료 아이콘을 사용할 예정이므로 앱 수준 build.gradle 파일에 종속성을 아래에 배치해야 ... dialogandroidjetpackcompose LazyColumn을 사용한 시차 스크롤 Jetpack Compose를 사용하면 이 효과를 상당히 쉽게 구현할 수 있습니다. 이 예에서는 텍스트 항목이 있는 목록 위에 이미지가 있습니다. 이는 이미지 뒤에 LazyColumn이 있음을 의미할 수 있지만 API LazyColumn을 볼 때 항목 메서드를 호출하고 항목을 생성할 데이터가 포함된 목록을 제공할 수 없습니다. LazyColumn 범위에서 여러 항목 및 항목 메서드를 호출할 ... androidjetpackkotlincompose LiveData를 StateFlow로 마이그레이션하지 않는 3가지 이유 주기적으로 서버에서 최신 데이터를 가져오거나 Room을 사용할 때 쿼리 결과의 실시간 업데이트를 받는 것과 같이 흐름을 사용하는 유효한 사용 사례가 있습니다. 이것은 작동하지만 제 생각에는 특별한 이유없이 추가 코드 줄을 추가했습니다. 흐름 없이 StateFlow 또는 SharedFlow를 생성할 수도 있습니다. 하지만 다시 말하지만, 여러 값을 순차적으로 내보내지 않는 경우 코드를 더 추가... androidkotlinjetpackcoroutines 새로운 Android 개발자는 Compose 또는 XML을 배워야 합니까? 새로운 개발자에게 Compose를 가르쳐야 할까요 아니면 XML을 가르쳐야 할까요? 제 생각에는 야심 찬 Android 개발자는 Compose를 배우기 시작해야 합니다. 1년 동안 백엔드 엔지니어로 일하다가 안드로이드 개발로 돌아오면 Compose로 복잡한 UI를 만들 수 있을지 궁금합니다. 개념 증명으로 실제 앱의 일반적인 요구 사항(계층화된 UI, 사용자 지정 동작, 여러 UI 섹션 등)... androidkotlinjetpackcomposejetpack [Android] viewLifeCycleOwner 프래그먼트에서 LiveData를 위해서 관찰자를 두거나, Flow를 위해 lifecycleScope가 필요할 때 viewLifeCycleOwner가 심심찮게 보이곤 합니다. 위 코드에서 viewLifecycleOwner를 지우고 실행시켜도 물론 잘 돌아갑니다. 그렇지만 왜 사용하는 것일까요? 1. 프래그먼트의 생명 주기 이 글을 읽는 모든 분들이 잘 아시겠지만, 프래그먼트의 생명주기는 onA... jetpackkotlin안드로이드android코틀린android Jetpack Paging3 - 1. 기본개념 알아보기 Paging은 데이터를 로딩할 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 Chunk(덩어리) 단위로 나눠 가져오는 것을 의미합니다. 위처럼 Jetpack 에서 제공하는 Paging3 라이브러리는 데이터를 작은 Chunk 단위로 로드하여 표시할 수 있도록 제공합니다. 따라서, 데이터 전체가 아닌 일부를 요청에 따라 Request하게 되면 통신에 사용되는 네트워크 대역폭 뿐만 아니라... jetpackPaging3Paging3 Jetpack Paging3 - 3. PagingData 구성하기 지금부터는 Repository Layer에서 구현된 PagingSource 객체를 통해 반응형 Stream을 구성하기 위해 사용할 방법을 결정합니다. 이 방법은 Paging을 사용하지 않고 Network 통신에 따른 전체 데이터를 가져오는 방식입니다. 효과적으로 Paging을 사용하기 위해 Flow<RepoSearchResult>를 Flow<PagingData<Repo>>형태로 변경하게 됩니... jetpackPaging3Paging3 Jetpack Paging3 - 2. DataSource 정의하기 DataSource를 정의하기 위해 구현하는 PagingSource 클래스와 사용되는 메서드에 대해 알아봅니다. 데이터를 가져오는 위치 여기서 Key는 데이터를 로드하는데 사용되는 식별자 유형을 정의하며 Value는 데이터 자체의 유형입니다. 추가로 데이터를 가져오기 위한 API 인터페이스를 생성자로 제공하게 됩니다. load() 함수는 실제 데이터를 가져오는 로직을 구현하는 함수입니다. 간... jetpackPaging3Paging3 [안드로이드] Jetpack Compose 찍먹 해보기 - 2편: 텍스트 출력 일단 아래 코드처럼 Hello와 World를 출력해봅시다. 에뮬레이터를 실행하여 결과를 보면 다음과 같이 두 글자가 겹쳐져 있는 것을 보실 수 있습니다. 이 합쳐진 문자열들을 세로, 혹은 가로로 분리하기 위해서는 Row, Column을 사용해야 합니다. 아래 코드와 같이 말이죠. 결과를 실행해보면 두 문자열이 가로로 배치된 것을 보실 수 있습니다. 만약 Row 대신 Column을 사용한다면 ... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 3편: 이미지 카드를 사용해보자 안녕하세요. 이번 포스팅에서는 다음 사진처럼 이미지 카드를 활용하여 이쁜 사진을 추가해볼겁니다. 어떤 이미지 카드를 넣을 것인지 정의할 수 있게 이미지 카드 composable 함수를 지정해 줄 것입니다. 파라미터로는 이미지 파일을 가르키는 painter, 사진의 설명을 나타내는 contentDescription, 사진 제목을 나타내는 title, 이미지 카드의 사이즈를 설정하기 위한 mod... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 4편: 텍스트를 꾸며보자 안녕하세요 이번에는 위 사진 처럼 텍스트 스타일링을 해볼거에요! 에 들어가셔서 원하시는 폰트를 다운받아주세요! 그 다음, res 폴더에 font 리소스 폴더를 만들고 다운 받은 font family를 넣어주세요. 붙여 넣으실때 네이밍 컨벤션을 준수하셔야 합니다. (소문자, - 대신 _ 사용) 다음, onCreate안에 다음과 같이 폰트를 정의해줍니다. 일단, 텍스트를 채워넣을 검은 배경의 B... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 5편: 아이템 리스트 간단하게 구현하기 안녕하세요. 이번 포스팅은 Compose로 어떻게 리스트를 구성하는지 같이 알아보는 시간을 가져보겠습니다. for loop를 이용하여 리스트를 반복적으로 생산하여 리스트를 구성해보겠습니다. 스크롤 상태 저장 변수인scrollState을 선언해주고, verticalScroll 속성을 이용해줍니다. 실행 결과 이런 식으로 스크롤이 가능한 리스트 뷰가 만들어졌습니다. 그러나 위 코드에서 for-l... compose코틀린jetpack안드로이드compose 02 작곡 - 개요 데이터를 가져오고 UI 요소를 내보내는 구성 가능한 함수 세트를 정의하여 사용자 인터페이스를 빌드할 수 있습니다. 모든 구성 가능한 기능에는 @Composable이 있어야 합니다. 구성 가능한 함수는 앱 로직이 UI를 설명할 수 있도록 하는 매개변수를 허용할 수 있습니다. 구성 가능한 함수는 다른 구성 가능한 함수를 호출하여 UI 계층 구조를 내보냅니다. 이 함수는 아무 것도 반환하지 않습니... androidcomposejetpackkotlin
jetpack Compose를 사용하는 Android 맞춤 대화상자 이 대화 상자를 만드는 동안 사용된 구성 — 버전 작성: 1.1.0-alpha06 코틀린 버전: 1.5.31 안드로이드 스튜디오 : 안드로이드 스튜디오 범블비 | 2021.1.1 패치 3 이 튜토리얼의 최종 출력 스크린샷은 아래 이미지와 같습니다. 이 사용자 지정 대화 상자를 빌드하는 동안 일부 재료 아이콘을 사용할 예정이므로 앱 수준 build.gradle 파일에 종속성을 아래에 배치해야 ... dialogandroidjetpackcompose LazyColumn을 사용한 시차 스크롤 Jetpack Compose를 사용하면 이 효과를 상당히 쉽게 구현할 수 있습니다. 이 예에서는 텍스트 항목이 있는 목록 위에 이미지가 있습니다. 이는 이미지 뒤에 LazyColumn이 있음을 의미할 수 있지만 API LazyColumn을 볼 때 항목 메서드를 호출하고 항목을 생성할 데이터가 포함된 목록을 제공할 수 없습니다. LazyColumn 범위에서 여러 항목 및 항목 메서드를 호출할 ... androidjetpackkotlincompose LiveData를 StateFlow로 마이그레이션하지 않는 3가지 이유 주기적으로 서버에서 최신 데이터를 가져오거나 Room을 사용할 때 쿼리 결과의 실시간 업데이트를 받는 것과 같이 흐름을 사용하는 유효한 사용 사례가 있습니다. 이것은 작동하지만 제 생각에는 특별한 이유없이 추가 코드 줄을 추가했습니다. 흐름 없이 StateFlow 또는 SharedFlow를 생성할 수도 있습니다. 하지만 다시 말하지만, 여러 값을 순차적으로 내보내지 않는 경우 코드를 더 추가... androidkotlinjetpackcoroutines 새로운 Android 개발자는 Compose 또는 XML을 배워야 합니까? 새로운 개발자에게 Compose를 가르쳐야 할까요 아니면 XML을 가르쳐야 할까요? 제 생각에는 야심 찬 Android 개발자는 Compose를 배우기 시작해야 합니다. 1년 동안 백엔드 엔지니어로 일하다가 안드로이드 개발로 돌아오면 Compose로 복잡한 UI를 만들 수 있을지 궁금합니다. 개념 증명으로 실제 앱의 일반적인 요구 사항(계층화된 UI, 사용자 지정 동작, 여러 UI 섹션 등)... androidkotlinjetpackcomposejetpack [Android] viewLifeCycleOwner 프래그먼트에서 LiveData를 위해서 관찰자를 두거나, Flow를 위해 lifecycleScope가 필요할 때 viewLifeCycleOwner가 심심찮게 보이곤 합니다. 위 코드에서 viewLifecycleOwner를 지우고 실행시켜도 물론 잘 돌아갑니다. 그렇지만 왜 사용하는 것일까요? 1. 프래그먼트의 생명 주기 이 글을 읽는 모든 분들이 잘 아시겠지만, 프래그먼트의 생명주기는 onA... jetpackkotlin안드로이드android코틀린android Jetpack Paging3 - 1. 기본개념 알아보기 Paging은 데이터를 로딩할 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 Chunk(덩어리) 단위로 나눠 가져오는 것을 의미합니다. 위처럼 Jetpack 에서 제공하는 Paging3 라이브러리는 데이터를 작은 Chunk 단위로 로드하여 표시할 수 있도록 제공합니다. 따라서, 데이터 전체가 아닌 일부를 요청에 따라 Request하게 되면 통신에 사용되는 네트워크 대역폭 뿐만 아니라... jetpackPaging3Paging3 Jetpack Paging3 - 3. PagingData 구성하기 지금부터는 Repository Layer에서 구현된 PagingSource 객체를 통해 반응형 Stream을 구성하기 위해 사용할 방법을 결정합니다. 이 방법은 Paging을 사용하지 않고 Network 통신에 따른 전체 데이터를 가져오는 방식입니다. 효과적으로 Paging을 사용하기 위해 Flow<RepoSearchResult>를 Flow<PagingData<Repo>>형태로 변경하게 됩니... jetpackPaging3Paging3 Jetpack Paging3 - 2. DataSource 정의하기 DataSource를 정의하기 위해 구현하는 PagingSource 클래스와 사용되는 메서드에 대해 알아봅니다. 데이터를 가져오는 위치 여기서 Key는 데이터를 로드하는데 사용되는 식별자 유형을 정의하며 Value는 데이터 자체의 유형입니다. 추가로 데이터를 가져오기 위한 API 인터페이스를 생성자로 제공하게 됩니다. load() 함수는 실제 데이터를 가져오는 로직을 구현하는 함수입니다. 간... jetpackPaging3Paging3 [안드로이드] Jetpack Compose 찍먹 해보기 - 2편: 텍스트 출력 일단 아래 코드처럼 Hello와 World를 출력해봅시다. 에뮬레이터를 실행하여 결과를 보면 다음과 같이 두 글자가 겹쳐져 있는 것을 보실 수 있습니다. 이 합쳐진 문자열들을 세로, 혹은 가로로 분리하기 위해서는 Row, Column을 사용해야 합니다. 아래 코드와 같이 말이죠. 결과를 실행해보면 두 문자열이 가로로 배치된 것을 보실 수 있습니다. 만약 Row 대신 Column을 사용한다면 ... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 3편: 이미지 카드를 사용해보자 안녕하세요. 이번 포스팅에서는 다음 사진처럼 이미지 카드를 활용하여 이쁜 사진을 추가해볼겁니다. 어떤 이미지 카드를 넣을 것인지 정의할 수 있게 이미지 카드 composable 함수를 지정해 줄 것입니다. 파라미터로는 이미지 파일을 가르키는 painter, 사진의 설명을 나타내는 contentDescription, 사진 제목을 나타내는 title, 이미지 카드의 사이즈를 설정하기 위한 mod... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 4편: 텍스트를 꾸며보자 안녕하세요 이번에는 위 사진 처럼 텍스트 스타일링을 해볼거에요! 에 들어가셔서 원하시는 폰트를 다운받아주세요! 그 다음, res 폴더에 font 리소스 폴더를 만들고 다운 받은 font family를 넣어주세요. 붙여 넣으실때 네이밍 컨벤션을 준수하셔야 합니다. (소문자, - 대신 _ 사용) 다음, onCreate안에 다음과 같이 폰트를 정의해줍니다. 일단, 텍스트를 채워넣을 검은 배경의 B... compose코틀린jetpack안드로이드compose [안드로이드] Jetpack Compose 찍먹 해보기 - 5편: 아이템 리스트 간단하게 구현하기 안녕하세요. 이번 포스팅은 Compose로 어떻게 리스트를 구성하는지 같이 알아보는 시간을 가져보겠습니다. for loop를 이용하여 리스트를 반복적으로 생산하여 리스트를 구성해보겠습니다. 스크롤 상태 저장 변수인scrollState을 선언해주고, verticalScroll 속성을 이용해줍니다. 실행 결과 이런 식으로 스크롤이 가능한 리스트 뷰가 만들어졌습니다. 그러나 위 코드에서 for-l... compose코틀린jetpack안드로이드compose 02 작곡 - 개요 데이터를 가져오고 UI 요소를 내보내는 구성 가능한 함수 세트를 정의하여 사용자 인터페이스를 빌드할 수 있습니다. 모든 구성 가능한 기능에는 @Composable이 있어야 합니다. 구성 가능한 함수는 앱 로직이 UI를 설명할 수 있도록 하는 매개변수를 허용할 수 있습니다. 구성 가능한 함수는 다른 구성 가능한 함수를 호출하여 UI 계층 구조를 내보냅니다. 이 함수는 아무 것도 반환하지 않습니... androidcomposejetpackkotlin