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

[20230604] 안드로이드 사전 과제 - 송규빈 #65

Open
SongGyul opened this issue Jun 4, 2023 · 0 comments
Open

[20230604] 안드로이드 사전 과제 - 송규빈 #65

SongGyul opened this issue Jun 4, 2023 · 0 comments

Comments

@SongGyul
Copy link

SongGyul commented Jun 4, 2023

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

코드 감소

‘동일한 버튼 클래스’의 경우 코드의 규모가 약 10배 더 작았을 정도로 코드 양 자체가 줄어든다.

  • 테스트와 디버그 작업, 버그 발생 가능성이 줄어든다.
  • 기존 개발자 및 새로운 개발자가 읽기 쉬워지고 유지보수할 코드도 적어진다.

직관적

Compose는 선언적 API를 사용한다.

  • Compose가 나머지 요소들을 처리하므로 개발자는 UI를 설명하기만 하면 된다.
  • API는 직관적이므로 찾아서 사용하기 쉽다.
  • Compose는 특정 Activity나 Fragment에 종속되지 않은 Stateless 구성요소를 빌드하므로 재사용하고 테스트가 쉽다.
  • XML은 태그와 속성의 조합으로 UI를 작성하여 레이아웃의 복잡성이 증가할수록 유지보수가 어려웠지만, Compose는 Kotlin기반으로 함수를 사용하여 UI를 작성하므로 직관적이고 간결하다.

빠른 개발

Compose는 기존의 모든 코드와 호환된다. View <-> Compose

  • Compose에서 Views를, Views에서 Compose 코드를 호출할 수 있다.
  • Navigation, ViewModel, 코루틴과 같은 대부분의 일반적인 라이브러리는 Compose와 함께 작동하므로 언제 어디서든 원하는 대로 채택할 수 있다.
  • Light 모드 Dark 모드도 손쉽게 지원가능하다.
  • 실시간 미리보기를 통해 코드를 더 빠르게 반복하며 작성하여 시간을 줄일 수 있다.

강력한 성능

Compose는 Android 플랫폼 API에 직접 액세스하고 머티리얼 디자인, 어두운 테마, 애니메이션 등을 기본적으로 지원한다.

  • Compose는 애니메이션을 쉽고 빠르게 사용할 수 있다.
  • 원하는 디자인을 유연하게 구현할 수 있다.

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

  • Google I/O 2023 Build modern Android apps with Material You for Compose

  • Surf scaffold, surface, Navigation Drawer 등의 컴포넌트들이 안정화 되었으므로 구현에만 집중하면 된다.

  • Modal bottom sheet, DataPicker, TimePicker 등 신규로 추가된 컴포넌트들이 있고 기존 요소들을 많이 개선했다.

  • 모든 컴포넌트들은 고유한 상호 작용 및 상태를 제공하여 앱을 더욱 표현력 있게 접근할 수 있게 한다.

  • 머티리얼 3 API가 안정화된 상태가 되었기 때문에 앱을 머티리얼3으로 이전을 시작하기 좋은 시기 이다.

  • M2 -> M3 마이그레이션 하는 방법은 One Shot Migration과 점진적으로 Phased Migration 할 수 있다.

  • 안드로이드12 이상부터 동적 테마를 사용할 수 있음

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