목록SeSAC iOS 데뷔과정 2기 (72)
iOS 개발일지
여태 공부하며 배웠던 것들을 거의 매일 포스팅했지만, 누군가가 찾아 보려면 불편한 부분이 많을 것 같아 키워드 위주로 정리했습니다! 저도 다시 볼 일 있을때 편하려구...^^* 이렇게 다시 보니 새싹 과정 하면서 정말정말 많은 걸 배웠구나...! 하고 다시 깨닫게 되네요☺️ Swift 참고 문서 : https://jusung.gitbook.io/the-swift-language-guide/language-guide/23-automatic-reference-counting 1주차 ViewController Life Cycle Application Life Cycle 다크모드 / Appearance 세로모드와 가로모드 Parameter vs Argument ReturnKey로 키보드 내리기 비밀번호 숨기기 ..
iOS 앱 개발자 데뷔 과정 84회차 #1. Memo - Subscript 특정 멤버의 엘리먼트에 간단하게 접근할 수 있는 문법으로, 클래스, 구조체, 열거형 등에서 직접 정의해 사용할 수 있다. 하나의 타입에 여러 스크립트를 정의하거나, 오버로드해 Computed Property를 활용하여 정의한다. 참고 : indices 는 컬렉션을 순회할 때 사용하는 인스턴스 프로퍼티이다. - Copy On Write Collection Type (Array, Dictionary, Set) 등에서 복사가 이루어질 때, 실제로 복사를 하지 않고 원본 (메모리) 을 공유하다가 원본 또는 복사한 곳에서 수정이 일어나게 될 경우에 실제로 복사하는 작업을 말한다. 값에 대한 수정이 발생하지 않는다면, 같은 메모리를 공유하고..
iOS 앱 개발자 데뷔 과정 83회차 #1. API 통신 API 통신을 통해 회원가입/로그인/토큰을 통한 자동 로그인 등의 기능을 간단하게 구현했다. - ATS 특정 도메인 허용 1. info.plist 에서 App Transport Security Settings 추가 2. Exception Domains 추가 3. 허용하고자 하는 주소 입력 후 Type을 Dictionary로 변경 4. NSExceptionAllowsInsecureHTTPLoads 추가 후 value를 YES로 변경 - API url, headers, parameters 관리 (feat. 열거형) 열거형의 연관값을 활용해 url, headers, parameters 등을 관리할 수 있다. 참고 : Content-Type을 명시하지 않..
iOS 앱 개발자 데뷔 과정 82회차 #1. Input / Output Input/Output을 통해 ViewModel에 비즈니스 로직을 분리해 데이터의 흐름을 명확하게 구현할 수 있다. Input : View에서 ViewModel로 전달하는 입력 데이터 ex. 버튼의 탭, 텍스트필드에 입력하는 텍스트 등 Output : 입력받은 데이터를 수정/변경하여 View에 표현하기 위한 출력 데이터 ex. 뷰의 상태, 텍스트, 화면 전환, 얼럿 등 - Example (ValidationViewController) - associatedtype Generic과 유사한 형태로, Protocol에서 사용될 타입에 대한 네임스페이스, placeholder 이다. 실제로 Protocol을 채택하여 사용하기 전까지는 사용되..
iOS 앱 개발자 데뷔 과정 81회차 #1. Rx - debug() rx를 통해 코드를 구성할 때, debug() 를 통해 코드의 흐름을 확인할 수 있다. 이 때 debug도 코드의 흐름을 따르기 때문에, debug의 위치에 따라 다른 로그가 출력될 수 있다. - RxAlamofire RxSwiftCommunity 는 RxSwift를 더욱 편리하게 사용할 수 있는 여러 라이브러리를 제공하고 있다. 그 중 RxAlamofire는 이름에서도 알 수 있듯이, 서버 통신을 조금 더 Rx답게 (?) 할 수 있도록 도와준다. 기본적으로 Alamofire에 의존하고 있기 때문에, RxAlamofire를 설치할 경우 자동으로 Alamofire도 설치된다. - RxDataSources RxDataSources는 tabl..
iOS 앱 개발자 데뷔 과정 79회차 #1. Checklist - Share 일반적으로는 subscribe (bind) 를 할 때마다 새로운 시퀀스가 생성된다. 즉, 하나의 Observable을 subscribe (bind) 하는 곳이 여러 군데라면, 그만큼 호출이 되면서 스트림이 생기게 되기 때문에 불필요한 리소스가 발생할 수 있다. share() 를 통해 이를 해결할 수 있으며, subject와 relay는 내부적으로 스트림을 공유하기 때문에 따로 지정해 줄 필요가 없다. - subscribe vs bind vs drive 78회차 정리 Observable 참고 subscribe : next, complete, error 이벤트를 받을 수 있다. bind : next 이벤트만 받을 수 있으며, Mai..
iOS 앱 개발자 데뷔 과정 78회차 #1. Checklist - Relay - Subject & Relay Subject는 이벤트에 대한 emit과 subscribe를 모두 할 수 있는, Observable과 Observer가 합쳐진 객체이다. (77회차 참고) 하지만 보다 더 UI에 적합한 형태가 필요했고, Subject를 내부에서 Wrapping해 Relay를 제공하게 된다. Relay는 PublishRelay, BehaviorRelay 두가지가 있고, Subject와 거의 유사한 특성을 가지고 있다. Subject와 Relay의 가장 큰 차이는 Relay의 경우 Completed와 Error 이벤트를 받지 못한다는 것이다. UI가 Error와 Completed 이벤트를 받으면 더이상 next 이벤..
iOS 앱 개발자 데뷔 과정 77회차 #1. Checklist - Operator - repeatElement & take - interval - debounce 타이머를 설정한 후, 타이머가 끝난 시점에 가장 최근의 값을 방출한다. 이벤트가 방출될 때마다 타이머가 초기화된다. - distinctUntilChanged 연달아 중복된 값을 전달받을 경우 무시한다. - withUnretained 약한 참조를 갖기 위한 [weak self] 대신 사용할 수 있으며, subscribe 클로저의 첫 번째 파라미터로 받아온다. - Subject - Observable vs Subject Observable은 이벤트를 생성하고 전달하기만 할 뿐, 새로운 값을 Observable에 추가할 수 없다. 사용자의 입력 등에..