SwiftUI 15

SwiftUI - Core Location 프레임워크

Core Location iOS 및 macOS 앱에서 위치 관련 서비스를 활용할 수 있는 프레임워크 iPhone Device의 위치 정보를 얻을 수 있는 기능을 제공하는 프레임워크 (지리적 위치, 고도 및 방향) 이를 통해 위치 데이터를 쉽게 얻을 수 있으며 사용자의 위치, 이동 경로, 근접 지점 등 다양한 기능 구현 가능 Wi-fi, GPS, Bluetooth 등을 이용하여 정보를 모음 위치 정보를 사용하기 이전 꼭 사용자에게 위치 정보를 사용할건지 물어야 됨! → Info.plist에서 위치 권한 허용 (필수 작업) Key 값을 Info.plist에 추가 1. CLLocationManger 필수 사용 클래스 위치 관리자 객체로, 위치 데이터를 수집하고 관리하는 핵심 클래스 위치 관리자는 사용자의 위치..

SwiftUI 2024.03.03

SwiftUI - 리스트와 내비게이션

리스트 UIKit의 TableView 클래스와 비슷한 기능 셀에 포함된 하나 이상의 뷰의 각 행을 수직 방향의 목록으로 정보 표현 List 구현체 var body: some View { List{ Text("Wash the car") Text("Vacuum house") Text("Pick up kids from school bus @ 3pm") Text("Aucion the kids on eBay") Text("Order pizza for dinner") } } 여러 컴포넌트를 조합해서 셀에 표시 가능 리스트의 각 행을 HStack 안의 이미지와 텍스트 컴포넌트 조합으로 구성 List{ HStack{ Image(systemName: "trash.circle.fill") Text("Take out the..

SwiftUI 2024.02.21

SwiftUI - 스택 정렬과 정렬 가이드

컨테이너 정렬, 정렬 가이드, 커스텀 정렬, 서로 다른 스택들 간의 정렬 구현까지 스택 정렬의 고급 기술 설명 컨테이너 정렬 스택 사용 시 가장 기본적인 정렬 방법은 컨테이너 정렬 스택에 포함된 하위 뷰들이 스택 내에서 정렬되는 방식을 정의함 ‘암묵적으로 정렬되었다’ 스택에 포함된 각각의 뷰에 지정된 정렬이 따로 없어, 스택에 적용한 정렬이 하위 뷰에 적용되는 것 개별적으로 적용된 정렬이 없는 하위 뷰에 상위 뷰의 정렬 방법이 적용되는 것 수평 스택 (HStack) : 하위 뷰를 수직 방향 정렬 수직 스택 (VStack) : 하위 뷰를 수평 방향 정렬 ZStack : 하위 뷰를 수평/수직 방향 정렬 세 개의 하위 뷰를 포함하는 VStack 구성 VStack{ Text("This is some text")..

SwiftUI 2024.02.02

SwiftUI - Observable 객체와 Environment 객체 튜토리얼

ObservableDemo 프로젝트 Observable 객체는 시간이 지남에 따라 반복적으로 변하는 데이터 (동적 데이터)를 래핑할 때 강력함 이런 데이터를 시뮬레이션하기 위해서는 Foundation 프레임워크의 Timer 객체를 사용하여 매 초마다 카운터가 업데이트 되도록 구성하여 Observable 데이터 객체 생성할 것임 이 카운터는 앱 프로젝트 내의 뷰들이 볼 수 있도록 게시 Observable 객체 추가 ObservableObject 프로토콜을 구현하는 데이터 클래스 추가 (New Swift File 생성) TimerData 클래스 import Foundation import Combine class TimerData : ObservableObject { @Published var timeCou..

SwiftUI 2024.01.27

SwiftUI - 슬라이더 뷰(Slider View) 사용

1. 레이아웃에 VStack 추가하기 struct Chap22: View { var body: some View { VStack { Text("Hello, World!") } } } 2. 스택에 슬라이더 뷰 추가하기 라이브러리 패널에서 Slider를 찾아 프리뷰 캔버스에 있는 Text 뷰 위로 드래그 앤 드롭 3. 상태 프로퍼티 추가 슬라이더는 Text 뷰를 회전시킬 총량을 제어하는 데 사용됨 Slider 뷰와 현재의 회전 값을 저장하게 될 상태 프로퍼티 간에 바인딩이 구축되어야 함 상태 프로퍼티 선언 후 0부터 360까지의 범위로 0.1씩 증가되도록 슬라이더 구성 struct Chap22: View { @State private var rotation : Double = 0 var body: some ..

SwiftUI 2024.01.22

SwiftUI - 상태 프로퍼티 (State), Observable 객체, Environment 객체 사용

SwiftUI는 데이터 주도 방식으로 앱 개발을 강조 사용자 인터페이스 내의 뷰들은 기본 데이터의 변경에 따른 처리 코드를 작성하지 않아도 뷰가 업데이트 됨 데이터와 사용자 인터페이스 내의 뷰 사이에 게시자(publisher)와 구독자(subscriber)를 구축하여 가능 이를 위해 SwiftUI는 상태 프로퍼티, Observable 객체, Environment 객체를 제공 이들은 사용자 인터페이스의 모양과 동작을 결정하는 상태를 제공함 SwiftUI에서 레이아웃을 구성하는 뷰는 코드 내에서 직접 업데이트 하지 않음 → 뷰와 바인딩된 상태 객체가 시간이 지남에 따라 변하면 그 상태에 따라 자동으로 뷰 업데이트 됨 상태 프로퍼티 (State Property) 상태에 대한 가장 기본적인 형태 뷰 레이아웃의 ..

SwiftUI 2024.01.15

SwiftUI - 스택, 프레임

스택 VStack(수직), HStack(수평), ZStack(중첩) 형태인 3개의 스택 레이아웃 뷰 제공 스택은 View 파일 내에 하위 뷰들이 스택 뷰에 포함되도록 선언함 3개의 이미지 뷰가 HStack에 포함되는 코드 import SwiftUI struct Stack_20: View { var body: some View { HStack{ Image(systemName: "goforward.10") Image(systemName: "goforward.15") Image(systemName: "goforward.30") } } } VStack 사용 import SwiftUI struct Stack_20: View { var body: some View { VStack{ Image(systemName: ..

SwiftUI 2024.01.13

SwiftUI - 커스텀 뷰 생성

SwiftUI 뷰 뷰 : View 프로토콜을 따르는 구조체로 선언 View 프로토콜을 따르는 구조체는 body 프로퍼티를 가지고 있어야 되며, body 안에 뷰가 선언되어야 함 텍스트 레이블, 텍스트 필드, 메뉴 토글, 레이아웃 매니저 뷰 등 다양한 뷰가 내장되어 있음 각 뷰는 View 프로토콜을 따르는 독립적인 객체 커스텀 뷰의 크기와 복잡성 또는 커스텀 뷰에 캡슐화된 자식 뷰의 개수와는 관계없이, 하나의 커스텀 뷰는 사용자 인터페이스 모양과 동작을 정의하는 하나의 객체 기본 뷰 생성 기본 ContentView import SwiftUI struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageSc..

SwiftUI 2024.01.10

SwiftUI - 프로젝트 분석

UIKit과 SwiftUI 새로운 SwiftUI 기반의 프로젝트를 생성하면 실제로 Xcode는 SwiftUI 뷰들이 앱을 만드는 주체가 되도록 하기 위해 통합 기술을 사용하는 UIKit 기반의 앱을 생성함 따라서 몇몇 파일은 UIKit 기반이며 UI라는 접두사 붙은 모든 클래스는 UIKit 클래스 AppDelegate.swift 파일 UIWindow 인스턴스 iOS 앱은 이벤트 처리와 UI를 표시하기 위해 앱에 의해 사용될 서로 다른 UIWindow 객체를 관리하는 UIApplication 클래스의 인스턴스 하나를 가짐 사용자에게 보이지 않지만 UI를 구성하는 시각적 객체를 담기 위한 컨테이너 제공 UIApplication 인스턴스 앱의 생명 주기와 관련된 중요한 이벤트(앱 실행, 알림 수신, 디바이스 ..

SwiftUI 2024.01.07

SwiftUI - SwiftUI 모드로 Xcode 이용

프리뷰 캔버스 (preview canvas) 사용자 인터페이스 설계에 대한 시각적 표시와 함께 레이아웃 내에 뷰를 추가하거나 수정할 수 있는 도구 제공 시뮬레이터 없이 앱 테스트 가능 화면 설계 수정하기 다른 뷰 추가, 수정자(modifier)를 이용하여 뷰 수정, 로직 추가 후 상태와 다른 데이터 객체 바인딩 등 가능 이러한 작업 모두 구조체를 수정하는 방식으로 진행됨 ex) ‘Hello View’ 텍스트 추가 폰트는 에디터 내에 적절한 수정자를 추가하여 변경 Text("Hello, world!") .font(.largeTitle) 에디터 콘텍스트 메뉴 control + 코드 에디터 항목 클릭 선택한 항목의 타입에 따라 달라지는 메뉴 제공 현재 뷰에 대한 애트리뷰트 인스펙터의 팝업 버전 자신에게 속한 ..

SwiftUI 2024.01.07