iOS

    앱스토어 첫 심사와 리젝 대응 : Guideline 2.1

    앱스토어 첫 심사와 리젝 대응 : Guideline 2.1

    첫 심사 시험 하루 전날이었지만,첫 개인 앱이 세상 밖으로 나갈 준비를 마치니까 몸이 근질거려 시험공부는 때려치고 처음으로 심사를 넣어보았다! 앱스토어에 등록될 스크린샷(6.5/5.5)도 직접 만들고 인생 첫심사라니 뿌듯해하던것도 잠시 심사에 들어간지 2시간 정도만에 답장이 왔다. 첫 리젝 이게 뭐지? 하고 읽어보니 리젝당했다는 뜻이었다. 처음 읽을때만해도 통과는 됐는데 뭘 바꾸라는건가? 싶었음ㅋㅋㅋㅋㅋ 가이드라인과 함께 내용을 파파고와 함께 읽어보니 2.1 앱 완전성 앱 심사 팀에 제출하는 앱(사전 주문용 앱 포함)은 필요한 모든 메타데이터가 있고 URL이 정상적으로 작동하는 최종 버전이어야 합니다. 플레이스홀더 텍스트, 빈 웹 사이트와 기타 임시 콘텐츠는 제출하기 전에 삭제해야 합니다. 앱을 제출하기..

    협업 시 팀원과 Provisioning Profile 및  Certificate 공유하기

    협업 시 팀원과 Provisioning Profile 및 Certificate 공유하기

    iOS 앱개발을 하다보면 혼자서만 작업하는게 아닌 협업을 자주 하게 되는데요. 혼자서 개발할땐 거의 Automatically manage signing 을 켜둔 상태에서 개발하다보니 XCode 가 알아서 Provisioning Profile 을 만들어주고, 이렇게 만들어진 Provisioning Profile 엔 내 App ID, Signing Certificate, Device 가 등록되어있을테니 내 작업환경에선 실기기 빌드도 잘되고 문제가 없습니다. 하지만 팀원은 인증서와 프로비저닝 프로파일이 없기 때문에 실기기를 빌드하려고 하면 오류가 나게 됩니다. 따라서 수동으로 프로비저닝 프로파일(Provisioning Profile)과 인증서(Certificate) 을 만들고 팀원들에게 공유해 준다음 팀원들이..

    [Gradient Animation] AngularGradient Border 애니메이션 넣기

    [Gradient Animation] AngularGradient Border 애니메이션 넣기

    1. 이미지 리사이징 struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .mask { RoundedRectangle(cornerRadius: 12) } } } 2. 그림자 추가 struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .mask { RoundedRectangle(cornerRadius: 12) } .shadow(radius: 8) } } 3. AngularGradient Border 추가 struct Content..

    [EventKit] 캘린더에 이벤트 추가하기(with. Async/await)

    [EventKit] 캘린더에 이벤트 추가하기(with. Async/await)

    Introduction to Calendars and Reminders Introduction to Calendars and Reminders The EventKit framework helps you access users’ Calendar and Reminders information. Although two different apps display users’ calendar and reminder data, the same framework manipulates the data. Similarly, the da developer.apple.com EventKit 공식 문서 간단 해석 주관적일 수 있습니당 틀린 내용이 있으면 댓글로 달아주세요! EventKit는 사용자의 기존 캘린더 및 미리 알림 ..

    Swift 5.7 - if let 문 간략화

    Swift 5.7 - if let 문 간략화

    Swift 5.7 의 변경사항 중 당장 피부에 와닿을 변경점인 if let 문이 어떻게 개선됐는지 알아보려고 합니다. Swift 5.7 의 변경사항은 아래 글에서 확인하실 수 있습니다! Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험 아래 글은 원문 링크에 구글 번역과 조심스러운 의역으로 이루어져있습니다! 틀린 내용이 있으면 댓글로 알려주세요:) 원문 바로가기 Swift 5.7 Released! Swift 5.7 is now officially released! Swift 5.7 inclu.. youngkdevlog.tistory.com let foo: Foo? = ... if let foo = foo { someFunc() } // 또는 if let foo = foo else { re..

    Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험

    Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험

    아래 글은 원문 링크에 구글 번역과 조심스러운 의역으로 이루어져있습니다! 틀린 내용이 있으면 댓글로 알려주세요:) 원문 바로가기 Swift 5.7 Released! Swift 5.7 is now officially released! Swift 5.7 includes major additions to the language and standard library, enhancements to the compiler for a better developer experience, improvements to tools in the Swift ecosystem including SourceKit-LSP and the Swif www.swift.org Swift 5.7 가 정식 출시되었습니다! Swift 5.7에는..

    [SwiftUI]커스텀 백버튼 백 제스처 시 화면 멈춤 이슈 해결

    [SwiftUI]커스텀 백버튼 백 제스처 시 화면 멈춤 이슈 해결

    XCode : 13.2.1 타겟 버전 : 14.0 이후 시뮬레이터 버전 : 15.2 개요 프로젝트를 진행하면서 디자이너님의 요구사항에 맞게 백버튼을 커스텀해야 할 일이 생겼다. 그러나 SwiftUI에선 아직 NavigationBar 백버튼의 디자인을 바꿀 수 있는 옵션을 제공하지 않아 커스텀하여 사용하기로 했다. 그러나 커스텀 백버튼을 만들고 hidden 옵션을 주면 백 제스처가 동작하지 않았고 .navigationBarHidden(true) 찾다보니 UINavigationController를 직접 수정하면 해결 할 수 있다고 했다. interactivePopGestureRecognizer?.delegate = self 그러나 Navigation Stack에 뷰가 하나밖에 없는데 뷰를 pop 해버리면 안..

    [iOS]카카오 로그인 구현 시 키 값 숨기기

    [iOS]카카오 로그인 구현 시 키 값 숨기기

    카카오 로그인 iOS SDK 공식 문서 설치방법 : https://developers.kakao.com/docs/latest/ko/getting-started/sdk-ios 사용방법 : https://developers.kakao.com/docs/latest/ko/kakaologin/ios 앱을 출시하려면 필수가 되어버린 소셜 로그인 기능 중 국내에서 가장 많이 사용되는 카카오 로그인! 그런데 SwiftUI 에서 iOS SDK 2.4.0 버전을 다루는 글이 많이 없는 것 같아 직접 맨 땅에 헤딩해보고 사용법과 문제점을 정리해보려고 합니다. 개발 환경 Xcode : 13.1 target iOS : 14.0 Kakao iOS SDK : 2.4.x 로그인 방법 자세한 내용은 카카오 공식문서에서 확인하실 수 있..

    [iOS][Swift] 프로토콜 vs 인터페이스 차이점

    [iOS][Swift] 프로토콜 vs 인터페이스 차이점

    Swift를 공부하다보니 protocol 이란 개념이 많이 등장해서 protocol 이 정확히 뭘까하고 자료들을 찾다가, Swift는 프로토콜 지향 언어(Protocol-Oriented-Language) 라는 것을 알게 되었다. 그런데 읽다보니 Java에서의 interface 와 비슷한 것 같았고, 무엇이 다른지 알아보았습니다. protocol(프로토콜)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 구조체, 클래스, 열거형은 프로토콜을 채택(Adopted) 해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다(Conform) 고 표현합니다. 타입에서 프로토콜의 요..