일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- combine
- map
- Xcode
- swift documentation
- ribs
- SWIFT
- rxswift
- swiftUI
- Protocol
- uitableview
- Observable
- 리팩토링
- HIG
- 애니메이션
- uiscrollview
- 리펙토링
- tableView
- clean architecture
- ios
- 클린 코드
- Clean Code
- Refactoring
- RxCocoa
- UICollectionView
- MVVM
- collectionview
- 스위프트
- UITextView
- 리펙터링
- Today
- Total
목록Merge (7)
김종권의 iOS 앱 개발 알아가기
zip array에서 사용하는 결합 연산자 두 원소가 항상 같이 짝짓는 연산자 var array1 = [1,2,3,4,5] var array2 = ["a", "b", "c", "d", "e"] zip(array1, array2) .forEach { value1, value2 in print(value1, value2) } /* 1 a 2 b 3 c 4 d 5 e */ 만약 둘 중 하나가 없다면 짝짓지 못하므로 값 x var array1 = [1,2,3,4,5] var array2 = ["a"] zip(array1, array2) .forEach { value1, value2 in print(value1, value2) } /* 1 a */ merge, merging dictionary에서 사용하는 병합 ..
목차) Combine - 목차 링크 Combining 연산자 * 스트림에서 방출되는 2개 이상의 요소들을 묶어서 방출하는 방법 예제에 사용할 스트림 2개 준비) PassthroughSubject는 downstream subscribers에게 값을 broadcast하는 subject 값을 저장하고 있지는 않고 단순히 값을 토스 해주는 역할 RxSwift의 PublishSubject와 동일 (구체적인 개념은 이전 포스팅 글 참고) let passthroughSubject1 = PassthroughSubject() let passthroughSubject2 = PassthroughSubject() combineLatest(_:_:) 두 스트림 모두 메시지를 받았을때 이벤트 방출 해당 연산자에서 이전 값을 기억..
예제 코드에서 사용한 프레임워크 코드로 UI 작성에서 편리를 위해 사용 pod 'SnapKit' pod 'Then' Rx 프레임워크 pod 'RxSwift' pod 'RxCocoa' WithLatestFrom vs CombineLatest 공통점 결합하는 요소들의 타입들이 달라도 사용 가능 차이점 a.withLatestFrom(b): a이벤트가 발생했을 때만 b 이벤트와 같이 방출 combineLatest(a, b): a나 b이벤트 둘 중 하나 발생했을 때 방출 주의사항: combineLatest(a, b)는 바로 방출 사용처 withLatestFrom: 버튼을 탭한 경우, 입력했던 이메일 값을 서버에 전송하여 유효성 검정 실시 combineLatest: 이메일과 패스워드 입력할 때마다 카운트하여, 로그..
git remote 원격 저장소 등록 ("원격 저장소 이름"은 보통 origin 사용) git remote add {원격저장소 이름} {원격저장소 url}: 등록한 저장소 확인 git remote git push 저장소 브랜치에 푸시 git push { 원격 저장소명 } { 원격 브랜치명 } // git push origin develop 위 명령어를 git push로만 해도 동작 되게끔 등록 git push --set-upstream {원격 저장소 이름 .. origin} {로컬 브랜치 이름 .. master} 원격 저장소 파일 가져오기 핵심: clone은 로컬과 origin을 독립적으로 보고 pull은 종속적으로 보는 것 git clone: 단순 가져오는 기능 (로컬에서 작업하던 브랜치와 가져온 브랜..
Git Repostory가 아래와 같이 구성되어 있을 때, Merge Conflict해결 원리 conflict가 발생한 Upstream의 브랜치를 로컬에 pull하여 로컬에서 해결하는 방식 로컬에서 conflict가 난 곳을 확인하여 accept하면서 merge (merge conflict해결) 로컬에서 최종적으로 merge된 브랜치를 push 방법 conflict가 발생한 상대방의 브랜치(= Upstream의 develop 브랜치)를, 자신의 Local Repository의 develop에 pull conflict가 발생한 자신의 브랜치로 check out한 다음, 자신의 develop브랜치로 rebase or merge merge conflict난 곳을 해결 (accept or deny) - 맥북의 ..
merge 단순히 모든 event를 결합 (단 순서는 번갈아 가며) let disposeBag = DisposeBag() let first = Observable.of(1, 2, 3) let second = Observable.of(4, 5, 6) Observable.merge(first, second) .subscribe(onNext: { print($0) }) .disposed(by: dispseBag) /* Prints: 1 4 2 5 3 6 */ combineLatest 여러 소스 중에서 단 한 가지라도 이벤트를 방출하면, 각각 소스의 맨 마지막 값을 뽑아서 새로운 값을 방출 한 번 값을 방출한 이후에는 클로저가 각각의 Observable이 방출했었던 최신 값을 받음 - ex) 이메일과 비밀번호가..
1. branch의 원리 파일 구성도 .git파일 -> refs파일 -> HEAD파일 -> 최신 커밋한 브랜치 파일 -> object(최신 커밋) -> tree, parent object * HEAD : 현재 사용하고 있는 btanch를 가리킴 ex) 브랜치 파일 git branch [name]으로 하지 않고 생성하기 vim .git/refs/heads/exp 2. reset의 원리와 checkout 1) reset이란? 최신 커밋 시점을 변경하는 것 git reset --hard 8be853e6451aeaeb74dd708d8e121be915e46faf // 3번 커밋을 최신 커밋으로 바꾸기 2) reset 실행 되돌리기 ※ 여기서 reset을 사용해도 4번의 커밋은 실제로 제거되지 않음 : reset전..