SwiftUi
스위프트 튜토리얼은 아래 사이트에서 할 수 있다.
https://developer.apple.com/tutorials/swiftui/interfacing-with-uikit
IOS 어플을 만드는데있어서, 스위프트 문법보다는 스위프트UI에 대한 이해도가 더 중요한것같다.
NavigationView, NavigationLink, struct, VStack, HStack 등등..
struct와 class의 차이
가장 큰 차이점은 구조체는 값타입,
클래스는 참조타입이라는 점이다.
Identifiable,Codable,Hashable
Identifiable
- struct, class를 정의할 때 ID값이 필요한 경우 해당 protocol을 채용한다.
Codable
- Codable은 Encodable과 Decodable이 합쳐진것이다.
- Encodable -> data를 Encoder에서 변환해주려는 프로토콜로 바꿔주는 것
- Decodable -> data를 원하는 모델로 Decode 해주는 것
Hashable
- 일반적인 딕셔너리 형식과 같이 struct를 key, value 화 시킨다.
dismiss()란?
특정 동작을 수행하고 이전 페이지로 돌아갈때 사용하며,
ios13,14 에서는
선언 - @Environment(\.presentationMode) var presentationMode
사용 - presentationMode.wrappedValue.dismiss()
iOS15에서는
선언 - @Environment(\.dismiss) private var dismiss
사용 - dismiss()
onDelete()와 onMove()
List{ } 뒤쪽에 붙여 사용하며, 리스트안에 각 요소들을 슬라이드했을때 이동버튼이나 삭제 버튼을 만들어준다.
NavigationView{}, Vstack, Hstack, Zstack등을 이용하여 구도를 잡을 수 있으며 NavigationView의 경우 NavigationTilte()를 이용하여 제목을 달아줄 수 있다.
Database는 기본적으로 앱 자체에 CoreData라는 데이터베이스를 사용할 수 있으며, 외부 데이터 베이스의 경우 구글의 FireBase를 많이 사용하는 것 같다.
FireBase는 realDatabase도 따로 있으며, Auth나 모니터링에도 이용할 수 있다.
중첩구조체의 경우 아래와 같이 사용한다
struct Kakao {
var FaceBook : FaceBook
var documents : [Document]
struct FaceBook {
var total_count : Int
var pageable_count : Int
var is_end : Bool
}
struct Document {
var title : String
var play_time : Int
var thumbnail : String
var url : String
var datetime : String
var author : String
}
}
차후에 앱 출시시 참고 할 영상
https://www.youtube.com/watch?v=35y5VWMIJlk
Vstack - 세로
Hstack - 가로
Zstack - 화면앞뒤
LazyStack - 지연로딩
Spacer() - 끝과 끝으로 배치
ScrollView - 스크로 가능한 뷰로 만들기
Vstack 보다 Form을 쓰면 자동으로 스크롤 및 좌우 정렬을 해준다.
.padding()를 사용해도 괜찮다.
변수 생성 - @State
전달 받은 변수 -@Binding
객체 생성 - @StateObject
전달 받은 객체 - @ObservedObject
Overlay는 뷰를 겹쳐서 놓을수 있는 기능이다.
Alert, Confirmation는 얼럿과 컨핌창을 나타낼 수 있다.
Sheet는 모달 팝업을 의미한다.
Toggle는 토글 버튼을 생성하는거고 Slider는 슬라이더 바를 만든다
Link를 이용하여 버튼에다가 링크를 넣을 수 있고,
Progress View로 프로그래스 바를 만들어서 작업을 진행상태 등을 표현할 수 있다.
Stepper는 숫자를 +-버튼을 이용하여 오르고 내릴수 있다.
DatePicker는 날짜를 선택할 수 있고, Color Picker을 이용하여 컬러 선택도 할 수 있다.
프로토콜
@State - 변수의 값 변경시 자동으로 뷰 새로고침
@Binding - 값을 바인딩 받을때 선언한다.
@ObservableObject - class에 선언가능하며, 다른뷰에서 감시할 수 있다.
@ObservedObject - view에서 class를 생성할때 선언하며 뷰에서 감시할 수 있다. [위와 연계됨]
@Published - class내에 변수에 선언가능하며, 뷰에서 감시할 수 있다. [위와 연계됨]
'SwiftUI' 카테고리의 다른 글
SwiftUI와 Database 붙이기 (0) | 2023.11.09 |
---|