iOS Cache
·
iOS/UIKit
캐시캐시란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.갑자기 iOS에서 이 개념이 왜 나올까 ??  부스트 캠프 과정 중 앱 개발을 할 때 항상 비용을 고려해야한다. 비용은 크게 2가지로 나눠진다비용 Money전원 Power전원 Power는 말 그대로 우리 서비스를 이용할 때 배터리 소모량이 된다. 비용 Money은 우리 서비스를 이용하면서 유저가 지불해야하는 금액적인 비용이다. 금액적인 비용은 우리 서비스내의 제품을 구매할 때도 역시 필요하지만앱이 네트워크가 필요하여 인터넷 비용도 있다.  우리가 컨트롤 할 수 있는 것은 바로 인터넷 비용이다.우리는 유저의 인터넷비용을 최대한 기술적으로 절감시켜 유저 이탈 수를 막야한다. 대표적인 예로 바로 캐시 데이터를 통해 불필요한 네트워크 통..
키보드 반응하기
·
iOS/UIKit
많은 앱에서 입력 작업을 할때 UI적으로 가장 곤혹스러운게 키보드에 따란 반응이다.이번 학습은 키보드 관련 정보는 어떻게 얻어오고 처리하는 지 간단하게 살펴보자.추후 학습 중 더 깊은 내용이 있으면 내용이 추가될 수 있다. 키보드 정보 얻기첫번 째로 우리는 키보드가 나왔는 지, 키보드 높이는 무엇인지 어디서 얻올 수 있을까 ??답은 이전에 배웠던 UIResponder 이다   그 때 배웠던 내용을 인용하면 textField를 누를 때 키보드가 나오는 것은 first responder를 통해 진행된다고 적었었다. 그렇다면 UIResponder에 keyboard 관련 내용이 있는 지 한번 공식 사이트를 봐보자 UIResponder keyboard관련 상수가 정말 많다 여기서 우리가 사용할 것은 아래 3가지다..
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는 클래스를 저장할 때 많이 쓰이는군.. 으로 예상된..