이 Codelab은 Android Kotlin 기초 과정의 일부입니다. Codelab을 순서대로 진행하면 이 과정의 학습 효과를 극대화할 수 있습니다. 모든 과정 Codelab은 Android Kotlin 기본사항 Codelab 방문 페이지에 나열되어 있습니다.
디자인 소개
이 Codelab 시리즈에서는 Android 개발의 가장 중요한 측면 중 하나인 앱 디자인에 중점을 둡니다. 앱 디자인의 명백한 측면은 뷰, 텍스트, 버튼, 화면에서의 위치, 사용되는 색상과 글꼴입니다. 사용자에게 다음에 할 일을 알려주는 힌트도 디자인의 필수적인 측면입니다. 사용자는 보고 있는 내용, 중요한 내용, 할 수 있는 작업을 한눈에 파악할 수 있어야 합니다.
아래 두 화면을 비교하세요. 요소를 이동하고 중요한 요소에 포커스를 두면 사용자가 상황을 이해하는 데 도움이 됩니다. 간단한 화면의 경우 좋은 디자인은 표시되는 항목이 적다는 것을 의미하는 경우가 많습니다. 중요한 정보가 많은 화면의 경우 좋은 디자인을 사용하면 밀도 높은 정보를 한눈에 이해할 수 있습니다. Android 앱을 개발할 때 정보 아키텍처 (IA)라는 개념을 접할 수 있습니다.
또 다른 수준의 설계는 사용자가 작업을 완료할 수 있는 일관된 사용자 흐름, 즉 사용 사례를 구축하는 것입니다. 이러한 형태의 디자인을 사용자 경험 디자인 (UXD)이라고 하며, 일부 디자이너는 이 분야를 전문으로 합니다.
디자이너를 이용할 수 없는 경우 시작하는 데 도움이 되는 몇 가지 도움말을 참고하세요.
- 사용 사례를 정의합니다. 사용자가 앱으로 무엇을 달성해야 하는지, 어떻게 달성해야 하는지 작성합니다.
- 디자인을 구현합니다. 첫 번째 초안에 너무 애착을 갖지 마세요. 실제 사용자가 어떻게 상호작용하는지 확인한 후 변경할 것이기 때문에 '충분히 좋은' 수준으로만 만드세요.
- 의견을 받습니다. 가족, 친구, Google 개발자 그룹에서 방금 만난 사람 등 앱 테스트를 부탁할 수 있는 사람을 찾아보세요. 내가 지켜보는 동안 앱을 사용하여 사용 사례를 실행하도록 요청하고 자세한 메모를 작성합니다.
- 다듬기 이 모든 정보를 바탕으로 앱을 개선한 다음 다시 테스트합니다.
다음은 뛰어난 앱 환경을 설계할 때 고려해야 할 몇 가지 질문입니다. 이전 Codelab에서 이러한 문제를 해결하는 기법을 배웠습니다.
- 사용자가 기기를 회전하면 앱의 상태가 손실되나요?
- 사용자가 앱을 열면 어떻게 되나요? 사용자에게 로딩 스피너가 표시되나요? 아니면 오프라인 캐시에 데이터가 준비되어 있나요?
- 앱이 효율적으로 코딩되어 있고 앱이 항상 사용자 터치에 응답하는지 확인합니다.
- 앱이 백엔드 시스템과 상호작용하여 사용자에게 이상하거나, 잘못되거나, 오래된 데이터가 표시되지 않도록 하나요?
더 많은 잠재고객을 위한 앱을 개발할 때는 최대한 많은 유형의 사용자가 앱에 액세스할 수 있도록 하는 것이 중요합니다. 예를 들면 다음과 같습니다.
- 많은 사용자가 다양한 방식으로 컴퓨터 시스템과 상호작용합니다. 많은 사용자가 색맹이며, 한 사용자에게 대비되는 색상이 다른 사용자에게는 대비되지 않을 수 있습니다. 많은 사용자가 돋보기를 필요로 하는 것부터 완전한 실명에 이르기까지 다양한 시각 장애를 겪고 있습니다.
- 일부 사용자는 터치 스크린을 사용할 수 없으며 버튼과 같은 다른 입력 기기를 통해 상호작용합니다.
좋은 디자인은 사용자가 앱을 사용하도록 유도하는 가장 중요한 방법입니다.
이 Codelab은 Android 디자인에 관한 모든 것을 알려주기에는 너무 짧지만, 올바른 방향으로 시작할 수 있으며 혼자서 계속 학습하고 개발할 수 있습니다.
기본 요건
다음을 잘 알고 있어야 합니다.
- 활동과 프래그먼트가 있는 앱을 만들고 데이터를 전달하여 프래그먼트 간에 이동하는 방법
RecyclerView
를 비롯한 사용자 인터페이스 (UI)를 배치하기 위해 뷰와 뷰 그룹 사용- 권장 아키텍처와 함께
ViewModel
를 비롯한 아키텍처 구성요소를 사용하여 잘 구조화되고 효율적인 앱을 만드는 방법 - 데이터 바인딩, 코루틴, 클릭 처리 방법
Room
데이터베이스를 사용하여 인터넷에 연결하고 데이터를 로컬로 캐시하는 방법- 뷰 속성을 설정하는 방법
- XML 리소스 파일에 리소스를 추출하고 XML 리소스 파일에서 리소스를 사용하는 방법
학습할 내용
- Android 스타일 지정 시스템의 기본사항
- 속성, 스타일, 테마를 사용하여 앱을 맞춤설정하는 방법
실습할 내용
- 뷰 속성, 스타일, 테마를 사용하여 기본 앱 디자인 개선
GDG-finder 스타터 앱은 이 과정에서 지금까지 배운 내용을 기반으로 합니다.
앱은 ConstraintLayout
를 사용하여 세 개의 화면을 배치합니다. 두 화면은 Android에서 색상과 텍스트를 탐색하는 데 사용할 레이아웃 파일입니다.
세 번째 화면은 GDG 찾기입니다. GDG(Google Developer 그룹)는 Android를 비롯한 Google 기술에 중점을 두는 개발자 커뮤니티입니다. 전 세계의 GDG는 모임, 콘퍼런스, 스터디 잼, 기타 이벤트를 주최합니다.
이 앱을 개발할 때는 실제 GDG 목록을 사용합니다. 찾기 화면에서는 기기의 위치를 사용하여 GDG를 거리순으로 정렬합니다.
운이 좋게도 거주 지역에 GDG가 있다면 웹사이트를 확인하고 이벤트에 가입할 수 있습니다. GDG 이벤트는 다른 Android 개발자를 만나고 이 과정에 포함되지 않은 업계 권장사항을 배울 수 있는 좋은 방법입니다.
아래 스크린샷은 이 Codelab의 시작부터 끝까지 앱이 어떻게 변경되는지 보여줍니다.
Android는 앱의 모든 뷰의 모양을 제어할 수 있는 다양한 스타일 지정 시스템을 제공합니다. 테마, 스타일, 뷰 속성을 사용하여 스타일 지정에 영향을 줄 수 있습니다. 아래 다이어그램은 각 스타일 지정 방법의 우선순위를 요약한 것입니다. 피라미드 다이어그램은 시스템에서 스타일 지정 메서드가 적용되는 순서를 아래에서 위로 보여줍니다. 예를 들어 테마에서 텍스트 크기를 설정한 다음 뷰 속성에서 텍스트 크기를 다르게 설정하면 뷰 속성이 테마 스타일을 재정의합니다.
뷰 속성
- 뷰 속성을 사용하여 각 뷰의 속성을 명시적으로 설정합니다. 스타일과 달리 뷰 속성은 재사용할 수 없습니다.
- 스타일이나 테마를 통해 설정할 수 있는 모든 속성을 사용할 수 있습니다.
여백, 패딩, 제약 조건과 같은 맞춤 또는 일회성 디자인에 사용합니다.
스타일
- 스타일을 사용하여 글꼴 크기나 색상과 같은 재사용 가능한 스타일 정보 모음을 만듭니다.
- 앱 전체에서 사용되는 작은 공통 디자인 세트를 선언하는 데 적합합니다.
여러 뷰에 스타일을 적용하여 기본 스타일을 재정의합니다. 예를 들어 스타일을 사용하여 일관된 스타일의 헤더나 버튼 세트를 만들 수 있습니다.
기본 스타일
- Android 시스템에서 제공하는 기본 스타일입니다.
테마
- 테마를 사용하여 전체 앱의 색상을 정의합니다.
- 테마를 사용하여 전체 앱의 기본 글꼴을 설정합니다.
- 텍스트 뷰나 라디오 버튼과 같은 모든 뷰에 적용됩니다.
- 전체 앱에 일관되게 적용할 수 있는 속성을 구성하는 데 사용합니다.
TextAppearance
fontFamily
과 같은 텍스트 속성으로만 스타일을 지정하는 경우
Android에서 뷰에 스타일을 지정할 때는 테마, 스타일, 속성의 조합을 적용하며, 이는 맞춤설정할 수 있습니다. 속성은 항상 스타일이나 테마에 지정된 내용을 덮어씁니다. 스타일은 항상 테마에 지정된 내용을 덮어씁니다.
아래 스크린샷은 밝은 테마 (왼쪽)와 어두운 테마 (오른쪽), 맞춤 글꼴과 헤더 크기가 적용된 GDG-finder 앱을 보여줍니다. 이 기능은 여러 가지 방법으로 구현할 수 있으며, 이 Codelab에서 몇 가지 방법을 알아봅니다.
이 작업에서는 속성을 사용하여 앱 레이아웃의 텍스트 헤더 스타일을 지정합니다.
- GDG-finder 시작 앱을 다운로드하여 실행합니다.
- 홈 화면에는 형식이 균일한 텍스트가 많이 표시되어 페이지의 내용과 중요한 내용을 파악하기 어렵습니다.
home_fragment.xml
레이아웃 파일을 엽니다.- 레이아웃은
ConstraintLayout
를 사용하여ScrollView
내에 요소를 배치합니다. - 이러한 속성은 뷰와 화면마다 맞춤설정되는 경향이 있으므로 각 뷰의 제약 조건과 여백 레이아웃 속성은 뷰에 설정됩니다.
title
텍스트 뷰에서textSize
속성을 추가하여 텍스트 크기를24sp
로 변경합니다.sp
은 배율 독립형 픽셀을 나타내며, 이는 픽셀 밀도와 사용자가 기기 설정에서 설정한 글꼴 크기 환경설정에 의해 모두 확장됩니다. Android는 텍스트를 그릴 때 화면에 표시될 텍스트의 크기를 파악합니다. 텍스트 크기에는 항상sp
를 사용합니다.
<TextView
android:id="@+id/title"
...
android:textSize="24sp"
title
텍스트 뷰의textColor
를 불투명 회색으로 설정합니다(aRGB 값을#FF555555
로 설정).
<TextView
android:id="@+id/title"
...
android:textColor="#FF555555"
- Android 스튜디오에서 미리보기 탭을 열려면 보기 > 도구 창 > 미리보기를 선택하거나 Layout Editor의 오른쪽 가장자리에 있는 세로 미리보기 버튼을 클릭합니다. 아래와 같이 미리보기에서 제목이 회색이고 이전보다 커졌는지 확인합니다.
- 자막의 색상이 헤더와 동일하고 글꼴이 더 작도록 스타일을 지정합니다(
18sp
). (기본 알파는FF
(불투명)입니다. 알파 값을 변경하지 않는 경우 생략할 수 있습니다.)
<TextView
android:id="@+id/subtitle"
...
android:textSize="18sp"
android:textColor="#555555"
- 이 Codelab에서는 전문적으로 보이면서도 약간 기발한 스타일로 앱을 지정하는 것을 목표로 하지만 원하는 대로 스타일을 지정할 수 있습니다.
subtitle
텍스트 뷰에 다음 속성을 사용해 보세요. 미리보기 탭을 사용하여 앱의 모양이 어떻게 변경되는지 확인합니다. 그런 다음 이러한 속성을 삭제합니다.
<TextView
android:id="@+id/subtitle"
...
android:textAllCaps="true"
android:textStyle="bold"
android:background="#ff9999"
- 계속하기 전에
subtitle
뷰에서textAllCaps
,textStyle
,background
속성을 실행취소해야 합니다. - 앱을 실행하면 이미 더 나은 모습으로 표시됩니다.
앱에서 글꼴을 사용하는 경우 필요한 글꼴 파일을 APK의 일부로 제공할 수 있습니다. 이 솔루션은 간단하지만 앱을 다운로드하고 설치하는 데 시간이 더 오래 걸리므로 일반적으로 권장되지 않습니다.
Android에서는 앱이 다운로드 가능한 글꼴 API를 사용하여 런타임에 글꼴을 다운로드할 수 있습니다. 앱이 기기의 다른 앱과 동일한 글꼴을 사용하는 경우 Android는 글꼴을 한 번만 다운로드하여 기기의 저장공간을 절약합니다.
이 작업에서는 다운로드 가능한 글꼴을 사용하여 테마를 사용하는 앱의 모든 뷰의 글꼴을 설정합니다.
1단계: 다운로드 가능한 글꼴 적용
- Design 탭에서
home_fragment.xml
을 엽니다. - Component Tree 창에서
title
텍스트 뷰를 선택합니다. - 속성 창에서
fontFamily
속성을 찾습니다. 모든 속성 섹션에서 찾거나 검색하면 됩니다. - 드롭다운 화살표를 클릭합니다.
- 글꼴 더보기 로 스크롤하여 선택합니다. 리소스 창이 열립니다.
- 리소스 창에서
lobster
또는lo
를 검색합니다. - 검색 결과에서 Lobster Two를 선택합니다.
- 오른쪽의 글꼴 이름 아래에서 다운로드 가능한 글꼴 만들기 라디오 버튼을 선택합니다. 확인을 클릭합니다.
- Android 매니페스트 파일을 엽니다.
- 매니페스트 하단에서
name
및resource
속성이"preloaded_fonts"
로 설정된 새<meta-data>
태그를 찾습니다. 이 태그는 Google Play 서비스에 이 앱이 다운로드된 글꼴을 사용하려고 함을 알립니다. 앱이 실행되고 Lobster Two 글꼴을 요청하면 글꼴 제공업체는 글꼴이 기기에 아직 없는 경우 인터넷에서 글꼴을 다운로드합니다.
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts"/>
res/values
폴더에서 이 앱의 다운로드 가능한 모든 글꼴을 나열하는 배열을 정의하는preloaded_fonts.xml
파일을 찾습니다.- 마찬가지로
res/fonts/lobster_two.xml
파일에는 글꼴에 관한 정보가 있습니다. home_fragment.xml
을 열고 코드와 미리보기에서 Lobster Two 글꼴이title
TextView
에 적용되어 제목에 적용되었음을 확인합니다.
res/values/styles.xml
를 열고 프로젝트를 위해 생성된 기본AppTheme
테마를 살펴봅니다. 현재는 아래와 같이 표시됩니다. 새 Lobster Two 글꼴을 모든 텍스트에 적용하려면 이 테마를 업데이트해야 합니다.<style>
태그에서parent
속성을 확인합니다. 모든 스타일 태그는 상위 요소를 지정하고 상위 요소의 모든 속성을 상속할 수 있습니다. 코드는 Android 라이브러리로 정의된Theme
을 지정합니다. 버튼 작동 방식부터 툴바 그리기 방식까지 모든 것을 지정하는MaterialComponents
테마 테마에는 적절한 기본값이 있으므로 원하는 부분만 맞춤설정할 수 있습니다. 앱은 작업 툴바 (NoActionBar
)가 없는 이 테마의Light
버전을 사용합니다. 위의 스크린샷을 참고하세요.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
AppTheme
스타일 내에서 글꼴 모음을lobster_two
로 설정합니다. 상위 테마에서 둘 다 사용하므로android:fontFamily
와fontFamily
를 모두 설정해야 합니다. 디자인 탭에서home_fragment.xml
를 선택하여 변경사항을 미리 볼 수 있습니다.
<style name="AppTheme"
...
<item name="android:fontFamily">@font/lobster_two</item>
<item name="fontFamily">@font/lobster_two</item>
- 앱을 다시 실행합니다. 새 글꼴이 모든 텍스트에 적용됩니다. 탐색 창을 열고 다른 화면으로 이동하면 글꼴이 적용된 것을 확인할 수 있습니다.
2단계: 제목에 테마 적용하기
home_fragment.xml
에서lobster_two
글꼴의 속성이 있는title
텍스트 뷰를 찾습니다.fontFamily
속성을 삭제하고 앱을 실행합니다. 테마에서 동일한 글꼴 모음을 설정하므로 변경사항이 없습니다.- 다른
fontFamily
속성을title
텍스트 뷰에 다시 넣습니다.app:fontFamily="serif-monospace
"
app
공간에 있는지 확인하세요.
<TextView
android:id="@+id/title"
...
app:fontFamily="serif-monospace"
- 앱을 실행하면 뷰에 로컬인 속성이 테마를 재정의하는 것을 확인할 수 있습니다.
title
텍스트 뷰에서fontFamily
속성을 삭제합니다.
테마는 기본 글꼴, 기본 색상과 같은 일반 테마를 앱에 적용하는 데 유용합니다. 속성은 특정 뷰의 스타일을 지정하고 각 화면에 특정한 경계, 패딩, 제약 조건과 같은 레이아웃 정보를 추가하는 데 유용합니다.
스타일 계층 구조 피라미드의 중간에는 스타일이 있습니다. 스타일은 선택한 뷰에 적용할 수 있는 재사용 가능한 속성 '그룹'입니다. 이 작업에서는 제목과 부제목에 스타일을 사용합니다.
1단계: 스타일 만들기
res/values/styles.xml
를 엽니다.<resources>
태그 내에서 아래와 같이<style>
태그를 사용하여 새 스타일을 정의합니다.
<style name="TextAppearance.Title" parent="TextAppearance.MaterialComponents.Headline6">
</style>
스타일 이름을 지정할 때는 스타일 이름을 시맨틱으로 생각하는 것이 중요합니다. 스타일이 영향을 미치는 속성이 아닌 스타일이 사용될 용도에 따라 스타일 이름을 선택합니다. 예를 들어 이 스타일을 LargeFontInGrey
이 아닌 Title
로 지정합니다. 이 스타일은 앱의 모든 제목에 사용됩니다. 규칙에 따라 TextAppearance
스타일은 TextAppearance.
Name
이라고 하므로 이 경우 이름은 TextAppearance.Title
입니다.
테마에 상위 요소가 있을 수 있는 것처럼 스타일에도 상위 요소가 있습니다. 하지만 이번에는 테마를 확장하는 대신 스타일이 스타일 TextAppearance.MaterialComponents.Headline6
을 확장합니다. 이 스타일은 MaterialComponents
테마의 기본 텍스트 스타일이므로 확장하면 처음부터 시작하는 대신 기본 스타일을 수정하게 됩니다.
- 새 스타일 내에서 두 항목을 정의합니다. 한 항목에서
textSize
을24sp
로 설정합니다. 다른 항목에서는textColor
을 이전에 사용한 것과 동일한 어두운 회색으로 설정합니다.
<item name="android:textSize">24sp</item>
<item name="android:textColor">#555555</item>
- 자막의 다른 스타일을 정의합니다. 파일 이름을
TextAppearance.Subtitle
로 지정합니다. TextAppearance.Title
와의 유일한 차이는 텍스트 크기이므로 이 스타일을TextAppearance.Title
의 하위 요소로 만듭니다.Subtitle
스타일 내에서 텍스트 크기를18sp
로 설정합니다. 완성된 스타일은 다음과 같습니다.
<style name="TextAppearance.Subtitle" parent="TextAppearance.Title" >
<item name="android:textSize">18sp</item>
</style>
2단계: 만든 스타일 적용하기
home_fragment.xml
에서TextAppearance
을 추가합니다.Title
스타일을title
텍스트 뷰에 적용합니다.textSize
및textColor
속성을 삭제합니다.
테마는 설정한TextAppearance
스타일을 재정의합니다. (Codelab 시작 부분의 피라미드 다이어그램은 스타일이 적용되는 순서를 보여줍니다.)textAppearance
속성을 사용하여 스타일을TextAppearance
로 적용하면Theme
에 설정된 글꼴이 여기에 설정된 글꼴을 재정의합니다.
<TextView
android:id="@+id/title"
android:textAppearance="@style/TextAppearance.Title"
- 또한
TextAppearance.Subtitle
스타일을subtitle
텍스트 뷰에 추가하고textSize
및textColor
속성을 삭제합니다. 이 스타일을textAppearance
로도 적용해야 테마에 설정된 글꼴이 여기에 설정된 글꼴을 재정의합니다.
<TextView
android:id="@+id/subtitle"
android:textAppearance="@style/TextAppearance.Subtitle"
- 앱을 실행하면 텍스트의 스타일이 일관되게 지정됩니다.
Android 스튜디오 프로젝트: GDGFinderStyles
- 뷰의 테마, 스타일, 속성을 사용하여 뷰의 모양을 변경합니다.
- 테마는 전체 앱의 스타일 지정에 영향을 미치며 색상, 글꼴, 글꼴 크기에 대한 많은 사전 설정 값이 제공됩니다.
- 속성은 속성이 설정된 뷰에 적용됩니다. 패딩, 여백, 제약 조건과 같이 하나의 뷰에만 적용되는 스타일이 있는 경우 속성을 사용합니다.
- 스타일은 여러 뷰에서 사용할 수 있는 속성 그룹입니다. 예를 들어 모든 콘텐츠 헤더, 버튼 또는 텍스트 뷰에 스타일을 적용할 수 있습니다.
- 테마와 스타일은 상위 테마 또는 스타일에서 상속됩니다. 스타일 계층 구조를 만들 수 있습니다.
- 속성 값 (뷰에 설정됨)은 스타일을 재정의합니다. 스타일은 기본 스타일을 재정의합니다. 스타일이 테마를 재정의합니다. 테마는
textAppearance
속성으로 설정된 스타일을 재정의합니다.
<style>
및<item>
태그를 사용하여styles.xml
리소스 파일에 스타일을 정의합니다.
<style name="TextAppearance.Subtitle" parent="TextAppearance.Title" >
<item name="android:textSize">18sp</item>
</style>
다운로드 가능한 글꼴을 사용하면 APK 크기를 늘리지 않고도 사용자에게 글꼴을 제공할 수 있습니다. 뷰에 다운로드 가능한 글꼴을 추가하려면 다음 단계를 따르세요.
- 디자인 탭에서 보기를 선택하고
fontFamily
속성의 드롭다운 메뉴에서 글꼴 더보기를 선택합니다. - 리소스 대화상자에서 글꼴을 찾아 다운로드 가능한 글꼴 만들기 라디오 버튼을 선택합니다.
- Android 매니페스트에 미리 로드된 글꼴의 메타데이터 태그가 포함되어 있는지 확인합니다.
앱이 처음 글꼴을 요청하고 글꼴이 아직 제공되지 않는 경우 글꼴 제공업체는 인터넷에서 글꼴을 다운로드합니다.
Android 개발자 문서:
기타 자료:
- 텍스트의 모양은 어떤가요?
- 16진수
- Kotlin을 사용하여 Android 앱 개발(Udacity 과정)
- 프로그래머를 위한 Kotlin 부트캠프 (Udacity 과정)
- 프로그래머를 위한 Kotlin 부트캠프 Codelab
이 섹션에는 강사가 진행하는 과정의 일부로 이 Codelab을 진행하는 학생에게 출제할 수 있는 과제가 나열되어 있습니다. 다음 작업은 강사가 결정합니다.
- 필요한 경우 과제를 할당합니다.
- 과제 제출 방법을 학생에게 알립니다.
- 과제를 채점합니다.
강사는 이러한 추천을 원하는 만큼 사용할 수 있으며 적절하다고 생각되는 다른 과제를 출제해도 됩니다.
이 Codelab을 직접 진행하는 경우 이러한 과제를 자유롭게 사용하여 배운 내용을 테스트해 보세요.
질문에 답하세요
질문 1
테마를 정의하는 데 사용되는 태그는 무엇인가요?
▢ <style>
▢ <theme>
▢ <meta-tag>
▢ <styling>
질문 2
다음 중 스타일을 잘못 사용하는 것은 무엇인가요?
▢ 뷰의 제약 조건을 지정합니다.
▢ 제목의 배경색을 지정합니다.
▢ 뷰 간에 글꼴 크기를 통일합니다.
▢ 뷰 그룹의 텍스트 색상을 지정합니다.
질문 3
테마와 스타일은 어떻게 다른가요?
▢ 테마는 전체 앱에 적용되지만 개발자가 특정 뷰에 스타일을 적용할 수 있습니다.
▢ 테마는 다른 테마에서 상속될 수 없지만 스타일은 다른 스타일에서 상속될 수 있습니다.
▢ 스타일은 다른 스타일에서 상속될 수 없지만 테마는 다른 테마에서 상속될 수 있습니다.
▢ 테마는 Android 시스템이 제공하고 스타일은 개발자가 정의합니다.
질문 4
앱의 TextView
에 글꼴 크기를 12sp
로 설정하는 Theme
, 글꼴 크기를 14sp
로 설정하는 정의된 스타일, 16sp
의 fontSize
속성이 있는 경우 화면에 표시되는 글꼴의 크기는 얼마인가요?
▢ 12sp
▢ 14sp
▢ 16sp
▢ 18sp
다음 강의 시작:
이 과정의 다른 Codelab 링크는 Android Kotlin 기초 Codelab 방문 페이지를 참고하세요.