swift
-
[XCode] cannot be opened because it is in a future Xcode project file formatiOS Dev 2024. 8. 11. 04:27
이전 버전의 xcode에서 프로젝트를 열려고 하면 위 사진처럼 에러메세지를 띄운다.이 이유는 상위 버전의 xcode 사용자가 프로젝트 파일을 건들여서 그렇다. (타겟 추가, 스킴 변경, 파일 변경 등등) Q. 앗 그럼 이전 사용자도 베타로 올리면 되겠네요? A. 그러면 앱스토어에 제출을 못합니다! 허허.. 정리해보면 베타버전 사용자는 앱 심사 제출을 못하고, 이전 버전 사용자는 프로젝트를 열 수 조차 없는 난감한 상황이 생긴다.몇가지 해결 방법이 있다.1. 프로젝트를 잘 열렸던 때로 되돌리고, 작업한 내용을 수동으로 옮긴다.2. 프로젝트 파일 중 버전에 영향이 있는 부분만 대체한다. 나는 초고수가 아니기 때문에 1번 방법을 택했다.이전 버전 XCode는 아래 경로에 있는 파일을 실행하면 된다./Appli..
-
마이크로피처 아키텍처란? (µFeatures Architecture)iOS Dev 2023. 7. 15. 02:08
시작하기에 앞서, 이 글은 tuist의 µFeatures Architecture를 요약, 번역, 정리한 글임을 알림. iOS에 편향되어있음. µFeatures Architecture | Tuist Documentation based on MicroServices 주의할 점 이 아키텍처는 silver-bullet이 아님. 모든 프로젝트에 적용하려 하지 말고 적절한 곳에 잘 사용하자. 마이크로피처 아키텍처란? 마이크로피처 아키텍처는 확장성을 높이고 빌드 및 테스트 주기를 최적화한다. 명확하고 간결한 API를 사용하여 상호 연결된 독립적인 기능 구축. 마이크로 피처는 다음 5개의 타겟의 조합으로 이루어져 있다. Source : Feature 소스 코드와 이에 대한 resource (image, font, st..
-
[SwiftUI] Square Shape를 활용하여 Image 조정하기iOS Dev/SwiftUI 2023. 7. 3. 22:37
SwiftUI에는 미리 정의된 여러가지 Shape들이 있다. Rectangle(), Circle(), RoundedRectangle() 등이 있다. 하지만 Square()는 없다. 그래서 직접 Path를 만들어서 넣어주자. struct Square: Shape { func path(in rect: CGRect) -> Path { let side = min(rect.maxX, rect.maxY) return Path { path in path.move(to: CGPoint(x: rect.midX, y: rect.midY - side / 2)) path.addLine(to: CGPoint(x: rect.midX + side / 2, y: rect.midY - side / 2)) path.addLine(to:..
-
iOS 엔지니어링 '잘' 하기 (feat. 클린 아키텍쳐)iOS Dev 2023. 3. 25. 22:11
시작하기에 앞서, 본 내용은 23.03.26에 진행한 숭실대학교 중앙동아리 유어슈 모바일 엔지니어링 데이 Ace '김종찬' 연사님의 발표 내용 기반입니다. 모바일 엔지니어를 괴롭히는 요소들과 그에 대한 대책은 무엇이 있을까? 1. 서비스의 방향과 스펙을 계속 흔드는 Product팀 => 기능의 재사용성을 높여주는 DI / 클린 아키텍쳐 / SOLID원칙 / 빠른 개발을 돕는 선언형UI 2. 서비스의 경험과 UI 스펙을 요상하게 주는 Design 팀 => 정해진 UI 스펙을 지속적으로 재활용하고, 커뮤니케이션 가능하게 해주는 디자인 시스템 3. 모바일 클라이언트에서 활용해야 하는 Response를 불편하게 전달하는 Backend 팀 => 백엔드 레이어와 그 곳에서 전달해주는 데이터를 레이어 별로 변환하여 ..