Test? 작성한 코드가 의도한대로 작동하는지 검증하는 과정 UI 표시 UI Layout 설정 API Request UserDefaults 저장/가져오기 등 테스트 종류 Unit Test - 특정 함수, 메소드의 동작에 대한 테스트 (오늘 알아볼 것) UI Test - UI 표시 / UI Action에 대한 테스트 Test Coverage XCTest 프레임워크를 사용해서 테스트를 작성할 수 있다. 테스트 작성 % 도 TestCoverage로 볼 수 있다. TestCoverage - Project에서 몇%의 코드에 대해서 테스트가 작성되어 있는지 나타낸 숫자. 사용방법은 간단하다. Edit Scheme에서 Test > Options에 Code Coverage 체크 끝. TestCoverage 사용 - A..
Presenter - 데이터 처리 (API Request,..)Model - 데이터 수정, 추가ViewController - View 설정, 업데이트Apple MVC는 기존 ViewController에 View, Controller 기능이 집중되어 작성을 하며 커지게 되어 테스트를 하기 어려운 환경이다. Controller의 역할을 분리해 구현한것이 MVP다.View를 최대한 멍청하게 UI를 뿌려주고 Action만 주고받고 받은 Action을 Presenter에 넘겨 그려야 하는 값만 넘겨주고 View에서 다시 그려주는 방식이다.MVVM도 비슷해보이지만 다른점, MVP는. 1 : 1연관관계, MVVM은 * : 1 이다. 특징UI를 뿌려주는 View, 비즈니스 로직처리를 하는 Presenter를 따로 작성..
Localization 현지화 - Apple Developer 앱, 제품 페이지 및 마케팅 자료를 현지화하여 전 세계의 고객과 더 효과적으로 연결하는 방법에 대해 알아보십시오. developer.apple.com 어플을 개발하고 출시했을 때 여러 나라의 언어를 대응해서 다양한 국가에 사용경험을 주기 위해서는 앱 현지화가 필수다. 국가마다 사용하는 언어를 대응해 개발하려면 Localizable을 사용하면 된다. SwiftUI도 UIKit과 비슷하게 설정할 수 있다. Localization 설정 Project > Info > Localizations 를 보면 언어를 추가할 수 있는 항목이 있다. 기본으로 English가 Base로 설정되어 있고 한국어만 추가하고 한국어-영어 대응 해보기. Strings Fi..
@State 화면상태를 나타내거나 표시할때 사용되는 타입 String, Int, Bool과 같은 간단한 값을 저장하고 View의 현재 상태를 표시하기 위해 사용 화면 내부에서 사용되기 때문에 private를 꼭 붙이는 것을 권장한다. @State변수의 값이 변경되면 뷰는 빠르게 리로드해 변경된 값을 적용한 뷰를 보여준다. struct Sample: View { @State private var text = "" @State private var isDisable = true var body: some View { VStack(alignment: .leading) { Text(text) Divider() TextField("Place holder", text: $text) Toggle(isOn: $isDi..
Design Pattern ?개발과정에 공통으로 발생하는 문제를 해결하기 위한게 디자인 패턴이다.대부분의 디자인 패턴은 복잡하고 거대한 서비스를 만들기 위해 만들어졌다.MVC, MVP, MVVMMVVM Pattern ?비즈니스 로직과 프레젠테이션 로직을 UI로 부터 분리시키기 위해 만들어진 패턴View - ViewModel - Model로 구성되어 있다.View -> UI 입력 출력만 담당 ViewModel -> View로 부터 오는 입력을 받아 데이터를 처리하고 다시 보내준다.Model -> 데이터 처리에 필요한 모델 MVVM 에서 ViewModel에 모든 비지니스 로직이 있어야 하는 것이 아니다. ViewModel에는 화면용 데이터를 갖고 있는것,Model 은 View용 Model 로 변경하는 정도의..
RxCocoa는 UIKit의 Rx extension 이다. UI특징 항상 UI 스레드에서만 처리해야한다. 화면을 그리다 에러가 나면 스트림이 끊어져도 에러를 처리하고 다시 돌아야함. RxCocoa의 Traits는 위 조건을 지키면서 UI를 처리할 수 있다. RxCocoa의 Traits를 알아보자! RxRelay Subject와 같지만 에러가 나도 끊어지지 않고 무시. onNext 이벤트만 존재하고, dispose를 통해 종료할 수 있다. 실시간으로 UI를 변경해야할 때 Subject 대신에 Relay를 쓴다. Relay에는 PublishRelay와 BehaviorRelay가 있다. 특성은 PublishSubject, BehaviorSubject 와 동일하다. PublishRelay는 초기값이 없고 구독한..