TIL

53일차 TIL

h_luz 2024. 5. 13. 23:29

 

팀프로젝트 시작!

 

 

git clone 해서 받아오고 브런치 생성 후에 이동해서 시작해보려고 하니까..

Missing package product 'SnapKit'

이런 에러가 났다.. 분명 SnapKit이 있는데 왜 이러지 하고 챗지피티에 물어보니까

  1. SnapKit 버전 충돌: SnapKit의 버전과 다른 종속성 패키지의 버전이 충돌하는 경우가 있을 수 있습니다. 이 경우 SnapKit과 다른 패키지의 버전을 호환되는 것으로 업데이트해야 할 수도 있습니다.

그래서 버전 문제인가하고.. 삭제했다가 다시 설치했는데,, Package.resolved file is corrupted or malformed

이런 에러가 또 생김 ^^!ㅠ 다시 chatGPT에 물어보니까..

 

' 이 에러는 프로젝트의 Swift Package Manager (SPM)에서 사용되는 Package.resolved 파일이 손상되었거나 잘못되었음을 나타냅니다. 이 파일은 프로젝트에 사용된 모든 패키지의 버전 및 종속성을 추적하는 데 사용됩니다. '

Package.resolved 파일 삭제: 먼저 해당 파일을 삭제합니다. 이 파일은 SPM에 의해 자동으로 다시 생성됩니다.

 

해결방법

1. Finder에서 프로젝트 디렉터리로 이동

2. .xcworkspace 확장자가 붙은 Xcode 워크스페이스 파일 찾기

3. 해당 파일을 우클릭하여 "Show Package Contents" 선택 (한국어로는 "패키지 내용 보기")

4. xcshareddata 폴더로 이동 -> swiftpm폴더를 찾아서 Package.resolved 파일을 삭제

5. Xcode 재 실행 후, 빌드

 

이렇게 해주니까 잘 실행됨! 굳 👍🏻

 

 

이렇게 해줘도 해결된다고 함니다 

 


오늘 인상 깊게 배운 점!

 

1. 우선 팀원 분께서 Label 속성을 함수로 만들어 주셨다! 이걸 사용해 줬는데, 굉장히 간편하고 좋은 방법이다!

 

headerLabel에 이렇게 적용해 줄 수 있다! ( textAlignment도 수정해주고 싶으면 option + Enter 해주면 됨 )

 

2. 코드 세부화해 주기

예를 들어서 왼쪽 그림과 같은 페이지를 만들기 위해서 오른쪽처럼 View를 나눠서 구현을 해주고 ViewController에 View를 호출해 주면 된다! 그럼 코드 가독성과 유지보수성을 향상할 수 있음! 굳

 

3. 코드베이스로 스택 뷰 사용

UIStackView

: 열이나 행에 뷰 모음을 배치하기 위한 간소화된 인터페이스

https://developer.apple.com/documentation/uikit/uistackview

 

UIStackView | Apple Developer Documentation

A streamlined interface for laying out a collection of views in either a column or a row.

developer.apple.com

 

스택 뷰 사용의 이점

 

1. 간편한 레이아웃 구성

    - 수평 또는 수직으로 정렬된 뷰의 그룹을 쉽게 만들 수 있다

    - 레이아웃 업데이트에 필요한 코드 양을 줄일 수 있다

2. 동적 크기 조절

    - 내부의 뷰의 크기에 따라 자동으로 크기를 조절 가능 ( 내부의 뷰의 크기가 동적으로 변할 때도 스택뷰는 적절한 크기로 자동으로 조정 )

3. 간격 관리

    - 뷰 사이의 간격을 쉽게 설정 가능. 뷰 사이의 간격을 일정하게 유지하거나 뷰의 크기에 따라 유동적으로 조절

4. 가독성

    - 여러 뷰를 하나의 그룹으로 묶어 관리할 수 있으므로 코드의 가독성을 향상하고 유지 보수성 향상

5. 재사용성

    - 동일한 레이아웃 패턴을 여러 곳에서 쉽게 재사용

6. 동적 추가 및 제거

    - 런타임 중에 뷰를 동적으로 추가하거나 제거 가능 ( 화면의 내용이 동적으로 변할 때도 스택뷰는 적절하게 대응 )

 

아까 Label과 Button을 StackView로 묶어줬다!

근데 간격을 주는 게 이렇게 spacing으로 줘도 되는 건지.. 

먼가 비율을 주고 싶었는데 실패했다.. 내일 다시 해보거나 여쭤봐야겠다..!

 

여하튼 스택뷰를 사용해 주면 setupConstraints함수에서 따로 Label과 Button을 잡아줄 필요 없어서 코드가 간결해진다! 굳 👍🏻

 

'TIL' 카테고리의 다른 글

55, 56일차 TIL  (4) 2024.05.17
54일차 TIL  (4) 2024.05.14
52일차 TIL  (2) 2024.05.10
49일차 TIL  (4) 2024.05.07
48일차 TIL _codebaseUI  (2) 2024.05.03