apple/SwiftUI, Combine 29

[SwiftUI] State and Data Flow

State and Data Flow ✅ 아래의 문서 중 필요한 부분을 골라서 작성하였습니다. https://developer.apple.com/documentation/swiftui/state-and-data-flow Apple Developer Documentation developer.apple.com SwiftUI는 user interface 디자인을 선언적으로 제공하고 있다. (선언형 프로그래밍) 따라서 view를 계층적으로 구성할 때 views를 위한 데이터도 종속성도 표시한다. 외부 이벤트 혹은 user가 취하는 액션에 의해 데이터의 변화가 있을 때, SwiftUI에 영향을 받는 부분을 자동으로 업데이트 합니다. 결과적으로 이 프레임워크(SwiftUI)는 전통적으로 viewController에..

iOS 화면 캡쳐 및 녹화 감지 (feat. SwiftUI)

iOS 화면 캡쳐 및 녹화 감지 (feat. SwiftUI)DRM 기술 적용에 대해서 연구하면서 화면 녹화 감지에 대해서 서술하고자 함. 화면 캡쳐 및 감지하는 시스템 코드// 화면캡쳐NotificationCenter.default.publisher(for: UIScreen.capturedDidChangeNotification) // 화면녹화NotificationCenter.default.publisher(for: UIApplication.userDidTakeScreenshotNotification) 코드 샘플 import SwiftUIstruct ContentView: View { var body: some View { ZStack { MainVie..

[SwiftUI] ViewModifier

ViewModifier ✅ 공식문서 https://developer.apple.com/documentation/swiftui/viewmodifier Apple Developer Documentation developer.apple.com ✅ 공석문서의 일부 ✅ 이를 통해서 중복되는 코드를 쉽게 줄일 수 있습니다. import SwiftUI struct ContentView: View { var body: some View { VStack(spacing: 50){ Text("Hello, world!") .modifier(MyRoundedText()) // modifier를 활용 Text("Hello, world!") .myRoundedTextStyle() Image(systemName: "pencil") ..

[SwiftUI] LazyVGrid

LazyVGrid SwiftUI에 대해서 알아가고 있는데, UIKit에 비해서는 아직 어렵다.UIKit이라면 금방 했을탠데, 아직까지는 숙련도가 낮은 것 같아서 어렵다. 적응하면 쉬워지겠지 iOS 14 혹은 15를 타겟으로 개발하고 있는데 SwiftUI가 80프로까지는 금방 만드는데, 결국 UIKit을 사용해야하는 시점에서는 점점 손이 많이가기 시작한다.SwiftUI가 시간이 흐르면서 더 발전하겠지 ✅ 샘플코드import SwiftUIenum LayoutType: CaseIterable { case table, grid, multiple var columns: [GridItem] { switch self { case .table: return..

[SwiftUI] Picker, segmentedStyle (feat. enum CaseIterable)

Picker, segmentedStyle (feat. enum CaseIterable) (feat. enum CaseIterable)의 경우에는 따로 enum에 대해서 사용하는 방식을 포스팅 할 예정이지만, 그 전에 어떻게 사용하는지 간략하게 사용법? 정도는 나와있어서 참고해보면 좋다. 이번에는 코드를 한번 보자! ✅ Picker, segmentedStyle에 대해서 알아보자. import SwiftUI struct ContentView: View { @State private var selectionValue = 0 let myColorArray = ["레드", "그린", "블루"] func changeColor(index: Int) -> Color { switch index { case 0: retu..

SwiftUI Toast, popup

SwiftUI Toast, popup 오픈소스를 활용해서, 팝업 및 토스트 UI를 처리하는 부분을 기술.직접 구현해도 크게 어렵지 않으나, 개인 앱 개발 시 오픈소스를 활용함으로써 본질에 더 집중할 수 있다는 이점. 히스토리2022.05.23. 15:36초기 포스팅 PopupView 2점대 버전2024.11.18. 02:23PopupView 예제 개선 및 3점대 버전으로 재정리주의: 해당 오픈소스를 확장 개발하기 위해 PR 및 이슈를 검토하던 중, 메인테이너 분이 바쁘셔서 문제점을 다른 작업자의 PR을 고스란히 넣어주고 있음하지만, 개인 앱 개발에서 크리티컬한 문제가 되지 않아서 재정리 오픈소스 링크https://github.com/exyte/PopupView GitHub - exyte/PopupView..

[SwiftUI] TextField, SecureField

TextField, SecureField ✅ UIKit에서는 익숙했던 것들인데, SwiftUI에서는 낯설다. 여기서 주의할 점은 TextField의 text는 Binding이라서 @State와 $에 주의하자. TextField는 우리가 기존에 알던 TextField와 같다. SecureField는 password를 입력할 때, 글자가 보이지 않게끔 검은색 원으로 숨겨주는 필드이다. 코드가 무척 간단하니까 쓱 읽어보자! ✅ 코드 import SwiftUI struct ContentView: View { @State private var username: String = "" @State private var password: String = "" var body: some View { VStack(spac..

[SwiftUI] ButtonStyle

ButtonStyle ✅ 버튼 스타일에 대해서 알아보자 이건 진짜 어렵지가 않다. 정말정말 E A S Y 해 ! Configuration은 상속받아 들어오는 것의 상태를 받아서 쓰는것 ✅ MyBlurButtonStyle import SwiftUI struct MyBlurButtonStyle: ButtonStyle { var color : Color // Configuration 위에서 상속받는 속성 그대로 사용할 수 있게 해줌 func makeBody(configuration: Configuration) -> some View { configuration .label .font(.system(size: 20)) .foregroundColor(Color.white) .padding() .background..

[SwiftUI] QRcodeReader

QRcodeReader ✅ QRcodeReader를 알아보자. 코드는 어렵지 않다. 눈여겨 볼 점은 하나의 파일에서 여러개의 뷰를 생성하는 것을 볼 수 있겠다 🟠 아래는 오픈소스 !_! https://github.com/twostraws/CodeScanner GitHub - twostraws/CodeScanner: A SwiftUI view that is able to scan barcodes, QR codes, and more, and send back what was found. A SwiftUI view that is able to scan barcodes, QR codes, and more, and send back what was found. - GitHub - twostraws/CodeScan..