일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리팩토링
- clean architecture
- 리펙토링
- RxCocoa
- HIG
- Protocol
- UICollectionView
- ribs
- Clean Code
- map
- uitableview
- Xcode
- UITextView
- 애니메이션
- MVVM
- Observable
- 리펙터링
- SWIFT
- ios
- Refactoring
- 클린 코드
- swiftUI
- collectionview
- combine
- tableView
- swift documentation
- uiscrollview
- 스위프트
- rxswift
- Human interface guide
- Today
- Total
목록분류 전체보기 (1638)
김종권의 iOS 앱 개발 알아가기
1. Transforming elements 1) toArray - 개별 원소들 -> 하나의 배열로 example(of: "toArray") { let disposeBag = DisposeBag() Observable.of("A", "B", "C") .toArray() .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) } // prints : ["A", "B", "C"] 2) map 이벤트를 mapping하여 주어진 식을 통해 새로 변경 example(of: "map") { let disposeBag = DisposeBag() // 1 let formatter = NumberFormatter() formatter.numberStyle = .spel..
1. 구독을 공유해서 사용하는 방법 (Sharing subscriptions) 구독을 공유하는 주체 : Observable 1) 공유해서 사용하지 않은 경우의 문제점 여러 곳에서 subscribe()를 사용한다면 동기화에 문제 발생 var start = 0 func getStartNumber() -> Int { start += 1 return start } let numbers = Observable.create { observer in let start = self.getStartNumber() observer.onNext(start) observer.onNext(start+1) observer.onNext(start+2) observer.onCompleted() return Disposables.cr..
구독 요청시, filtering하는 연산자를 넣어서 이벤트(onNext)들을 filter하여 선택적인 emit을 하기위한 연산자 1. Ignoring operators 1) ignoreElements() - next이벤트 금지 필터 (completed, error는 사용가능) /// ignoreElements example(of: "ignoreElements") { // 1 let strikes = PublishSubject() let disposeBag = DisposeBag() // 2 strikes .ignoreElements() .subscribe { _ in print("You're out!") } .disposed(by: disposeBag) strikes.onNext("X") // print..
* 실습할 프로젝트의 내용은 여기를 참조하여 다운로드 네비게이션 버튼 중 "+"버튼을 통해 이미지를 추가하며, save버튼을 추가 할 수 있도록 하는 것 RxSwift접근(BehaviorRelay와 PublishSubject이용)하여 구현해야될 내용 - "+"버튼을 누를 시 앨범으로 이동하는 기능, 선택시 뷰에 반영 - save버튼은 이미지가 있는 경우만 활성화 - 이미지를 선택할 때마다, 네비게이션 아이템 타이틀에 현재 입력한 총 이미지 갯수 표현 - save버튼을 누르면 저장되게끔 1. dispose bag view controller이 dispose bag을 소유하고 있기 때문에, dispose의 ARC가 0이 될때, observable subscription들은 같이 disposed됨 (Rx su..
1. 고차함수(Higher-order function)란? 하나 이상의 함수를 인자로 취하거나 함수를 반환하는 함수를 의미 - higher order function: 함수 내부에서 일어나는 특성 (함수를 인수로 받는 것, 함수를 리턴하는 것) - first class: 함수 외부에서 일어나는 특성 (함수를 변수에 대입 가능한 것) ex) 배열에서 각 원소들을 접근하여 새로운 값을 생성하거나(map), 조건을 정하여 그 조건에 맞는 원소만 접근하거나(filter), 배열을 하나의 값으로 표현하거나(reduce) 2. swift의 대표적인 고차함수 1) Map 콜렉션 내부의 기존 데이터를 변형(transform)하여 새로운 콜렉션 생성 * 아래 예제를 map을 이용해서 for문 없이 표현하면? let ar..
1. Collection View생성 1) collection view를 생성한 후, 위에 표현할 아이템(UILabel) 생성 2) 해당 ViewController를 UIViewContoller를 상속받은 클래스와 연결하고, Collection Cell의 id를 "cell"로 설정 3) 연결된 클래스에 collectionView변수로 연결 및 delegate설정 class ViewController: UIViewController { var list = ["1", "2", "3", "4" ,"5", "6", "7", "8", "9", "10"] @IBOutlet var collectionView: UICollectionView! override func viewDidLoad() { super.viewDi..
위와같이 앨범과 카메라를 선택할 수 있는 UIImagePicker가 구현된 프레임워크 ImagePicker라는 open class로 제작되어 있으며, UIImageView이며 클릭시 작동 * source code : github.com/JK0369/ImagePickerFramework
마우스 가속도 삭제 (Intel cpu에서만 가능 - M1인 경우 아래 사이트에서 앱 다운받아서 활용) defaults write .GlobalPreferences com.apple.mouse.scaling -1 가속도 https://downloads.steelseriescdn.com/drivers/tools/steelseries-exactmouse-tool.dmg 단축키 참고 OS 사용 및 설정 backspace 지우기 속도 조정 디폴트는 느리므로 키보드 앱에서 따로 설정 필요 키보드 앱 > 키 반복, 반복 지연 시간에서 변경 (값들을 모두 빠르게로 설정할것) 스마트 인용 비활성화 메모앱을 사용하다보면 큰 따옴표나 대쉬를 사용하면 자동으로 형태가 달라지는데, 이를 방지하기 위해서 설정이 필요 키보드 >..