iOS

    [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 뱃지 만들기

    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 디버깅 하기

    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..

    collectionView - 가로방향으로 셀 3개 넣기

    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..

    iOS - 공유하기 기능

    UIActivityViewController UIActivityViewController는 텍스트 복사, SNS 공유, 이미지, URL, AirDrop, 메시지로 보내기 등등 여러 항목들을 쉽게 공유할 수 있도록 해주는 컨트롤러로 간단하게 구현이 가능하다. 이 포스트에서는 텍스트뷰의 텍스트를 공유하도록 구현하려고 한다. var shareList = [String]() if let cell = contentCollectionView.cellForItem(at: IndexPath(row: viewModel?.currentIndex ?? 0, section: 0)) as? ContentCollectionViewCell, let shareText = cell.shareContentTextView.text { s..