내가 보려고 정리하는 Swift 맞춤 UML 클래스 다이어그램
·
iOS & Swift
클래스 다이어그램을 그리거나 해석할 때 빠르게 찾아보기 위해 정리한 글입니다. 저는 항상 개발하기 전에 UI부터 설계해왔는데요, 이제는 개발하기 전에 클래스 다이어그램이나 시퀀스 다이어그램처럼 UML 다이어그램을 그리고 시작하는 습관을 들이려고 합니다. 프로젝트 규모가 커질수록 클래스 간의 관계는 얽히고설키기 마련입니다. 코드로만 파악하기엔 한계가 있는 '객체 간의 구조'를 한눈에 시각화하기 위해 UML 클래스 다이어그램을 정리해 봅니다. 설계 단계에서 화살표 몇 개를 고치는 것이, 나중에 코드 수백 줄을 리팩토링하는 것보다 훨씬 효율적이니까요! 1️⃣ 속성 및 메서드 표기법 (Property & Method)UML에서는 접근제어자 이름: 타입 형태로 표기하는 것이 표준입니다.접근 제어자 (Acces M..
[iOS] 서버 없는 근거리 P2P 통신, Multipeer Connectivity (2) 실전 코드편
·
iOS & Swift
구현하기 전, P2P 통신 흐름 다시 보기 [iOS] 서버 없는 근거리 P2P 통신, Multipeer Connectivity (1) 개념편🍎 Multipeer Connectivity란?지원 버전: iOS 7.0 +, iPadOS 7.0 +, Mac Catalyst 13.0 +, macOS 10.10 +, tvOS 10.0 +, visionOS 1.0 +Multipeer Connectivity 프레임워크는 주변 기기가 제공하는 서비스를 검색하고, 메시지 기반 데이oieunxe.tistory.com 앞서 Multipeer Connectivity의 기본 개념을 알아봤으니, 이번에는 직접 코드를 작성하며 아주 간단한 근거리 채팅 앱을 만들어보려고 합니다. 코드를 짜기 전, 우리가 구현할 P2P 통신의 전체적..
[iOS] 서버 없는 근거리 P2P 통신, Multipeer Connectivity (1) 개념편
·
iOS & Swift
🍎 Multipeer Connectivity란?지원 버전: iOS 7.0 +, iPadOS 7.0 +, Mac Catalyst 13.0 +, macOS 10.10 +, tvOS 10.0 +, visionOS 1.0 +Multipeer Connectivity 프레임워크는 주변 기기가 제공하는 서비스를 검색하고, 메시지 기반 데이터, 스트리밍 데이터 및 리소스(파일 등)를 통해 해당 서비스와 통신할 수 있도록 지원합니다. iOS에서 이 프레임워크는 인프라 Wi-Fi 네트워크, 피어 투 피어(P2P), Wi-Fi 및 블루투스 개인 영역 네트워크를 하위 전송 수단으로 사용합니다. 이 프레임워크를 활용하면 별도의 서버를 거치지 않고도, 동일한 Wi-Fi 환경에 있거나 블루투스 범위 내에 있는 기기들끼리 직접 P..
[Apple Developer Academy @POSTECH] Challenge 2, 방향을 찾는 과정
·
Apple Developer Academy @POSTECH
Challenge 2의 주제는 Improve My Skills였습니다.즉, 내가 가지고 있는 역량을 한 단계 더 성장시키는 것이 이번 챌린지의 목표였습니다. 저는 먼저 ‘내가 가진 skill이 무엇일까?’에 대해 고민해보았습니다. 아카데미에 오기 전까지 iOS 개발을 해왔기 때문에,처음에는 자연스럽게 Tech Skill이 저의 강점이라고 생각했습니다. 하지만 아카데미에서는 단순히 개발만 잘하는 것이 아니라 디자인 또한 중요한 영역이라는 것을 느꼈고,이번 챌린지에서는 디자인 역량도 함께 성장시켜보고 싶었습니다. Challenge 1 때 만들었던 레전드 밤티 앱입니다.이번 Challenge 2에서는 이 앱을 개선하는 것이 과제였습니다. CBL의 특성상 단순히 결과물을 만들어내는 것보다,앱을 수정하고 발전시키..
[Apple Developer Academy @POSTECH] Challenge 1, 나의 첫 CBL 경험기
·
Apple Developer Academy @POSTECH
Learn basic skills with CBL이번 Challenge 1을 한 줄로 설명하는 문장이었는데요,CBL을 기반으로 앞으로의 여정을 위한 기본기를 다지는 시간이었습니다. 애플 디벨로퍼 아카데미가 CBL(Challenge Based Learning)이라는 교육 프로세스를 중심으로 운영된다는 점은 이미 많은 분들이 알고 계실 것 같습니다. 이번 Challenge 1의 목표 역시 CBL을 바탕으로 기획, 디자인, 개발 등 앞으로 마주하게 될 다양한 과정에 대비해 기술적 기초를 익히는 것이었습니다. 물론 Basic Skills를 배우는 것도 중요했지만,앞으로 9개월 동안 계속 활용하게 될 CBL이라는 프로세스 자체에 익숙해지는 것이 더 중요한 목표이기도 했습니다. CBL의 첫 시작 CBL은 Engag..
[SwiftUI와 컴바인을 활용한 비동기 프로그래밍] 4장. 상태관리
·
iOS & Swift
SwiftUI에서 뷰는 애플리케이션 상태의 함수다. SwiftUI는 화면에 표시되는 모든 변경 사항은 애플리케이션의 데이터 모델 상태와 그 변화에 따라 결정된다. SwiftUI에서 상태관리SwiftUI 뷰는 구조체이며, 이는 곧 value type이란 의미이다. 구조체를 사용하는 이유 중 하나는value type을 복사할 때 앱의 다른 부분이 안 보이는 영역의 데이터를 변경하지 않는다는 것을 보장해주기 때문이다. UI를 동적으로 업데이트 하는 앱을 만드는 이유SwiftUI에서는 데이터 모델을 자유롭게 관리하고 업데이트하는 동시에,UI가 항상 데이터 모델과 동기화되도록 보장하는 2가지 상호 보완적인 도구를 제공한다. 이 두 가지 모두 프로퍼티 래퍼를 기반으로 한다.1. 상태를 게시할 수 있는 방식으로 데이..
[WWDC26] Swift Student Challenge, Winner에 선정되다!
·
Retrospective
저 됐어요!2026년 Swift Student Challenge의 Winner가 됐어요!!! 🥳 2026년 3월 27일 금요일,드디어 기다리고 기다리던 Swift Student Challenge(스스챌) 위너 발표 날이었습니다.이전 합격자분들의 블로그를 보았을 때 발표 즉시 애플 측으로부터 메일이 발송된다는 것으로 알고 있었으나, 제 메일함에는 아무런 소식이 없었습니다. 여느 때와 다름없이 애플 디벨로퍼 아카데미 세션을 듣기 위해 C5 건물로 향했습니다.마침 함께 iOS 개발을 공부하는 동료 러너 한 분이 위너로 선정되었다는 기쁜 소식을 들려주었고, 진심을 다해 축하해주고 있었어요. 축하하던 중에 '왜 나한테는 메일이 안 왔지?' 라는 생각이 들었습니다.그때 러너분이 "디벨로퍼 사이트에 직접 로그인해서..
[WWDC24] Translation API 소개
·
iOS & Swift
애플이 WWDC에서 번역 기능을 제공하는 API를 소개했습니다! 바로 Translation 프레임워크인데요,이 프레임워크를 사용하면 앱 내에 번역 기능을 손쉽게 추가할 수 있습니다.시스템에서 제공하는 팝업 UI를 활용해 번역을 제공할 수도 있고, 필요에 따라 커스텀 UI로 구성할 수도 있습니다. Simple overlay: 번역 오버레이를 보여주는 아주 간단한 API 번역 기능을 추가하기 위해서는 다음과 같은 함수를 사용합니다.func translationPresentation( isPresented: Binding, // 팝오버를 표시할지 여부를 결정하는 Bool type 바인딩 text: String, // 번역할 텍스트 attachmentAnchor: PopoverAttachmen..