Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LabelTag 인터페이스 구현 #80

Open
2 tasks done
mcdmaisd opened this issue May 23, 2023 · 0 comments
Open
2 tasks done

LabelTag 인터페이스 구현 #80

mcdmaisd opened this issue May 23, 2023 · 0 comments

Comments

@mcdmaisd
Copy link

mcdmaisd commented May 23, 2023

☑️ 진행할 작업

LabelTag class에서 배경색 hexCode를 매개변수로 받아 배경색과 글자색을 지정해주는 메서드 구현
UIColor의 extension으로 구현할 예정

📝 TODO

  • hexCode 문자열을 입력받으면 그에 맞는 배경색을 UIColor로 리턴해주는 메서드 구현
  • 배경색이 정해진 이후 그 배경색에 맞게 글자색을 검은색 혹은 흰색 둘중 하나로 정해주는 메서드 구현

⚙️ 기타

extension으로 구현하는 것이 맞을지 팀원과 상의해보기

mcdmaisd added a commit that referenced this issue May 24, 2023
…nd-text-color

FEAT: LabelTag 배경색, 글자색 지정하는 기능 구현
noah0316 pushed a commit that referenced this issue May 26, 2023
- 배경색을 매개변수로 해당 색상코드에 맞는 배경색을 지정함
- 배경색의 종류에 따라 LabelTag textColor가 흰색 또는 검은색으로 변경됨
noah0316 pushed a commit that referenced this issue May 26, 2023
- 기존에 UIColor의 extension으로 존재하던 기능은 결합도가 높기 때문에 좋은 코드가 아니라고 판단하여 결합도를 낮추기 위해 별도의 열거형 타입으로 분리함
- 타입의 이름과 내부 메서드의 이름도 가독성을 고려하여 변경함
noah0316 pushed a commit that referenced this issue May 26, 2023
- extension 코드는 결합도가 높아서 좋은 코드가 아니라고 판단, 별도의 열거형 타입으로 분리함
- setLabelTagBackgroundColor 함수의 매개변수 이름을 가독성을 더 좋게 수정
- 기존의 리터럴 상수 값들을 가독성을 고려하여 별도의 리터럴 파일로 분리
- 기존의 labelText의 색을 만드는 공식을 별도의 상수로 분리 하여 가독성 개선
- 3가지의 색(red, green, blue)에 공식에 나오는 수치를 곱한것을 가중치를 부여한 것이라고 판단하여 weighted라는 prefix를 상수 이름에 적용
- 기존의 조건문을 3항연산자를 이용하여 가독성을 개선
bread1022 pushed a commit that referenced this issue May 29, 2023
* ADD: Custom cell layout 관련 파일 추가 (#6)

- xib, swift 파일 생성

* CHORE: 컨벤션에 맞게 코드 수정 (#6)

- 컨벤션에 맞게 상속을 하지 않는 클래스에 대해 final 키워드를 추가하였습니다.
링크: https://github.com/codesquad-2023-group04/issue-tracker/wiki/iOS-Coding-Convention#9-%EC%83%81%EC%86%8D%EC%9D%84-%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94-class%EC%9D%98-%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8A%94-final-%ED%82%A4%EC%9B%8C%EB%93%9C%EB%A5%BC-%EB%B6%99%EC%9D%B8%EB%8B%A4

* MOVE: CollectionViewCelll 파일 이동 (#6)

- CollectionViewCell은 View에 해당하기 때문에 View폴더 구조로 이동하였습니다.
- 판단근거: UICollectionViewCell이 UIView를 상속받고 있어 View로 판단하였습니다.

* DEL: ViewModel 폴더 삭제

* CHORE: Radius, Border 데이터 타입 수정 (#5)

- 기존 Int 타입에서 CGFloat 데이터 타입으로 변경

* FEAT: LabelTag를 Issue list cell stackView에 추가하는 기능 구현 (#63)

- 현재는 더미데이터를 이용하여 구현함
- 향후 API 연결되면 실제 데이터를 이용하여 코드 수정할 예정

* ADD: LabelTag 파일 프로젝트 경로에 추가 및 코드 수정 (#63)

- 컨벤션을 위반한 코드 부분 수정

* MOVE: 잘못된 위치에 있었던 swift 파일 이동

- 원래 View 폴더 안에 있어야 할 ViewController 폴더 안에 있는 파일들을 이동시킴

* CHORE: 불필요 코드 삭제 및 final 키워드 추가

- 더이상 상속을 하지 않을 코드라서 final 키워드 추가함

* FEAT: LabelTag 인터페이스 작성 (#80)

- 배경색을 매개변수로 해당 색상코드에 맞는 배경색을 지정함
- 배경색의 종류에 따라 LabelTag textColor가 흰색 또는 검은색으로 변경됨

* ADD: 프로젝트 파일 추가

- 배경색의 rgb 색상값 역 정규화 및 가중치 부여하는 과정에서 필요한 상수값 리터럴 파일로 분리하여 추가
- hexCode를 UIColor로 바꿔주는 기능을 기존의 extension에서 별도 파일로 분리(결합도 낮추기)

* ADD: Rgb 열거형 파일 추가

- 기존에 LabelTag에 리터럴 상수로 존재하던 값들을 열거형에 static 멤버 상수로 분리함

* CHORE: hexCode를 UIColor로 바꿔주는 기능 별도로 분리 (#80)

- 기존에 UIColor의 extension으로 존재하던 기능은 결합도가 높기 때문에 좋은 코드가 아니라고 판단하여 결합도를 낮추기 위해 별도의 열거형 타입으로 분리함
- 타입의 이름과 내부 메서드의 이름도 가독성을 고려하여 변경함

* CHORE: 전반적인 코드 수정 및 가독성 개선 (#80)

- extension 코드는 결합도가 높아서 좋은 코드가 아니라고 판단, 별도의 열거형 타입으로 분리함
- setLabelTagBackgroundColor 함수의 매개변수 이름을 가독성을 더 좋게 수정
- 기존의 리터럴 상수 값들을 가독성을 고려하여 별도의 리터럴 파일로 분리
- 기존의 labelText의 색을 만드는 공식을 별도의 상수로 분리 하여 가독성 개선
- 3가지의 색(red, green, blue)에 공식에 나오는 수치를 곱한것을 가중치를 부여한 것이라고 판단하여 weighted라는 prefix를 상수 이름에 적용
- 기존의 조건문을 3항연산자를 이용하여 가독성을 개선

* ADD: IssueListViewController 파일 추가 (#8)

- Issue 목록을 보여주기 위한 IssueListViewController 파일을 추가하였습니다.

* ADD: Issue Storyboard 파일 추가 (#8)

- 이슈와 관련된 레이아웃을 작성할 Storyboard 파일 추가

* CHORE: Initial ViewController 지정 (#8)

- Issue Storyboard의 Initial ViewController를 지정하였습니다.

* CHORE: 레이아웃 수정 (#8)

- 반복되는 UI 요소를 가로 혹은 세로로 묶어주기 위해 UIStackView를 활용하여 레이아웃을 수정하였습니다.

* DEL: 사용하지 않는 코드 제거 (#1)

- lineHeight를 사용하지 않으므로 관련 코드를 삭제하였습니다.

* ADD: Extension 추가 (#8)

- UICollectionReusableView의 클래스 이름을 반환하는 extension추가

* FEAT: NibFactory 구현(#8)

- UINib 객체생성 역할을 담당하는 NibFactory를 구현하였습니다.

* FEAT: IssueListView 구현 (#8)

- 이슈 목록을 나타내는 IssueListView를 UICollectionView를 이용하여 구현하였습니다.

* ADD: 로딩 상태를 나타내는 열거형 추가 (#8)

- 데이터 로딩 상태를 나타내는 열거형 LoadingStatus를 추가하였습니다.

* ADD: Cell UI 속성 업데이트 메서드 추가 (#8)

- IssueListCollectionViewCell의 UI속성을 업데이트 하는 메서드를 추가하였습니다.

* ADD: 엔티티 추가 (#8)

- Issue와 관련된 엔티티를 추가하였습니다. (User, Milestone)

* FEAT: IssueCollection 구현 (#8)

- Issue 객체를 저장하는 first class collection을 구현하였습니다.

* ADD: IssueListUseCaseType 프로토콜 추가 (#8)

* ADD: IssueListViewModelable 프로토콜 추가 (#8)

- IssueListViewModel의 입력포트와 출력포트를 추상화한 프로토콜을 추가하였습니다.

* FEAT: IssueListViewModel 구현 및 테스트 코드 작성 (#8)

- IssueListView에 대한 정보를 가지고 있는 IssueListViewModel을 구현하였습니다.
- IssueListViewModel에 대한 테스트 코드를 작성하였습니다.
- Network interface가 정의되면 세부 에러 분기에 대한 구현 및 테스트를 작성할 예정입니다.

* FEAT: IssueList 조회 화면 구현 (#8)

- IssueList를 조회하는 화면을 구현하였습니다.
- Network interface가 정의되면 세부 에러 분기에 대한 구현을 작성할 예정입니다.

* CHORE: 코드리뷰 반영 (#8)

- get을 prefix로 붙이는 대신 조금 더 의미가 명확한 allIssues로 메서드 명을 변경하였습니다.
- 코드리뷰 링크: #90 (review)

* DEL: 사용하지 않는 그룹 제거 (#11)

- 현재 사용하지 않고 있는 그룹을 제거하였습니다.

* CHORE: Large Title 허용 (#8)

- ViewController에서 large title을 사용하도록 허용하였습니다.

* CHORE: activity indicator가 사라지도록 수정 (#8)

- 이슈 목록이 로딩 완료되면 activity indicator가 사라지도록 수정하였습니다.

* DEL: 사용하지 않는 스토리보드 파일 삭제 (#8)

- TabBarController를 코드로 생성할 것 이므로 스토리보드 파일을 삭제하였습니다.

* ADD: ViewControllerMakable 프로토콜 추가 (#8)

- ViewController를 생성할 수 있는 능력을 나타내는 ViewControllerMakable 프로토콜을 추가하였습니다.

* ADD: StoryBoardLiteral 추가 (#8)

- StoryBoard를 표현하는 struct인 StoryBoardRepresentation을 선언한 후 StoryBoardLiteral을 선언하였습니다.

* ADD: StringLiteral 추가 (#8)

- 프로젝트 내 문자열을 관리하기 위해 StringLiteral을 추가하였습니다.

* FEAT: IssueListViewController factory 구현

- IssueListViewController에 필요한 의존성을 생성하고 주입하는 IssueListViewController factory를 구현하였습니다.

* CHORE: TabBarAppearance 설정 (#8)

* DEL: SceneDelegate 삭제 (#8)

* FEAT: Composition root 구성 (#8)

- Mark Seemann의 Composition root, devxoul님의 Pure를 참고하여 Composition root를 구성하였습니다.
- 링크: https://blog.ploeh.dk/2011/07/28/CompositionRoot/
- 링크: https://github.com/devxoul/Pure

* FEAT: 앱 시작점 구성 (#8)

- 테스트 타겟 실행 시 불리는 AppDelegate와 프로젝트 타겟 실행 시 불리는 AppDelegate의 시작점을 구성하였습니다.

* FEAT: AppDelegate 대신 테스트를 진행할 TestDouble 추가 (#8)

* FEAT: AppDelegate 테스트 코드 작성 (#8)

---------

Co-authored-by: demiiann <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant