Develop
[Swift] cell indicator 색상 변경
테이블 셀을 이용하다 보면 아래와 같이 inticator view를 이용할 때가 있습니다. 그런데 해당 화살표의 색상을 바꾸려고 검색을 해봤는데 대부분이 UIImage를 asset에 넣어 tint 색상을 바꾸는 내용들이였습니다. 그래서 여러 테스트를 해보다가 indicator view의 버튼( > 모양 )이 항상 last로 나오는 것을 알게 되었고 이를 코드로 변경이 가능했습니다. if let indicatorButton = self.subviews.compactMap({ $0 as? UIButton }).last { let image = indicatorButton.backgroundImage(for: .normal)?.withRenderingMode(.alwaysTemplate) indicatorBu..
Swift CS
[1. Swift] Playground는 스위프트 코드를 빠르게 개발,점검하기 위한 인터렉티브 환경 단, Xcode의 모든 기능을 담고 있지 않으므로, 가벼운 테스트에 적합합니다. import 를 통해 프레임 워크를 불러올 수 있습니다. [2. Variable] 변수와 상수에는 데이터 타입이 있으며, 데이터 처리방식에 대한 정보를 컴파일러에 제공합니다. 변수에 엉뚱한 데이터 타입을 지정하지 않도록 Type Checking 기능을 제공합니다. var numberOfStoplights: Int = 0 · let을 통해 상수를 선언하며 고정값의 인스턴스입니다. · var을 통해 변수를 선언하며 가변적인 인스턴스입니다. [3. Condition] · if/else는 조건을 boolean값으로만 판단합니다. · ..
[iOS] Factory Method Pattern
데이터 가공하는 일을 Interactor에서 작업을 하고 있었습니다. 그런데 해당작업을 하다보니 View까지 가는 로직에서 for문이 한 번 더도는 문제가 있었습니다. 가공하는 처리는 View에서 하는거보다 화면에 나타나기 전 로직에서 처리하는 것이 좋다고 생각은 했지만 만약 데이터가 무수히 많아질 경우에도 그게 맞는 것인가? 고민이 들었습니다. 그런데 해당 내용을 리뷰받던 도중 Factory를 내용을 알게 되었고 해당 내용을 학습하게 되었습니다. Factory Pattern 객체 생성을 위한 런타임 인터페이스를 정의하는데 사용되는 디자인 패턴입니다. 다양한 타입의 객체를 쉽게 만들 수 있게 도와주기에 펙토리리라는 이름이 붙여진 것 같습니다. protocol ContreateCreator { static..
[iOS] 아키텍쳐 VIPER 패턴
VIPER 구성도 항목 내용 View Presenter의 요청에 따라 표시하거나, 사용자 입력을 Presenter로 보내는 작업을 진행합니다. Presenter Interactor로부터 데이터를 가져오거나, View로 보내기 위한 데이터를 보내줍니다. 이외에도 다음 화면으로 전환을 하는 Router를 이용할 때, View의 요청을 받기도 합니다. Interactor Presenter의 요청을 받아 Entity 객체의 데이터를 가공하여 Output하는 로직 처리를 담당하고 있습니다. Entity 모델 객체입니다. Router(WireFrame) 화면 전환을 담당하며, 전환 시기(When)는 Presenter가 알고 있고 해당 부분은 어떻게(How)를 담당합니다. 이렇게 각자의 역할이 분할되어있어 해당 로직..
[iOS] View Lifecycle
View LifeCycle 구성도 어플리케이션이 실행하면서 ViewController들이 만들어지고 사라지며 화면을 띄우고 내리는 작업을 하는데, 이러한 과정들은 event에 의해 메소드가 호출됩니다. Init() storyboard를 통해 View Controller들을 만들 경우 ViewController 객체가 생성될 때 초기화 작업을 합니다. 이때 사용하는 메소드가 init() 입니다. 객체를 Byte Stream으로 바꾸어 디스크에 저장하거나 네트워크를 통해 전송하는 직렬화 작업을 하지 않는 이상 매개변수로 넘어오는 NSCoder 는 무시하셔도 무방합니다. 그런데 만약 View 내의 요소를 접근한다면 이는 아직 생성되기 전 상태이기에 에러가 발생합니다. 이외에도 init(nibName: bund..
[iOS] Xcode Code Snippet
프로젝트를 진행하면서 해당 클래스나 구조체를 설명하는 주석을 적는 경우가 많았습니다. 그런데 매번 반복해서 적기보다 저장해서 사용할 수 있을까 찾아보던 도중 Code Snippet를 알게 되었습니다. /** # Class Description > # Method List - # Additional Info - */ 위처럼 예시 주석처리를 만든 후, 이를 code Snippet를 만들어봅니다. 이렇게 드래그를 하여 우클릭하면 Create Code Snippet를 할 수 있습니다. 이후 Command + Shift + L 키 를 누르면 등록한 Code Snippet를 사용할 수 있습니다.