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] 안드로이드 사전 과제 - 김미리 #54

Open
12121s opened this issue Jun 1, 2023 · 0 comments
Open

[20230601] 안드로이드 사전 과제 - 김미리 #54

12121s opened this issue Jun 1, 2023 · 0 comments

Comments

@12121s
Copy link

12121s commented Jun 1, 2023

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

  • xml
    Android에서 View는 모든 화면을 구성하는 기본 구성요소이며 View 기반의 UI를 구현하기 위해서는 xml을 사용해야 한다. 데이터가 변경되면 UI를 업데이트 해야하고, 이를 위해 View를 조회하고 속성을 설정하는 과정을 거쳐야 한다. 앱의 상태가 바뀌는 시점(데이터 베이스나 네트워크 호출이 되거나 사용자와의 상호작용이 끝나는 시점)에 새로운 정보로 UI를 업데이트하여 UI와 데이터를 동기화 해야 한다. 그래서 모델과 UI를 동기화하는 시점에 많은 버그가 발생할 수 있다.

  • compose
    Compose는 Android의 최신 네이티브 UI 툴킷으로, 선언형 UI 프로그래밍을 가능하게 한다. UI와 데이터를 동기화할 때의 문제를 개선하기 위해 Compose는 앱의 상태 자체를 UI로 변환한다. 개념적으로 특정 상태에 맞춰 UI를 새로 생성하는 것과 같다.

  • 차이점
    즉, �xml로 UI를 구현하는 방식은 “특정 상태에 따라 UI가 어떻게 보여질지에 대해 구현”하는 방식이고, Jetpack Compose는 "특정 상태에 따라 UI가 무엇을 보여주면 되는지에 대해 선언"하는 방식이라는 점에서 차이가 있다.

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

Material 3(M3)는 Material You의 디자인 지침을 구현하여 강력하고 유연한 디자인의 앱을 만들 수 있다. Jetpack Compose의 기본 디자인 시스템으로 Material 3를 사용할 수 있으며 1.1 릴리즈에서는 안드로이드 앱을 빌드하는데 필요한 모든 구성 요소의 접근을 지원한다.

  • 1.1 릴리즈 변경 사항
  1. 화면을 구성하는 주요 디자인 구성 요소(surf scaffolds, surfaced, navigation drawer) 안정화
  2. 프로덕션 용 앱에 바로 적용할수 있는 디자인 구성 요소(bottom sheet, time and date picker, search bar) 제공

표준 하단 시트(standard bottom sheet) : bottom sheet scaffold와 함께 사용, 메인 UI 영역과 공존 가능, 두 영역과 동시 상호작용 가능
모달 하단 시트(modal bottom sheet) : 독립형 구성 요소로 사용, 대화 상자와 같이 명확한 구분 UI, 시트 외부 영역에서 상호작용 하여dismiss 가능

  1. 새로운 시간/날짜 선택기, 날짜 범위 선택기 도입을 통한 선택지 유연화
  2. 4가지 유형의 Appbar 제공(스크롤을 통해 숨기기/표시 가능)
  3. motion, animation을 통한 대화형 사용자 경험 제공
  4. M2 -> M3 원샷 마이그레이션 지원
  5. 추가 Material Theme 제공(Android 12 이상에서 동적 테마 기능 제공)
  • M2 -> M3 마이그레이션시 변경 사항
  1. 기존 버튼에 추가로 대형 플로팅 버튼, elevated 버튼 추가
  2. Switch 상태에 따른 콘텐츠 설정 가능
  3. 다양한 Appbar 옵션 제공
@12121s 12121s changed the title [230601] 안드로이드 사전 과제 - 김미리 [20230601] 안드로이드 사전 과제 - 김미리 Jun 1, 2023
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