ios
-
Swift에서 Unicode.Scalar 다루기Swift 2025. 4. 27. 19:34
Swift에서 Unicode.Scalar 다루기개요이 문서는 Swift에서 Unicode.Scalar 타입을 이해하고, 이를 활용하여 문자열을 보다 세밀하게 다루는 방법을 소개합니다. 이 문서를 통해 다음을 얻을 수 있습니다:Unicode 배경에 대한 이해Unicode 스칼라(Unicode Scalar)와 그 역할에 대한 이해Unicode.Scalar 타입이 제공하는 주요 기능 파악실제 코드 예시를 통한 Unicode.Scalar 활용법 습득순서Unicode 개요Unicode.Scalar 기본 개념Unicode.Scalar가 제공하는 기능Unicode.Scalar 기본 활용예시 코드 샘플 프로젝트Unicode.Scalar 샘플 프로젝트Unicode 개요Unicode란?Unicode는 전 세계의 모든 ..
-
iOS 13 이상에서의 App Life Cycle(AppDelegate, SceneDelegate)Swift 2025. 3. 12. 22:42
CS 스터디에 참여하면서 다시 기본기를 다지고 있습니다. 재미있는 내용이 많은데, SceneDelegate를 통해 어떻게 로그가 찍히는지 확인해보겠습니다. App Life Cycle사실 앱의 라이프 사이클과 관련해서는 애플에서도 너무 정리를 잘 해두었고, 좋은 리소스가 많습니다. 라이프 사이클에 대한 배경은 아래 참고로 남겨두겠습니다. https://developer.apple.com/documentation/uikit/managing-your-app-s-life-cycle Managing your app’s life cycle | Apple Developer DocumentationRespond to system notifications when your app is in the foreground o..
-
Code Signing & Provisioning Profile 총정리: 하나의 앱을 여러 팀원과 공유하기이해를 위한 기록들 2024. 10. 21. 21:37
팀원들과 어떻게 하나의 앱으로 공유하죠?Q. 왜 제 핸드폰에 앱이 빌드가 되지 않는건가요? Q. 팀원 Xcode에 로그인했는데 왜 핸드폰에 빌드가 되지 않는걸까요?위와 같은 질문은 애플생태계에서 개발을 하다보면 자연스럽게 경험하게 되는 부분입니다. 위 질문에 답하기 위해서는 애플이 앱을 실행시키기 위해 만든 보안에 대해 이해가 필요합니다. 이해를 하려고 미루고 미루다, 아카데미에서 진행하는 출석 체크 앱의 유지보수를 위해 이번에 깊게 이해해보려 했습니다. 앱을 실행시키려면앱은 앱스토어에서 다운받을 수 있고, 그 앱은 애플이 발급한 인증서(Certificate)를 통한 코드 서명(Code Signing)이 되어야 실행이 될 수 있습니다. 코드 서명(Code Signing)이란, 앱에 서명을 한 이후 변경이..
-
[Swift] "No such module" 에러 / SPM && WatchOS에러처리 2023. 10. 14. 21:18
에러: "No such module" 상황은 이렇다. FireStore를 하기 위해 SPM으로 dependency를 추가하고 build를 했는데 No such module 에러가 발생했다. 오늘도 나의 인내심을 성장시켜준 에러. 감사하다. 시도한 방법 1. Project Navigator - Targer - BuildSetting에서 Debug와 Release를 빈칸으로 바꿔보았지만 아무런 일도 일어나지 않았다. 2. Xcode 에러인 것 같아서 Xcode를 종료했다가 다시 했지만 실패 3. SPM에 누락된 라이브러리가 있을 수도 있어서 Firebase의 모든 라이브러리를 적용했지만 실패 4. SPM에서 dependency 삭제 제거 3회 반복 -> 실패 해결 방법 현타가 올 수도 있으니 조심하자 SPM..
-
SwiftUI에서 화면 캡쳐하기(with UIKit / UIGraphicsImageRenderer)Swift 2023. 10. 11. 14:23
SwiftUI에서 화면 캡쳐하기 최근에 하는 프로젝트에서 image를 만들어서 instagram으로 공유하는 기능을 구현해야 했다. 먼저는 화면의 이미지를 image로 렌더해야 하는 기능을 구현해야 해서 UIGraphicsImageRenderer를 활용한 캡쳐 기능을 구현하였다. 구현 순서 1. Target으로하는 View를 구현한다. 해당 뷰를 그대로 이미지로 만들기 때문에 따로 View를 만들거나 아래와 같이 바뀌는 내용이 없다면 extension에 computed property로 구현해도 된다. // 렌더해야 하는 뷰 extension RendererTestView { private var TargetImageView: some View { ZStack{ Color.white VStack { Te..
-
[Swift] Codable 개념 확실히 이해하기 💬Swift 2023. 10. 6. 21:36
Codable: type alias Codable is a type alias for the Encodable and Decodable protocols. When you use Codable as a type or a generic constraint, it matches any type that conforms to both protocols. Coadable은 Encodable과 Decodable을 합친 Union Type이다. 정의 typealias Codable = Decodable & Encodable Decodable: Protocol A type that can decode itself from an external representation. Decodable은 외부 표현을 자신으로 변환..
-
Apple Developer Academy @ POSTECH / 싱싱한 회고애플 디벨로퍼 아카데미 2023. 10. 4. 19:22
싱싱한 회고 애플 개발자 아카데미에 들어갈 때, 매주 회고를 하겠다고 다짐하면서 3월을 시작했다. 그리고 드디어 회고를 시작한다. 이렇게 매번, 일관적으로 강제성이 있어야 일을 한다는 것은 결핍이 있다는 것을 인정하라는 뜻이겠다. 늦어서 회고의 의미는 조금 떨어지지만, 이 회고가 나에게도 새로운 시작을 하는 분들에게도 도움이 될 것이라 생각하며 조금 덜 싱싱한 회고를 해보려한다. 아카데미 시작 전 목표 놀랍게도 아카데미 초기 목표의 33%를 달성했다. 오픽은 다시 하면 될 것 같은데 IM1이 나와버려서 자존심때문에 못하고 있고, 블로그는 지금부터 하루에 하나씩 쓰면 어쩌면 가능할지도 모른다. 강제성이 필요한 순간이다. 아카데미에서 뭘 얻어가고 싶었을까 1. 협업 경험 작년 한 해동안 프론트엔드를 혼자 공..
-
[Swift] defer는 무엇인가 🤔Swift 2023. 10. 3. 18:25
defer란 후처리인 defer는 작성된 구문은 위치와 상관 없이 코드블럭을 나가기전에 반드시 실행된다. 에러가 나거나 정상적으로 작동되거나 무조건 실행된다. 함수가 종료되기 전 메모리에서 해제하는 등의 기능으로 사용할 수 있다. func sayHello(name: String){ defer { print(name) } print("hello") } sayHello("moonkey") /* hello moonkey */ defer 동작 순서 defer는 Stack으로 동작하기 때문에 defer가 여러개 입력된 경우 가장 먼저 작성된 코드가 가장 나중에 실행된다. func printNums(){ defer { print(1) } defer { print(2) } defer { print(3) } } /* ..