일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Observable
- map
- SWIFT
- 클린 코드
- UITextView
- ribs
- tableView
- combine
- MVVM
- 리팩토링
- Refactoring
- Clean Code
- swift documentation
- ios
- RxCocoa
- Protocol
- HIG
- 리펙터링
- swiftUI
- Xcode
- rxswift
- collectionview
- 스위프트
- uiscrollview
- uitableview
- Human interface guide
- 애니메이션
- clean architecture
- 리펙토링
- UICollectionView
- Today
- Total
목록Share (4)
김종권의 iOS 앱 개발 알아가기
UIVeiwControllerRepresentable UIKit의 ViewController 타입을 SwiftUI의 View 타입으로 변경하여 사용할 수 있는 기능 UIViewControllerRepresentable 프로토콜을 준수하는 구조체를 만들어서 사용 // UIViewControllerRepresentable 프로토콜 public protocol UIViewControllerRepresentable : View where Self.Body == Never { associatedtype UIViewControllerType : UIViewController func makeUIViewController(context: Self.Context) -> Self.UIViewControllerType f..
View를 이미지로 변환 & 공유하기 View를 UIImage로 변환 extension UIView { func transfromToImage() -> UIImage? { UIGraphicsBeginImageContextWithOptions(bounds.size, isOpaque, 0.0) defer { UIGraphicsEndImageContext() } if let context = UIGraphicsGetCurrentContext() { layer.render(in: context) return UIGraphicsGetImageFromCurrentImageContext() } return nil } } 이미지 공유하기 let vc = UIActivityViewController(activityIte..
share * 원래 Observable은 subscribe될 때만 create클로저를 호출하여 Observable을 생성 (== subscribe한 횟수만큼 새로운 시퀀스 생성) // API를 요청, 결과를 반환하는 시퀀스라 가정 let networkRequestAPI = Observable.of(100) let result = requestMoreButton.rx.tap .flatMap { networkRequestAPI } result .map { $0 > 0 } .bind(to: requestMoreButton.rx.isHidden) .disposed(by: bag) result .map { "Count:\($0)" } .bind(to: remainCountLabel.rx.text) .dispose..
Share() 연산자는 자원을 공통으로 사용 할 수 있게끔 하는 개념 1. Share을 쓰는 이유 1) MVVM설계 // ViewModel 정의 class SomeViewModel { let result = userTappedButton .flatMapLatest {apiService.rx.getFriend() } name = result.map {$0.name} phone = result.map {$0.phone} } // ViewController에서 ViewModel과 UI연결 class { ... viewModel.name .bind(to: lblName.rx.text) // UI와 ViewModel간의 연결 .disposed(by: bag) viewModel.phone .bind(to: lblP..