728x90

분류 전체보기 289

animatableData

안녕하세요. SwiftUI에서 Shape에 애니메이션이 적용 안 되는 경우가 있더라구요. 그래서 이번 글에서는 animatableData를 사용해서 Shape에 애니메이션을 적용하는 방법에 대해 알아볼게요. 우선 팔각형 형태의 Octagon이라는 Shape를 만들게요. struct Octagon: Shape { var inset: CGFloat func path(in rect: CGRect) -> Path { return Path { path in path.move(to: CGPoint(x: inset, y: 0)) path.addLines([ CGPoint(x: 0, y: inset), CGPoint(x: 0, y: rect.height - inset), CGPoint(x: inset, y: rect...

SwiftUI 2022.03.03

renderingMode(_:)

안녕하세요. 이번에는 SwiftUI의 렌더링 모드에 대해 알아볼게요. # 1. RenderingMode renderingMode에는 총 2가지가 있어요. - Image.TemplateRenderingMode.original - Image.TemplateRenderingMode.template original 모드는 이미지 그 자체를 그대로 화면에 렌더링을 해주는 것이고, template 모드는 이미지의 불투명한 부분을 foregroundColor로 색을 변경한 뒤에 화면에 렌더링 해주는 것이에요. (이미지 마스크를 만들기 위해 사용한답니다.) # 2. SFSymbol multicolor SFSymbol의 multi color를 제외한 부분에 foregroundColor를 적용하기 위해 original 모..

SwiftUI 2022.03.01

AlignmentGuide

안녕하세요. 이번에는 alignmentGuide에 대해 알아볼게요. # 1. alignmentGuide 란? alignmentGuide는 쉽게 말해서, 뷰를 정렬하는데 기준이 되는 가이드라인을 말해요. 이게 뭔 말이냐... 만약에 VStack에서 leading alignment를 준다면, VStack(alignment: .leading) { Text("Hello World").font(.title) Text("My name is Philip.").font(.title) } 이렇게 보이겠죠?? 근데 이게 사실은 alignmentGuide라는 가이드라인이 있고, alignmentGuide를 기준으로 뷰를 배치하는 것이에요. (leading alignment이니 뷰의 왼쪽 부분이 alignmentGuide에 ..

SwiftUI 2022.02.27

Xcode를 스마트하게 쓰자

안녕하세요. 이번에는 Xcode로 개발할 때 도움이 될 만한 팁 및 단축키를 소개해볼까 해요. 아래 사이트에서 소개하는 것과 더불어 제가 자주 쓰고 있는 단축키들도 같이 적어둘게요. (아래 사이트는 종종 새로운 팁들이 올라오니 자주 기웃기웃하면 좋을 것 같습니다ㅎㅎ) - https://xcode.tips/ ## 1. Show View Frames 시뮬레이터를 킨 상태에서 Xcode > Debug > View Debugging > Show View Frames 설정을 키면, 각 뷰의 영역이 표시됩니다. 이렇게... ## 2. Open Quickly 파일명을 검색해서 열어줍니다. 단축키 : ⌘ +⇧ + O ## 3. 하위 뷰 목록 스토리보드에서 현재 선택한 뷰의 하위 계층과 constraints를 보여줍니다..

Xcode 2022.02.26

구독 가족 공유 활성화

가족 공유를 사용하면 Apple 기기에서 최대 5명의 가족 구성원과 구독 권한을 공유할 수 있습니다. 구독 가족 공유를 활성화하여 더 많은 구독 활성화를 유도하고, 사용자의 참여율 및 유지율을 높일 뿐만 아니라 구독자를 충성 고객으로 전환할 수 있습니다. (이거 애플이 한 말임) ## 구독 가족 공유 활성화 방법 App Store Connect에서 구독 별로 가족 공유를 활성화시킬 수 있습니다. 1. App Store Connect 이동 2. '앱' 탭으로 이동하여 구독 가족 공유 활성화시킬 앱 선택 3. 앱 내 추가 기능 > 앱 내 구입 클릭 4. 자동 갱신 구독 아이템 선택 5. '가족 공유 > 켜기' 클릭 한 번이라도 가족 공유를 활성화시키면, 이후에는 이 기능을 끌 수 없으니 주의해주세요. ## ..

News 2022.02.26

스크린샷 주의 팝업, 화면 녹화 방지

안녕하세요. Netflix를 보던 중 갑자기 이거 누가 화면 녹화하고 무단 배포하면 어떡함? ☹️ 이라는 생각에 테스트 삼아 녹화를 해봤어요. 정상적으로 녹화가 되는가 싶더니, 앨범을 보니까 녹화는 되었지만 검은색 화면으로 나오더라구요ㅎㅎ 호옥시??? 하는 생각에 네이버 웹툰 iOS 앱에서도 테스트해봤는데, 녹화를 시작하면 앱 화면 자체가 검은색으로 바뀌고, 스크린샷을 하니 팝업창이 뜨더라구요. 그래서 이번 글을 통해 SwiftUI에서 녹화 & 스크린샷 이벤트를 받고 네이버 웹툰 iOS 앱처럼 화면 녹화 방지 및 주의 팝업 출력해보는 시간을 가져볼게요. 전체 프로젝트는 github에 올려두었으니 참고해주세요ㅎㅎ #1. 스크린샷 주의 팝업 일단 간단하게 화면을 구성해봤어요. 이제 스크린샷 이벤트를 받아야겠..

SwiftUI 2022.02.25

[오픈소스] CustomDump 소개

안녕하세요. 이번에는 customDump라는 오픈소스를 소개해볼까 해요. # 1. CustomDump 소개 CustomDump의 소개글을 살펴볼게요. A collection of tools for debugging, diffing, and testing your application's data structures. CustomDump는 데이터 구조를 디버깅, diff 그리고 테스트하는 것에 특화된 API들이 있는 모듈이에요. 어떤 기능이 있는지 하나씩 살펴볼게요. ## 1.1 customDump Swift에는 print와는 별개로 디버깅을 위한 dump라는 함수가 있어요. 일단 print와 dump가 콘솔에 어떻게 찍히는지부터 볼게요. 아래 같이 Dictionary 변수가 있다고 할 때, let dic..

iOS 2022.02.24

Swift Package 의존성 추가, 생성, 배포 방법

안녕하세요. 이번에는 Swift Package Manager를 사용해서 dependency 추가하는 방법과, Swift Package를 직접 만들고 배포하는 방법에 대해 알아볼게요. # 1. Swift Package Manager로 패키지 설치 Swift Package Manager는 애플에서 제공하는 dependency manager입니다. (줄여서 SPM이라고도 부릅니다.) SPM으로 패키지를 어떻게 설치하고 관리하는지 알아볼게요. ## 1.1 dependency 추가 Xcode > 프로젝트 Target > Package Dependencies로 이동합니다. + 버튼을 클릭하면 패키지를 추가할 수 있는 화면이 나옵니다. 추가할 패키지의 repo URL을 입력하고 Add Package 버튼을 눌러주세요..

iOS 2022.02.24

SwiftUI Markdown 사용에 대한 3가지 특이점

안녕하세요. WWDC 2021 발표를 통해, iOS 15 이상 Foundation과 SwiftUI에서 Markdown을 사용할 수 있다는 것 알고 계셨나요?? 이번 글은 SwiftUI에서 markdown을 사용할 때, 고려해야 할 3가지 특이점에 대해 소개해보려고 합니다. # 1. GFM 지원 SwiftUI는 Github Flavored Markdown(GFM)을 지원합니다. 쉽게 확인할 수 있는 예로, CommonMark에서는 지원하지 않는 취소선(문자열을 ~~로 감싼 것)이 SwiftUI에서는 사용이 가능합니다. Text("Hello ~~world!~~") 써보니까 GFM도 지원하는 것 같은데?? 라고 추측한 것은 아니고... Apple Developer forum에서 GFM을 지원한다고 공식적으로 ..

SwiftUI 2022.02.24

CryptoKit을 사용한 암호화

안녕하세요. 애플은 암호화를 위해 CryptoKit이라는 프레임워크를 제공해주고 있어요. 그래서 이번에는 CryptoKit 기본 사용법에 대해 알아보려고 합니다. # 1. 공개키(비대칭키) 암호화 일단 공개키 암호화가 뭔지 알아야겠죠??? ## 1.1 공개키 암호화란? 공개키 암호화 또는 비대칭키 암호화라고도 불려요. 공개키 암호화 방식에 필요한 것이 공개키와 개인키입니다. 공개키는 공개되어 있는 키로, 남들도 쉽게 알 수 있는 값이에요. (공개키를 서로 공유할 때, 탈취를 방지하기 위해서 디피 헬만 알고리즘이라는 것을 사용하기도 합니다.) 대신 개인키는 남들한테는 공유하지 않은, 나만 알고 있는 값입니다. 그래서 공개키와 개인키로 메시지를 암호화, 복호화를 하는 것이죠. (공개키로 암호화한 것은 개인키..

Swift 2022.02.23