대기오염 정보 공공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에서는..
거의 모든 서비스에서 사용되는 로그인 기능입니다. 목표 1. 사용자가 이메일 값을 입력할 때 마다 이의 유효성을 검사하여 알려준다. [RxSwift] 2. 키보드의 유무에 따라 다음 버튼의 크기, 위치가 애니메이션으로 바뀐다. [UI] MVVM을 적용시켰습니다. 개발과정 MVVM의 틀을 잡은 후, (https://github.com/sergdort/CleanArchitectureRxSwift#application-1 를 참고하여 설계하였습니다.) UI편 1. UI그리기. 2. 키보드의 유무에 따라 다음 버튼의 크기, 위치 애니메이션으로 변경시키기. 3. 이메일값의 유무에 따라 UI를 변경하여 사용자에게 해당 메일의 유효성을 확인시키기. 기능편 1. EmailTextField를 구독하여 실시간으로 변경되는..
먼저 xcode 실행 후 Create a new Xcode project를 선택해줍니다! 그 후 Framework를 선택한 후 Next버튼을 눌러주세요! 제가 MVC패턴 구현 시 사용하는 BaseView와 BaseViewController를 Framework로 만들어보겠습니다! 이후 프로젝트를 생성하시면 이렇게 Products안에 framework파일이 만들어진 것을 확인할 수 있습니다! 그럼 ForMVCBasic 그룹에 제가 사용할 클래스들을 구현해보겠습니다. 외부에서 접근할 수 있도록 open을 선언하여 외부에서 접근할 수 있도록 해줍니다. 완성하셨다면 해당 프레임워크 프로젝트를 닫아주세요! 다음 프레임워크를 사용할 프로젝트에서 framework를 담을 그룹을 생성한 후 Add Files to "pr..
이번 포스트에서는 viewpager를 공부하고 구현한 것에 대해 작성하려 합니다. 상단의 메뉴탭, 바로아래 하이라이트 뷰, 화면에는 뷰로 채우고 밑에는 탭이 있습니다. 구조는 TabViewController가 가장 먼저 홈 ViewController와 뉴스화면 ViewController를 품고 있습니다. 뉴스화면 ViewController의 view는 CollectionView가 있고 이는 뉴스 ViewController와 피드 ViewController를 품고 있습니다. RootTabViewController -> FirstViewController(홈화면) -> SecondPagerViewController(뉴스화면CollectionView) -> NewsViewController(뉴스) -> Pee..