Swift 문법: switch문의 고급 사용법 / if case let 및 for case let

Swift 기초 (2): if 문, for ~ in 문, while 문, switch 문 1. Switch 문을 사용한 튜플 매칭 이해하기 Swift의 switch 문은 특정 값에 대해 다양한 경우를 다룰 수 있도록 해줍니다. 특히 튜플을 사용할 때 매우 유용합니다. 이번 섹션에서는 switch 문이 튜플을 어떻게 처리하는지 살펴보겠습니다. func getPoint(somePoint: (Int, Int)) 더보기…

애플 디벨로퍼 아카데미 과정에서 했으면 좋았을 것들

아카데미에서 했으면 좋았을 것들 애플 디벨로퍼 아카데미 @ POSTECH(Apple Developer Academy @ POSTECH)에 대한 전반적인 내용은 찾아보면 관련 자료가 많이 있으니, 이 글에서는 별도의 설명을 생략하겠습니다. 저는 2기 출신으로, 테크(개발/기술) 분야로 입학하여 수료했습니다.   1. C5 건물의 죽돌이가 된다 C5 건물은 아카데미의 주요 활동 시설인 메인 랩 등이 있는 건물을 더보기…

개발자 과제 테스트 다섯 번 떨어지고 느낀 점

아래 글은 챗지피티의 도움을 받아 작성되었습니다.   안녕하세요, 이번 글에서는 개발자 과제 테스트의 개선 사항에 대해 말씀드리고자 합니다. 저는 지난 5번의 과제 테스트에서 탈락한 경험이 있습니다. 사실 개발 블로그이므로 여기를 이력서에 기재하고 있기 때문에 평소에는 말을 아끼는 편이었지만, 더 이상 과제 테스트를 통해 자격을 얻을 가능성이 희박해 보이기에 몇 가지 더보기…

SwiftUI: 스크롤 뷰(Scroll View)를 밑에서 위로 스크롤하는 방법

소개 iOS의 기본 앱인 사진 앱은 사진 목록의 스크롤 뷰가 밑에서 위로 진행됩니다. SwiftUI에서 스크롤 뷰를 밑에서 위로 스크롤하는 것은 여러 가지 방법으로 구현할 수 있습니다. 이 글에서는 iOS 14부터 사용할 수 있는 방법과 iOS 17 이상에서만 사용할 수 있는 방법을 소개합니다.   전체 코드 개요 이 코드에서는 TabView를 사용하여 더보기…

Swift 예제: iOS 앱에 위젯 추가 및 연동

Swift 예제: iOS 앱에 위젯 추가 및 연동 전체 코드 https://github.com/ayaysir/Swift-Playgrounds/tree/main/Projects/study-WidgetExample   개발 환경 Xcode 15.4, Swift 5.9 iOS App + Widget Extension SwiftUI + UIKit Representable   목적 위젯 개발 기본 학습 Deep Link를 이용한 위젯 -> 앱 간 데이터 전달 App Groups 기능을 이용한 아이폰 메인 앱과 위젯간 더보기…

Swift UIKit, SwiftUI: AVPlayerViewController에서 재생중인 비디오의 강제 풀스크린 전환 및 반복 재생

소개 AVPlayerViewController는 처음에 풀 스크린으로 바로 시작할 수 없는 옵션도 없고, 반복 재생 옵션도 없습니다. AVPlayerViewController에서 강제 풀스크린 전환 및 반복 재생하는 방법입니다. 포스트 하단에 SwiftUI를 위한 UIViewControllerRepresentable을 첨부합니다.   시작시 강제 풀스크린 전환 let controller = AVPlayerViewController() let player = AVPlayer(url: url) controller.player = player let selectorToForceFullScreenMode = NSSelectorFromString(“_transitionToFullScreenAnimated:interactive:completionHandler:”) 더보기…

Swift에서 애플 앱 프로그래밍 말고 할 수 있는 것들: 서버, 임베디드, 모바일 크로스플랫폼, 게임 엔진 등

소개 Swift 언어에서 iOS/macOS 등 운영체제의 애플리케이션의 개발을 하는 것 외에 뭘 더 할 수 있을까요? Swift 탄생 10주년을 맞아 다양한 활용처에 대해 간단하게 알아보겠습니다.   서버 (웹 백엔드 등) – Vapor https://github.com/vapor/vapor https://vapor.codes/ Vapor는 Swift 언어를 사용해 서버를 구축할 수 있는 솔루션입니다. Vapor 는 Swift로 작성된 오픈소스 라이브러리이며 애플의 더보기…

SwiftUI: Xcode 15 버전 이상에서 iOS 하위 버전 (15.0 이상) 호환되는 위젯 생성

소개 Xcode 15에서 작업하다가 위젯을 추가하고 싶어서 Widget Extension을 추가하였는데, 위젯의 최소 배포 타깃(Minimum Deployments Target) 버전을 15.0 이상으로 잡고 진행하고 싶은 경우가 있을 것입니다.   그래서 버전을 바꾸면 어떻게 될까요? 기본으로 제공하는 코드가 아래와 같이 iOS 17.0 이상을 요구하는 부분들이 많기 때문에 하위 호환성이 떨어지고 처리해야 할 분기 작업이 더보기…

Xcode iOS 프로젝트: PrivacyInfo.xcprivacy 작성 방법 + API 목록 및 허용된 사유 번역

소개 2024년 봄부터 App Store Connect에 새로운 앱 또는 앱 업데이트를 업로드하려면 앱의 개인정보 보호 목록에 앱이 API를 사용하는 방식을 정확하게 반영하는 승인된 사유를 포함하고 있어야 합니다. 이는 사용자의 개인 정보 보호를 강화하기 위한 조치로, 앱이 명시한 이유에 딱 맞게 API를 사용하도록 합니다. 만약 필요한 사유가 아직 목록에 없는 경우, 더보기…

Swift: 튜플 (Tuple), 튜플 패턴 분해, 버전 6에서의 변경사항

튜플 (Tuple): 데이터의 집합 튜플(Tuple)은 Swift에 존재하는 두 가지 복합 타입 (compound type) 중 하나입니다. 복합 타입에는 함수 타입(Function type)과 튜플 타입(Tuple type)의 두 가지가 있습니다. 출처: Swift 공식 문서 Types   특징 튜플의 특징은 다음과 같습니다. 여러 값을 동시에 표현 및 저장할 수 있다. (데이터의 집합) 예를 들어 x, 더보기…