A | B | C | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Milestone | Function | Task | Description | # | Discussion | 담당 | References | Priority | ||||||||||||||||||
2 | Sign in | SignInViewController | - 스토리보드 - 깃헙 로그인 버튼 - 애플 로그인 버튼 - OAuth 토큰을 UserDefaults에 저장 | 2 | - 서버 구현 전까지 Fake 메소드로 JWT Token 발급 및 저장 | 🦊➕🐝 | Required | ||||||||||||||||||||
3 | SignInWithGithubButton, SignInWithAppleButton | - ASWebAuthenticationSession - 로그인 성공 시 SignInViewController dismiss - MockNetworkManager로 먼저 구현 | 2, 7 | 🦊➕🐝 | Required | ||||||||||||||||||||||
4 | Apple Login | 49 | 🐝 | 공식 예제 https://developer.apple.com/documentation/authenticationservices/implementing_user_authentication_with_sign_in_with_apple Zedd 블로그 https://zeddios.tistory.com/781 Fury 블로그 https://developer-fury.tistory.com/50 https://spiralmoon.tistory.com/entry/Apple-애플-로그인-설정하기-Sign-In-with-Apple | Required | ||||||||||||||||||||||
5 | TabBarViewController | - 스토리보드 | 2 | Required | |||||||||||||||||||||||
6 | IssuesViewController | - JWT Token이 UserDefault에 없으면 present SignInVC - JWT Token로 요청하여 잘못된 응답이 오면 present SignInVC | 2 | - Dan과 상의하여서 token 유효성 검사 | 🦊➕🐝 | ViewDidLoad에서 present 하면 생기는 오류 : https://m.blog.naver.com/PostView.nhn?blogId=wlsdml1103&logNo=221026623860&proxyReferer=https:%2F%2Fwww.google.com%2F | Required | ||||||||||||||||||||
7 | MockNetworkManager | - OAuthURLStub 클래스 구현 | 7 | 🦊➕🐝 | Required | ||||||||||||||||||||||
8 | NetworkManager authenticate | - EndPoint - Error handling - AlertController로 에러 핸들링 | - shared인 싱글톤 클래스로 만들 것인지 - 각 뷰컨에서 어떻게 가지고 있을 것인지 - 차라리 UseCase? - 에러처리 어떻게 할것인지 그냥 return 하면 안됨 | 🦊➕🐝 | Required | ||||||||||||||||||||||
9 | Issues | IssuesViewController | - UICollectionView | 🦊➕🐝 | Required | ||||||||||||||||||||||
10 | TitleHeaderView | - Buttons - TitleLabel | 8 | 버튼은 추후에 주입 | 🦊➕🐝 | Required | |||||||||||||||||||||
11 | ScrollViewAnimation | TitleHeaderViewHeightAnchor | 18, 43 | - frame이 변경됨에 따라 offset 값이 변경되버린다. | 🦊 | Low | |||||||||||||||||||||
12 | fluid scroll animation | - offset 재계산 - 계산 방법 변경 | 77 | 🦊 | https://www.youtube.com/watch?v=y7enrwW7C4E&list=PLQy7MJsDa2vaTTnhndm-FGXpTzHXHYYCP&index=8&t=765s | Low | |||||||||||||||||||||
13 | SearchTextField | - 백엔드 구현이 되면 구현 - 스크롤 애니메이션 고려 | 80,153 | 🦊➕🐝 | Low | ||||||||||||||||||||||
14 | IssueCell | IssuesCollectionView | 17 | 🦊➕🐝 | Required | ||||||||||||||||||||||
15 | IssuesCollectionView DataSource | - 뷰모델 | 30 | 🦊➕🐝 | Required | ||||||||||||||||||||||
16 | collectionView - paging | 🦊➕🐝 | Low | ||||||||||||||||||||||||
17 | IssuesCollectionView Delegate | - Dynamic Cell Height - StackView로 동적 높이 처리 | 17 | 🦊 | Required | ||||||||||||||||||||||
18 | Advanced IssuesHorizontalCell Dynamic height | - IssuesCollectionView 높이에 따른 동적 높이 처리 | 28 | 🦊 | Low | ||||||||||||||||||||||
19 | tabbarcontroller life cycle | - tab bar 전환 시 뭐가 다른지 찾아보기 | Low | ||||||||||||||||||||||||
20 | IssueHorizontalCell | - ContensStackView - TitleLabel - MilestoneView - IssueLabelsCollectionView | 17 | 🦊➕🐝 | Required | ||||||||||||||||||||||
21 | IssueCell Update | - 디자인 및 표시 항목 변경 | 79 | 🦊 | Required | ||||||||||||||||||||||
22 | MoreButton | open/close | - 네트워크 요청 - Update collectionView | 99 | 🦊 | Required | |||||||||||||||||||||
23 | delete | - 네트워크 요청 - Update collectionView | 103 | 🦊 | Required | ||||||||||||||||||||||
24 | IssueHorizontalCell widthAnchor autolayout warning | 37 | #28 구현하니 해결되었음 | 🦊 | Low | ||||||||||||||||||||||
25 | IssueLabelsCollectionView | - 뷰컨트롤러로 사용할 것인가 - 뷰컨트롤러로 재사용 하는 방법 고민 - 뷰컨트롤러로 사용하면 발생하는 오류 두개 | - 진행 중에 여러 오류가 나서 보류 | 🦊➕🐝 | Required | ||||||||||||||||||||||
26 | IssueLabelsViewController | - 뷰컨트롤러로 사용하여 view에서 너무 많은 일을 처리하지 않도록 리팩토링 | - 이전에 생긴 오류는 나지 않았고 잘 처리됨 | 🦊 | Required | ||||||||||||||||||||||
27 | ContainerVC | - IssueLabelsViewController의 view를 현재 상위 VC에 subview로 추가함 - 이 방법으로 하면 각자의 VC 라이프사이클로 진행되기 때문에 chidl VC로 추가하는게 좋을 것 같다는 JK의 의견 | 🦊 | Low | |||||||||||||||||||||||
28 | IssuesCardCell | - 카드 디자인으로 구현 | Low | ||||||||||||||||||||||||
29 | IssueCell 스타일 전환 버튼 | Low | |||||||||||||||||||||||||
30 | FilterButton | Required | |||||||||||||||||||||||||
31 | FilterView | FilterViewController | - 테이블 뷰 - 완료 / 취소 버튼 - 필터 선택하면 FilterViewController를 dismiss하면서 IssueViewController에서 네트워크 요청 | 101 | 🐝 | Required | |||||||||||||||||||||
32 | Issue Label | IssueLabelsCollectionView | 22 | Required | |||||||||||||||||||||||
33 | IssueLabelsCollectionDataSource | 22 | Required | ||||||||||||||||||||||||
34 | IssueLabelsCollectionViewDelegateFlowLayout | - badge 셀의 너비 동적으로 조정되도록 - 셀 간격 | 22 | - String + font로 넓이를 계산하여 구현 | Required | ||||||||||||||||||||||
35 | AddIssueButton | 🐝 | Required | ||||||||||||||||||||||||
36 | UseCase | ||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||
38 | TabBar | TabBar UI | - 탭바 아이콘 - 탭바 tintColor | 78 | 🦊 | Low | |||||||||||||||||||||
39 | |||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 |