저번 포스트에서의 목표를 그대로 RxAlamofire를 적용시켰습니다. RxAlamofire, RxCodable, RxSwift를 사용하였습니다. AirModel 클래스를 생성합니다. 방식은 저번과 같지만 Rx를 사용할 수 있다는 장점이 있습니다. Rx 사용 시 비동기로 받는 데이터를 조금 더 편하게 수정, 전달하고 사용할 수 있습니다. 이번엔 Rx를 사용하는 만큼 프로토콜 대신 PublishSubject를 사용하여 비동기로 데이터를 전달하겠습니다. RxAlamofire.requestData를 사용하여 이전과 같이 메소드, url, 파라미터를 전달합니다. 이후 Observable에서 저희는 Data를 사용하겠습니다. ( .map{$1} ) .map을 이용하여 json데이터를 파싱합니다. ( RxCodab..
대기오염 정보 공공api를 alamofire를 사용하여 가져와보겠습니다. 사용하시기전에 podfile에 pod 'Alamofire' 를 추가하셔야 합니다. Alamofire는 비동기로 데이터를 가져옵니다. 외부에서 데이터를 가져오는 작업은 비동기로 이루어집니다. get, post, download, delete, patch등이 있지만 이번에 가져올 데이터에서는 get을 사용해야 합니다. 먼저 AirModel이라는 model class를 만들어줍니다. airmodel의 코드입니다. alamofire를 사용하면 데이터를 비동기로 가져오기에 이를 옮기기 위해선 protocal을 사용해야 합니다. 그리하여 AirModelStateDelegate를 생성하였습니다. 먼저 import Alamofire를 작성합니다...
지난 포스트에 이어서 로그인화면을 구현해 보겠습니다. UI기능은 어느정도 완성하였으니 기능구현을 하겠습니다. 먼저 사용자의 email을 입력받는 TextField를 RxSwift를 이용하여 구독하겠습니다. 해당 부분은 ViewModel에 값을 보내는 Input의 값입니다. text = emailField의 입력된 Text값 orEmpty = text값이 비어있지 않을때 distinctUntilChanged() = 중복검사 (이전 text와 비교) debounce = 값을 검사하는 주기 1초 map = text값을 String으로 변환 이렇게 받은 값을 ViewModel에서 정규식을 이용하여 유효성을 검사한 후 비어있는지, 사용할 수 있는지, 없는지를 다시 View로 보냅니다. 다시 LoginView에서는..