본문 바로가기

ios20

Swift 로 알아보는 객체지향 프로그래밍 - 2 전 시간에서는 객체 지향의 기본 요소들에 대해 알아보았는데요. 이번 시간에는 객체 지향의 핵심 개념! 에 대해서 알아보도록 하겠습니다. 1. 캡슐화 (Encapsulation) 2. 상속 (Inheritance) 3. 다형성 (Polymorphism) 먼저 캡슐화에 대해서 알아보겠습니다. 캡슐화는 말 그대로 객체를 하나의 캡슐로 만들어서 내부에 있는 것들을 보호할 수 있게 하는 것이라고 보시면 되겠습니다. 즉 내부에 있는 것들에 직접적으로 접근할 때 일어날 수 있는 예외적인 사항들을 제거하기 위해 접근을 인위적으로 제어하는 것이라고 보시면 편하실 듯 합니다. 이를 위해 접근제한자들을 프로퍼티 앞에다가 지정해두는데, 이 부분은 다음 시간에 자세하게 알아보도록 하겠습니다. 두번째는 상속인데요. 상속은 제가 .. 2020. 2. 19.
API 를 여러개 호출해야할때 모든 API 가 호출되었음을 확인하려면? 서버 개발자 분이 친절하게 한가지 API 에 모든 데이터를 다 파싱해서 넘겨주시는 경우도 있지만, 사실 그렇지 않은 경우가 많죠? 그럴때는 간단하게 Dispatch Group 을 사용하면 됩니다. 검색 결과를 받아오는 API 인데, 이게 호출하는 부분이 두개인 경우가 있다면 어떻게 처리해야 할까요? 바로 예시로 들어가겠습니다. let queryString = "아이유" let networkQueue = DispatchQueue(label: "network", qos: .background, attributes: .concurrent) let networkGroup = DispatchGroup() networkGroup.enter() API.shared.get(.blog, comp: queryString).. 2020. 2. 3.
SwiftUI를 사용하지 않고 Preview 사용하기 Xcode 11 및 Mac OS 를 카탈리나로 업데이트를 하게 되면 SwiftUI 로 프로젝트를 생성할때 기본값으로 프리뷰를 확인할 수 있습니다. 하지만 대부분의 회사에서는 현재 iOS13 이상만을 지원하는 SwiftUI 로 모든 프로젝트를 진행하기는 거의 불가능에 가깝다고 볼 수 있죠. 그렇기 때문에 오늘은 SwiftUI 를 사용하지 않고 기존의 코드베이스 오토레이아웃에서 프리뷰를 확인할 수 있는 방법을 알아보도록 하겠습니다. class MainViewController: UIViewController { let sampleView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) override func viewDidLoad() { super.. 2020. 1. 3.
RxSwift 로 간단하게 텍스트의 변화 감지하기 RxSwift 는 반응형 프로그래밍으로 비동기적인 변수의 변화를 손쉽게 다룰 수 있읍니다. 아래의 간단한 예시로 말씀드리겠읍니다. 먼저 변화를 감지할 인스턴스를 생성합니다.(기본적으로 RxSwift 와 RxCocoa 를 import 해주는 것을 잊지 맙시다) let rxText = Variable(nil) 텍스트를 입력할 텍스트필드도 만들어줍시다. let myTf = UITextfield() myTf 를 rxText 인스턴스의 변화를 관찰할 수 있는 드라이버로 지정해줍시다. myTf.rx.text.asDriver().drive(rxText).disposed(by:disposeBag) rxText 를 이제 관찰해봅시다. rxText.asObservable().debounce(1, scheduler:Main.. 2018. 3. 9.