Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20230601] 안드로이드 사전 과제 - 김경민 #50

Open
honor-sky opened this issue Jun 1, 2023 · 0 comments
Open

[20230601] 안드로이드 사전 과제 - 김경민 #50

honor-sky opened this issue Jun 1, 2023 · 0 comments

Comments

@honor-sky
Copy link

honor-sky commented Jun 1, 2023

1. UI 구현 방식에 있어 XML과 Jetpack Compose의 가장 구별되는 차이점은 무엇인가요?

답변을 입력해주세요.

사용언어와 구현 방식

XML 방식은 XML이라는 언어를 사용해 명령형 방식으로 UI를 구현합니다. 뷰의 상태 변화에 필요한 일련의 처리를 한줄 한줄 코드로 작성해 명령해줘야 합니다.

반면에 JetPack Compose는 새로운 언어의 사용 없이 kotlin언어를 그대로 사용할 수 있고 선언형 UI 구현방식입니다. 뷰를 함수처럼 사용하고 있고 보여주고자 하는 속성들을 함수 안에 선언해 놓고, 뷰의 변화가 필요하면 일련의 코드 명령 대신 이 함수를 사용하면 됩니다.

[추가 참고자료]
https://jaeryo2357.tistory.com/106

2. 아래 영상을 시청하고 Material3의 업데이트와 Jetpack Compose와 관련된 주요 내용을 정리하며 학습해주세요.

답변을 입력해주세요.

componant 안정적인 사용과 추가된 기능

  • 새로 업데이트 된 Material3 를 사용하면 componant에 변경사항이 있을 때도 안정적으로 componant들을 사용할 수 있다.
  • bottomsheet : bottomsheet 외부와 상호작용할 수 있고, 둥근코너/sheet을 끌어올리는 위치를 선택적으로 지정할 수 있다.
  • Date Picker : 날짜를 선택하거나 선택 범위를 지정하는 등의 기능� 업데이트를 통해 사용자가 날짜를 더욱 쉽고 편리하게 선택할 수 있도록 한 것 같다.

M2 -> M3 Migration

  • Material3를 사용하고자 한다면 장기적으로 Material2와 동시에 사용해서는 안 된다. UI/UX 스타일이나 compose 구현방식이 다르기 때문이다.
  • 큰 프로젝트의 경우 화면, 모듈 하나씩 점진적으로 M3로 버전업 해야 한다.
  • 디자인팀도 전체적으로 M3를 사용해야 의미가 있다.
  • 더 다양한 색상을 지원하고 타이포그래피의 매개변수 이름 또한 변경되었다. (color platte를 커스텀 할때 사용하는 것 같다.)
  • material3를 적용하게 되면 버튼/플로팅 버튼 등의 모양에 변화가 생기고, 스위치 또한 thumIcon을 설정할 수 있도록 추가 되었다. -> compose 구현에서는 thumcontent 속성을 정의해주면 되는 것으로 보인다.
  • 그 외에도 appbar, navigation componant, bottomsheet 등에서 다양한 디자인과 기능을 사용할 수 있도록 제공한다.

Jetpack Compse 에서 Material3를 적용

  • 사용자 정의 @composable 함수를 만들고 그 안에 dark/light 여부와 color를 정의한다.
  • MaterialTheme를 만들어서 미리 정의해둔 color platte를 넘겨주면 된다.

접근성

  • 모든 material3 componant, 색상, 타이포그래피에 접근이 가능하다

[추가 참고자료]
https://jizard.tistory.com/286
https://developer.android.com/jetpack/compose/themes/material2-material3?hl=ko

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant