Season 1 : 23.10 ~ 23.12
Season 2 : 24.02 ~ 24.05
Season 3 : 24.08 ~ 24.11
Season 4 : 24.12 ~ 진행중
👑박동민 | 조관희 | 이태희 | 김상호 | 박강희 |
이번 4기에서는 특정 개념을 공부하는 것이 아닌, 본인이 공부한 내용을 서로에게 공유하는 방식으로 진행할 예정이에요.
주제는 Android, Kotlin, CS 상관없어요. 단, ANDROID 팀원이 모였다보니 Spring과 같이 전혀 상관없는 분야는 안돼요.
2주의 기간동안 자료를 조사하고, 발표 자료를 만든 후, 발표를 진행해요.
그 후 나머지 사람들은 들으면서 궁금했던 부분을 질문하고 답변하는 시간을 가지며 서로의 지식을 공유해요.
매주 스터디를 하되, 본인의 발표는 격주로 진행하게 됩니다. 발표는 최소 10분이상 해야해요.
3기 과제 목차
매주차 : Effective Kotlin item 5개 읽고 정리해오기2기 과제 목차
1주차 : MVI 공부해오기
2주차 ~ 3주차 : MVI + orbit을 적용한 Compose 프로젝트 클론코딩
4주차 : DO SOPT Android 1주차 Migration to Compose + MVI
5주차 : DO SOPT Android 2주차 Migration to Compose + MVI
6주차 : DO SOPT Android 3주차 Migration to Compose + MVI
7주차 : DO SOPT Android 4주차 Migration to Compose + MVI
1기 과제 목차
1주차 : 프로필 카드 구현
2주차 : 카탈로그 앱 구현
3주차 : 만족도 조사 앱 구현
4주차 : 만족도 조사 앱 with 애니메이션
6주차 : rememver vs LivdData
진행 상황 | 진행 전 | 진행 중 | 완료 | 실패 | |
👨💻 | 🔥 | 🙆♂️ | 🙅♀️ |
WEEK 1
12/16 |
관희 : kapt -> ksp / 강희 : Hilt | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | 강희 | |||
🙆♂️ | 🙆♂️ | 🙆♂️ | 1월에 만나요~ 👋 | 🙆♂️ | ||||
WEEK 2
12/23 |
동민 / 태희 공부내용 발표 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | 강희 | |||
👨💻 | 👨💻 | 👨💻 | 1월에 만나요~ 👋 | 👨💻 |
3기 커리큘럼
WEEK 1
8/12 ~ 8/18 |
Effective Kotlin 1 ~ 5 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙅♀️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 2
8/19 ~ 8/25 |
Effective Kotlin 6 ~ 10 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 3
8/26 ~ 9/1 |
Effective Kotlin 11 ~ 15 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 4
9/2 ~ 9/8 |
Effective Kotlin 16 ~ 20 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 5
9/9 ~ 9/15 |
Effective Kotlin 21 ~ 25 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 6
9/16 ~ 9/22 |
Effective Kotlin 26 ~ 30 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 7
9/23 ~ 10/3 |
Effective Kotlin 31 ~ 35 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 8
10/4 ~ 10/10 |
Effective Kotlin 36 ~ 39 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙅♀️ | |||||
WEEK 9
10/11 ~ 10/17 |
Effective Kotlin 40 ~ 44 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
시험기간이슈로 이번주는 쉬어가요~ 👨🎓 | ||||||||
WEEK 10
10/25 ~ 10/31 |
Effective Kotlin 45 ~ 48 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||
WEEK 11
11/1 ~ 11/7 |
Effective Kotlin 49 ~ 52 공부 후 정리 | |||||||
성취도 | 동민 | 관희 | 태희 | 상호 | ||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙅♀️ | |||||
< 포항항 3기 스터디 종료!! >
여기까지 함께하신 모든분들의 열정에 박수를 보냅니다 👏 |
2기 커리큘럼
WEEK 1
2/14 ~ 2/23 |
MVI란 무엇일까? 어떻게 쓰고, 왜 쓰는지 공부해오기 | |||||||
과제 | 대면 발표 자료 준비 및 발표 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ?? | |||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | ?? | ||||
WEEK 2 ~ WEEK 3
2/24 ~ 3/5 |
Compose + orbit 프로젝트 클론코딩하기 | |||||||
과제 | 야무지게 구현해오기 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | 태희 | |||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | 🙅♀️ | ||||
WEEK 4
3/6 ~ 3/12 |
SOPT 1주차 내용 적용하여 Compose + MVI로 코드구현 | |||||||
과제 | 야무지게 구현해오기 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | 태희 | |||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | ||||
WEEK 5
3/13 ~ 3/19 |
SOPT 2주차 내용 적용하여 Compose + MVI로 코드구현 | |||||||
과제 | 야무지게 구현해오기 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | 태희 | |||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | ||||
WEEK 6
3/20 ~ 3/26 |
SOPT 3주차 내용 적용하여 Compose + MVI로 코드구현 | |||||||
과제 | 야무지게 구현해오기 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | 태희 | |||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙅♀️ | 🙆♂️ | ||||
< 중간고사 대비기간>
2주 동안 스터디도 쉬어갑니다 👋🏻 |
||||||||
WEEK 7
4/10 ~ 4/16 |
SOPT 4주차 내용 적용하여 Compose + MVI로 코드구현 | |||||||
과제 | 야무지게 구현해오기 | |||||||
성취도 | 동민 | 강희 | 관희 | 유리 | 태희 | |||
🙅♀️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | ||||
< 포항항 2기 스터디 종료!! >
여기까지 함께하신 모든분들의 열정에 박수를 보냅니다 👏 |
1기 커리큘럼
WEEK 1
10/11 ~ 10/19 |
Compose의 기본 컴포넌트들 Text, Button, Modifier, Surface, Box, Row, Column, BoxWithConstrints, Image, Network Image |
|||||||||
과제 | 프로필 카드 구현 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||||
< 중간고사 대비기간>
1주 동안 스터디도 쉬어갑니다 👋🏻 |
||||||||||
WEEK 2
10/26 ~ 11/02 |
Recomposition이란? Checkbox, TextField, TopAppBar, Slot API, Scaffold 사용법 |
|||||||||
과제 | 카탈로그 앱 구현하기 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||||
WEEK 3
11/3 ~ 11/9 |
Canvas, Dialog, Custom Dialog DropDownMenu, SnackBakr, BottomAppBar |
|||||||||
과제 | 만족도 조사 앱 구현하기 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | |||||||
WEEK 4
11/10 ~ 11/16 |
애니메이션 State와 State Hoisting |
|||||||||
과제 | 만족도 조사 앱 with 애니메이션 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙅♀️ | 🙆♂️ | 🙆♂️ | |||||||
WEEK 5
11/17 ~ 11/23 |
부수효과 1 부수효과 2 |
|||||||||
과제 | 합동세미나를 위해 쉬어갑니다! | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||||
WEEK 6
11/24 ~ 11/30 |
ViewModel, LiveData 연동 CompositionLocal, Theme |
|||||||||
과제 | Jetpack Compose에서 LiveData or Flow를 왜 remember가 있는데 쓸까? | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🙆♂️ | 🙆♂️ | 🙆♂️ | 🙆♂️ | |||||||
WEEK 7
12/01 ~ 12/07 |
네비게이션 DI(의존성 주입), Unidirectional Data Flow |
|||||||||
과제 | 앱잼 야무지게 하고 단톡방에 자랑하기!! | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
🔥 | 🔥 | 🔥 | 🔥 | |||||||
< 스터디 종료!! >
여기까지 함께하신 모든분들의 열정에 박수를 보냅니다 👏 |
||||||||||
도전과제
자율 수행 |
인트로, 수명주기 렌더링 단계, Stability |
|||||||||
과제 | 미정 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
👨💻 | 👩💻 | 👨💻 | 👩💻 | |||||||
심화과제
자율 수행 |
성능 최적화 실습 | |||||||||
과제 | 미정 | |||||||||
성취도 | 동민 | 강희 | 관희 | 유리 | ||||||
👨💻 | 👩💻 | 👨💻 | 👩💻 | |||||||
잡다한 내용들
동민 : MVI란 무엇일까?
강희 : 나도한다. MVI
관희 : MVI
유리 : MVI에 대해서
Orbit MVI공부해오기(github)
MVI Project 클론 코딩 하기
koin -> Hilt 마이그레이션은 자유!
예시는 멀티모듈을 사용했지만, 싱글모듈로 구현해도 됩니다
조관희의 꿀팁공유
- intent Deep Dive with Orbit DSL
- reduce Deep Dive with Orbit DSL
- postSideEffect Deep Dive with Orbit DSL
이것만 하면 아쉽겠죠!
기존 코드들 야무지게 정리하고 MVI스럽게!!!
레퍼런스 많이많이 찾아보고 오깅~
링크에 있는 api를 활용하기.
서버통신의 경우 방법은 자유입니다. ex) enqueue, hilt, repository pattern 등...
단, mvi스럽게 짜는 것이 과제입니다!
조건
위 프로필 카드 클론코딩하기
이미지는 coil 라이브러리 활용하여 이미지 로딩하기!
default.mp4
구현 조건
- Card 레이아웃을 활용해서 화면 구성하기
- item 객체를 만들고, 객체 배열을 만들기
- LazyColumn과 item 배열을 활용하여 영상과 비슷한 카탈로그 만들기~
- 이미지는 coil 라이브러리를 활용해서!!!
화면에 들어가는 내용은 자유! 단, 최소 이미지와 텍스트는 들어가야함!
week3HomeWork.mp4
구현 조건
- Canvas를 활용하여 custom ProgrgrassBar 구현
- Dialog 사용
- DropDownMenu 구현
- 해당 기술을 사용했다면 나머진 자유!!
4.compose.mp4
구현 조건
- 3주차 과제를 활용하여 Dailog가 아닌 메인화면에 그대로 나타나게 할 것
- 별점을 선택할 시 별이 좌측에서 우측으로 하나씩 나타나야하고, CustomProgressBar도 실시간으로 조금씩 변경되어야함.
- 별점을 5점에서 1점으로 변경하였을 때 우측에서 좌측으로 하나씩 줄어들어야한다. 당연히 점수도 정상적으로 반영돼야겠죠?
Compose에는 remember가 있는데 왜 Flow랑 LiveData를 쓸까?
확실한 근거와 함께 조사해오기!!
- State를 저장하는 방법 - 공식문서
- State를 저장하는 방법 SaveStateHandle
- collectAsStateWithLifecycle에 관하여
- hiltViewModel() vs viewModel()
- CompositionLocal을 이해하고 써보자