안드로이드 공식 문서, Android Basics in Kotlin 과정을 학습하며 기록하고 및 요약하기 위한 글입니다.
Android 개발자 기초(자바) Codelab으로 번역 학습을 하다보니 버전이 오래되어 학습이 힘듭니다.
그래서 그냥 안드로이드가 권장하는 Kotlin 언어로 다시 처음부터 학습하기로 했습니다.
* 전체 과정 링크: https://developer.android.com/courses/android-basics-kotlin/course
* 학습 시작일: 2023.01.04 ~
* 저의 안드로이드 스튜디오 버전: Android Studio Dolphin | 2021.3.1 Patch 1
소개: 이 과정에서는, Kotlin 프로그래밍 언어로 안드로이드 앱을 만드는 기본 사항을 배웁니다.
그리고, 이 학습은 거의 한글 번역이 되어있는 것으로 보입니다. 학습과정에서 한글 번역이 아닌 것이 있으면 옆에 참고사항으로 적어두겠습니다.
아래는 해당 학습 목록을 정리하였으며,
각 학습이 완료되면 해당 학습에 대한 저의 요약 링크를 추가할 예정입니다.
* 참고로, 로그인 상태에서 학습하면 각 학습 완료 배지를 줍니다. 뭔가 완성한 즐거움이 생겨 좋습니다.
* 2023.01.11 : 학습하며 그때 그때 요약 글로 정리하는 것이 비효율적인 것 같아, Unit2 부터는 요약글을 따로 남기지 않고 하단에 간단하게 해당 학습에서 배우는 내용 정도로 정리하기로 했습니다.
이 페이지는 작성자의 학습에 따라 계속 수정됩니다.
Unit 1: Kotlin 기초
코틀린 소개
- https://developer.android.com/courses/pathways/android-basics-kotlin-one
Welcome to Android Basics in Kotlin (동영상)
- 해당 과정을 아주 명랑하게 소개하는 영상(한글 자막 있음, 3:39)
Kotlin에서 첫 번째 안드로이드 앱 빌드 (동영상)
- Unit 1에서 배울 내용을 간략하게 소개하는 영상(한글 자막 있음, 1:59)
Kotlin으로 첫 번째 프로그램 작성
Kotlin으로 생일 축하 메세지 작성
- 위 두가지 내용 요약한 글 : [학습] Kotlin으로 Hello World + 생일 축하 메세지 작성
첫 번째 앱 만들기
- https://developer.android.com/courses/pathways/android-basics-kotlin-two
Android 스튜디오 소개 (동영상)
- 안드로이드 스튜디오 소개 영상(한글 자막 있음, 1:22)
Android 스튜디오 다운로드 및 설치
- 원문 보기
첫 번째 Android 앱 만들기 및 실행
- 원문 보기
휴대기기에서 앱 실행
- 원문 보기
Android 테스트의 기본사항 알아보기
- 원문 보기
위 내용들은 안드로이드 설치 및 실행, 에뮬레이터 및 실제 장치에서 실행하기 위한 설정, 프로젝트를 탐색하는 방법에 대한 내용입니다. Android 테스트의 기본사항의 경우도 단위 테스트 / 계측 테스트 코드가 들어가는 위치 정도의 설명입니다.
그런 이유로 요약 글은 없습니다. 원문을 확인하십시오.
기본 레이아웃 구축
- https://developer.android.com/courses/pathways/android-basics-kotlin-three
생일 카드 앱 디자인 (동영상)
- 생일 카드 앱 디자인 소개 영상(한글 자막 있음, 2:44)
생일 카드 앱 생성
안드로이드 앱에 이미지 추가
- 위 두가지 내용 요약한 글 : [학습] 생일 축하 메세지 표시하는 간단 Android 앱 만들기 (Kotlin)
- Layout Editor 이용하여 TextView, ImageView 추가 및 속성 변경
- 이미지 리소스 추가
App에 버튼 생성
- https://developer.android.com/courses/pathways/android-basics-kotlin-four
Kotlin의 Classe, object instance
대화형 "주사위 굴리기 앱" 만들기
Kotlin에 조건부 동작 추가
"주사위 굴리기 앱"에 이미지 추가
- 위 4가지 내용 요약한 글 : [학습] 주사위 굴리기 Android 앱 만들기 (Kotlin)
- Class를 정의하고, 해당 Class의 객체를 생성하고 사용
- 조건문(when) 사용
- IntRange 데이터 타입과, random() 함수 사용
- 이미지 리소스 추가 및 이미지 업데이트
- 버튼에 클릭 이벤트 추가
단위 테스트 작성
- 원문 보기
원문으로 보는 것을 추천합니다. 그런 이유로 따로 작성한 요약글은 없습니다.
간단 요약
- 자동 테스트: 코드를 통해 소프트웨어로 실행하는 테스트
- 수동 테스트: 기기에서 개발자/사용자가 직접 기능을 테스트
- 단위 테스트 코드 위치: app > java > 패키지명 (test) (예: com.example.diceroller (test))
- 테스트 코드 작성 및 테스트 실행 방법
디버깅 소개
- 원문 보기
원문으로 보는 것을 추천합니다. 그런 이유로 따로 작성한 요약글은 없습니다.
간단 요약
Log
class 사용- 로그 수준 별 로깅 함수 :
Log.v()
,Log.d()
,Log.i()
,Log.w()
,Log.e()
,Log.wtf()
- Logcat 창에서 로그 확인
(원문에서 소개하는 Logcat 창은 현재 Dolpin 2021.3.1 Patch 1 버전과는 차이가 있습니다) - Dolpin 2021.3.1 Patch 1 버전의 Logcat 검색(filter)은 key-value 로 검색
- 로컬 앱 프로젝트의 PID:
package:mine
- 특정 값 :
package:<package-ID>
tag:<tag>
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
- 키 앞에
-
를 추가하여 특정 값을 제외-tag:<exclude-tag>
- 키 뒤에
~
를 배치하여 주어진 키로 정규 표현식을 사용합니다tag~:<regular-expression-tag>
- exclude 태그와 결합:
-tag~:<exclude-regular-expression-tag>
- 로컬 앱 프로젝트의 PID:
이러한 기본 사항으로 만들 수 있는 것? (동영상)
- 지금 까지 배운 내용과 그것으로 무엇을 할 수 있는지 소개하는 영상(한글 자막 있음, 0:56)
Project: Lemonade app
- 해당 내용에 대한 요약글 : [학습] 레모네이드 앱 프로젝트 (Android,Kotlin)
- 지금까지 배운 내용으로 "다운받은 소스"에 필요한 코드를 추가하여 앱이 동작하도록 합니다.
- 테스트 코드가 "다운받은 소스"에 포함되어있습니다. 추가한 코드가 테스트를 통과하는지 확인합니다.
Unit 2: Layouts
앱에서 사용자 입력 받기: Part 1
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-2-pathway-1
단원 2: 레이아웃 소개 (동영상)
- Unit 2에서 배울 2개의 앱과 배울 내용에 대한 간략한 소개 영상(한글 자막 있음, 1:11)
팁 계산기 앱 소개 (동영상)
- 팁 계산기 앱(사용자 입력을 받는 앱)에 대한 간략한 소개 영상(한글 자막 있음, 1:28)
Kotlin의 클래스 및 상속
- 원문 보기:
- 클래스 계층 구조 및 상속에 대한 설명이 있습니다.
abstract
키워드를 사용하여 추상 클래스를 생성합니다.- 추상 클래스에
abstract
변수 및 함수를 선언하고, 상속받은 class에서 override 하도록 합니다. - 추상 클래스와 상속에 대한 예제가 순차적이고 구체적이라 이해에 도움이 됩니다.
with(인스턴스) { }
구문 설명이 있습니다.open
키워드에 대한 설명이 있습니다
: 다른 클래스에 상속해서 사용할 수 있도록 하려면open
키워드 사용이 필요합니다.
2023.01.11
튜토리얼을 따라하며, 요약을 하다보니, 진도는 진도대로 나가기 힘들고
요약이다 보니, 결국 원문을 보는게 나은 듯 합니다. 방향성의 의문이 생깁니다.
우선은 요약은 여기서 멈추고 튜토리얼은 계속 진행하면서 어떻게 학습한 내용을 남길 수 있을 지 고민해 볼 생각입니다. (각 학습에서 무엇을 배우는지 정도는 작성할 예정입니다.)
Android의 XML 레이아웃 만들기
- 원문 보기
- Code 뷰에서 XML 코드를 수정하는 방법을 사용합니다.
- XML에 대한 설명과 activity_main.xml 파일에 있는 태그, 요소, 속성들에 대한 설명이 있습니다.
- ConstraintLayout, EditText, TextView, RadioGroup & RadioButton, Switch, Button 요소들을 사용합니다.
- 아래와 같은 레이아웃을 생성합니다.
팁 계산
- 원문 보기
- "Android의 XML 레이아웃 만들기"에서 만든 XML 레이아웃이 동작하도록, 팁을 계산하는 코드를 작성하는 과정입니다.
- findViewById() 대신 뷰 바인딩(view binding)을 사용합니다.
: 뷰 바인 사용 설정 방법이 있습니다. (build.gradle) - 빈 값을 입력해보고, 비정상 종료된 부분을 디버그하여 수정합니다. (null 처리)
- 코딩 권장 사항을 적용하는 방법 및 코드 검사 방법을 안내합니다.
앱에서 사용자 입력 받기: Part 2
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-2-pathway-2
앱 테마 변경
- 원문 보기
- 안드로이드 앱의 색상 테마 변경 방법을 소개합니다.
- Material Design에 대한 간략한 소개가 있습니다.
- 앱 테마를 선택하는 방법을 소개합니다.
: 머티리얼 색상 도구 사용법 소개 - 테마 색상에 대해 자세히 알아봅니다.
# | 이름 | 테마 속성 |
1 | 기본 | colorPrimary |
2 | 기본 변형 | colorPrimaryVariant |
3 | 보조 | colorSecondary |
4 | 보조 변형 | colorSecondaryVariant |
5 | 배경 | colorBackground |
6 | 표면 | colorSurface |
7 | 오류 | colorError |
8 | 기본(대비) | colorOnPrimary |
9 | 보조(대비) | colorOnSecondary |
10 | 배경(대비) | colorOnBackground |
11 | 표면(대비) | colorOnSurface |
12 | 오류(대비) | colorOnError |
"대비"는 다양한 배경색에 !대비!되는 텍스트 및 아이콘에 사용됩니다.
따로 머티리얼 테마를 설정하기 전에 이미 사용하고 있었습니다.
Empty Activity 템플릿으로 프로젝트를 생성하고 app > res > values > themes.xml 파일을 열어보면
아래와 같이 Material Components 라이브러리에 미리 정의된 DayNight 테마를 사용합니다.
<style name="Theme.TipTime" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> ... </style>
앱 아이콘 변경
- 원문 보기
- 앱 런처 아이콘 소개와 변경하는 방법이 있습니다.
- 화면 밀도(dpi)가 다양한 여러 기기에 아이콘을 제공하려면 어떻게 구성되어야 하는지 설명합니다.
더 나은 사용자 경험 만들기
- 원문 보기
- "앱에서 사용자 입력 받기: Part 1"에서 만든 팁 계산 앱 디자인을 개선합니다.
- 머티리얼 디자인, 컴포넌트에 대한 간략한 소개가 있습니다.
- 머티리얼 컴퓨넌트를 적용해 봅니다.
EditText → TextInputLayout & TextInputEditText, Switch → SwitchMaterial - 아이콘 추가 방법을 설명합니다.
- 스타일 및 테마를 사용합니다.
- 스크롤 뷰를 추가하고, 엔터 키 입력시 키보드를 숨기는 코드를 추가합니다.
Instrumentation Test(계측 테스트) 작성
- 원문보기
- Instrumentation Test(계측 테스트) 작성 방법을 소개합니다.
: 실제 기기 및 에뮬레이터에서 실행되는 테스트 - Espresso 기본사항
스크롤 목록 표시
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-2-pathway-3
Affirmations 앱 소개 (동영상)
- 명언 앱을 만들 것이라고 소개하는 영상입니다.(한글 자막 있음, 1:49)
Kotlin에서 목록 사용
- 원문 보기
- List, MutableList 사용 방법을 알아봅니다.
- vararg 가변 인수를 전달하고, 빌더 패턴을 사용해봅니다.
- while, for 반복문을 사용해봅니다.
RecyclerView를 사용하여 스크롤 가능한 목록 표시
- 원문 보기
- RecyclerView를 사용하여 데이터 목록을 표시하는 방법을 배웁니다.
- Adapter 패턴을 사용합니다.
- 패키지에 대한 설명 및 패키지를 기능별로 그룹화합니다.
: model, data, adapter
카드를 사용하여 이미지 목록 표시
- 원문 보기
- 위에서 생성한 Affirmations 앱 목록에 이미지를 추가합니다.
- MaterialCardView를 사용하여 디자인을 개선합니다.
- 앱 테마 색상을 변경하고, 앱 아이콘을 변경합니다.
프로젝트: Dogglers 앱
- 원문 보기
- 제공되는 소스에, 직접 코드를 추가하여 앱을 만듭니다.
- TODO에서 하라는대로 앱을 만들고 테스트를 했는데, 테스트 실패합니다.
: vertical_scroll_content_at_first_position, grid_list_content_at_first_position, horizontal_scroll_content_at_first_position 모두 첫번째 위치를 검사하는 부분입니다. - 아래 소스 내용과 같이 TODO 요건에 맞지 않는 테스트 코드라 실패합니다. 테스트 코드를 수정 후 테스트하면 통과합니다. (2023.01.13일에 받은 소스 기준입니다. 이후 정상 동작 코드로 변경될 수도 있습니다.)
// 제공되는 테스트 코드입니다.
// 이 테스트 코드로는 실패합니다.
/*
fun checkFirstPosition() {
hasListItemContent("Tzeitel", "7", "sunbathing",
R.drawable.tzeitel)
}*/
// TODO 요건에 Age: , Hobbies: 를 포함하게 되어있기 때문에
// 테스트 코드를 위 TODO 요건에 맞게 변경해야 테스트 통과됩니다.
fun checkFirstPosition() {
hasListItemContent("Tzeitel", "Age: 7", "Hobbies: sunbathing",
R.drawable.tzeitel)
}
Unit 3: Navigation
화면 이동
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-1
Welcome to Unit 3: Navigation (동영상)
- 탐색할 수 있는 여러 화면이 있는 앱 개발을 하고, 앱 아키텍쳐 및 핵심적임 개념을 배울 것이라고 소개하는 영상입니다.(한글 자막 있음, 1:53)
Kotlin의 Collection
- 원문 보기
- Collection(set, map)을 학습합니다.
- lambda와 higher-order function에 대해 학습합니다.
- lambda(람다 표현식,람다) : 이름이 없으며 곧바로 표현식으로 사용할 수 있는 함수
- higher-order function(고차 함수) : 함수를 다른 함수로 전달하거나 다른 함수에서 함수를 반환하는 것을 의미
Activity, Intent
- 원문 보기
- 2개의 화면(Activity)이 있고, 화면간 이동이 가능한 Words 앱을 만듭니다.
: A~Z 까지 알파벳이 제공되고, 해당 알파벳 선택하면 단어 목록 화면으로 이동합니다(명시적 Intent). 단어를 선택하면 브라우저에서 단어를 검색합니다(암시적 Intent). - 기본 제공 소스에 학습 코드를 추가합니다.
- 명시적(explicit) Intent와 암시적(implicit) Intent를 학습합니다.
- App bar에 메뉴를 추가합니다.
- companion object 를 사용하여, 여러 클래스에서 사용할 수 있는 상수를 정의합니다.
Activity lifecycle(수명 주기) 단계
- 원문 보기
- activity의 lifecycle 및 각 단계에 대해 알아봅니다.
- 각 단계의 lifecycle 콜백 메서드를 Log를 표시하도록 override하고, 각 단계가 호출되는 시기를 파악합니다: onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()
- 설정이 변경될 때(예:가로/세로 모드 변경) 데이터 손실이 일어나지 않도록 onSaveInstanceState()를 이용합니다.
Navigation component 소개
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-2
Android Jetpack: Navigation Component 소개 (동영상)
- Navigation Component에 대한 소개 영상 (한글 자막 있음, 5:08)
Fragment, Navigation Component
- 원문 보기
- Fragment를 사용하여 단일 Activity로 화면 이동을 할 수 있도록 구성합니다.
- "Activity, Intent" 과정에서 만든 Words 앱을 Fragment를 사용하도록 변경합니다.
- Fragment와 Fragment lifecycle에 대해 학습합니다.
- Navigation Graph를 사용합니다.
- 개인적 의견으로, 해당 실습만으로는 사용법을 익히기 힘듭니다. 추가 학습이 필요합니다.
Navigation Component 테스트
- 원문 보기
- Navigation Component 테스트 방법을 학습합니다.
Navigation: 개요 - MAD(Modern Android Development) Skills (동영상)
- Navigation component로 최신 Android 개발 기술을 학습합니다.(한글 자막 있음, 10:42)
Architecture components
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-3
Unscramble 앱 소개 (동영상)
- Architecture component를 사용하여 Unscramble 앱을 만들거라고 소개하는 영상입니다.(한글 자막 있음, 1:57)
- Unscramble 앱: 글자 재배열 앱 (예: aicuhrt -> haircut )
ViewModel에 데이터 저장
- 원문 보기
- Android Architecture Component 중 하나인 ViewModel을 학습합니다.
- UI 컨트롤러(Activity, Fragment)에서는 뷰 화면을 제어하고, ViewModel에서는 데이터 처리를 담당하도록 분리하여 설계합니다.
- Unscramble 앱(단어 맞추기 앱)을 만들어 봅니다. (아직은 미완성이고 다음 과정으로 이어집니다)
ViewModel과 함께 LiveData 사용
- 원문 보기
- 이전 강의에서 만든 Unscramble 앱(단어 맞추기 앱)에 LiveData를 적용합니다.
- LiveData의 변경을 감지하는 observer method를 사용합니다.
- data binding을 사용해, layout 파일에서 직접 데이터를 참조하여 화면을 업데이트 합니다.
향상된 navigation app 예제
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-4
Cupcake app 소개 (동영상)
- Unit 3 과정에서 지금까지 배운 내용들을 간략히 소개하고, 앞으로 만들 Cupcake App에 대해 소개하는 영상입니다. (한글 자막 있음, 2:04)
ViewModel 공유
- 지금까지 배운 내용들로 Cupcake App을 만듭니다.
- Fragment간에 ViewModel을 공유하기 위해 activityViewModels() 을 사용합니다.
- data binding, listener binding을 사용합니다.
- 날짜 형식과 통화 형식을 지정합니다.
Navigation, backstack
- 위에서 만든 Cupcake App에 [Cancel] 버튼 및 Up(←) 버튼 기능을 추가합니다.
- task와 back stack을 학습합니다.
- 수량 문자열 plurals을 사용합니다. (1 cupcake, 6 cupcakes)
- 암시적 Intent를 사용하여 이메일로 주문 내용을 전달하도록 구현협니다.
ViewModel 및 LiveData 테스트
- ViewModel 및 LiveData의 단위 테스트를 작성합니다.
Adaptive(적응형) layouts
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-5
두 개의 창 레이아웃 만들기 (자료)
- 자료 링크
- 대형 기기와 폴더블에서 창 두 개를 나란히 표시하고, 휴대전화와 같은 소형 기기에서는 창을 한 번에 한 개만 표시하도록 하는 SlidingPaneLayout 사용해 대한 설명이 있습니다.
Adaptive layouts
- 원본 보기
- SlidingPaneLayout을 사용하여 대형 기기에서는 두 개의 창, 소형 기기에서는 하나의 창으로 표시되도록 합니다.
- 소형 기기에서의 뒤로 가기 버튼 Callback을 구현합니다. (OnBackPressedCallback)
반응형 레이아웃으로 UI 이전(Migrate) (자료)
- 자료 링크
- 다양한 크기의 화면에 맞게, 반응형으로 UI를 만들도록 설명한 가이드 문서입니다.
프로젝트: Lunch Tray 앱
- 원문 보기
- 제공되는 소스에, Unit 3에서 배운 내용을 바탕으로 직접 코드를 추가하여 앱을 만듭니다.
Unit 4: 인터넷에 연결
Coroutines
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-4-pathway-1
Welcome to Unit 4: Connect to the internet (동영상)
- 인터넷 데이터를 사용한 Mars Photos App과 사용할 라이브러리, 동시성(Concurrency)과 Coroutine에 대한 소개 영상입니다. (2023.01.20 현재 한글 자막 없음, 3:51)
coroutines 소개
- 원문 보기
- 스레드 (기본(UI) 스레드, 백그라운드 스레드) 및 동시 실행(concurrency)에 대한 간단한 설명을 합니다.
- 직접 스레드를 사용할 때의 문제점과 이를 해결하기 위한 Coroutine(Kotlin 기능)에 대해 알아봅니다.
인터넷에서 데이터 가져오기
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-4-pathway-2
HTTP/REST 소개 (동영상)
- Client/Server 간 요청과 응답을 처리하는 HTTP 프로토콜과 REST에 대한 소개 영상입니다. (2023.01.20 현재 한글 자막 없음, 10:27)
인터넷에서 데이터 가져오기
- 원문 보기
- Retrofit 라이브러리를 사용하여 웹 서비스에 연결 및 응답을 받습니다.
- Moshi 라이브러리를 사용하여 JSON 응답을 데이터 객체로 변환합니다.
- 객체 선언(Object Declaration)을 사용해 싱글톤 객체로 사용합니다. (object 키워드 사용)
- ViewModelScope(View 대상 coroutine 범위)을 사용하여 백그라운드 스레드에서 웹 서비스를 호출합니다.
- INTERNET 권한 추가 및 서버 연결 오류시 예외 처리를 추가합니다.
인터넷에서 이미지 로드 및 표시
- 원문 보기
- Coil 라이브러리를 사용하여 웹 URL에서 이미지를 로드하고 표시합니다.
- RecyclerView와 Grid Adapter를 사용하여 그리드로 표시합니다.
- 이미지를 다운로드하고 표시할 때 발생할 수 있는 오류를 처리합니다.
- Binding Adapter를 사용합니다. (@BindingAdapter)
breakpoint 사용하여 디버그
- 원문 보기
- breakpoint 사용(+조건 추가)하여 디버깅합니다.
- watches 추가하여 특정 변수 모니터링합니다.
프로젝트: Amphibians 앱
- 원문 보기
- 제공되는 소스에, Unit 4에서 배운 내용을 바탕으로 직접 코드를 추가하여 앱을 만듭니다.
Unit 5: Data persistence
SQL, Room, Flow 소개
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-5-pathway-1
SQL 기본사항
- 원문 보기
- 관계형 데이터베이스의 기본사항과 SQL을 학습합니다.
Room 및 Flow 소개
- 원문 보기
- Room 라이브러리 사용
- Kotlin Flow 를 사용하여 데이터 변경 시 업데이트 되도록 합니다.
Use Room for data persistence
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-5-pathway-2
Room Kotlin API 사용 (동영상)
- Room Kotlin API 사용 및 테스트 방법에대한 소개 영상입니다. (2023.01.26 현재 한글 자막 없음, 7:17)
Room으로 데이터 유지(persist)하기
- 원문 보기
- Room 라이브러리를 사용하여 SQLite 데이터베이스를 만들고 ViewModel로 상호작용하는 방법을 배웁니다.
- Room의 세 가지 주요 구성요소 (Data entities, DAOs, Database class)를 구현합니다.
- 데이터베이스에 데이터를 insert합니다.
Room을 사용하여 데이터 읽기 및 업데이트하기
- 원문 보기
- 데이터베이스의 데이터 목록/세부 정보를 읽고 표시하고, 데이터를 update/delete 합니다.
Repository Pattern
- 2023.01.27 현재 진행중
Preferences DataStore
프로젝트: Forage 앱
Unit 6: WorkManager
WorkManager 작업 예약
- https://developer.android.com/courses/pathways/android-basics-kotlin-unit-6-pathway-1
- WorkManager 기본사항 소개 (동영상)
- WorkManager 구현 소개 (동영상)
- WorkManager를 사용한 백그라운드 작업
- 프로젝트: Water Me! 앱
끝까지 읽어 주셔서 감사합니다. ^^
'냐냐한 Dev Study > Android' 카테고리의 다른 글
[학습] 레모네이드 앱 프로젝트 (Android,Kotlin) (4) | 2023.01.10 |
---|---|
[학습] 주사위 굴리기 Android 앱 만들기 (Kotlin) (0) | 2023.01.09 |
[학습] 생일 축하 메세지 표시하는 간단 Android 앱 만들기 (Kotlin) (0) | 2023.01.06 |
[학습] Kotlin으로 Hello World + 생일 축하 메세지 작성 (0) | 2023.01.05 |
안드로이드 간단 시계(날짜/시간) 만들기 (Java) (0) | 2022.12.27 |