일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 프로세스 스케줄링
- UserDefaults
- 파일 시스템
- Codable
- struct
- deadlock
- Algorithm
- Apple Developer Academy
- 인프런
- 데드락
- 비동기
- Linked List
- @state
- 상호배제
- async
- SwiftUI
- 100 days of SwiftUI
- Swift
- 동기화
- COLOR
- 가상 메모리
- 운영체제
- forEach
- 오브젝트
- decode
- 알고리즘
- IOS
- core data
- 동시성
- 앨런
Archives
- Today
- Total
기어가더라도 제대로
[SwiftUI-기초] SwiftUI의 기본 구조 본문
- "앱이름"App.swift
- 앱을 런칭하는데 필요한 코드를 포함하는 파일
- ContentView.swift
- 프로그램의 초기 UI 담당
- Assets.xcassets
- asset 카탈로그
- 앱에서 사용할 사진의 모음
- 색, 앱아이콘, 등등 여기에 추가
- Preview Content
- Preview Assets 파일과 함께있는 그룹
- UI 를 구성하는데 필요한 이미지를 담을 수 있음
- 구성이 프로그램이 동작하면서 어떻게 보일지를 알려줌
기본 구성요소 살펴보기
- import SwiftUI
- SwiftUI framework 를 사용하겠다는 선언
- struct ContentView: View
- ContentView 라는 것이 View 프로토콜을 따를 것이라고 선언
- 스크린에 그리려면 SwiftUI 에서 제공하는 View 라는 프로토콜을 채택해야함
- var body: some View
- body 라는 연산 프로퍼티를 정의
- some View 타입이다. (2022.10.01 - [Swift - 기초] - [Swift - 기초] Protocol, Opaque return type(some))
- View 프로토콜을 만족하는 우리가 그린 뷰 라는 뜻 정도 된다.
- 우리가 그린 뷰는 사실 그린 모든 복잡한 레이아웃의 총합인데, some View 를 사용하면 그 타입을 일일히 지정할 필요가 없다.
- view 에 우리가 원하는 프로퍼티와 메서드를 추가할 수 있는데, body 는 반드시 하나 있어야 한다.
- Text("Hello, world!")
- 화면에 괄호 안에 문자열을 보여주는 간단한 정적인 텍스트이다.
- 필요하면 여러줄이면 자동으로 줄바꿈이 된다.
- padding()
- text view 에 작용하는 메서드
- modifier 라고 Swift 에서 부름
- 한정어(modifier) 와 일반 메서드는 딱 한가지가 다름
- 주문한 수정 부분을 더한 원본 데이터가 항상 리턴됨
- 이 한정어를 거치면 그냥 text View 가 아니라 padded text View 이다. \
- ContentView_Previews
- PreviewProvider 프로토콜을 채택
- 실제 앱스토어에 올라가는 앱을 형성하는 부분이 아님
- 당신의 코드가 형성하는 UI를 미리 보여주도록 Xcode 가 이용할 뿐임
- canvas 라는 특성을 이용
- 여기서 코드 수정을 하면 canvas 에 레이아웃이 변경되는 데에 반영이 될 뿐이지 코드에 영향을 주진 않음
- 코드를 짜다가 canvas 가 업데이트 되는데 실패하는 경우가 있는데 이 때 option + command + P 를 누르면 다시 시도한다.
원본 번역
'SwiftUI - 기초' 카테고리의 다른 글
[SwiftUI-기초] HStack, VStack, ZStack (0) | 2022.10.09 |
---|---|
[SwiftUI-기초] Picker, Segment Control, Keyboard 반응 (0) | 2022.10.08 |
[SwiftUI-기초] TextField (1) | 2022.10.07 |
[SwiftUI-기초] 양방향 바인딩(two-way binding), ForEach (0) | 2022.10.06 |
[SwiftUI-기초] Form, Navigation bar, State (1) | 2022.10.05 |
Comments