공부/swift (5) 썸네일형 리스트형 [RxSwift] JSON파싱해서 테이블뷰에 뿌리기 이전에 예제에 사용한 JSON을 가지고 파싱해서 테이블뷰에 뿌려보자. 1. JSON 분석 my.api.mockaroo.com/members_with_avatar.json?key=44ce18f0 위 JSON구조를 보면 다음과 같다. {"id":1,"name":"Nalani Ayers","avatar":"https://robohash.org/illumasperioreset.png?size=50x50\u0026set=set1","job":"Staff Accountant IV","age":36} Int타입의 id, String타입의 name, String타입의 avatar, String타입의 job, Int타입의 age다. 2. 데이터 객체 만들기 struct Member: Decodable { let id: .. [swift] RxSwift Operator(SugarAPI) 2020/09/14 - [공부/swift] - [swift] RxSwift 기본적인 사용법 위 링크에서 사용하던 코드들을 보면, 데이터를 생성하는 쪽이나, 받아오는쪽이나 너무 코드들이 길다. 이런 귀찮은 작업들을 줄여주는 것을 Sugar API라고 한다. 그것들에 대해 알아보자. 1. Just "Hello World"를 보내는 코드를 기존과 같은 방식으로 만들어보자. return Observable.create() { emitter in //Observable 생성 emitter.onNext("Hello World") // Hello World전달 emitter.onCompleted() // 데이터 전달 끝 return Disposables.create() // disposable 생성 후 전달 } 위와.. [swift] RxSwift 기본적인 사용법 저번에 예제가 너무 단순한거 같아서 좀 더 복잡한걸 가지고 만들어보자. 1. 예제 링크 www.youtube.com/watch?v=iHKBNYMWd5I&t=103s 2. 동기/ 비동기 예제 코드는 위에는 타이머 라벨이 돌고 있고 button을 누르면 indicator가 돌아가면서 json을 로드하는 예제다. import UIKit import RxSwift import SwiftyJSON let MEMBER_LIST_URL = "https://my.api.mockaroo.com/members_with_avatar.json?key=44ce18f0" class AsyncJsonViewController: UIViewController { @IBOutlet weak var timerLabel: UILabel!.. [swift] RxCocoa 1. RxCocoa UIKit에 UI다룰때 편한 extention들이 있는 framework 2. 간단히 UITextFiled 값 받아서 처리하기 간단하게 TextField를 추가하고 valid로직을 추가하자. 로그인할때 id에 @랑 .이 존재하는지 판단하는 간단한 valid체크다. 예시라 이렇게 하는거뿐이다. @IBOutlet weak var idField: UITextField! // 스토리보드에서 텍스트필드 가져오기 // 간단한 체크로직 @랑.이 있으면 true반환 private func checkEmailValid(_ email:String) -> Bool { return email.contains("@") && email.contains(".") } 위와같이 선언해주고 textField에서 입력.. [swift] RxSwift 1. Rx란? Reactive X. 홈페이지에는 이렇게 적혀있다. An API for asynchronous programming with observable streams Async한 프로그래밍한다 observe가 가능한 stream들로. 뭔소린지 하나도 모르겠으니 예제랑 같이 봐야겠다. 2. 동기/비동기 예제 출처는 www.youtube.com/watch?v=w5Qmie-GbiA&feature=youtu.be 2.1 동기(Sync) 예제 이미지 로딩과 타이머로 숫자 1씩 증가해서 라벨에 text넣는 것을 같이 해볼 예정 func startTimer() { if #available(iOS 10.0, *) { Timer.scheduledTimer(withTimeInterval: 0.1, repeats: .. 이전 1 다음