일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리팩토링
- 애니메이션
- 리펙토링
- Xcode
- HIG
- combine
- 클린 코드
- tableView
- Observable
- Human interface guide
- Clean Code
- SWIFT
- Refactoring
- MVVM
- 스위프트
- swiftUI
- map
- UICollectionView
- rxswift
- ios
- clean architecture
- Protocol
- uiscrollview
- 리펙터링
- UITextView
- uitableview
- collectionview
- swift documentation
- RxCocoa
- ribs
- Today
- Total
목록2022/11 (30)
김종권의 iOS 앱 개발 알아가기
Reactive Extension Reactive란? base를 초기화로 넘겨주면, 내부에서 base property를 들고있는 상태 @dynamicMemberLookup public struct Reactive { public let base: Base public init(_ base: Base) { self.base = base } public subscript(dynamicMember keyPath: ReferenceWritableKeyPath) -> Binder where Base: AnyObject { Binder(self.base) { base, value in base[keyPath: keyPath] = value } } } Reactive Extension extension으로 Base ..
목차) 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..
Fastlane match란? Certificate, Provisioning Profile을 특정 git 레포에 저장해놓고 개발자들 사이 or ci/cd 때 쉽게 관리할 수 있는 기능 mathc명령어를 통해 terminal에서 Apple 개발자 사이트에 접속하여 Certificate 만들기도 가능 Certificate를 만들고 Provisioning Profile 생성도 같이 지정해둔 git repo에 저장하고 끌어다 쓰기가 가능 사용 방법 팀 내 개발자 대표자 한명은 match를 통해 certificate를 새로 만들어서 git repo에 저장 (Certs, Profiles 내용 생성) 팀 개발자들은 match 명령어를 통해 certs, profiles 정보를 땡겨와서 Xcode에 세팅 (이때 팀 개발..