분류 전체보기 333

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌2]

RxSwift 란? 비동기로 생기는 결과값을 컴플리션 형태가 아닌 리턴값으로 나타내기 위해 쓰는 유틸리티 (URLSession 이나 Alamofire에서 completion 에 나타나는 코드들이 너무 길어서 깔끔하게 쓰고 싶었던 적이 많았을 것이다) 사용 방법에는 2가지가 있다. 1) create - 비동기로 생기는 데이터를 Observable로 감싸서 처리하는 방법 2) subscribe - Observable로 오는 데이터를 받아서 처리하는 방법 *한 번 생성된 Observable이 disposed 되면 다시 사용 불가. 새로 만들어주어야 함. *위에처럼 RxSwift를 쓰다가 너무 길어져서 이걸 짧게 줄이고 코드를 간결하게 쓰고 싶기에 나온 애들이 SugarAPI. SugarAPI 는 operato..

iOS/RxSwift 2023.01.12

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌0]

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [ 1. ReactiveX 사이트 둘러보기 ] [ 2. 비동기작업과 Observable ] [ 3. Disposable DisposeBag ] 1) Async 2) PromiseKit 3) RxSwift 이미지 다운로드와 동시에 숫자는 계속해서 올라감 (Async 한 작업) Rx를 왜 쓰는가? Async 한 작업에 대한 코드를 간단하게 쓰기 위해서 코드 형태: Observable 로 리턴. onNext로 전달해서 subscribe 쪽으로 결과가 나옴. 이 때 아래를 참고하면 subscribe는 disposable 리턴 onCancel 쪽의 action: disposable?.dispose() 함으로써 취소 DisposeBag이란? dispose들..

iOS/RxSwift 2023.01.09

Sec13 152) 함수 리팩토링 (computed property)

Udemy Angela Yu 강의 내용 중 -- computed property var aProperty: Int { return 2+5 } 결국 aProperty는 2+5와 같음. 응용: Clima 프로젝트 중 struct WeatherModel { let conditionId: Int let cityName: String let temperature: Double //소수점 한자리까지만 표시 var temperatureString: String { return String(format: "%1f", temperature) } } WeatherManager.swift 파일 내에서 let weather = WeatherModel(conditionId: id, cityName: name, temperatu..

Sec13 149) Networking - URL Session

Your App -----------> Web Server Request (API 규약에 의해) Query(i.e. city name) 로서 보낸다 Void) // 4. Start the task task.resume() } } completionHandler 안에는 함수가 들어간다. ( ) 괄호가 있고 Void라는 반환값을 가지는 것에서 함수라는 것을 알 수 있다. data를 서버로부터 받아오는 동안 앱은 가만히 있을 수 없기 때문에 그동안 completionHanlder 부분을 수행한다. (completion 되면 그에따라 이 함수가 실행됨) safe data인 경우에만 dataString 으로 print가 됨. let task = ~~ 부분이 실행될 때, task가 trigger되어 handle()..

Section13. 145) Protocol

Section13. 145) Protocol 17분 12초 Protocol class Bird ->Eagles :CanFly ->Penguins struct Airplane :CanFly Protocol: 마치 자격증과 같은거. Bird - layEggs(), .... 안에 함수가 여러개 있으나 이걸 Penguins이 그대로 상속받을 경우 날지 못하는데 fly함수까지 받아버리므로... 이런 경우 penguins 의 기능에 해당하는 함수들을 Bird안에 구현해서 CanFly는 따로 프로토콜로 채택해주는 식으로.

Section13 144) UITextField keyboard "go"클릭시 실행

Section13 144) UITextField keyboard "go"클릭시 무언가를 실행하고 싶다면??? UITextFieldDelegate 연결 (UITextFieldDelegate) viewDidLoad에서 searchTextField.delegate = self 의 의미? textfield가 여기에서 일어나는 일을 ViewController에 보고한다. ex) 사용자가 탭을 했어 , 무언가를 지우고 있어 등등 위의 self는 VC를 의미함. keyboard "go"클릭시 실행 go 클릭시 또는 searchButton 클릭시 keyboard 내리기 searchTextField.endEditing(true) Delegate is being notified. Delegate는 항상 노티를 받는다. T..

Section13. 143) 다크모드 및 벡터 Assets 작업.

Section13. 143) 다크모드 및 벡터 Assets 작업. 벡터이미지: 확대하면 픽셀화 되지 않는다. 수학적으로 각각의 위치를 계산하기 때문에. 아무리 확대해도 항상 선명하게 유지된다. 벡터이미지 사용시 -> 1x,2x,3x 사용할 필요 없어짐. light_background.pdf를 Assets로 드래그 & 드롭. 벡터이미지로 활용할 것이므로 오른쪽에 Preserve Vector Data 체크표시 & 밑에 scales 를 individual scales (1x, 2x, 3x) -> Single scale로 바꾸기 그러면 아래처럼 바뀜. 그리고 다크모드 지원하고 싶은 경우 오른쪽에서 Appearances: Any,light,dark로 바꾸면 됨.

ios swift) 테두리 둥글게 - clipsToBounds

https://songios.tistory.com/43 [iOS] clipsToBounds 란 무엇인가? (feat. 모서리를 둥글게 둥글게) 막연하게 cornerRadius를 주기 위해 필요한 것. 정도로 알고 있던 clipsToBounds. 그런데 이 설정을 주더라도 모서리 둥글게가 먹히지 않을 때가 있어서 이건 정확히 뭘까 궁금했는데, 주말을 맞은 김에( songios.tistory.com clipsToBounds 위 블로그 요약> snapkit stackview에 여러개의 뷰를 넣을 때 유용한 것으로 판단. view 안에 다른 view가 들어가는 경우, 바깥 view에다가 clipsToBounds를 주게 되면 바깥 뷰가 둥글게 깎이고, 안 view에다가 clipsToBounds를 주게 되면 안에 ..