문제 기본적으로 TableView와 CollectionView는 List 하나로 퉁쳐지는 듯함. push 형식으로 뷰를 전환하려면 NavigationLink를 통해서 움직여야함. NavigationLink로 묶여진 뷰 안에 버튼 이벤트를 독립적으로 분리시키고 싶음. 시도 hitTest나 ZStack 등 다양하게 시도해봄 해결 NavigationLink의 UI를 disabled시키고 버튼(또는 이미지, 뷰 등) 이벤트를 통해 간접적으로 NavigationLink를 호출 VStack { Button("독립적인 이벤트 실행") { // 어떤 이벤트 }.sheet(isPresented: $firstViewPresented) // 또는 first뷰를 sheet 형식으로 띄움 Image(systemName: "ci..
Xcode 12를 쓰다가 이러저러한 이유로 Xcode 13으로 업데이트를 했다. 으레 그렇듯 빌드에 실패했는데 다행히 이전처럼 디렉토리에 들어가서 파일 덮어쓰고 이런 건 없는 것 같은데 SPM을 사용한데서 빌드 fail이 났다. 해결법은 아주 간단! File -> Packages -> Reset Package Caches 경로에서 SPM 캐시를 초기화해주면 된다. 오히려 코코아팟 등보다 문제가 단순하게 해결됨
문제점 Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn' for architecture arm64 인텔 맥에서 작업한 프로젝트를 m1에서 이어서 작업하려고 하는데 빌드하면서 좋지 않은 에러가 나타났다. 이전에는 문제가 없었는데 해당 라이브러리 관련 문제일까? 원인 자세히 알아보아야겠지만 어느때처럼 Xcode 12 버그로 보인다. 아키텍처는 arm64인데 엑코에서 arm64라고 설정을 해주지 않아서 생기는 문제(?)인 것으로 보이고 해외에서도 많은 사례가 있었다. 해결 Xcode -> Target Project -> Build Setting -> Excluded Architectures > "arm64" Xcode -> Pod Ta..
iOS용 애플ID로 로그인 Identifiers → 해당 앱 ID를 사용하는 ID → Capabilities 목록에서 Sign in with Apple 선택 → https://{FIREBASE_PROJECT_ID}.firebaseapp.com/__/auth/handler 끝. 기타(안드로이드) 애플ID로 로그인 위에서 한 작업에 추가적으로 아래 작업들을 해주어야함 Identifiers → ServiceID 생성 → https://simpass.firebaseapp.com/__/auth/handler 입력 Keys → Sign in with Apple → Key ID와 팀 ID 획득 팀ID는 개발자 계정의 ID .p8 인증서 파일 다운되면 텍스트 편집기로 열어서 private key 획득 More → Si..
install hombrew를 이용한 방법 brew install cask # cask가 설치되어있는 경우 생략 brew install --cask fastlane # fastlane을 cask로 설치 # 설치 완료후 fastlane env # 설치 버전 확인 rubygems를 이용한 방법 sudo gem install fastlane -NV usage 패스트래인을 적용하려는 프로젝트로 이동 후 fastlane init init을 성공하면 애플 아이디/비밀번호를 입력하라는데 개발자 계정과 사용자 계정을 나누어야겠다는 생각이 들었음. 암튼 임력. git status나 프로젝트 파인더로 보면 fastlane이라는 폴더가 생김. 그 아래에는 Appfile, Deliverfile, Fastfile이 있음. ap..
Homebrew # arm용: /opt/homebrew /bin/bash \-c "$(curl \-fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))" # x86용: /usr/local/homebrew # 로제타2를 통해서 작동 arch -x86_64 /bin/bash \-c "$(curl \-fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/in..
맥에선 기본적으로 한글일 때와 영문일 때 특수기호를 다르게 받아들인다. 한글로 놓고 억음부호(`)를 누르면 원화(₩)가 표시된다. 영문으로 놓아야만 억음부호를 억음부호로 쓸 수 있다. 하지만 마크다운을 많이 쓰다보면 억음부호를 자주 쓰게 되는데.. ~/Libary 폴더에 KeyBindings 폴더 생성: 파인더 단축키 커맨드+쉬프트+G ~/Libary/KeyBindings 경로에 DefaultkeyBinding.dict 파일 생성. // DefaultkeyBinding.dict { "₩" = ("insertText:", "`"); } 재부팅 또는 터미널에서 아래 명령어를 입력한다. if [ -f ~/Library/KeyBindings/DefaultkeyBinding.dict ]; then echo "~/..
여러 계정을 사용하든, config에서 오타를 냈든, author나 committer 등 커밋 변수들을 잘못 쓰는 경우가 있는데, 안타깝게도 그것을 발견한 것은 한참 후라면? filter-branch는 히스토리 전체에서 원하는 것만 가져올 수 있음 --env-filter는 커밋이 수행되는 환경에 필터를 걸 수 있음: author, committer, name, email, time 등의 환경변수들! 참고 Cannot create a new backup. A previous backup already exists in refs/original/ Force overwriting the backup with -f 위와 같은 에러가 뜰 때가 있는데 아래 명령어로 해결 가능 git update-ref -d ref..
roadmap 웹 개발자 로드맵은 매년 업데이트 되고 쉽게 구할 수 있는데, iOS 개발자 로드맵은 그렇지 않았다. 그러던 중 모든게 다 있는 git에서 귀중한 자료를 발견함 개발자 로드맵: https://roadmap.sh/ iOS개발자 로드맵: https://github.com/godrm/mobile-developer-roadmap iOS 로드맵 Xcode IDE Playground Swift Functional Programming vs Object-oriented Programming(with ObejctiveC) Protocol-Oriented Programming Value Semantics Generics Concurrent Programming Swift Standard Swift Foun..
스위프트와 파이썬을 함께 써보니 비슷한 점 많다. 다른 점 가운데서 편리하면서도 불편한게 변수 선언인데, 별도의 선언이 필요없어서 깊은 생각 없이 변수를 만들다보니 메모리 등에 대한 걱정도 든다. 파이썬은 기본적으로 for in 구문을 통한 반복문을 제공한다. for A in B구문은 B가 집단 자료형(Array, Dictionary 등 Collection)일 때 요소를 하나씩(순서가 있다면 앞에서부터) 꺼내어 A에 대입시켜 for문 안에서 사용하는 것으로 스위프트에서도 지원한다. count가 필요한 경우 아래 2가지 방법으로 사용할 수 있다. # 1. count 변수를 사용하는 방법 count = 0 for item in a_list: count += 1 print(count) # 2. enumerat..