일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UICollectionView
- clean architecture
- 애니메이션
- Observable
- collectionview
- ribs
- UITextView
- RxCocoa
- swift documentation
- Refactoring
- Human interface guide
- tableView
- uitableview
- HIG
- MVVM
- Clean Code
- swiftUI
- 클린 코드
- 리펙터링
- uiscrollview
- Xcode
- 리펙토링
- map
- combine
- ios
- SWIFT
- 스위프트
- rxswift
- Protocol
- 리팩토링
- Today
- Total
목록분류 전체보기 (1643)
김종권의 iOS 앱 개발 알아가기
For문을 사용하되, 특정 조건인 경우를 확인할 때 사용 where없이 사용 for data in dataSource { if data.name == "jake" { print(jake existed) return } } where있이 사용: if문이 없어지고 더욱 간결 for data in dataSource where data.name == "jake" { print(jake existed) return }
딥링크란? "Deep"한 "Link", 화면속의 특정 부분으로 이동 할 수 있는 링크를 의미 사용자가 "새로운 메세지가 왔습니다"와 같은 push알림을 받고 그 부분을 탭했을 때, 메세지 화면으로 바로 이동 (딥링크가 없었다면 로그인 -> 메인화면 -> 메세지 화면으로 이동) 카카오톡에서 카카오맵의 특정 위치 link를 탭한경우, 카카오맵이 켜지면서 바로 특정 위치로 이동 원리: 서버에서 앱에 URL전송 -> 앱에서 URL을 가지고 문자열을 파싱하여, 특정 화면으로 화면전환 iOS에서 딥링크의 종류 URL Scheme를 이용한 방식 URL Scheme란? iOS는 기본적으로 샌드박스 환경이므로 다른 앱에 정보 전달하기가 어려움 (이 때 Xcode에서 Scheme을 정해두면, 해당 Scheme로 시작하는 ..
Modal이란? 다른 화면을 띄워서 시선을 끌게 만드는 방식 딱 눈에 들어와야 하는 컨텐츠를 담는데 사용 사용: ViewController객체.present(객체) Modal의 스타일에는 presentation과 Transition이 존재 둘 다, 이동시키는 ViewController가 아닌, 이동되는 ViewController의 속성값으로 지정 아래 storyboard에서 실습 presentation style 속성으로 지정 : "modalPresenationStyle = . " 전체 화면 덮는 경우: modalPresenationStyle = .fullScreen현재 뷰에 대응하여 새로운 뷰를 보여주는 방식: present를 호출하는 화면의 크기와 동일한 화면크기로 불려지는 경우: modalPrese..
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) - 맥북의 ..
핵심 Fit: 이미지가 View에 꽉 안참 Fill: 이미지가 View에 꽉 참 Sacle To Fill 원본 비율을 무시하고 image view안에 꽉 차게끔 스케일을 맞춤 (이미지가 잘리지 않지만 비율 변경 됨) Aspect Fit 비율에만 맞춘 것 (이미지가 UIImageView에 꽉 안차는 경우 발생) Aspect Fill 비율에 맞추고 UIImageView에 꽉 차게끔 함 (이미지가 부분적으로 잘리는 경우 발생) default로 myView.layer.masksToBounds = true로 되어 있으므로 이미지가 잘리도록 됨 만약 myView.layer.masksToBounds = false로 되어있다면, UIImageView의 크기보다 더 커져서 밖으로 삐져 나오는 경우 발생 ex) 원본 이미..
MVVM에서 RxSwift와 computed property 활용한 방법 안좋은 방법의 예시 ViewModel에서 UIKit접근하는 형태 toogle변수를 아래와같이 따로 두지 않고, BehaviorRelay하나로 해결가능 // View Model let updateImage = PublishRelay() var selectedAppleButton: Bool = true { willSet(newValue) { if newValue { updateImage.setImage(UIImage(named: "slectpoint"), for: .normal) } else { updateImage.setImage(UIImage(named: "slectedpoint"), for: .normal) } } } func t..
가장 안전한 방법은 "shift + cmd + k"로 캐시를 삭제하는 방법이 있지만, 이것으로 안된다면 "DerivedData/" 하위의 파일들을 삭제 (이 폴더는 빌드시 생성되는 파일들이므로 안전) rm -rf ~/Library/Developer/Xcode/DerivedData/* 이것만으로도 불필요한 캐시가 남아 있다면, 다음과 같이 순차적으로 나머지 파일도 삭제 killall Xcode xcrun -k xcodebuild -alltargets clean rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache" rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang.$(whoami)/Modu..
UDID (Unique Device Identifier) 기기당 고유한 디바이스 식별 값 (불변) 확인방법 XCode -> Window -> "Shift + cmd + 2" 'identifier'값 확인 UUID (Universally unique identifier) 8–4–4–4–12라는 5개의 그룹을 ‘-’ (하이픈) 으로 구분 (실행 할 때마다 변하는 값) 10^40개 이므로 앱을 실행할 때마다 랜덤 값을 부여 ex) 12345678–1234–abcd–1234–123456789012 출력 print(UUID())