Compose 사용 시 알아야 하는 Android 기본사항
'Compose 사용 시 알아야 하는 Android 기본사항'은 최신 권장사항을 사용하여 Android 앱을 빌드하는 방법에 관한 자기 주도형 온라인 과정입니다. 이 과정에서는 Android에서 사용자 인터페이스를 빌드하는 데 권장되는 툴킷인 Jetpack Compose를 사용하여 앱을 빌드하는 방법을 다룹니다.
과정 목표
![](https://developer.android.google.cn/static/courses/android-basics-compose/images/ribbon.png?authuser=3&hl=ko)
- Kotlin 및 Jetpack Compose의 기본사항 이해하기
- 일련의 기본적인 Android 앱 빌드하기
- Android 앱 아키텍처 및 Jetpack 라이브러리를 사용하고 Modern Android Development 관행에 따라 데이터로 작업하기
기본 요건
![](https://developer.android.google.cn/static/courses/android-basics-compose/images/laptop.png?authuser=3&hl=ko)
- 기초적인 컴퓨터 역량
- 기초적인 수학 역량
- Android 스튜디오를 실행할 수 있는 컴퓨터(시스템 요구사항 참고)
- (선택사항) Android 기기
단원 1: 첫 번째 Android 앱
개발자 과정 3개 | 소요 시간: 10시간
프로그래밍 기본사항을 학습하고 첫 번째 Android 앱을 만들어 봅니다.
- 텍스트 출력을 표시하는 간단한 Kotlin 프로그램을 작성합니다.
- Android 스튜디오를 다운로드하여 설치합니다.
- 텍스트와 이미지를 표시하는 간단한 사용자 인터페이스가 포함된 Android 앱을 빌드합니다.
- 기기나 에뮬레이터에서 앱을 실행합니다.
Kotlin 소개
개발자 과정 1 | 소요 시간: 3시간
Kotlin의 입문 프로그래밍 개념을 알아봅니다.
Android 스튜디오 설정
개발자 과정 2 | 소요 시간: 4시간
Android 스튜디오를 설치 및 설정하고 첫 번째 프로젝트를 만든 후 기기나 에뮬레이터에서 실행합니다.
기본 레이아웃 빌드하기
개발자 과정 3 | 소요 시간: 3시간
텍스트와 이미지를 표시하는 간단한 사용자 인터페이스가 포함된 Android 앱을 빌드합니다.
개발자 과정 1 | 소요 시간: 3시간
Kotlin의 입문 프로그래밍 개념을 알아봅니다.
시작하기 전에
Codelab
Compose를 사용한 Android 기본사항에 오신 것을 환영합니다
동영상
Kotlin을 사용한 첫 프로그램
Codelab
Kotlin에서 변수 만들기 및 사용하기
Codelab
Kotlin에서 함수 만들기 및 사용하기
Codelab
연습: Kotlin 기본사항
Codelab
다음 단계
동영상
퀴즈
개발자 과정 2 | 소요 시간: 4시간
Android 스튜디오를 설치 및 설정하고 첫 번째 프로젝트를 만든 후 기기나 에뮬레이터에서 실행합니다.
Android 스튜디오 소개
동영상
Android 스튜디오 다운로드 및 설치
Codelab
첫 번째 Android 앱 만들기
Codelab
Android Emulator에서 첫 앱 실행
Codelab
Android Emulator 연결 방법
Codelab
다음 단계
동영상
퀴즈
개발자 과정 3 | 소요 시간: 3시간
텍스트와 이미지를 표시하는 간단한 사용자 인터페이스가 포함된 Android 앱을 빌드합니다.
Jetpack Compose 소개
동영상
생일 카드 앱 디자인
동영상
텍스트 컴포저블로 간단한 앱 빌드
Codelab
Android 앱에 이미지 추가
Codelab
연습: Compose 기본사항
Codelab
프로젝트: 명함 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 2: 앱 UI 빌드
개발자 과정 3개 | 소요 시간: 21시간
Kotlin의 기본사항을 계속 학습하고 더욱 확대된 대화형 앱을 빌드합니다.
- Kotlin에서 조건문, 함수 유형, 클래스, 람다 표현식을 사용합니다.
- 컴포지션 및 리컴포지션의 작동 방식을 이해합니다.
- 앱 UI에 버튼을 추가하고 사용자 탭에 응답합니다.
- 사용자가 입력한 데이터로 작동하는 앱을 만듭니다.
- 상태를 사용하여 데이터를 표시하고 데이터가 업데이트되면 변경사항을 자동으로 반영하는 방법을 알아봅니다.
- 단위 테스트를 작성하여 격리된 함수를 테스트합니다.
Kotlin 기초
개발자 과정 1 | 소요 시간: 8시간
Kotlin, 객체 지향 프로그래밍, 람다의 기본사항을 자세히 알아봅니다.
앱에 버튼 추가
개발자 과정 2 | 소요 시간: 6시간
Android 앱에서 버튼 클릭에 응답하는 방법을 알아봅니다.
UI 및 상태와 상호작용
개발자 과정 3 | 소요 시간: 7시간
사용자 입력을 받아 팁을 계산하는 팁 계산기 앱을 만듭니다.
개발자 과정 1 | 소요 시간: 8시간
Kotlin, 객체 지향 프로그래밍, 람다의 기본사항을 자세히 알아봅니다.
Kotlin 기초
동영상
Kotlin에서 조건문 작성
Codelab
Kotlin에서 null 허용 여부 사용
Codelab
Kotlin에서 클래스 및 객체 사용
Codelab
Kotlin에서 함수 유형 및 람다 표현식 사용
Codelab
연습: Kotlin 기초
Codelab
다음 단계
동영상
퀴즈
개발자 과정 2 | 소요 시간: 6시간
Android 앱에서 버튼 클릭에 응답하는 방법을 알아봅니다.
Dice Roller 앱 소개
동영상
대화형 Dice Roller 앱 만들기
Codelab
Android 스튜디오에서 디버거 사용하기
Codelab
연습: 클릭 동작
Codelab
다음 단계
동영상
퀴즈
개발자 과정 3 | 소요 시간: 7시간
사용자 입력을 받아 팁을 계산하는 팁 계산기 앱을 만듭니다.
Compose의 상태 이해
동영상
팁 계산기 소개
동영상
Compose의 상태 소개
Codelab
맞춤 팁 계산하기
Codelab
자동 테스트 작성
Codelab
프로젝트: Art Space 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 3: 목록 표시 및 Material Design 사용
개발자 과정 3개 | 소요 시간: 15시간
데이터 목록을 표시하는 앱을 빌드하고 Material Design으로 앱을 더 멋지게 만드는 방법을 알아봅니다.
- Kotlin에서 데이터 클래스, 함수, 컬렉션을 사용합니다.
- 텍스트와 이미지를 모두 표시하는 앱에서 스크롤 가능한 목록을 만듭니다.
- 목록 항목과 상호작용하도록 클릭 리스너를 추가합니다.
- 앱에 앱 바를 추가하고 앱 테마를 수정합니다.
- Material Design을 사용하여 색상, 도형, 서체를 사용하는 현대적이고 직관적인 사용자 인터페이스를 빌드합니다.
Kotlin 기본사항 더보기
개발자 과정 1 | 소요 시간: 8시간
더 흥미롭고 재미있는 Android 앱을 빌드하는 데 도움이 되는 추가 Kotlin 프로그래밍 개념을 알아봅니다.
스크롤 가능한 목록 빌드하기
개발자 과정 2 | 소요 시간: 4시간
Compose를 사용하여 스크롤 가능한 텍스트 및 이미지 목록을 표시하는 앱을 만듭니다.
멋진 앱 빌드하기
개발자 과정 3 | 소요 시간: 3시간
Material Design, 애니메이션, 접근성 권장사항을 사용하여 앱을 더 멋지고 직관적으로 만들어 봅니다.
개발자 과정 1 | 소요 시간: 8시간
더 흥미롭고 재미있는 Android 앱을 빌드하는 데 도움이 되는 추가 Kotlin 프로그래밍 개념을 알아봅니다.
Kotlin 기본사항 더보기
동영상
제네릭, 객체, 확장
Codelab
Kotlin에서 컬렉션 사용
Codelab
컬렉션을 사용한 고차 함수
Codelab
연습: 클래스 및 컬렉션
Codelab
퀴즈
개발자 과정 2 | 소요 시간: 4시간
Compose를 사용하여 스크롤 가능한 텍스트 및 이미지 목록을 표시하는 앱을 만듭니다.
Affirmations 앱 소개
동영상
스크롤 가능한 목록 추가
Codelab
앱 아이콘 변경
Codelab
연습: 그리드 빌드하기
Codelab
다음 단계
동영상
퀴즈
개발자 과정 3 | 소요 시간: 3시간
Material Design, 애니메이션, 접근성 권장사항을 사용하여 앱을 더 멋지고 직관적으로 만들어 봅니다.
Compose를 사용한 Material Design 소개
동영상
Jetpack Compose를 사용한 Material 테마 설정
Codelab
Jetpack Compose를 사용한 간단한 애니메이션
Codelab
접근성 테스트
Codelab
연습: 슈퍼히어로 앱 빌드하기
Codelab
프로젝트: 30일 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 4: 탐색 및 앱 아키텍처
개발자 과정 3개 | 소요 시간: 27시간
더 복잡한 앱을 빌드하기 위한 앱 아키텍처 권장사항을 알아봅니다. 앱 내에서 다양한 화면 간에 이동할 수 있는 기능을 강화하여 일관되고 예측 가능한 사용자 환경을 제공합니다.
- 활동 및 활동의 수명 주기를 설명합니다.
- 최신 Android 아키텍처를 이해합니다.
- StateFlow 및 UDF 패턴을 사용하여 상태 및 이벤트를 처리합니다.
- 데이터와 상태를 저장하는 ViewModel을 추가합니다.
- Compose를 사용하여 Navigation 구성요소를 설정하고 사용합니다.
- 반응형 UI의 정의를 이해합니다.
- 창 클래스 크기를 사용하여 다양한 화면 크기에 맞게 빌드합니다.
- 앱에 탐색 창을 추가합니다.
아키텍처 구성요소
개발자 과정 1 | 소요 시간: 9시간
앱 아키텍처를 살펴보고 ViewModel, UI 상태, StateFlow를 사용하여 더 복잡한 앱을 빌드하는 방법을 알아봅니다.
Jetpack Compose의 Navigation
개발자 과정 2 | 소요 시간: 6시간
Navigation 구성요소를 사용하여 화면이 더 많은 복잡한 앱을 빌드하는 방법과 여러 컴포저블 간에 데이터를 탐색하고 전달하는 방법을 알아봅니다.
다양한 화면 크기에 맞게 조정
개발자 과정 3 | 소요 시간: 13시간
이 과정에서는 다양한 화면 크기에 맞게 앱을 조정하고 더 나은 사용자 환경을 제공하는 방법과 적응형 UI를 테스트하는 방법을 알아봅니다.
개발자 과정 1 | 소요 시간: 9시간
앱 아키텍처를 살펴보고 ViewModel, UI 상태, StateFlow를 사용하여 더 복잡한 앱을 빌드하는 방법을 알아봅니다.
단원 4에 오신 것을 환영합니다
동영상
활동 수명 주기 단계
Codelab
앱 아키텍처 소개
동영상
아키텍처: UI 레이어
동영상
Compose의 ViewModel 및 상태
Codelab
단위 테스트를 작성하여 ViewModel 테스트
Codelab
연습: ViewModel을 Dessert Clicker에 추가
Codelab
다음 단계
동영상
퀴즈
개발자 과정 2 | 소요 시간: 6시간
Navigation 구성요소를 사용하여 화면이 더 많은 복잡한 앱을 빌드하는 방법과 여러 컴포저블 간에 데이터를 탐색하고 전달하는 방법을 알아봅니다.
Navigation 및 Cupcake 앱 소개
동영상
Compose를 사용하여 화면 간 이동
Codelab
Cupcake 앱 테스트
Codelab
연습: 탐색 추가
Codelab
다음 단계
동영상
퀴즈
개발자 과정 3 | 소요 시간: 13시간
이 과정에서는 다양한 화면 크기에 맞게 앱을 조정하고 더 나은 사용자 환경을 제공하는 방법과 적응형 UI를 테스트하는 방법을 알아봅니다.
적응형 레이아웃
동영상
Reply 앱 소개
동영상
동적 탐색으로 적응형 앱 빌드
Codelab
적응형 레이아웃으로 앱 빌드
Codelab
연습: Sports 앱 빌드
Codelab
프로젝트: My City 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 5: 인터넷에 연결
개발자 과정 2개 | 소요 시간: 14시간
Kotlin 코루틴을 사용하여 여러 작업을 한 번에 실행하고, Retrofit을 사용하여 인터넷에서 데이터를 가져오기 위해 HTTP 및 REST에 관해 알아봅니다. 그런 다음 Coil 라이브러리를 사용하여 앱에 이미지를 표시합니다.
- 동시 실행의 기본사항과 Android 앱에서 코루틴을 사용하는 방법을 설명합니다.
- 최신 Android 앱 아키텍처의 데이터 영역을 정의하고 이해합니다.
- 저장소를 구현하여 데이터 액세스를 중앙화합니다.
- Retrofit을 사용하여 원격 서버에서 데이터를 가져옵니다.
- Coil 라이브러리를 사용하여 이미지를 로드하고 표시합니다.
- 종속 항목 삽입을 구현하여 클래스를 분리함으로써 앱을 더 쉽게 테스트, 유지 관리, 확장할 수 있게 만듭니다.
인터넷에서 데이터 가져오기
개발자 과정 1 | 소요 시간: 6시간
앱을 차단하지 않고 동시에 작업을 실행하기 위해 코루틴을 구현하고, 인터넷에서 데이터를 가져오기 위해 HTTP 및 REST에 관해 알아봅니다.
인터넷에서 이미지 로드 및 표시
개발자 과정 2 | 소요 시간: 3시간
앱에 아키텍처 권장사항을 적용하고 Coil을 사용하여 이미지를 다운로드하고 표시합니다.
개발자 과정 1 | 소요 시간: 6시간
앱을 차단하지 않고 동시에 작업을 실행하기 위해 코루틴을 구현하고, 인터넷에서 데이터를 가져오기 위해 HTTP 및 REST에 관해 알아봅니다.
인터넷에 연결
동영상
Kotlin 플레이그라운드의 코루틴 소개
Codelab
Android 스튜디오의 코루틴 소개
Codelab
HTTP/REST 소개
동영상
인터넷에서 데이터 가져오기
Codelab
다음 단계
동영상
퀴즈
개발자 과정 2 | 소요 시간: 3시간
앱에 아키텍처 권장사항을 적용하고 Coil을 사용하여 이미지를 다운로드하고 표시합니다.
아키텍처: 데이터 영역
동영상
저장소 및 수동 종속 항목 삽입 추가
Codelab
인터넷에서 이미지 로드 및 표시
Codelab
연습: Amphibians 앱 빌드
Codelab
프로젝트: 서가 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 6: 데이터 지속성
개발자 과정 3개 | 소요 시간: 10시간
원활하고 일관된 사용자 환경을 위해 데이터를 기기에 로컬로 저장하고 네트워크 중단이 발생하는 경우에도 앱이 계속 작동하도록 하는 방법을 알아봅니다.
- SQLite 데이터베이스에서 데이터를 삽입, 업데이트, 삭제하는 SQL의 기본사항을 알아봅니다.
- Room 라이브러리를 사용하여 Android 앱에 데이터베이스를 추가합니다.
- Database Inspector를 사용하여 데이터베이스 문제를 테스트하고 디버그합니다.
- Preference DataStore를 사용하여 사용자 환경설정을 저장합니다.
SQL 소개
개발자 과정 1 | 소요 시간: 2시간
SQL을 사용하여 관계형 데이터베이스에서 데이터를 읽고 조작하는 방법을 알아봅니다.
데이터 지속성을 위해 Room 사용
개발자 과정 2 | 소요 시간: 6시간
Room 라이브러리를 사용하여 Android 앱에서 관계형 데이터베이스를 쉽게 만들고 사용합니다.
DataStore에서 키를 사용하여 데이터 저장 및 액세스
개발자 과정 3 | 소요 시간: 2시간
Android 앱에서 Preferences DataStore를 사용하여 간단한 키-값 쌍 데이터를 저장하는 방법을 알아봅니다.
개발자 과정 1 | 소요 시간: 2시간
SQL을 사용하여 관계형 데이터베이스에서 데이터를 읽고 조작하는 방법을 알아봅니다.
데이터베이스 및 SQL 소개
동영상
SQL을 사용하여 데이터베이스 읽기 및 쓰기
Codelab
다음 단계
동영상
퀴즈
개발자 과정 2 | 소요 시간: 6시간
Room 라이브러리를 사용하여 Android 앱에서 관계형 데이터베이스를 쉽게 만들고 사용합니다.
Kotlin Flow의 실제 사용 사례
동영상
Flow 테스트
도움말
Room Kotlin API 사용
동영상
Room을 사용하여 데이터 유지
Codelab
Room을 사용하여 데이터 읽기 및 업데이트
Codelab
연습: Bus Schedule 앱 빌드
Codelab
다음 단계
동영상
퀴즈
개발자 과정 3 | 소요 시간: 2시간
Android 앱에서 Preferences DataStore를 사용하여 간단한 키-값 쌍 데이터를 저장하는 방법을 알아봅니다.
DataStore 소개
동영상
Preferences DataStore
동영상
DataStore를 사용하여 로컬에 환경설정 저장
Codelab
프로젝트: 항공편 검색 앱 만들기
Codelab
다음 단계
동영상
퀴즈
단원 7: WorkManager
개발자 과정 1개 | 소요 시간: 6시간
Android Jetpack의 WorkManager API를 사용하면 앱이 종료되거나 기기가 다시 시작되더라도 계속해서 실행되는 필수 백그라운드 작업(예: 데이터 백업 또는 최신 콘텐츠 다운로드)을 예약할 수 있습니다.
- 백그라운드 작업에서 실행해야 하는 장기 실행 작업을 정의합니다.
- Android 앱에 WorkManager를 추가합니다.
- 작업자 객체를 만들고 작업을 큐에 추가합니다.
- WorkRequest에서 제약 조건을 만듭니다.
- Background Task Inspector를 사용하여 WorkManager를 검사하고 디버그합니다.
WorkManager로 작업 예약
개발자 과정 1 | 소요 시간: 3시간
애플리케이션 프로세스의 현재 실행 여부와 관계없이 실행해야 하는 백그라운드 작업을 처리하는 API인 WorkManager를 사용하는 경우와 방법을 알아봅니다.
개발자 과정 1 | 소요 시간: 3시간
애플리케이션 프로세스의 현재 실행 여부와 관계없이 실행해야 하는 백그라운드 작업을 처리하는 API인 WorkManager를 사용하는 경우와 방법을 알아봅니다.
WorkManager 소개
동영상
WorkManager 구현
동영상
WorkManager로 백그라운드 작업
Codelab
고급 WorkManager 및 테스트
Codelab
연습: Water Me 앱 빌드
Codelab
퀴즈
단원 8: Compose 및 뷰
개발자 과정 2개 | 소요 시간: 4시간
동일한 앱에서 뷰를 기반으로 한 이전 UI 툴킷과 Compose를 나란히 사용하는 방법을 알아봅니다. 이 단원에서는 상호 운용성 API 및 뷰의 기존 앱에 새로운 기능을 추가하거나, 뷰를 사용하는 기존 라이브러리를 사용하거나, Compose에서 아직 사용할 수 없는 UI 구성요소를 사용하기 위한 권장사항을 알아봅니다.
- 뷰 기반 UI 도구 키트를 이해하고 XML을 사용하여 앱 UI를 빌드합니다.
- 뷰를 사용하여 빌드된 앱에 컴포저블을 추가합니다.
- 앱에 Navigation 구성요소를 추가하고 이를 사용하여 프래그먼트 간에 이동합니다.
- AndroidView를 사용하여 뷰를 표시합니다.
- Compose 앱에 기존 뷰 기반 UI 구성요소를 추가합니다.
Android 뷰와 뷰의 Compose
개발자 과정 1 | 소요 시간: 3시간
Android 뷰로 앱을 빌드하는 기본사항과 뷰를 사용하여 빌드된 앱에서 컴포저블을 추가하는 방법을 알아봅니다.
Compose의 뷰
개발자 과정 2 | 소요 시간: 1시간
Jetpack Compose로 빌드된 앱 내에서 기존 뷰를 추가하고 사용하는 방법을 알아봅니다.
개발자 과정 1 | 소요 시간: 3시간
Android 뷰로 앱을 빌드하는 기본사항과 뷰를 사용하여 빌드된 앱에서 컴포저블을 추가하는 방법을 알아봅니다.
Android 뷰 시스템
동영상
뷰를 사용하여 Android 앱 빌드
Codelab
뷰의 Compose
동영상
기존 앱에 Compose 추가
Codelab
퀴즈
개발자 과정 2 | 소요 시간: 1시간
Jetpack Compose로 빌드된 앱 내에서 기존 뷰를 추가하고 사용하는 방법을 알아봅니다.
Compose의 뷰
동영상
Compose의 뷰 상호 운용성
Codelab
기존 앱에 Compose 추가
Codelab