일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- RxCocoa
- UITextView
- Protocol
- MVVM
- 리펙터링
- 애니메이션
- UICollectionView
- Clean Code
- 클린 코드
- 리펙토링
- SWIFT
- Observable
- uitableview
- uiscrollview
- Xcode
- collectionview
- map
- 리팩토링
- Refactoring
- swiftUI
- clean architecture
- 스위프트
- combine
- swift documentation
- rxswift
- ribs
- HIG
- tableView
- ios
- Today
- Total
목록iOS 기본 (SwiftUI) (55)
김종권의 iOS 앱 개발 알아가기
뷰 상태 관리상태가 변경되면 뷰가 업데이트 되는데 상태를 관리하는 방법은 크게 3가지ObservableObject 모델을 아래 3가지로 참고@StateObject (혹은@State), @ObservedObject, @EnvironmentObject)class Person: ObservableObject { @Published var name: String init(name: String) { self.name = name print("init > Person Model") }}struct Subview: View { @StateObject var personByState = Person(name: "jake") @ObservedObject var..
목차) SwiftUI의 기본 - 목차 링크 trim(from:to:) trim: 불필요한 부분을 잘라내는 것 trim(from:to:) - from과 to 파라미터에 들어가는 값은 0에서 1의 값 이전 포스팅에서 알아본 SwiftUI의 Path로 만들어진 부분에 trim을 적용하여 사용 Path로 만들어진 것들 -> Shape 프로토콜을 준수하고 있는 형태에 모두 적용 가능 from에는 Path의 시작점이 들어가고, to는 Path의 남겨질 부분의 끝점이 들어가며, 이 점들을 잇는 도형으로 표현 주의: trim이지만, from과 to에 들어가는 부분을 잘라내는게 아닌 그 부분을 살려내는 것 ex) Circle은 Shape 프로토콜을 준수하고 있어서 (= Path로 그러진 형태), trim 사용이 가능 (..
목차) SwiftUI의 기본 - 목차 링크 Redacted 란 * redact: (민감한 정보를) 수정하다 어떤 정보를 수정할 때, 관련 이유를 redacted(reason:) 파라미터로 넣으면 그에 따른 UI를 보여주는 메소드 (스켈레톤 뷰처럼 뷰의 내용을 가려서 보여주는 것) 파라미터로 들어갈 수 있는 값은 .placeholder와 .privacy 존재 .redacated(reason: .placeholder) 사용 방법 ex) 프로필 뷰를 보여줄 때 api 로딩 전에 placeholder를 보여주고 싶은 경우 사용 프로필 뷰 구현 struct ContentView: View { @State var isLoading = true var body: some View { profileView } @Vie..
목차) SwiftUI의 기본 - 목차 링크 지역화 기존에 Swift에서 지역화 처리 방법 Localizable.strings 파일을 만든 후 (key-value) 로 스트링 값을 입력 NSLocalizedKey를 사용하고 위 key에 접근하여 사용 UILabel(string: NSLocalizedString(key: "myKey")) SwiftUI에서 지역화 처리 방법 Localizable.strings 파일을 만든 후 (key-value)로 스트링 값을 입력 .environment(_:_:)을 이용하여 지역화 .environment(\.locale, .init(identifier: "en")) Localization 파일 준비 Localized.strings 파일 생성 String File 선택 Loc..
목차) SwiftUI의 기본 - 목차 링크 Preference 란? key와 vallue로 구성된 데이터 전달 메소드 데이터 전달: 하위 뷰 -> 상위 뷰 Preference 사용 방법 키를 가지고 접근 1. 키 등록: preferenceKey 프로토콜 준수 2. 하위뷰에서 값 송신: preference(key:value:) 메소드 3. 상위뷰에서 값 수신: onPreferenceChange() 메소드 ex) 하위 뷰의 navigationTitle이 변경될때마다 부모 뷰에서 타이틀이 변경될때마다 print하기 1. 키 등록: preferenceKey 프로토콜 준수 // PreferenceKey 내부 코드 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0..
목차) SwiftUI의 기본 - 목차 링크 cf) @EnvironmentObject 개념은 이전 포스팅 글 참고 Environment란? 뷰의 환경 변수를 의미하는 property wrapper 내부 코드 지난 포스팅 글에서 배운 DynamicProperty를 준수하고 있어서, 특정 프로퍼티의 값이 변경되면 뷰에도 업데이트되는 기능이 존재 key값은 EnvironmentValues 형태이며, EnvironemntValues 값은 커스텀해서 만들 수 있고 SwiftUI에서 미리 정해진 값들이 존재 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) @frozen @propertyWrapper public struct Environment : Dyna..
목차) SwiftUI의 기본 - 목차 링크 DynamicProperty 란? DynamicProperty는 update()라는 메소드가 있고, 내부적으로 이 메소드가 불리며 뷰를 업데이트 시키는데 사용되는 protocol DynamicProperty 코드 update() 메소드가 있는 형태 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) public protocol DynamicProperty { mutating func update() } 주로 propertyWrapper와 같이 사용되며, 특정 값이 변경될때 뷰를 update() 시키게끔 구현 ex) Counter라는 property wrapper를 만들고 사용하는쪽에서 이 값을 변경하면 뷰..
목차) SwiftUI의 기본 - 목차 링크 FetchRequest 란? SwiftUI에서는 Core Data 가져오기 요청 작업을 위한 전용 property wrapper를 지원하고 이것이 FetchRequest FetchRequest는 SwiftUI 뷰에 별도 로직 없이 직접 추가가 가능 @FetchRequest 사용 시 데이터 id와 정렬에 사용되는 값을 선언하여 사용 @FetchRequest( entity: Quake.entity(), sortDescriptors: [SortDescriptor(\.time, order: .reverse)] ) private var quakes: FetchedResults 이 밖에도 predicate에는 NSPredicate(format:_:)를 추가하여 쿼리 조건을..