Skip to content

📆 Daily Scrum

DongHyeon Park edited this page Dec 15, 2022 · 58 revisions

Week1

2022-11-07 Day01

오늘 한 일

  • 아이디어 회의 → 쇼츠를 활용한 일기장 앱

  • Feature List 작성 및 소요 시간 예상

    -> Feature List

  • Figma 화면 구성

    image
  • Project Name 고민 (미완료)

    • clip
    • day
    • shorts
    • stamp

내일 할 일

  • Project Name(앱 이름) 정하기
  • Github Repository 생성
    • wiki 정리
    • project 생성
  • 그라운드 룰 정하기
  • 컨벤션 정하기
  • 개발 환경 통일
  • 기능적, 기술적 feature list 마무리

2022-11-08 Day02

오늘 한 일

  • 프로젝트 이름 정하기 -> DailyFilm
  • 그라운드 룰 작성
  • 코드 컨벤션 작성
  • Git 컨벤션 작성
  • Github Projects, Labels, Milestone 설정
  • 프로젝트 생성 및 gradle 의존성 추가
  • PR로 Issue Resolve 처리

내일 할 일

  • Figma 보충
  • 멘토님과 회의
  • 멘토님 피드백 받은 후에 프로젝트 보충

2022-11-09 Day03

오늘 한 일

Figma 보충

image

  • 로그인 화면 (구글 로그인)
  • 영상 업로드 화면에 대한 고찰
    • 일반적인 업로드처럼 갤러리에서 선택하기
    • 인스타그램처럼 선택한 영상을 보여주면서 고르기 ✅
  • 영상 편집 화면
    • 전체 길이가 5초인 건 고정, 슬라이드를 움직여 시작 지점만 변경하게 하기
  • 내용 작성 화면에 대한 고찰
    • 배경에 영상이 재생되고 있고 그 위에 내용을 적기 1️⃣
    • 상단에 영상이 보이고 하단에 내용을 적기 2️⃣

멘토님 미팅

미팅 종료 후 업무 분담 및 논의사항

  • 큰 틀
    • 캘린더 : 준형, 재현
    • 영상 : 무현, 동현
  • week1 분담 사항
    • 각 파트별 회의 후 내용 정리 후 금요일 스크럼 시 공유
  • 금일 논의 된 분담기능
    • Firebase 로그인
    • 기본 화면 틀 구성
    • DB 구조 설계
  • 추가 논의 필요 사항
    • 로그인 페이지 필요 유무

내일 할 일

  • 파트별 회의 진행 후 오후 6시에 내용 중간 공유
  • 오전 스크럼시, MVVM 패턴 관련 Base 내용 논의

2022-11-10 Day04

오늘 한 일

1. Base, Hilt, Application 논의 및 셋팅

  • Base 생성 및 적용
  • Hilt Application 파일 수정
    • registerActivityLifecycleCallbacks 추가를 통한 Logging

2. 작업소 Fork

3. 금일 작업계획 공유

  • 영상

    • 외부 라이브러리 참고
    • MediaStore & ContentResolver 활용한 갤러리 내 비디오 불러오기
    • 상단 영상 미리보기 재생에 대한 고찰
  • 캘린더

    • 외부 라이브러리 참고 (멘토님 추천)
    • ViewPager2 + RecyclerView or CustomView 활용하여 캘린더 구현
    • RecyclerView로 먼저 구현한 후 성능상 문제 발생시 CustomView로 구현하여 비교

내일 할 일

  • 기획공유 발표 전 모의 발표
    • 피드백 후 수정, 예상 질문 도출
  • 회고 (다음주 계획)

2022-11-11 Day05

오늘 한 일

1. 모의 발표

  • 설계 공유 모의 발표 진행 (재현)
  • 피드백 진행

2. Firebase Auth - Google 로그인

  • google-service.json hide 처리 필요 (+ API 키 재발급)

그룹프로젝트 1주차 설계 공유

  • 캠퍼들 피드백 사항
    • 단순한 기술 나열보다 각 기술들을 어떻게 사용할 수 있는지 명시하는 것이 더 좋아 보인다
    • 작년 부캠의 캘린더 커스텀 라이브러리를 참고해도 좋을 것 같다
    • 아이디어 멋지다
  • 질문 내용
    • encoding 이나 압축에 대해서 고려하고 있나요?
    • 커스텀 캘린더로 만들 경우 외부 라이브러리를 사용한다면 어떤 라이브러리를 사용하실 건가요?
    • 이미지 혹은 긴 영상이 아닌 5초로 정하신 이유가 무엇인가요?

Week1 회고

  • 동현

    • 좋은 점: 의견 통일이 빠르게 되었고, Ground Rule을 정하는 데에 긴 시간이 걸리지 않았다.
    • 아쉬운 점: 설계 단계에서 작성한 문서 량이 어떻게 보면 부족하다고 볼 수도 있는 것 같지만(UML 작성 등), 마스터 님의 조언을 들어보니 선택사항인 것 같아서 사실 크게 아쉽지는 않다.
    • 개선할 점: Github의 여러 기능을 거의 처음 사용해보는 것이라 아직은 Issue 작성 등에 대해 숙련도가 떨어지는 것 같다. 하지만 이것도 시간이 지나면 금방 익숙해질 것이라고 생각한다.
  • 무현

    • 좋은 점 : 적은 화면수로, 핵심 기능에 집중 할 수있고 기획이 좋다.
    • 아쉬운 점 : 기능에 대한 적용 기술에 대한 이해가 아직 부족함
    • 개선할 점 : 기능에 대한 필요한 기술을 더 학습하는 시간을 주말에 가져서 보충하기
  • 재현

    • 좋은 점: 주제를 빠르게 선정하였고, 의견 충돌 없이 진행되었다.
    • 아쉬운 점:
      • Figma 활용법을 잘 몰라 생각한 느낌대로 화면을 구성하는 것이 힘들었다.
      • 처음 해보는 구현이 많아 예상 소요 시간을 계산하기 힘들었다.
    • 개선할 점: 처음 접하는 라이브러리, 기술들에 대한 학습이 필요하다. (특히 영상)
  • 준형

    • 좋은 점: 기획이 빠르고 의견 충돌 없이 업무 분담이 빠르다.
    • 아쉬운 점: 핵심 기능에 대해 확실한 일정 관리가 부족하다. ( 처음 다루는 기능이기 떄문 )
    • 개선할 점: 핵심 기능에 대한 학습과 더욱 세세한 계획 세우기, 모든 학습 내용 정보 공유!!

Week2

2022-11-14 Day01

스프린트 계획 회의

  • 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에 영상 업로드

2022-11-15 Day02

데모 관련 시나리오 내용 추가

전일 작업 내용 공유

영상

  • Custom gallery 구현
    • ContentResolver, Media Store를 통한 갤러리 내에 비디오 data Load
    • Paging 적용
    • 안드로이드 버전에 따른 Permission 분기

캘린더

  • Infinite ViewPager2 를 사용하여 무한 스크롤 확인
  • Fragment Position 적용
  • ViewPager2 Fragment에 Calendar 객체 전달
  • 캘린더에 표시할 날짜 Log 출력

오늘 할 작업 공유

  • 영상
    • Custom Gallery Item 클릭시 영상 미리보기 재생
  • 캘린더
    • Recyclerview Item 전달하여 view 구성

2022-11-16 Day03

캘린더

전일 작업 내용

  • RecyclerView 월별 달력 구현
  • x월, 주(일~토) 에 대한 View 는 Activity 로 분리
  • 아이템 클릭 이벤트 ( 사진, 날짜 )
  • 업로드 버튼 클릭 시 선택된 데이터 객체 보내기
  • 사진 Glide로 불러오기

Day2 이슈

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 활용
        • 첫번째 영상 자동 재생
        • 영상 반복 재생

Day2 이슈

  • Paging 원리 이해
  • Flow 이해

오늘 할 작업 공유

캘린더

  • 아이템 클릭시 UI 변경 (background, Text 색상 변경)
  • 이전 달, 다음 달 날짜 UI 다르게 표시 & 클릭 못하도록 변경
  • 캘린더 보여지게 하고 클릭 못하게 하기
  • 현재 달로 돌아오기
  • Date Picker 로 정해진 날짜로 넘어가기
  • 전체적인 캘린더 UI 다듬기

영상

  • Firestore 영상 업로드
  • Paging, Flow 학습
  • 커스텀 갤러리 아이템 클릭시 클릭된 UI로 변경 및 다듬기
  • 커스텀 갤러리 화면 뒤로가기, 다음 추가

2022-11-17 Day04

오늘 할 일

캘린더

  • 월별 캘린더 스크롤시 Focus 자동 지정
  • 캘린더 디자인 개선

영상

  • 영상 선택 후 Firebase 업로드
  • 영상 선택시 해당 Item clicked UI 추가
  • 상단에 넘어가기 및 돌아가기 버튼 추가

데모 준비 - PM 04:00

  • Launcher Activity → LoginActivity로 변경
  • 캘린더 - 영상 Activity 연결하기
  • 데모 영상 준비
  • PPT 템플릿 간단하게 만들기

기술 공유 내용 준비

Week3

2022-11-21 Day01

스프린트 계획 회의진행

2022-11-22 Day02

Day1 작업 내용 공유

캘린더

  • Glide 이슈 해결
  • 아이템 높이 변경
    • 화면 크기에 맞게 동적 높이 부여
    • 한 달에 5주, 6주 구분하여 날짜 높이 변경
  • 커스텀 DatePicker 구현

영상

  • 영상 업로드 화면 추가
    • 뒷 배경 영상 재생
    • 사용자 텍스트 작성
  • Firebase Realtime database 업로드

오늘 할 작업 공유

캘린더

  • Fragment, Activity 코드 정리
  • 실제 썸네일 적용

영상

  • 영상 편집 화면 구현 시작

공통

  • collect 코드를 BindingAdapter로 걷어내는 부분 태환님께 조언듣기

데이터 구조 수정

  • UID
    • 년월일 (20220101 형식)
      • 영상 URL
      • 내용 텍스트

2022-11-23 Day03

Day2 작업 내용 공유

캘린더

  • 실제 썸네일 적용
  • 다운로드 된 영상 재생 구현

영상

  • 영상 편집 라이브러리 적용
  • FFMpeg 학습

오늘 할 작업 공유

캘린더

  • Fragment, Activity 코드 정리

  • 한 달의 영상을 전체 재생

  • 영상 재생 화면에서 스와이프 시 다음날 영상 재생

영상

  • 리팩토링 및 디테일 다듬기

    • 업로드 완료 전까지 로딩화면 보여주기
    • ContentResolver 필터링하기 (최소 5초 이상 영상 가져오기)
    • Video 선택화면
      • 비디오 item 선택시 selected UI (클릭된 효과) 추가
      • 다음 버튼 가시성 개선
      • 마지막 완료 버튼을 인스타처럼 하단으로
      • 뒤로가기 버튼 추가
      • 라이브러리 사용 툴바와 통일성있게 UI 수정
    • 권한 거절 시 처리?
      • 다시 액티비티 열 때마다 권한 요청
  • 학습

    • 사용 라이브러리 내부 동작 확인 !!!!
      • 재생 슬라이드 바에 썸네일 뜨는 구현
      • 동영상 편집 구현
      • 편집 된 동영상 내부 저장소 저장
    • FFmpeg for Android 학습

2022-11-24 Day04

Day3 작업 내용 공유

캘린더

  • firebase 실시간 업데이트 리스너 처리
  • fragment, activity 코드 정리

영상

  • 영상 편집 API 호환성 해결 (접근 권한)
  • 영상 선택 화면
    • 선택된 Item 알파값 변경
    • Toolbar Collapse 조절

오늘 할 작업 공유

캘린더

  • firebase 실시간 업데이트 리스너 flow lifecycle 처리
  • Room 적용
  • 한 달 영상 전체 재생 구현, 영상 재생 화면에서 스와이프 구현

영상

  • 다음 버튼 가시성 개선 및 툴바 관련 작
  • 내용 작성 화면 리팩토링
    • 글자 크기 변경
    • 백그라운드 색상이 글자 트래킹하도록 하기

Week4

2022-11-28 Day01

스프린트 계획 회의진행

2022-11-29 Day02

Day1 작업 내용 공유

캘린더

  • 전체 재생 날짜, 텍스트 변경 구현
  • 버벅거림 현상 체크

영상

  • 영상 압축 기능 구현
  • 자동 로그인 기능 구현

오늘 할 작업 공유

캘린더

  • 멘토링 후 버벅거림 해결해보기
  • 한 달 기준 영상 재생 화면 swipe 적용

영상

  • 내용 작성 화면 개선 (SpanningString 적용)

공통

  • 멘토님 미팅 (오후 4시)

2022-11-30 Day03

Day2 작업 내용 공유

캘린더

  • 영상 재생 화면 Swipe 기능 추가
    • 한 달 영상 전체 Swipe
  • RecyclerView 공유 Pool 사용 시도

영상

  • Video 선택화면 UI 개선
  • 내용 작성화면(업로드 화면) UI 개선

오늘 할 작업 공유

캘린더

  • Room 적용
  • RecyclerView 공유 Pool 관련 학습

영상

  • 내용 작성화면 개선 마무리
  • 권한 거절 대처방안 고려해보기

공통

  • Android03 팀과 미팅

2022-12-01 Day04

Day3 작업 내용 공유

캘린더

  • Room을 이용한 Caching (1년 단위)

영상

  • Permisson 요청에 대한 학습

오늘 할 작업 공유

캘린더

  • RecyclerView 공유 Pool 관련 학습
  • 월별 캘린더 성능 향상

영상

  • 남은 작업 처리
    • Permission 횟수에 따른 Rationale 구현
    • 내용 작성 화면 버튼 위치 옮기기

공통

  • 데모 PPT
  • 버전 업데이트
  • README.md 작성

2022-12-05 Day01

스프린트 계획 회의진행

week5 스프린트 회의 결과

2022-12-06 Day02

오늘 할 작업 공유

캘린더

  • 커스텀 레이아웃 캘린더 구현 및 성능 비교
  • 캘린더, 영상 재생 화면 디자인 개선

영상

  • 영상 업로드 프로세스 코드 정리
    • 커스텀 갤러리 데이터 받아오는 로직 Result 클래스 래핑 수정

공통

2022-12-07 Day03

오늘 할 작업 공유

캘린더

  • 커스텀 레이아웃 캘린더 구현 및 성능 비교
  • 캘린더, 영상 재생 화면 디자인 개선

영상

  • 영상 업로드 프로세스 코드 정리
    • 커스텀 갤러리 데이터 받아오는 로직 Result 클래스 래핑 수정
  • 라이브라리 내부 소스 분석
  • 내용 보기 화면 개선 작업

멘토링 내용 수정하기

  • FlowChart 추가하기 @재현 김
  • Companion const 상수들 private로 변경하여 각각 액티비티 or 프래그먼트에 만들어두기
  • View와 관계없는 로직들 (계산하는 것들) ViewModel의 메서드로 옮겨서 호출하는 형태로 변경하기
  • showKeyboard util 로 빼기
  • ValueAnimator duration 상수 값 string resource 정리
  • binding null하지 않아도 잘 돌아감 (그래서 태환님은 따로 처리 안 한다고 함) → ViewHolder 재사용되기 때문

2022-12-08 Day04

Day03 작업한 내 공유

캘린더

  • CustomCalendar 뷰 계층 제거 작업
    • CalendarCustomView - viewGroup 구현
    • DateCustomView - textView 구현
    • ImageCustomView - ImageView 구현

영상

  • Paging 심화 학습
    • LoadState
  • 내용 보기 및 작성 화면 개선
    • ReplacementSpan
    • LineBackgroundSpan

공통

  • Flowchart 작성

오늘 할 작업 공유

캘린더

  • transition 설정
  • alpha 값 변경, 리스너 달기

영상

  • 라이브러리 학습
  • 내용 보기 화면 개선 마무리
    • 내용 숨기기 버튼 추가
    • 영상 로딩까지 Player에 썸네일 보여주기

공통

  • 앱 배포

Week6

2022-12-12 Day01

  • 최종 발표 계획 회의

2022-12-13 Day02

Day1 작업 내용 공유

캘린더

  • 기술 영상 캘린더 파트 자료 제작

영상

  • 발표 내용 계획
    • 성능 개선점 탐색
  • 영상 압축 비디오코덱 변경

오늘 할 작업 공유

캘린더

  • 버그 수정

영상

  • PPT 영상 부분 추가
  • 동영상 관련 용어 개념 정리

공통

  • 시연 영상 제작
  • 기술 영상 제작

2022-12-14 Day03

Day2 작업 내용

  • 발표 자료 제작
  • 발표 스크립트 작성

오늘 할 작업 공유

  • 발표 영상 녹화
  • 데모 영상 제작

2022-12-15 Day04

Day3 작업 내용

  • 발표 영상 제작
  • 데모 영상 제작
  • 기술적 도전 과제 문서 작성

오늘 할 작업 공유

  • 도전 과제 문서 보강
  • Backlog 작성
  • Github Wiki에 노션 정보 공유 문서들 추가
Clone this wiki locally