일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 애니메이션
- SWIFT
- Observable
- HIG
- swift documentation
- combine
- UICollectionView
- map
- Protocol
- tableView
- 리펙토링
- Xcode
- UITextView
- MVVM
- 리펙터링
- RxCocoa
- ios
- 클린 코드
- uiscrollview
- rxswift
- Human interface guide
- Clean Code
- 리팩토링
- clean architecture
- ribs
- swiftUI
- 스위프트
- collectionview
- Refactoring
- uitableview
- Today
- Total
목록2022/09 (30)
김종권의 iOS 앱 개발 알아가기
Swift에서의 map의 역할 map, flatMap 둘 다 클로저가 Optional일 때와 non-Optional일때의 기능이 다르므로 주의 Optional일때의 기능 - 형변환 (flatMap은 형변환을 완료하고 unwrapping까지 수행) non-Optional일때의 기능 - 원소들에 하나하나씩 접근하여 변형을 주는 것 non-Optional일때의 map 예시) let someString = "123456" let newString = someString .map { String($0) + "a" } print(newString) // ["1a", "2a", "3a", "4a", "5a", "6a"] non-Optional일때의 flatMap 예시) flatMap의 역할 - Sequence의 배열..
WKWebsiteDataStore 개념 웹뷰에서 iOS 네이티브쪽 메모리나 디스크에 데이터를 저장하는 인스턴스 웹뷰안에서 웹쪽코드로부터 특정 데이터를 네이티브 단말기의 디스크에 저장하고 싶은 경우, data storage를 사용하는데, 이것을 사용하면 네이티브의 WKWebsiteDataStore를 통해 관리 네이티브쪽에서 WKWebsiteDataStore를 가지고 할 수 있는 일 웹 사이트에서 사용하는 쿠키 관리 웹 사이트가 저장하는 데이터 타입 확인 원치 않는 웹 사이트 데이터 제거 ex) WKWebsiteDataStore를 통해 쿠키를 관리하는 코드 - 구체적인 코드는 WebView cookie 설정 글 참고 extension WKWebViewConfiguration { static func incl..
Observable의 Deferred 보통 어떤 작업을 wrapping할때 Observable.create()를 사용하지만, deferred를 사용하는 방법이 존재 // Observable.create 사용 예제 // stored propoerty let aObservable = Observable.create { observer in DispatchQueue.main.asyncAfter(deadline: .now() + 3) { observer.onNext(1) observer.onCompleted() } return Disposables.create() } // computed proprety var bObservable: Observable { .create { observer in observer..
Xcode Scheme 특정 빌드 환경이 미리 정해진 하나의 collection configuration 정보 하드웨어, 아키텍쳐 정보 등등 Scheme을 원하는대로 추가할 수 있지만 Active Scheme은 하나만 존재 * Active Scheme이란? Build, Run, Test, Profile, Archive 할때 하나의 Scheme만을 선택할 수 있다는 의미 cf) 생성된 Scheme을 빌드하고 싶을때는 Xcode에서 선택해서 빌드해도 되지만 terminal 명령어로도 가능 xcodebuild \ -project ExProj.xcodeproj \ -scheme QA \ -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.0' # 만약 work..
Cocoapods을 submodule로 추가하기 cocoapods을 private repo로 설정하여 관리하는 경우(사내 배포), 각각 인증에 사용할때 어려움이 있지만, submodule로 사용하면 인증 문제를 쉽게 해결이 가능 submodule로 추가할 GitHub에서 SSH URL로 복사 submodule이 추가될 폴더를 미리 프로젝트 하위에 생성 submodule 추가 (예제에서는 source tree 사용) source tree를 사용하여 submodule 추가 방법은 포스팅 글을 참고 복사한 url을 입력하고 Local Relative Path에 위에서 추가한 RxSwift 폴더로 지정 Podfile에 입력 pod '{사용하려는 모듈 이름}', :path => '{서브모듈이 있는 경로}' tar..
목차) SwiftUI의 기본 - 목차 링크 Alert iOS 13~iOS 15까지는 위 Alert를 사용했지만, deprecated iOS 15부터는 .alert 사용을 권장 .alert는 더욱 선언적으로 alert를 사용할 수 있는 방법 위 Alert를 하나의 View로 존재했지만, iOS15부터는 메소드로 사용이 가능 (더욱 선언적 프로그래밍) 사용 방법은 Button에 .alert하여 추가 alert가 보이는 상태 변수도 하나 추가 .alert 메소드에는 titleKey, isPresented, View 순서대로 주입하여 사용 @State var isShowing = false var body: some View { Button("Alert") { isShowing = true } .alert("t..