UIHostingController
·
iOS/UIKit
정의 swiftUI view를 관리하는 뷰컨틀롤러이다. 구현swiftUI의 TextFiled의 text를 변경하여 UIViewController의 색을 바꾸는 미션을 해보자. 단계는 다음과 같다.SwiftUIView 구현 viewController에 UIHostingController와 함께 등록1. swiftUI TextField 구현struct CustomSwiftUITextView : View { @Binding var text: String var body: some View { TextField("SwiftUI TextField", text: $text) .padding() .background(Color.blue) ..
UIEditMenuInteraction
·
iOS/UIKit
정의 메뉴를 이용한 편집 기능을 제공하는 인터렉션이라고한다. 설명으로는 아직 어떤 기능인지 명확하지 않다. 하지만 우리는 이 기능을 무의식적으로 많이 써봤다. 바로 다음 사진과 같이 말이다. 사진을 보니 바로 이해가 된다. 바로 LongPress를 할 때 등장하는 저 메뉴들이 오늘의 주인공인 UIEditMenuInteraction이다. iOS를 훨씬 전부터 공부했던 사람들은 UIMenuController로 알려져있는데   보다시피 iOS 16을 기점으로 더 이상 지원하지 않는다. 구현우리는 크게 2가지 방법을 통해 커스텀을 해보려고한다.첫 번째는 가장 많이 쓰이는 UITextField 또는 UITextView에서 커스텀을 해보는 것두 번째는 그 외의 뷰에 메뉴를 띄우는 동작으로 나눠 진행해보자. 1. U..
UISearchController
·
iOS/UIKit
검색 기능은 대부분 서비스에 필수적으로 있는 기능이다.다양한 스타일로 커스텀이 많이 되어있고 내가 참여하고 있는 왁타버스 뮤직팀의 검색 기능 역시 커스텀하여 사용했다. 처음부터 커스텀을 통해 개발하여 기본적인 기능으로는 만들어볼 기회가 없었다.이번 시간은 애플이 자체적으로 만들어 놓은 UISearchController 기능을 통해 같은 기능을 구현해보자. 실제 서비스1. 왁타버스 뮤직 세 화면은 앞서 설명한 왁타버스 뮤직앱의 검색화면이다.검색 전 - 추천 컨텐츠검색 중 - 최근 검색어검색 후 - 검색 결과한번 애플 앱도 살펴보자. 2.  앱 스토어 왁타버스 뮤직앱과 정확히 일치하는 3단 구성이다. 즉, 애플에서도 이 구성을 구현할 수 있게 만들어놨다는 것이제는 간단하게 만들어보자.구현내용을 간단히 살펴보..
NSKeyedArchiver
·
iOS/UIKit
NSKeyedArchiver 오브젝트의 데이터를 key로 참조해서 기록하는 encoder다.  NSKeyedUnarchiverkey로 참조해서 오브젝트의 데이터를  복원하는 decoder다.UserDefaults와 차이점나는 지금까지 데이터를 저장할 때 UserDefaults를 이용했지만 이 아카이버의 역할은 무엇일까?? NSKeyedArchiverUserDefaults저장 방식Key - Value데이터 타입 매핑 여부O상위 하위 관계 매핑 여부OX 공통점이 많은 인터페이스 가지만 큰 차이점이 존재한다.바로 상속과 같은 복잡한 데이터의 관계를 같이 저장하는데 차이가 있다. 흠.. 상하 관계가 있다는 것은 상속을 쓴다는 것이고 NSKeyedArchiver는 클래스를 저장할 때 많이 쓰이는군.. 으로 예상된..
NSCoding , NSSecureCoding
·
iOS/UIKit
정의A protocol that enables an object to be encoded and decoded for archiving and distribution. 아카이빙과 배포를 위해 객체가 encoding과 decoding을 가능케 도와주는 프로토콜이다. 조금 더 자세히 설명하면 NSCoding은 Objective-C 기반의 클래스를 직렬화 및 역직렬화를 하는 역할을한다. 인코딩이란?Swift의 데이터를 컴퓨터가 이해할 수 있는 0과1로 코드화, 암호화 등을 하는 과정이고보안, 저장 공간 절약등의 효과를 볼 수 있다. 디코딩이란?디코딩은 인코딩의 정확한 반대 과정으로 복호화, 역코드화가 진행되며  컴퓨터가 이해할 수 있는 정보를 우리가 사용하는 Swift 데이터로 바꾸는 과정이다. 구성publi..
NSObject
·
iOS/UIKit
정의The root class of most Objective-C class hierarchies, from which subclasses inherit a basic interface to the runtime system and the ability to behave as Objective-C objects.NSObject는 Objective-C 및 Swift 프로그래밍 언어의 기본 클래스이며  대부분의 다른 클래스의 루트 클래스 역할을 한다. 기능많은 기능들이 있지만 대표적인 4가지 기능만 살펴보자.  1. 객체 초기화NSObject클래스는 다른 모든 클래스에서 상속되는 기본 초기화 메서드인 init을 제공한다. 2. 메모리 관리NSObject클래스는 객체에 할당된 메모리 관리를 하는 메서드를 제공..