iOS Cache
·
iOS/UIKit
캐시캐시란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.갑자기 iOS에서 이 개념이 왜 나올까 ??  부스트 캠프 과정 중 앱 개발을 할 때 항상 비용을 고려해야한다. 비용은 크게 2가지로 나눠진다비용 Money전원 Power전원 Power는 말 그대로 우리 서비스를 이용할 때 배터리 소모량이 된다. 비용 Money은 우리 서비스를 이용하면서 유저가 지불해야하는 금액적인 비용이다. 금액적인 비용은 우리 서비스내의 제품을 구매할 때도 역시 필요하지만앱이 네트워크가 필요하여 인터넷 비용도 있다.  우리가 컨트롤 할 수 있는 것은 바로 인터넷 비용이다.우리는 유저의 인터넷비용을 최대한 기술적으로 절감시켜 유저 이탈 수를 막야한다. 대표적인 예로 바로 캐시 데이터를 통해 불필요한 네트워크 통..
UIViewRepresentable
·
iOS/SwiftUI
이전 포스팅에서는 SwiftUI -> UIKit에서 사용하는 방법론을 알아봤다.이번에는 UIkit에서 SwiftUI로 사용하는 법을 알아보자.  정의 UIkit의 UIview를 SwiftUI 계층에서 쓰기 위한 래퍼 프로토콜이다. 더 자세히는 다음과 같다고한다.이번 시간도 저번 포스팅과 같이 UITextField가 수정되면 swiftUI의 View의 백그라운드 색깔을 바꿔보자.구현UIViewRepresentable 채택한다.Coordinator를 만든다.updateUIView를 구현한다makeUIView를 구현한다makeCoordinator구현한다.swiftUI에서 생성 후 바인딩해주기1. UIViewRepresentable를 채택여기서 context와 coordinator라는 개념이 나오는데 하나씩 알..
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단 구성이다. 즉, 애플에서도 이 구성을 구현할 수 있게 만들어놨다는 것이제는 간단하게 만들어보자.구현내용을 간단히 살펴보..
프로세스와 스레드
·
CS/OS
프로세스실행되고 있는 프로그램 또는 CPU 스케줄링의 대상이되는 작업을 의미한다. 프로세스의 상태여기서 상태 변화의 원이는 CPU 소유권과 메모리 부족여부이다. 생성프로세스를 생성 상태, fork() 또는 exec()함수를 통해 생성되며, PCB가 할당된다.대기메모리 공간이 충분하면 메모리를 할당받고 아니면 할당하지 않은 상태로 CPU 소유권이 넘어오기 기다리는 상태대기중단메모리 부족으로 일시 중단된 상태실행소유권과 메모리를  모두 할당받고 수행중인 상태중단이벤트가 발생되여 프로세스가 차단된 상태 , 대표적으로 I/O 디바이스에 의한 인터럽트가 있다.일시중단중단된 상태에서 프로세스 소유권을 받으려했지만 메모리가 부족하여 다시 대기하는 상태종료메모리와 CPU를 모두 내려놓는 상태프로세스의 메모리 구조동적영..