전체 글
[iOS] Tuist 4 설치 및 설정 방법
iOS 프로젝트를 보다 효율적으로 관리하기 위해 Tuist를 사용하면 빌드 설정을 자동화하고, 프로젝트를 보다 체계적으로 구성할 수 있습니다. 특히 Tuist 4에서는 성능 개선과 새로운 기능이 추가되어 더욱 편리해졌습니다. 이번 글에서는 이전 Tuist 버전 제거부터 최신 버전 설치 및 설정 방법까지 자세히 설명하겠습니다. 1. 기존 Tuist 제거 (v4 이전 버전)Tuist 4를 설치하기 전에 기존 Tuist 버전을 제거해야 합니다. 아래 명령어를 실행하면 이전 버전이 삭제됩니다.curl -Ls https://uninstall.tuist.io | bash이제 새로운 버전을 설치할 준비가 완료되었습니다. 2. Mise 설치Tuist는 Mise(다양한 개발 도구의 버전 관리를 돕는 툴)를 통해 설치할 ..
iOS - WebView Crash(EXC_BREAKPOINT)
시뮬레이터 및 디바이스에서 웹뷰를 사용하고 있는 뷰 컨트롤러에 접근 시 아래와 같은 에러가 발생했을때 해결 방법 1. Memry Management의 Malloc Scribble 체크 해제 후 시뮬레이터 및 디바이스에서 앱 실행
iOS - 웹 인스펙터 콘솔에서 네이티브로 메시지 전달(테스트)
1. 메시지 작성하기 window.webkit.messageHandlers.HandlerName.postMessage("테스트 할 메시지") 1-1. HandlerName은 웹뷰 세팅시 설정한 이름 let contentController = WKUserContentController() contentController.add(self, name: "webviewBridge") 2. 테스트 메시지 전달 3. 테스트 메시지 확인 제이슨 데이터로 테스트 메시지 보내기 1. 콘솔에 작성할 메시지 window.webkit.messageHandlers.webviewBridge.postMessage(JSON.stringify({"name":"navigation","data":{"isVisible":false}})) ..
iOS - CollectionView Cell 뱃지 만들기
스토리보드로 컬렉션 뷰 셀 구현 셀 클래스 내에서 델리게이트 구현 protocol ReviewPhotoCellDelegate: AnyObject { func didTabDeleteButton(in cell: UICollectionViewCell)}class ReviewPhotoCell: UICollectionViewCell { weak var delegate: ReviewPhotoCellDelegate? @IBOutlet weak var reviewPhotoImageView: UIImageView! @IBOutlet weak var deleteButton: UIButton! override func awakeFromNib() { super.awake..
iOS - 사파리 웹 인스펙터로 WebView 디버깅 하기
1. 사파리 -> 설정 2. 고급 -> 웹 개발자를 위한 기능 보기 체크 3. 시뮬레이터에서 웹뷰로 이동 후 -> 사파리 -> 개발자용 -> 원하는 시뮬레이터에서 현재 웹 주소 선택 4. 웹 인스펙터에서 디버깅!!
컴포지션 레이아웃에서 데이터에따라 섹션 분기처리
리뷰 데이터가 있을때와 없을때 UI를 따로 처리해야하는 경우에 아래 코드처럼 분기 처리 func createReviewColumnSection() -> NSCollectionLayoutSection { if viewModel?.isReviews == false { // Item let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),heightDimension: .estimated(1)) let item = NSCollectionLayoutItem(layoutSize: itemSize) let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),h..
앱 스토어 심사 목업 이미지 사이트 모음
1. Screen Screen — Screenshot Creator for Product Pages The fastest way to create screenshots of your app for product pages on Apple App Store, Google Play Store, Microsoft Store, etc. screen.traction.one 2. Previewed App Mockup Templates | Mockup Generator | Perfect for your app Create beautiful mockups for your app, in just a few clicks. previewed.app 3. AppMockup AppMockUp Studio (Beta) AppMo..
collectionView - 가로방향으로 셀 3개 넣기
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let numberOfItemsPerRow: CGFloat = 3 let spacingBetweenCells: CGFloat = 4 // 셀 사이의 간격을 가정 // contentInset과 minimumInteritemSpacing을 고려하여 사용 가능한 총 너비 계산 // contentInset 리딩 20, 트레일링 20 및 셀 사이 간격 let totalSpacing = (2 * 20) + ((numberOfItemsPer..
GitHub 풀 리퀘스트 템플릿 만들기
1. 풀 리퀘스트 템플릿을 생성할 레포지토리에서 Add file에서 Create new File 클릭 2. 파란 네모 박스에 pull_request_template.md 파일명 입력 3. 풀 리퀘스트시 필요한 내용 입력 4. 오른쪽 상단의 Commit changes… 클릭 5. 아래 창이 뜨면 Commit changes 클릭 후 완료 Pull - Request 내용 ## 작업 내용 Resolves: #(이슈 번호) ## PR 타입 - [x] 기능 추가 - [ ] 기능 삭제 - [ ] 버그 수정 - [ ] 의존성, 환경 변수, 빌드 관련 코드 업데이트 - [ ] UI 수정 - [ ] 주석 추가 및 수정 - [ ] 파일 혹은 폴더명 수정 - [ ] 파일 혹은 폴더명 삭제 ## 반영 브랜치 ex) feat/l..
GitHub 이슈 템플릿 만들기
1. Setting으로 이동 2. General → Issues → Set up templates 선택 3. Add Template → Custom template 선택 4. 생성된 템플릿에서 Preview and edit 클릭 5. 연필 모양 클릭 후 내용 수정 6. 내용 작성후 propose changes 클릭 후 7. Commit changes 하면 완료 현재 진행중인 프로젝트에서는 총 3개의 이슈 템플릿을 사용중 BugFix - 버그 수정 관련 템플릿 Feature - 기능 개발 관련 템플릿 Refactor - 코드 리팩토링 관련 템플릿 BugFix ## 어떤 버그인가요? -. 어떤 버그인지 간단하게 설명해주세요. ## 어떤 상황에서 발생한 버그인가요? -. 해당 버그가 발생한 상황을 설명해주세요..