uikit
-
[iOS, macOS] StoryBoard 없이 코드 베이스 UI 구성하기Apple🍎 2025. 4. 22. 20:54
📱 iOS vs 🖥 macOS – 코드베이스 UI를 위한 프로젝트 세팅 비교UIKit과 AppKit, 두 플랫폼 모두 코드로 UI를 작성하고 싶을 때가 있습니다.그런데 둘 다 Xcode에서는 Storyboard나 SwiftUI를 기본으로 요구하죠.오늘은 iOS와 macOS에서 스토리보드 없이 코드만으로 UI를 구성하기 위한 초기 세팅 방법을 비교해봅니다.🧭 목차왜 스토리보드를 쓰지 않나?iOS (UIKit) 프로젝트 세팅macOS (AppKit) 프로젝트 세팅주요 차이점 요약마무리1. 왜 스토리보드를 쓰지 않나?유지보수가 어렵고 충돌 위험이 큼협업 시 Git conflict 빈번복잡한 UI는 코드가 더 명확할 수 있음재사용성과 확장성이 낮음그래서 많은 개발자들이 코드로 UI를 직접 작성하고 싶어하죠..
-
SwiftUI 멀티 플렛폼 Navigation 아키텍쳐 설계 (Coordinator 야 저리 가라)Apple🍎/SwiftUI 2025. 4. 8. 17:23
UIKit에서 Coordinator 패턴이 등장한 배경UIKit 개발에서 Coordinator 패턴은 앱의 화면 전환 흐름을 관리하는 문제를 해결하기 위해 등장했습니다. 이 패턴이 필요했던 주요 이유들은 다음과 같습니다.1. 뷰 컨트롤러의 과도한 책임 분산UIKit의 기본 구조에서는 화면 전환 로직이 주로 뷰 컨트롤러 내부에 위치했습니다.class ProfileViewController: UIViewController { func showSettings() { let settingsVC = SettingsViewController() settingsVC.user = self.user self.navigationController?.pushViewControlle..
-
Metal 렌더링 파이프라인Apple🍎/Metal 2025. 3. 29. 21:11
Metal 렌더링 파이프라인은 3D 그래픽을 2D 화면에 체계적으로 그리는 과정을 말합니다. 이 과정을 단계별로 자세히 알아보도록 합시다. 💡 글 이해를 위해 필요한 개념들 정점(Vertext) : 3D 공간상의 점으로, 3D 모델이나 그래픽을 구성하는 가장 기본적인 요소이며 다음과 같은 정보를 포합합니다. 위치(position): x, y, z 좌표로 3D 공간에서의 위치를 나타냅니다. 색상(Color) : 정점의 색상 정보입니다. 텍스쳐 좌표(texture coordinates): UV 좌표라고도 하며, 텍스쳐 이미지의 어느 부분이 해당 정점에 매핑될지를 결정합니다. 법선 벡터(normal vectors) : 정점에서의 표면 방향을 나타내느 벡터로, 조명 계산에 사용됩니다. 텍스쳐(Texture)..
-
[iOS-1] Coordinator 패턴을 사용한 화면 전환 관리Project/TalkTalk 2025. 3. 28. 22:03
Coordinator 패턴이란?Coordinator 패턴은 화면 전환 로직을 ViewController로부터 분리하여 별도의 객체(Coordinator)에게 위임하는 아키텍처 패턴입니다. 이 패턴을 통해 ViewController는 UI 표시와 사용자 입력 처리에만 집중할 수 있고, 복잡한 화면 전환과 앱의 전체 흐름은 Coordinator가 관리하게 됩니다.Coordinator 패턴 구현 Coordinator 프로토콜을 정의하여 각 화면을 관리하는 Coordinator들이 반드시 포함해야할 구현을 강제합니다. /// Coordinator 패턴을 구현하기 위한 기본 프로토콜/// 앱의 화면 흐름을 관리하고 뷰 컨트롤러 간 전환 로직을 캡슐화합니다.protocol Coordinator: AnyObject ..
-
Metal 둘러보기Apple🍎/Metal 2025. 3. 21. 22:37
셰이더(shader)는 무엇인가?다음은 애플 디벨로퍼 홈페이지에 있는 Metal 의 소개입니다. 일단 Metal 을 사용하면 GPU 프로그래밍을 가능하게 해준다고는 들었는데, 셰이딩 언어는 또 뭘까요? 사실 GPU(Graphics Processing Unit)는 그people-analysis.tistory.comMetal에 대해 알아보기전에 그래픽 렌더링과 GPU의 발전 역사를 먼저 살펴보시면 다음에 나올 용어들에 익숙해져 내용 이해에 도움이 됩니다. 소개애플의 Metal 프레임워크는 iOS, macOS, tvOS 기기에서 GPU를 직접 제어할 수 있는 저수준 그래픽 API입니다. 2014년에 처음 소개된 이후, Metal은 애플 플랫폼에서 OpenGL을 대체하며 최신 그래픽 및 컴퓨팅 작업을 위한 핵심..
-
Swift를 위한 람다 계산법 핵심Apple🍎/Swift 2025. 2. 25. 12:23
람다 계산법이란?람다 계산법은 계산을 함수 형태로 표현하는 형식체계로, 단 세가지의 규칙만으로 모든 계산을 표현할 수 있습니다. 이것이 오늘날 Swift를 포함한 현대 프로그래밍 언어의 함수형 프로그래밍 패러다임의 이론적 기반이 되었습니다. 람다 계산법 세 가지 핵심 요소 1. 변수(Variables) : 가장 기본적인 요소로, 값을 참조하는 이름입니다. Swift에서는 상수나 변수와 같습니다.let x = 10var name = "Swift"2. 추상화(Abstraction) : 함수를 만드는 방법입니다. 람다 계산법에서는 λx.M 형태로 표현하며, "x를 입력으로 받아 M을 계산하는 함수"를 의미합니다.λx.x // 항등 함수 (입력을 그대로 반환)λx.(x + 1) // 입력에 1..
-
Scene과 Window의 관계Apple🍎/UIKit 2025. 2. 8. 23:20
시각적 요소와 상태 관리 시각적 요소 관리란 화면상에 보이는 모든 UI 컴포넌트들의 레이아웃, 크기, 위치, 계층 구조를 다루는 것을 의미합니다. 예를 들어 버튼의 위치, 텍스트 필드의 크기, 뷰의 계층 구조 등이 여기에 포함됩니다. 상태 관리란 UI의 현재 상황과 관련된 모든 데이터를 다루는 것을 의미합니다. 예를 들어 현재 선택된 탭, 스크롤 위치, 입력중인 텍스트, 네비게이션 스택의 상태 등이 이에 해당됩니다. 또한 UI의 생명주기 또한 상태관리의 일부입니다. UIKit과 SwiftUI의 생명주기 관리앱 생명주기어플리케이션 생명주기란 앱이 실행부터 종료까지의 과정 속에서 상태 변화를 다루는 개념이다. Not Running (실행되지 않음): 앱이 아직 시작되지 않았거나 완전히 종료된 상태를 의..
-
SwiftUI와 UIKit 뷰 구성하는 법 비교하기 ( 선언형, 절차형 패러다임 비교)Apple🍎 2024. 9. 19. 23:52
SwiftUI - 선언형 프로그래밍선언형 프로그래밍에서는 "무엇"을 원하는지를 코드로 작성합니다.개발자는 원하는 결과를 설명하고, 시스템이 그 결과를 어떻게 달성할지 결정합니다.SwiftUI 예제다음 코드에서 개발자는 어떠한 컴포넌트들이 어떤 형태가 되어야하는지 결과 상태를 코드로 명시합니다.각 컴포넌트들이 어떻게 그 상태에 도달할지에 대한 설명은 하지 않습니다.VStack(spacing: 20) { Text("Hello, World!") Image(systemName: "star.fill") Spacer() Button("Tap me") { print("Button tapped") }}.padding()수직으로 요소들을 쌓고 싶다 (VStack)요소들 사이에 20..