[Swift] Method Dispatch
·
🍎 Dev/Swift
SweepSwift iOS 면접 질문에 대한 답을 작성한 김에 iOS 개발자라면 앱의 기능향상 면에서 꼭 고려해봐야한다는 Method Dispatch에 대해 정리해보기로 했다.    ✔︎ Method DispatchMethod dispatching is the process of finding the address of instructions to be executed by the CPU when a particular method is called. 어떤 인스턴스의 호출구문에서 프로그램이 어떤 메서드를 실행할지 선택하는 것을 메소드 디스패치라고 한다.어느 시점(컴파일타임 vs 런타임)에 어떤 method를 사용할지를 결정하느냐에 따라서 Static Dispatch와 Dynamic Dispatch로 나뉜..
[UIKit] CustomView
·
🍎 Dev/UIKit
새싹에서 후반기 프로젝트를 개발할 당시 CustomView를 많이 사용하게 되어서 정리하게 되었다.주로 코드베이스로 UI를 그려왔기 때문에 해당 글에선 코드 베이스 + SnapKit 기반으로 customView를 만드는 방법을 다룰 예정이다.        커스텀 뷰를 왜 사용할까❓ 우선 내가 CustomView를 사용했던 가장 큰 이유는 재사용성 때문이었다.위 캡쳐 이미지처럼, 반복되는 UI 요소가 많은 화면을 그릴 때 매번 UI와 관련된 코드를 작성하면 굉장히 비효율적일 수 밖에 없다. 폰트를 바꿔야한다면?포인트 컬러를 바꿔야한다면?버튼의 코너 레디어스를 변경해야한다면? 동일한 구성의 코드를 일일이 찾아서 수정한다면, 반복되는 뷰의 수가 많을 수록 수정의 굴레에 빠질 수 밖에 없으니까. 또한, 부분적으..
[UIKit] 앱의 생명주기
·
🍎 Dev/UIKit
✔︎ 생명주기 (Life Cycle) 생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다.그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app determines what it can and can’t do at any time." 즉, 현재 시점에서 앱이 무엇을 할 수 있느냐를 결정 짓는 것을 뜻한다. 앱을 개발 및 사용을 하다보면 사용중인 앱을 백그라운드로 잠시 보낼 때도 있고 (카톡으로 받은 계좌번호를 복사하고, 그대로 은행앱을 켜서 붙여놓는다거나 하는 상황), 백그라운드에 둔 채로 해당 앱을 계속 사용할 때도 있고 (유튜브 뮤직을 사용중인 채로 다른 앱을 메인으로 사용하고 있을 수도 있고), 포그라운드 상태로 그 앱을 이용할 ..
[CS] 이미지
·
⚙️ CS
이전에 잭님이 다뤄주신 부분이지만, 휴님께서 CS 정리 할 때 한번 더 이미지와 관련된 부분을 정리해주셔서 수업 키워드 내용을 기반으로 개인적으로 정리를 하기로 했다. 오늘 정리할 내용은 이미지에 대한 내용으로, 비트맵과 벡터, JPG - PNG - GIF 에 대한 내용을 개인 복기용으로 (정말) 간단하게 다룰 예정이다.       📌 비트맵 vs 벡터 - 비트맵(Bitmap)이란? 📖  서로 다른 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식으로, 일정 이상 사이즈를 늘리면 픽셀이 깨져버린다. 우리가 흔히 아는 JPG, JPEG, PNG, GIF가 비트맵 표현방식 기반으로 이미지를 표현하는 종류의 예시. 그 특징은 아래와 같다. 종류특징투명도 지원용량JPG손실 압축RGB(세 가지 컬러에 대한 처..
[SwiftUI] Info.plist
·
🍎 Dev/SwiftUI
SwiftUI를 다시 공부해보려고 UIKit에서 사용하던 것들을 이것저것 적용해보던 차, 무언가 이상한 걸 인지했다.바로, info.plist가 폴더에 없다는 것.     📌 Xcode 13 이후 프로젝트를 다시 만들어보고, 여기저기 눌러봐도 보이지 않아서 검색해보았는데 Xcode 13 이후 애플이 의도적으로 info.plist를 숨겼다는 걸 알게 되었다. 아래는 공식문서에 기재된 관련 내용이다. Projects created from several templates no longer require configuration files such as entitlements and Info.plist files. Configure common fields in the target’s Info tab, an..
[Swift] unowned vs weak
·
🍎 Dev/Swift
해당 게시글은 iOS 면접스터디 SweepSwift에서 진행한 질문 중 제가 담당 했던 질문의 답변 내용을 정리 및 보강한 내용입니다.    🔴 unowned와 weak의 차이점을 설명하세요.캡처 리스트, 객체간의 참조 등의 경우인 강한 참조 순환(Strong Reference Cycle)로 인한 메모리 누수를 방지하기 위해 사용되는 참조 타입입니다. 차이점은 아래와 같습니다.   📌 unowned unwoned를 참조하는 경우 값(value)이 항상 존재한다고 가정하기 때문에 할당해제를 해도 인스턴스가 메모리에서 해제되지 않습니다.unowned는 값에 바로 접근할 수 있습니다. 대신 unowned 참조는 할당해제가 된 상태일 때 nil로 설정되지 않기 때문에 (즉, 객체가 ARC에 의해 메모리가 해..