swift(27)
-
[iOS] 컬렉션 타입(CollectionType)
컬렉션 타입값을 모아서 저장할 수 있는 데이터 구조 Swift에서 제공하는 컬렉션 타입은 배열SetDictionary이렇게 세 가지 입니다. 1. 배열 (Array)값들이 순서를 가진 컬렉션같은 타입의 요소를 중복 허용하여 저장할 수 있음let numbers = [1, 2, 3, 4] 2. Set중복되지 않는 값들의 집합요소 간 순서가 없음let uniqueNumbers: Set = [1, 2, 3, 3, 3]print(uniqueNumbers) // [1, 2, 3] 3. Dictionary키(key) 와 값(value) 의 쌍으로 구성키는 고유해야 하며, 순서는 보장되지 않음let person = ["name": "Min", "age": "25"] 4. 컬렉션의 특징을 결정하는 프로토콜 ..
2025.04.21 -
[iOS] NavigationStack
NavigationStack기존 NavigationView의 아쉬웠던 점들을 해결하고, 데이터 기반(Data-Driven) 접근 방식을 통해 훨씬 더 직관적인 네비게이션 스택 관리를 가능하게 해주는 API 1. NavigationStack & navigationDestination(for: destination: )iOS 16 이전 버전에는 다음 코드와 같이 NavigationView와 NavigationLink를 활용하여 목적지에 해당하는 뷰를 직접 넣어주었습니다. (현재 시점 iOS26까지 나왔는데요, 아마 이전 방식을 사용하시는 경우는 거의 없을 것 같습니다. 특히 개인 프로젝트에선 말이죠.) 기존 방식// ⚠️ iOS 16 이전의 방식 (NavigationView)NavigationView { ..
2025.04.19 -
[iOS] Dynamic Type
Dynamic Type이란?Dynamic Type은 사용자가 설정 > 디스플레이 및 텍스트 크기 > 텍스트 크기 메뉴를 통해 텍스트 크기를 조절할 수 있도록 해주는 iOS의 핵심 접근성 기능입니다. 단순히 글자 크기를 키우는 것을 넘어, 시각적 제약이 있는 사용자가 콘텐츠를 편안하게 읽을 수 있도록 돕고, 더 많은 정보를 한 화면에 보고 싶어하는 사용자에게는 텍스트를 작게 조절할 수 있는 유연성을 제공합니다. 이 기능을 제대로 지원하려면, 앱 내의 텍스트가 사용자의 설정값에 따라 자동으로 크기를 변경해야 하며, 이는 시맨틱 폰트 스타일(body, headline, caption 등)을 기반으로 구성되어야 합니다. 고정된 폰트를 사용하고 싶은데 텍스트 크기에 따라 화면이 깨지거나, 텍스트폰트에 따라 사용자..
2025.02.28 -
[iOS] Metal - 1
사전지식Rendering(렌더링)3D 컴퓨터 그래픽에서는 여러 점을 연결해 화면에 이미지를 만듦여기서 이미지 → 렌더라고 함3D 모델을 실제 이미지처럼 보이게 하는 과정 → 렌더링 렌더링이 왜 필요할까?3D 모델은 구조, 모양만 존재 → 빛, 그림자, 색에 대한 요소 X렌더링을 통해빛을 어디에 비출지그림자가 어떻게 혹은 어디에 생기는지재질 등을 계산해서 진짜 처럼 보이게 만드는 과정→ 그냥 뼈대만 있으니 거기에 색상, 그림자를 입혀 real하게 보이게 하는 거 3D 모델?Vertex라는 정점들로 구성되어 있는 뼈대정점들을 연결하여 모양을 만들고 여기에 색, 재질, 빛 효과 등을 입혀 3D 이미지 생성 렌더링 파이프?3D 모델이 화면에 나타나기까지 거치는 모든 과정모델을 불러옴 → 정점 정보 읽어드림GPU..
2025.02.22 -
[iOS] Metal - 0
Metal?Apple에서 만든 고성능 그래픽 & 계산용 APIiOS, macOS, tvOS에서 GPU를 직접 제어할 수 있도록 해줌그래픽 렌더링뿐만 아니라, 머신러닝, 영상 처리 등에도 활용 가능 왜 Metal을 쓰나?OpenGL보다 훨씬 저수준의 접근 가능 → 더 빠르고 최적화된 렌더링iOS12 부터 OpenGL ES 권장 XmacOS에서는 아예 deprecated 처리Apple 에서는 Metal이 그래픽 개발의 표준이 됨Shader 프로그래밍(Metal Shading Language)을 통해 실시간 효과 구현 가능Swift, Objective-C에서 손쉽게 사용 가능 (애플 생태계 최적화)저수준(Low-level)?저수준 API- 시스템이나 하드웨어(GPU 등)에 더 직접적이고 세세하게 접근할 수 있..
2025.02.08 -
[iOS] SKIP.tools 사용기
SKIP.tools Install사전 설치: Xcode, Android Studio, Homebrew 도 설치가 되어있어야합니다..!저는 Android Studio만 추가적으로 설치해줬습니다 그 다음엔 brew install skiptools/skip/skipskip checkup차례로 진행하면 되는데요checkup 시, 하나라도 체크가 안 되면 다음 단계로 넘어갈 수 없어요..! 저는 안드로이드 스튜디오를 설치만하고 실행, 추가 패키지 설치를 하지 않아서 오류가 났습니다.다시 깔아주고 chekcup하면 이렇게 쫘악 체크표시가 뜬답니다. 그 다음엔위의 폼에 맞게 스킵을 실행시켜주면 됩니다.실행시켜주면..! Wow... 알아서 촤라락 나오는데요.. 코드도 예시코드들이 기본적으로 작성이 되어있습니다.그래서 ..
2025.02.05