-
Notifications
You must be signed in to change notification settings - Fork 4
๐ Daily Scrum
Mudol2 edited this page Nov 21, 2022
·
58 revisions
-
์์ด๋์ด ํ์ โ ์ผ์ธ ๋ฅผ ํ์ฉํ ์ผ๊ธฐ์ฅ ์ฑ
-
Feature List ์์ฑ ๋ฐ ์์ ์๊ฐ ์์
-> Feature List
-
Project Name ๊ณ ๋ฏผ (๋ฏธ์๋ฃ)
- clip
- day
- shorts
- stamp
- Project Name(์ฑ ์ด๋ฆ) ์ ํ๊ธฐ
- Github Repository ์์ฑ
- wiki ์ ๋ฆฌ
- project ์์ฑ
- ๊ทธ๋ผ์ด๋ ๋ฃฐ ์ ํ๊ธฐ
- ์ปจ๋ฒค์ ์ ํ๊ธฐ
- ๊ฐ๋ฐ ํ๊ฒฝ ํต์ผ
- ๊ธฐ๋ฅ์ , ๊ธฐ์ ์ feature list ๋ง๋ฌด๋ฆฌ
- ํ๋ก์ ํธ ์ด๋ฆ ์ ํ๊ธฐ -> DailyFilm
- ๊ทธ๋ผ์ด๋ ๋ฃฐ ์์ฑ
- ์ฝ๋ ์ปจ๋ฒค์ ์์ฑ
- Git ์ปจ๋ฒค์ ์์ฑ
- Github Projects, Labels, Milestone ์ค์
- ํ๋ก์ ํธ ์์ฑ ๋ฐ gradle ์์กด์ฑ ์ถ๊ฐ
- PR๋ก Issue Resolve ์ฒ๋ฆฌ
- Figma ๋ณด์ถฉ
- ๋ฉํ ๋๊ณผ ํ์
- ๋ฉํ ๋ ํผ๋๋ฐฑ ๋ฐ์ ํ์ ํ๋ก์ ํธ ๋ณด์ถฉ
- ๋ก๊ทธ์ธ ํ๋ฉด (๊ตฌ๊ธ ๋ก๊ทธ์ธ)
- ์์ ์
๋ก๋ ํ๋ฉด์ ๋ํ ๊ณ ์ฐฐ
- ์ผ๋ฐ์ ์ธ ์ ๋ก๋์ฒ๋ผ ๊ฐค๋ฌ๋ฆฌ์์ ์ ํํ๊ธฐ
- ์ธ์คํ๊ทธ๋จ์ฒ๋ผ ์ ํํ ์์์ ๋ณด์ฌ์ฃผ๋ฉด์ ๊ณ ๋ฅด๊ธฐ โ
- ์์ ํธ์ง ํ๋ฉด
- ์ ์ฒด ๊ธธ์ด๊ฐ 5์ด์ธ ๊ฑด ๊ณ ์ , ์ฌ๋ผ์ด๋๋ฅผ ์์ง์ฌ ์์ ์ง์ ๋ง ๋ณ๊ฒฝํ๊ฒ ํ๊ธฐ
- ๋ด์ฉ ์์ฑ ํ๋ฉด์ ๋ํ ๊ณ ์ฐฐ
- ๋ฐฐ๊ฒฝ์ ์์์ด ์ฌ์๋๊ณ ์๊ณ ๊ทธ ์์ ๋ด์ฉ์ ์ ๊ธฐ 1๏ธโฃ
- ์๋จ์ ์์์ด ๋ณด์ด๊ณ ํ๋จ์ ๋ด์ฉ์ ์ ๊ธฐ 2๏ธโฃ
-
๋ฉํ ๋ ์๋ฃ
-
์์ธ ๋์์ ๋ณด๊ธฐ ํ๋ฉด
- viewPager๋ก ๊ตฌ์ฑ
-
Activity vs Fragment
-
๋ฆฌ์์ค๊ฐ ๋ฌด๊ฒ๊ณ , ๋์์ ํฌ๊ธฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ํด์ Fragment ๊ตฌ์ฑ ๋ณด๋ค๋ Activity๋ก ํ๋๊ฑธ ์ถ์ฒ
-> ์ข ๋ฃ๋ ์์์ด ๋ช ํํ๋ฏ๋ก, ๋์์ ์์ ์ข ๋ฃ ๊ด๋ จ ์ฒ๋ฆฌ๊ฐ ๊ฐํธํ ๋๋
-
-
๋์์ ๋ถ๋ฌ์ค๊ธฐ
- ๋์์ ์ต์ ํ์์ ์๊ฐ์ด ํ์ํ ๊ฒ์ผ๋ก ์์
-
๋์์ ํธ์ง
-
๋์์ ๊ธฐ๋ณธ ๊ฐ๋ (์ ๊ณต๋ถ ํ์)
- iframe
- decoding
-
์ฌํ ๊ธฐ์ (์ฐธ๊ณ )
- ๋คํธ์ํฌ ๋๋ฆด๊ฒฝ์ฐ ์ ํ์ง๋ก ์คํธ๋ฆฌ๋ฐ
-
UI Kit
- ํฐ ํ
- ์บ๋ฆฐ๋ : ์คํ, ์ฌํ
- ์์ : ๋ฌดํ, ๋ํ
- week1 ๋ถ๋ด ์ฌํญ
- ๊ฐ ํํธ๋ณ ํ์ ํ ๋ด์ฉ ์ ๋ฆฌ ํ ๊ธ์์ผ ์คํฌ๋ผ ์ ๊ณต์
- ๊ธ์ผ ๋
ผ์ ๋ ๋ถ๋ด๊ธฐ๋ฅ
- Firebase ๋ก๊ทธ์ธ
- ๊ธฐ๋ณธ ํ๋ฉด ํ ๊ตฌ์ฑ
- DB ๊ตฌ์กฐ ์ค๊ณ
- ์ถ๊ฐ ๋
ผ์ ํ์ ์ฌํญ
- ๋ก๊ทธ์ธ ํ์ด์ง ํ์ ์ ๋ฌด
- ํํธ๋ณ ํ์ ์งํ ํ ์คํ 6์์ ๋ด์ฉ ์ค๊ฐ ๊ณต์
- ์ค์ ์คํฌ๋ผ์, MVVM ํจํด ๊ด๋ จ Base ๋ด์ฉ ๋ ผ์
1. Base, Hilt, Application ๋ ผ์ ๋ฐ ์ ํ
- Base ์์ฑ ๋ฐ ์ ์ฉ
- Hilt Application ํ์ผ ์์
- registerActivityLifecycleCallbacks ์ถ๊ฐ๋ฅผ ํตํ Logging
2. ์์ ์ Fork
3. ๊ธ์ผ ์์ ๊ณํ ๊ณต์
-
์์
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐธ๊ณ
- MediaStore & ContentResolver ํ์ฉํ ๊ฐค๋ฌ๋ฆฌ ๋ด ๋น๋์ค ๋ถ๋ฌ์ค๊ธฐ
- ์๋จ ์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฌ์์ ๋ํ ๊ณ ์ฐฐ
-
์บ๋ฆฐ๋
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐธ๊ณ (๋ฉํ ๋ ์ถ์ฒ)
- ViewPager2 + RecyclerView or CustomView ํ์ฉํ์ฌ ์บ๋ฆฐ๋ ๊ตฌํ
- RecyclerView๋ก ๋จผ์ ๊ตฌํํ ํ ์ฑ๋ฅ์ ๋ฌธ์ ๋ฐ์์ CustomView๋ก ๊ตฌํํ์ฌ ๋น๊ต
- ๊ธฐํ๊ณต์ ๋ฐํ ์ ๋ชจ์ ๋ฐํ
- ํผ๋๋ฐฑ ํ ์์ , ์์ ์ง๋ฌธ ๋์ถ
- ํ๊ณ (๋ค์์ฃผ ๊ณํ)
- ์ค๊ณ ๊ณต์ ๋ชจ์ ๋ฐํ ์งํ (์ฌํ)
- ํผ๋๋ฐฑ ์งํ
- google-service.json hide ์ฒ๋ฆฌ ํ์ (+ API ํค ์ฌ๋ฐ๊ธ)
- ์บ ํผ๋ค ํผ๋๋ฐฑ ์ฌํญ
- ๋จ์ํ ๊ธฐ์ ๋์ด๋ณด๋ค ๊ฐ ๊ธฐ์ ๋ค์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ๋ช ์ํ๋ ๊ฒ์ด ๋ ์ข์ ๋ณด์ธ๋ค
- ์๋ ๋ถ์บ ์ ์บ๋ฆฐ๋ ์ปค์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํด๋ ์ข์ ๊ฒ ๊ฐ๋ค
- ์์ด๋์ด ๋ฉ์ง๋ค
- ์ง๋ฌธ ๋ด์ฉ
- encoding ์ด๋ ์์ถ์ ๋ํด์ ๊ณ ๋ คํ๊ณ ์๋์?
- ์ปค์คํ ์บ๋ฆฐ๋๋ก ๋ง๋ค ๊ฒฝ์ฐ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ค ๊ฑด๊ฐ์?
- ์ด๋ฏธ์ง ํน์ ๊ธด ์์์ด ์๋ 5์ด๋ก ์ ํ์ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
-
๋ํ
- ์ข์ ์ : ์๊ฒฌ ํต์ผ์ด ๋น ๋ฅด๊ฒ ๋์๊ณ , Ground Rule์ ์ ํ๋ ๋ฐ์ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์๋ค.
- ์์ฌ์ด ์ : ์ค๊ณ ๋จ๊ณ์์ ์์ฑํ ๋ฌธ์ ๋์ด ์ด๋ป๊ฒ ๋ณด๋ฉด ๋ถ์กฑํ๋ค๊ณ ๋ณผ ์๋ ์๋ ๊ฒ ๊ฐ์ง๋ง(UML ์์ฑ ๋ฑ), ๋ง์คํฐ ๋์ ์กฐ์ธ์ ๋ค์ด๋ณด๋ ์ ํ์ฌํญ์ธ ๊ฒ ๊ฐ์์ ์ฌ์ค ํฌ๊ฒ ์์ฝ์ง๋ ์๋ค.
- ๊ฐ์ ํ ์ : Github์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๊ฑฐ์ ์ฒ์ ์ฌ์ฉํด๋ณด๋ ๊ฒ์ด๋ผ ์์ง์ Issue ์์ฑ ๋ฑ์ ๋ํด ์๋ จ๋๊ฐ ๋จ์ด์ง๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ด๊ฒ๋ ์๊ฐ์ด ์ง๋๋ฉด ๊ธ๋ฐฉ ์ต์ํด์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
-
๋ฌดํ
- ์ข์ ์ : ์ ์ ํ๋ฉด์๋ก, ํต์ฌ ๊ธฐ๋ฅ์ ์ง์ค ํ ์์๊ณ ๊ธฐํ์ด ์ข๋ค.
- ์์ฌ์ด ์ : ๊ธฐ๋ฅ์ ๋ํ ์ ์ฉ ๊ธฐ์ ์ ๋ํ ์ดํด๊ฐ ์์ง ๋ถ์กฑํจ
- ๊ฐ์ ํ ์ : ๊ธฐ๋ฅ์ ๋ํ ํ์ํ ๊ธฐ์ ์ ๋ ํ์ตํ๋ ์๊ฐ์ ์ฃผ๋ง์ ๊ฐ์ ธ์ ๋ณด์ถฉํ๊ธฐ
-
์ฌํ
- ์ข์ ์ : ์ฃผ์ ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ ํ์๊ณ , ์๊ฒฌ ์ถฉ๋ ์์ด ์งํ๋์๋ค.
- ์์ฌ์ด ์ :
- Figma ํ์ฉ๋ฒ์ ์ ๋ชฐ๋ผ ์๊ฐํ ๋๋๋๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ํ๋ค์๋ค.
- ์ฒ์ ํด๋ณด๋ ๊ตฌํ์ด ๋ง์ ์์ ์์ ์๊ฐ์ ๊ณ์ฐํ๊ธฐ ํ๋ค์๋ค.
- ๊ฐ์ ํ ์ : ์ฒ์ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ธฐ์ ๋ค์ ๋ํ ํ์ต์ด ํ์ํ๋ค. (ํนํ ์์)
-
์คํ
- ์ข์ ์ : ๊ธฐํ์ด ๋น ๋ฅด๊ณ ์๊ฒฌ ์ถฉ๋ ์์ด ์ ๋ฌด ๋ถ๋ด์ด ๋น ๋ฅด๋ค.
- ์์ฌ์ด ์ : ํต์ฌ ๊ธฐ๋ฅ์ ๋ํด ํ์คํ ์ผ์ ๊ด๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค. ( ์ฒ์ ๋ค๋ฃจ๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ )
- ๊ฐ์ ํ ์ : ํต์ฌ ๊ธฐ๋ฅ์ ๋ํ ํ์ต๊ณผ ๋์ฑ ์ธ์ธํ ๊ณํ ์ธ์ฐ๊ธฐ, ๋ชจ๋ ํ์ต ๋ด์ฉ ์ ๋ณด ๊ณต์ !!
- Notion ํ์๋ผ์ธ์ ์์ฑ
- ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
- 11-14 ~ 11-15 Infinite ViewPager ๊ตฌํ
- 11-15 ~ 11-16 Calendar + RecyclerView ๊ตฌํ
- 11-16 ~ 11-18 CustomView Calendar ๊ตฌํ ํ RecyclerView ํ์๊ณผ ๋น๊ต
- 11-14 ~ 11-15 Custom Gallery ๊ตฌํ
- 11-15 ~ 11-16 Custom Gallery์์ ์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ
- 11-16 ~ 11-17 Firebase์ ์์ ์ ๋ก๋
- ํผ๊ทธ๋ง ํ๋กํ ํ์ ๋งํฌ ์ถ๊ฐ
- ๋ด์ฉ ๋ณด์ถฉ
- Custom gallery ๊ตฌํ
- ContentResolver, Media Store๋ฅผ ํตํ ๊ฐค๋ฌ๋ฆฌ ๋ด์ ๋น๋์ค data Load
- Paging ์ ์ฉ
- ์๋๋ก์ด๋ ๋ฒ์ ์ ๋ฐ๋ฅธ Permission ๋ถ๊ธฐ
- Infinite ViewPager2 ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌดํ ์คํฌ๋กค ํ์ธ
- Fragment Position ์ ์ฉ
- ViewPager2 Fragment์ Calendar ๊ฐ์ฒด ์ ๋ฌ
- ์บ๋ฆฐ๋์ ํ์ํ ๋ ์ง Log ์ถ๋ ฅ
- ์์
- Custom Gallery Item ํด๋ฆญ์ ์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฌ์
- ์บ๋ฆฐ๋
- Recyclerview Item ์ ๋ฌํ์ฌ view ๊ตฌ์ฑ
- RecyclerView ์๋ณ ๋ฌ๋ ฅ ๊ตฌํ
- x์, ์ฃผ(์ผ~ํ ) ์ ๋ํ View ๋ Activity ๋ก ๋ถ๋ฆฌ
- ์์ดํ ํด๋ฆญ ์ด๋ฒคํธ ( ์ฌ์ง, ๋ ์ง )
- ์ ๋ก๋ ๋ฒํผ ํด๋ฆญ ์ ์ ํ๋ ๋ฐ์ดํฐ ๊ฐ์ฒด ๋ณด๋ด๊ธฐ
- ์ฌ์ง Glide๋ก ๋ถ๋ฌ์ค๊ธฐ
ViewPager2 ์ด๊ธฐํ ์ currentItem ์ ๋๋ฉ์ด์ ์ค์
setCurrentItem(int, boolean)
// smoothScroll false ์ผ ๋ ์๋ position ๋ถํฐ ์ด๊ธฐํ
if (!smoothScroll) {
mRecyclerView.scrollToPosition(item);
return;
}
// smoothScoll true ์ผ ๋, default ๊ฐ์ธ 3 page ์ ๋ถํฐ ์๋ position ์ผ๋ก
// ์คํฌ๋กค ๋๋ ์ ๋๋ฉ์ด์
if (Math.abs(item - previousItem
) > 3) {
mRecyclerView.scrollToPosition(item > previousItem ? item - 3 : item + 3);
// TODO(b/114361680): call smoothScrollToPosition synchronously (blocked by b/114019007)
mRecyclerView.post(new SmoothScrollToPosition(item, mRecyclerView));
} else {
mRecyclerView.smoothScrollToPosition(item);
}
DateModel list ๋ฅผ ์ด๊ธฐํ ํ๋ ๋ฐฉ๋ฒ
private val _dateFlow = MutableStateFlow(initialDateList())
val dateFlow: StateFlow<List<DateModel>> = _dateFlow.asStateFlow()
private fun initialDateList(): List<DateModel> {...}
- Shared vs State
- Shared์ผ ๋ ์ ์๋๋?
- emit ์์ ์ ๋ฌธ์
- ViewModel init ์์ ์ emitํ๊ณ ๊ทธ ์ดํ collect ๋์ด์ ํ๋ฉด์ ๋์ฌ ์๊ฐ ์๋ค.
- Custom Gallery ๊ตฌํ
- GridLayout์ผ๋ก ๋๋ฐ์ด์ค ๋ด์ ์์ ๋ชฉ๋ก ์ถ๋ ฅ
- MediaStore + ContentResolver ํ์ฉ
- Flow + Paging ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ ๋ชฉ๋ก Load
- CoordinatorLayout์ผ๋ก ๋์ UI ๊ตฌ์ฑ (ํ๋จ์ผ๋ก ์คํฌ๋กค ์, ์์ ์๋ก ๋ฐ๊ธฐ)
- ์์ ์ ํ ์ ์๋จ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฌ์
- ExoPlayer ํ์ฉ
- ์ฒซ๋ฒ์งธ ์์ ์๋ ์ฌ์
- ์์ ๋ฐ๋ณต ์ฌ์
- ExoPlayer ํ์ฉ
- GridLayout์ผ๋ก ๋๋ฐ์ด์ค ๋ด์ ์์ ๋ชฉ๋ก ์ถ๋ ฅ
- Paging ์๋ฆฌ ์ดํด
- Flow ์ดํด
- ์์ดํ ํด๋ฆญ์ UI ๋ณ๊ฒฝ (background, Text ์์ ๋ณ๊ฒฝ)
- ์ด์ ๋ฌ, ๋ค์ ๋ฌ ๋ ์ง UI ๋ค๋ฅด๊ฒ ํ์ & ํด๋ฆญ ๋ชปํ๋๋ก ๋ณ๊ฒฝ
- ์บ๋ฆฐ๋ ๋ณด์ฌ์ง๊ฒ ํ๊ณ ํด๋ฆญ ๋ชปํ๊ฒ ํ๊ธฐ
- ํ์ฌ ๋ฌ๋ก ๋์์ค๊ธฐ
- Date Picker ๋ก ์ ํด์ง ๋ ์ง๋ก ๋์ด๊ฐ๊ธฐ
- ์ ์ฒด์ ์ธ ์บ๋ฆฐ๋ UI ๋ค๋ฌ๊ธฐ
- Firestore ์์ ์ ๋ก๋
- Paging, Flow ํ์ต
- ์ปค์คํ ๊ฐค๋ฌ๋ฆฌ ์์ดํ ํด๋ฆญ์ ํด๋ฆญ๋ UI๋ก ๋ณ๊ฒฝ ๋ฐ ๋ค๋ฌ๊ธฐ
- ์ปค์คํ ๊ฐค๋ฌ๋ฆฌ ํ๋ฉด ๋ค๋ก๊ฐ๊ธฐ, ๋ค์ ์ถ๊ฐ
- ์๋ณ ์บ๋ฆฐ๋ ์คํฌ๋กค์ Focus ์๋ ์ง์
- ์บ๋ฆฐ๋ ๋์์ธ ๊ฐ์
- ์์ ์ ํ ํ Firebase ์ ๋ก๋
- ์์ ์ ํ์ ํด๋น Item clicked UI ์ถ๊ฐ
- ์๋จ์ ๋์ด๊ฐ๊ธฐ ๋ฐ ๋์๊ฐ๊ธฐ ๋ฒํผ ์ถ๊ฐ
- Launcher Activity โ LoginActivity๋ก ๋ณ๊ฒฝ
- ์บ๋ฆฐ๋ - ์์ Activity ์ฐ๊ฒฐํ๊ธฐ
- ๋ฐ๋ชจ ์์ ์ค๋น
- PPT ํ ํ๋ฆฟ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ธฐ