Mobile(25)
-
[ Unit Test ] Xcode 에서 단위 테스트 하는 것, XCTest - 1
팀프로젝트 파일 내 포함된 코드나 다른 사람들의 코드를 보면 꽤 테스트 코드를 설정해준 프로젝트들이 많았다. 예전부터 TDD(Test Driven Development - 테스트 주도 개발) 라고 자주 들어봤는데, 어떻게 Xcode 에서 적용해볼지 막막했다. 마침 클린코드 책을 읽으면서 단위테스트라는 챕터를 읽었다. 테스트는 왜 하는지에 대한 의문을 가졌다. 코드의 유지보수성, 재사용성, 유연성이 프로덕트를 보존하고 강화할 수 있어서 라는데 사실 개발을 공부하는 초보 입장에서는 와닿지 않는다. 테스트 코드를 작성한다의 의미 무엇을 구현할 지 알고 있다. 어떤 기능인지 명확하게 알고 있다. 요구 사항을 파악하고 있다. ( 22년도 12월쯤 야곰의 원티드 프리온보딩에서 TDD 특강에 대해 들었던 적이 있었다..
2024.01.18 -
[ iOS / UIKit ] UISceneDelegate(에 대해 설명하세요)
UIKit 의 Scene Delegate 에서 초기 화면 접근시 로직 설정(rootViewController) 혹은 키보드, 내비게이션 화면 이동 등 설정을 하곤 했다. 여러 문서와 글을 검색하고 읽었을때, Scene Delegate 는 iOS 13 부터 나온 거라는 사실을 알 수 있다. 그 전에는 App Delegate 에서 앱의 환경설정, 메모리 관리, 앱이 시작되고, 종료될 때의 설정, 화면 전환 및 scene 의 생명주기 관리까지 한 것 같다. scene delegate 와 app delegate Scene Delegate 가 없었을때는 App Delegate 에서 화면 관리나 앱의 생명주기를 설정을 했다는 건데, 공식문서를 살펴보면 app delegate 와 Scene Delegate 는 cla..
2023.12.17 -
Swift 기본 가이드라인 - part 1
1. fundamental(기초) 사용 시점의 명확성(Clarity as the point of use) -> 가장 중요한 목표 - 메소드, 속성(property) 등의 엔터티는 한 번만 선언되지만 반복적으로 사용 => API를 명확하고 간결하게 사용하도록 설계해라! => 설계를 평가할 때, 선언문(declaration)을 읽는 것만으로는 충분치 않다. 항상 사용 사례를 조사해 맥락해서 명확하게 보이는지 확인해라! 간결함보다 명확성이 더 중요해! Swift 코드는 간결할 수 있으나, 최소한의 문자로 가능한 가장 간단한 코드를 구현하는 게 목표가 아니다. Swift 코드의 간결함은 강력한 유형 시스템과 자연스럽게 상용구(boilerplate)를 줄이는 기능의 부작용이다. BoilerPlate란? 다양한 프..
2023.12.14 -
KVO(Key Value Observing) 의 동작방식
KVO 는 데이터를 바인딩해주는 방법 중 하나이다. 데이터 바인딩하니 SwiftUI에서 @State var data 즉각적으로 업데이트 해주고, Binding 은 State 에게 데이터를 연결받고 하위뷰에게 상태를 공유해주는 그런 역할을 했더랬다. 그럼 키와 값 관찰? 이라는 KVO 는 어떤 식으로 동작할까? Key Value Observing 의 정의 다른 객체의 속성에 대한 변경사항을 객체에 알린다. 가만있어보자, 이걸보니 NotificationCenter(이것도 등록된 관찰자에게 정보를 알려주는 역할을 하는 NSObject 클래스) 가 생각나는구나! 다시 본론으로 돌아와 Key Value Observing(키-값 관찰)은 다른 개체의 속성 변경 사항을 객체에 알리는 데 사용하는 Cocoa Progr..
2023.12.02 -
viewController 의 생명주기 ( UIViewController's Life cycle)
기본적으로, UIKit 에서 ViewController 는 자신이 관리하는 View 와 AppData 사이의 중개자 역할을 한다. 클래스 메서드와 속성을 UIViewController를 사용해 앱의 시각적 표현을 관리할 수 있다. 뷰 컨트롤러의 주요 책임 일반적으로 기본 데이터 변경에 대한 응답으로 뷰 내용 업데이트 뷰와의 사용자 상호작용에 응답 뷰 크기 조정 및 전체 인터페이스 레이아웃 관리 앱에서 다른 뷰 컨틑롤러를 포함한 대른 객체와의 조정 ViewController 가 사용자가 앱을 구동하고 화면이 시작하고 처음 보이는 뷰와 다른 뷰로 이동하고 어떤 버튼을 눌렀을 때 화면 전환이 되거나, 사라지는 등의 주기를 설정해 줄 수 있는게 바로 ViewController 의 생명주기 (Life cycle)..
2023.11.26 -
NotificationCenter 에 대해서 알아보자.
NotificationCenter 기본개념 class NotificationCenter: NSObject A notification dispatch mechanism that enables the broadcast of information to registered observers. 등록된 관찰자에게 정보를 브로드 캐스팅할 수 있는 알림 방송 📢 메커니즘 이다. Objects(객체는) addOberver(_: selector: name: object:) 또는 addObserver(forName: object: queue: using:) 메소드를 사용하여 알림(NSNotification 객체)을 수신하기 위해 알림 센터에 등록한다. 객체가 자신을 관찰자로 추가할 때 어떤 알림을 받아야 하는지 지정한다. ..
2023.11.19