Jetpack Compose theming – 나만의 테마 정의하기

머티리얼 테마 Jetpack Compose에서 테마를 구현하기 위한 핵심 요소는 MaterialTheme 컴포저블 함수다. 이 컴포저블을 컴포즈 계층에 배치하면 그 안의 모든 컴포넌트에 대한 색상, 유형 및 모양에 대한 커스터마이징을 할 수 있다. 이 컴포저블이 라이브러리에서 정의되는 방법은 다음과 같다. 나중에 색상, 타이포그래피 및 모양 속성을 노출하는 MaterialTheme 객체를 사용하여, 이 컴포저블에 전달된 매개변수를 개선할 더보기…

Jetpack Compose theming – 머티리얼 테마 적용하기

Jetpack Compose는 디지털 인터페이스를 만들기 위한 종합적인 디자인 시스템인 Material Design 의 구현을 제공한다. 머티리얼 디자인 컴포넌트 (Button, Card, Switch 등)는 머티리얼 테마를 기반으로 구축되며 이는 머티리얼 디자인을 커스터마이즈 하여 제품 브랜드를 더 잘 반영 하는 체계적인 방법이다. 머티리얼 테마는 색상 , 타이포그래피 및 모양 속성으로 구성된다. 이를 커스터마이즈하면 앱을 빌드하는 데 사용하는 컴포넌트들에 자동으로 반영된다. Material Theming을 이해하면 Jetpack Compose 앱의 테마를 지정하는 방법을 이해하는 데 도움이 되고, 그래서 개념에 더보기…

Jetpack Compose theming – 설정하기

이 단계에서는 스타일링 할 간단한 뉴스 리더 앱으로 구성된 코드를 다운로드한다. 필요한 것 Android Studio Arctic Fox 코드 다운로드 git이 설치되어 있으면 아래 명령을 실행하면 된다. git이 설치되어 있는지 확인하려면 터미널 또는 명령줄에 git –version 입력하고 올바르게 실행되는지 확인한다. git이 없는 경우 다음 버튼을 클릭하여 이 코드랩의 모든 코드를 다운로드할 수 더보기…

Jetpack Compose theming – 소개

1. 소개 이 코드랩에서는 Jetpack Compose 의 테마 API를 사용하여 애플리케이션의 스타일을 지정 하는 방법을 배운다. 밝고 어두운 테마와 같은 여러 테마를 지원하여 애플리케이션 전체에서 일관되게 사용되도록 색상, 모양 및 타이포그래피를 사용자 지정하는 방법을 살펴보자. 무엇을 배울 것인가 이 코드랩에서는 다음의 내용을 배운다. 머티리얼 디자인 입문 및 브랜드에 맞게 커스터마이징 하는 법 컴포즈가 머티리얼 더보기…

Using state in Jetpack Compose – 화면 섹션을 전달하기 위해 slot 사용하기

복잡한 UI를 표시하는 stateless 컴포저블에는 많은 매개변수가 포함될 수 있다. 매개변수가 많지 않고, 매개변수가 직접적으로 컴포저블을 설정하는 경우, 이건 괜찮다. 그러나 때로는 하위 컴포저블을 설정하기 위해 매개변수를 전달해야 한다. 우리의 네오-모던 인터렉티브 디자인에서는 디자이너가 Add 버튼을 상단에 유지하고, 인라인 에디터에는 두개의 이모지 버튼으로 교체하기를 원한다. 이 경우를 처리하기 위해 TodoItemInput에 더보기…

Using state in Jetpack Compose – Stateless 컴포저블 재사용하기

드디어 네오-모던 인터랙티브 디자인을 구현할 준비가 되었다! 참고로, 우리가 구축하려고 하는 것은 다음과 같다. TodoScreen에 state 및 event 전달하기 TodoViewModel에서 이 화면에 필요한 모든 state와 event 정의를 끝냈다. 이제 TodoScreen을 업데이트하여 화면을 표시하는 데 필요한 state와 event를 가져온다. TodoScreen.kt를 열고 TodoScreen의 메서드 시그니쳐를 변경하여 추가하자. 현재 편집 중인 항목: currentEditing: 더보기…

Using state in Jetpack Compose – ViewModel 내 state 테스트하기

애플리케이션 로직이 올바른지 확인하기 위해 ViewModel을 테스트하는 것은 좋은 생각이다. 이 섹션에서는 상태에 대해 State<T>를 사용하여 ViewModel을 테스트 하는 방법을 보여주는 테스트 코드를 작성할 것이다. TodoViewModelTest에 테스트 추가하기 이 테스트는 이벤트에 의해 직접 수정되는 State<T>를 테스트하는 방법을 보여준다. 이전 섹션에서 새 ViewModel을 만든 다음 todoItems에 두 개의 항목을 추가한다. 우리가 더보기…

Using state in Jetpack Compose – ViewModel에서 state 사용하기

우리 디자이너의 네오 모던 인터랙티브 모의를 리뷰중, 현재 편집하는 아이템을 나타내는 몇가지 상태 추가가 필요해졌다. 이제 이 에디터의 상태를 추가할 위치를 결정해야 한다. 아이템 나타내거나 편집을 처리하는 또 다른 stateful 컴포저블인 “TodoRowOrInlineEditor”를 만들 수 있지만, 한 번에 하나의 에디터만 표시하려고 한다. 디자인을 자세히 보면 편집 모드에서도 상단 섹션이 변경되고 있다. 더보기…

Using state in Jetpack Compose – Stateless 컴포저블 추출하기

디자이너가 오늘 새로운 디자인 트렌드 상에 있다. 단정하지 못한 UI와 포스트 머테리얼은 사라졌다. 이번주 디자인은 디자인 트레드인 “네오 모던 인터렉티브”를 따르는 것이다. 디자이너에게 그게 뭐냐고 물었고 대답은 이모지가 포함하여 약간 혼란스러웠다. 하지만 어쨌든, 여기에 목업 디자인이 있다. Tip: 네오 모던 인터렉티브는 아마도 디자인 트렌드일 것이다. 디자이너는 새로운 디자인은 저장 및 완료 더보기…

Using state in Jetpack Compose – 상태 기반의 동적인 UI

지난 섹션에서 컴포저블에 state를 추가하는 방법과 컴포저블이 사용하는 state를 stateless로 만들기 위해 state hoisting을 하는 방법에 대해서 배웠다. 이제 state기반의 동적인 UI를 만들는 방법을 알아보자. 디자이너의 목업 디자인으로 다시 보면, 텍스트가 공백이 아닐 때마다 icon행을 보여줘야 한다. 상태로부터 iconVisible 얻기 TodoScreen.kt 을 열고 새로운 state 변수를 생성하여 현재 선택된 icon을 더보기…