Typelias
·
SwiftUI
같은 내용의 struct를 새로 만드는 대신 다른 이름의 struct를 하나 만드는 것 입니다 사용해야되는 상황넷플릭스같은 앱을 만든다고 했을 때 영화 모델이 필요할 것입니다.struct MovieModel { let title: String let director: String let count: Int}struct ContentView: View { @State var item: MovieModel = MovieModel(title: "Title", director: "Yoon", count: 5) var body: some View { VStack { Text(item.title) Text(item.director..
Weak Self
·
SwiftUI
Weak Self란 강한 참조로 인해 발생하는 메모리 누수를 방지할 수 있도록 합니다 [weak self]을 사용하지 전바로 코드로 설명하겠습니다.먼저 2개의 뷰를 만듭니다. 하나는 다른 화면으로 이동하는 뷰이고 다른 하나는 이동된 2번째 뷰입니다. 이때 overlay로 AppStorage에 count 키값으로 저장된 값을 우측 상단에 표시합니다.struct ContentView: View { @AppStorage("count") var count: Int? init() { count = 0 } var body: some View { NavigationStack { NavigationLink { ..
CoreBluetooth로 아두이노 불 켜기
·
SwiftUI
Swift 코드 struct ContentView: View { @Environment(Bluetooth.self) var bluetooth func scheduleAppRefresh() { let request = BGAppRefreshTaskRequest(identifier: "BluetoothAlert.BluetoothAlert") request.earliestBeginDate = Calendar.current.date(byAdding: .second, value: 5, to: Date()) do { try BGTaskScheduler.shared.submit(request) print("Backg..
Background Threads, Queues
·
SwiftUI
Background Thread를 사용해야 하는 이유작업을 할 때 무거운 작업을 하는 경우 CPU를 많이 사용하기 됩니다. 다음은 현재 사용중인 CPU 사용률을 확인하는 방법입니다.아래에서 첫 번째 Thread인 Thread 1은 메인 스레드이며 대부분의 코드들이 기본적으로 메인 스레드인 Thread 1에서 작업이 됩니다. Thread 1 즉 메인 스레드에서 작업을 가볍게 하는 경우는 상관 없지만 만약 무거운 작업을 하게 되어 Thread 1 메인 스레드가 포화 상태가 된다면 다른 작업들은 할 수 없게 되며 이게 굉장히 안좋은게 UI 변화 같은 경우도 메인 스레드에서 작업을 하기 때문에 화면이 버벅인다거나 멈출 수 있기 때문입니다. 하지만 CPU는 메인 스레드 외에도 여러개의 스레드를 만들어 낼 수 있습..
버튼 커스텀화하기, Custom ButtonStyle
·
SwiftUI
버튼의 스타일을 커스텀화할 수 있습니다    다음은 커스텀화 하기 전에 버튼의 코드입니다.Button(action: {}, label: { Text("Button") .font(.headline) .foregroundStyle(.white) .frame(height: 55) .frame(maxWidth: .infinity) .background(Color.blue) .clipShape(RoundedRectangle(cornerRadius: 10)) .shadow(color: Color.blue.opacity(0.3), radius: 10, x: 0.0, y: 10.0)})하지만 커스텀화 후에 버튼 코드는 간단합니..
Custom ViewModifiers
·
SwiftUI
ViewModifier는 중복되는 코드를 줄여줄 수 있는 방법 중 하나입니다 ViewModifier 프로토콜을 사용하여 어떤 뷰에서든 재사용 가능한 modifier를 만들 수 있습니다. 아래는 비슷한 UI를 가진 Text를 여러개를 포함한 코드입니다. var body: some View { Text("Hello, world") .font(.headline) .foregroundStyle(.white) .frame(height: 55) .frame(maxWidth: .infinity) .background(Color.blue) .padding() ..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (17 Page)