-
Notifications
You must be signed in to change notification settings - Fork 4
๐ Daily Scrum
-
์์ด๋์ด ํ์ โ ์ผ์ธ ๋ฅผ ํ์ฉํ ์ผ๊ธฐ์ฅ ์ฑ
-
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 ํ ํ๋ฆฟ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ธฐ
์บ๋ฆฐ๋
- Glide ์ด์ ํด๊ฒฐ
- ์์ดํ
๋์ด ๋ณ๊ฒฝ
- ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ๋์ ๋์ด ๋ถ์ฌ
- ํ ๋ฌ์ 5์ฃผ, 6์ฃผ ๊ตฌ๋ถํ์ฌ ๋ ์ง ๋์ด ๋ณ๊ฒฝ
- ์ปค์คํ DatePicker ๊ตฌํ
์์
- ์์ ์
๋ก๋ ํ๋ฉด ์ถ๊ฐ
- ๋ท ๋ฐฐ๊ฒฝ ์์ ์ฌ์
- ์ฌ์ฉ์ ํ ์คํธ ์์ฑ
- Firebase Realtime database ์ ๋ก๋
์บ๋ฆฐ๋
- Fragment, Activity ์ฝ๋ ์ ๋ฆฌ
- ์ค์ ์ธ๋ค์ผ ์ ์ฉ
์์
- ์์ ํธ์ง ํ๋ฉด ๊ตฌํ ์์
๊ณตํต
- collect ์ฝ๋๋ฅผ BindingAdapter๋ก ๊ฑท์ด๋ด๋ ๋ถ๋ถ ํํ๋๊ป ์กฐ์ธ๋ฃ๊ธฐ
๋ฐ์ดํฐ ๊ตฌ์กฐ ์์
- UID
- ๋
์์ผ (20220101 ํ์)
- ์์ URL
- ๋ด์ฉ ํ ์คํธ
- ๋
์์ผ (20220101 ํ์)
์บ๋ฆฐ๋
- ์ค์ ์ธ๋ค์ผ ์ ์ฉ
- ๋ค์ด๋ก๋ ๋ ์์ ์ฌ์ ๊ตฌํ
์์
- ์์ ํธ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฉ
- FFMpeg ํ์ต
์บ๋ฆฐ๋
-
Fragment, Activity ์ฝ๋ ์ ๋ฆฌ
-
ํ ๋ฌ์ ์์์ ์ ์ฒด ์ฌ์
-
์์ ์ฌ์ ํ๋ฉด์์ ์ค์์ดํ ์ ๋ค์๋ ์์ ์ฌ์
์์
-
๋ฆฌํฉํ ๋ง ๋ฐ ๋ํ ์ผ ๋ค๋ฌ๊ธฐ
- ์ ๋ก๋ ์๋ฃ ์ ๊น์ง ๋ก๋ฉํ๋ฉด ๋ณด์ฌ์ฃผ๊ธฐ
- ContentResolver ํํฐ๋งํ๊ธฐ (์ต์ 5์ด ์ด์ ์์ ๊ฐ์ ธ์ค๊ธฐ)
- Video ์ ํํ๋ฉด
- ๋น๋์ค item ์ ํ์ selected UI (ํด๋ฆญ๋ ํจ๊ณผ) ์ถ๊ฐ
- ๋ค์ ๋ฒํผ ๊ฐ์์ฑ ๊ฐ์
- ๋ง์ง๋ง ์๋ฃ ๋ฒํผ์ ์ธ์คํ์ฒ๋ผ ํ๋จ์ผ๋ก
- ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ ์ถ๊ฐ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ํด๋ฐ์ ํต์ผ์ฑ์๊ฒ UI ์์
- ๊ถํ ๊ฑฐ์ ์ ์ฒ๋ฆฌ?
- ๋ค์ ์กํฐ๋นํฐ ์ด ๋๋ง๋ค ๊ถํ ์์ฒญ
-
ํ์ต
- ์ฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ ๋์ ํ์ธ !!!!
- ์ฌ์ ์ฌ๋ผ์ด๋ ๋ฐ์ ์ธ๋ค์ผ ๋จ๋ ๊ตฌํ
- ๋์์ ํธ์ง ๊ตฌํ
- ํธ์ง ๋ ๋์์ ๋ด๋ถ ์ ์ฅ์ ์ ์ฅ
- FFmpeg for Android ํ์ต
- ์ฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ ๋์ ํ์ธ !!!!
์บ๋ฆฐ๋
- firebase ์ค์๊ฐ ์ ๋ฐ์ดํธ ๋ฆฌ์ค๋ ์ฒ๋ฆฌ
- fragment, activity ์ฝ๋ ์ ๋ฆฌ
์์
- ์์ ํธ์ง API ํธํ์ฑ ํด๊ฒฐ (์ ๊ทผ ๊ถํ)
- ์์ ์ ํ ํ๋ฉด
- ์ ํ๋ Item ์ํ๊ฐ ๋ณ๊ฒฝ
- Toolbar Collapse ์กฐ์
์บ๋ฆฐ๋
- firebase ์ค์๊ฐ ์ ๋ฐ์ดํธ ๋ฆฌ์ค๋ flow lifecycle ์ฒ๋ฆฌ
- Room ์ ์ฉ
- ํ ๋ฌ ์์ ์ ์ฒด ์ฌ์ ๊ตฌํ, ์์ ์ฌ์ ํ๋ฉด์์ ์ค์์ดํ ๊ตฌํ
์์
- ๋ค์ ๋ฒํผ ๊ฐ์์ฑ ๊ฐ์ ๋ฐ ํด๋ฐ ๊ด๋ จ ์
- ๋ด์ฉ ์์ฑ ํ๋ฉด ๋ฆฌํฉํ ๋ง
- ๊ธ์ ํฌ๊ธฐ ๋ณ๊ฒฝ
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์์์ด ๊ธ์ ํธ๋ํนํ๋๋ก ํ๊ธฐ
์บ๋ฆฐ๋
- ์ ์ฒด ์ฌ์ ๋ ์ง, ํ ์คํธ ๋ณ๊ฒฝ ๊ตฌํ
- ๋ฒ๋ฒ ๊ฑฐ๋ฆผ ํ์ ์ฒดํฌ
์์
- ์์ ์์ถ ๊ธฐ๋ฅ ๊ตฌํ
- ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
์บ๋ฆฐ๋
- ๋ฉํ ๋ง ํ ๋ฒ๋ฒ ๊ฑฐ๋ฆผ ํด๊ฒฐํด๋ณด๊ธฐ
- ํ ๋ฌ ๊ธฐ์ค ์์ ์ฌ์ ํ๋ฉด swipe ์ ์ฉ
์์
- ๋ด์ฉ ์์ฑ ํ๋ฉด ๊ฐ์ (SpanningString ์ ์ฉ)
๊ณตํต
- ๋ฉํ ๋ ๋ฏธํ (์คํ 4์)
์บ๋ฆฐ๋
- ์์ ์ฌ์ ํ๋ฉด Swipe ๊ธฐ๋ฅ ์ถ๊ฐ
- ํ ๋ฌ ์์ ์ ์ฒด Swipe
- RecyclerView ๊ณต์ Pool ์ฌ์ฉ ์๋
์์
- Video ์ ํํ๋ฉด UI ๊ฐ์
- ๋ด์ฉ ์์ฑํ๋ฉด(์ ๋ก๋ ํ๋ฉด) UI ๊ฐ์
์บ๋ฆฐ๋
- Room ์ ์ฉ
- RecyclerView ๊ณต์ Pool ๊ด๋ จ ํ์ต
์์
- ๋ด์ฉ ์์ฑํ๋ฉด ๊ฐ์ ๋ง๋ฌด๋ฆฌ
- ๊ถํ ๊ฑฐ์ ๋์ฒ๋ฐฉ์ ๊ณ ๋ คํด๋ณด๊ธฐ
๊ณตํต
- Android03 ํ๊ณผ ๋ฏธํ
์บ๋ฆฐ๋
- Room์ ์ด์ฉํ Caching (1๋ ๋จ์)
์์
- Permisson ์์ฒญ์ ๋ํ ํ์ต
์บ๋ฆฐ๋
- RecyclerView ๊ณต์ Pool ๊ด๋ จ ํ์ต
- ์๋ณ ์บ๋ฆฐ๋ ์ฑ๋ฅ ํฅ์
์์
- ๋จ์ ์์
์ฒ๋ฆฌ
- Permission ํ์์ ๋ฐ๋ฅธ Rationale ๊ตฌํ
- ๋ด์ฉ ์์ฑ ํ๋ฉด ๋ฒํผ ์์น ์ฎ๊ธฐ๊ธฐ
๊ณตํต
- ๋ฐ๋ชจ PPT
- ๋ฒ์ ์ ๋ฐ์ดํธ
- README.md ์์ฑ
week5 ์คํ๋ฆฐํธ ํ์ ๊ฒฐ๊ณผ
์บ๋ฆฐ๋
- ์ปค์คํ ๋ ์ด์์ ์บ๋ฆฐ๋ ๊ตฌํ ๋ฐ ์ฑ๋ฅ ๋น๊ต
- ์บ๋ฆฐ๋, ์์ ์ฌ์ ํ๋ฉด ๋์์ธ ๊ฐ์
์์
- ์์ ์
๋ก๋ ํ๋ก์ธ์ค ์ฝ๋ ์ ๋ฆฌ
- ์ปค์คํ ๊ฐค๋ฌ๋ฆฌ ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๋ก์ง Result ํด๋์ค ๋ํ ์์
๊ณตํต
- ์ด๋ ฅ์ ์์ฑ
- Firebase App Distribution
์บ๋ฆฐ๋
- ์ปค์คํ ๋ ์ด์์ ์บ๋ฆฐ๋ ๊ตฌํ ๋ฐ ์ฑ๋ฅ ๋น๊ต
- ์บ๋ฆฐ๋, ์์ ์ฌ์ ํ๋ฉด ๋์์ธ ๊ฐ์
์์
- ์์ ์
๋ก๋ ํ๋ก์ธ์ค ์ฝ๋ ์ ๋ฆฌ
- ์ปค์คํ ๊ฐค๋ฌ๋ฆฌ ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๋ก์ง Result ํด๋์ค ๋ํ ์์
- ๋ผ์ด๋ธ๋ผ๋ฆฌ ๋ด๋ถ ์์ค ๋ถ์
- ๋ด์ฉ ๋ณด๊ธฐ ํ๋ฉด ๊ฐ์ ์์
- FlowChart ์ถ๊ฐํ๊ธฐ @์ฌํ ๊น
- Companion const ์์๋ค private๋ก ๋ณ๊ฒฝํ์ฌ ๊ฐ๊ฐ ์กํฐ๋นํฐ or ํ๋๊ทธ๋จผํธ์ ๋ง๋ค์ด๋๊ธฐ
- View์ ๊ด๊ณ์๋ ๋ก์ง๋ค (๊ณ์ฐํ๋ ๊ฒ๋ค) ViewModel์ ๋ฉ์๋๋ก ์ฎ๊ฒจ์ ํธ์ถํ๋ ํํ๋ก ๋ณ๊ฒฝํ๊ธฐ
-
showKeyboard
util ๋ก ๋นผ๊ธฐ - ValueAnimator duration ์์ ๊ฐ string resource ์ ๋ฆฌ
- binding nullํ์ง ์์๋ ์ ๋์๊ฐ (๊ทธ๋์ ํํ๋์ ๋ฐ๋ก ์ฒ๋ฆฌ ์ ํ๋ค๊ณ ํจ) โ ViewHolder ์ฌ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ
์บ๋ฆฐ๋
- CustomCalendar ๋ทฐ ๊ณ์ธต ์ ๊ฑฐ ์์
- CalendarCustomView - viewGroup ๊ตฌํ
- DateCustomView - textView ๊ตฌํ
- ImageCustomView - ImageView ๊ตฌํ
์์
- Paging ์ฌํ ํ์ต
- LoadState
- ๋ด์ฉ ๋ณด๊ธฐ ๋ฐ ์์ฑ ํ๋ฉด ๊ฐ์
- ReplacementSpan
- LineBackgroundSpan
๊ณตํต
- Flowchart ์์ฑ
์บ๋ฆฐ๋
- transition ์ค์
- alpha ๊ฐ ๋ณ๊ฒฝ, ๋ฆฌ์ค๋ ๋ฌ๊ธฐ
์์
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ต
- ๋ด์ฉ ๋ณด๊ธฐ ํ๋ฉด ๊ฐ์ ๋ง๋ฌด๋ฆฌ
- ๋ด์ฉ ์จ๊ธฐ๊ธฐ ๋ฒํผ ์ถ๊ฐ
- ์์ ๋ก๋ฉ๊น์ง Player์ ์ธ๋ค์ผ ๋ณด์ฌ์ฃผ๊ธฐ
๊ณตํต
- ์ฑ ๋ฐฐํฌ
- ์ต์ข ๋ฐํ ๊ณํ ํ์
์บ๋ฆฐ๋
- ๊ธฐ์ ์์ ์บ๋ฆฐ๋ ํํธ ์๋ฃ ์ ์
์์
- ๋ฐํ ๋ด์ฉ ๊ณํ
- ์ฑ๋ฅ ๊ฐ์ ์ ํ์
- ์์ ์์ถ ๋น๋์ค์ฝ๋ฑ ๋ณ๊ฒฝ
์บ๋ฆฐ๋
- ๋ฒ๊ทธ ์์
์์
- PPT ์์ ๋ถ๋ถ ์ถ๊ฐ
- ๋์์ ๊ด๋ จ ์ฉ์ด ๊ฐ๋ ์ ๋ฆฌ
๊ณตํต
- ์์ฐ ์์ ์ ์
- ๊ธฐ์ ์์ ์ ์