URLSession URL로 표시된 엔드포인트에서 데이터를 업로드하거나 다운로드하는 등의 API를 제공해 주는 클래스를 말하며, 내부의 여러 설정을 통해 데이터를 어떻게 전송하고 어떻게 동작할지를 설정할 수 있다. URLSession의 shared의 경우에는 은 싱글톤 객체로 구성되어 있어 사용자가 커스터마이징한 것을 등록할 수는 없지만, 그 사용 범위가 제한적인 경우 내부의 method나 설정을 이용하여 네트워크 통신을 할 수 있다. 간단하고 기본적인 요청일 경우에는 앞서 말한 Shared Session나 조금 더 커스터마이징을 해서 사용할 수 있는 Default Session을 이용하여 사용할 수 있고, 이외에도 다른 Session Configuration을 이용하여 별도의 처리를 할 수 있다. UR..
✔︎ 오늘의 정리 접근 제어자 모듈과 타겟 각 접근 제어자가 언제 쓰이는지와 어떻게 쓰이는지!! 값 전달 closure delegate UIPickerView PHPicker 접근 제어자 소스파일 및 모듈에서 세부적인 코드의 내용에 대한 접근을 막거나 허용할 때 사용한다. 이를 통해 코드에 대한 불필요한 노출을 제한함으로써 은닉화를 구현할 수 있다. 접근 제어자는 모듈과 타겟의 특성으로 나뉘게 되는데, 먼저 그 둘에 대해서 알아보자면 다음과 같다. 모듈 우리가 흔히 말하는 프로젝트 단위를 모듈이라고 한다. 프레임워크도, import를 통해 사용하는 라이브러리도 하나하나가 모듈이다! open / public을 통해 접근할 수 있당 타겟 하나의 프로젝트 파일 내에서 코드를 제어할 경우 타겟이라고 한다. 근..
✔︎ 오늘의 정리 Main 스토리보드 제거하기 뷰 전환 시 nil이 나오는 경우 codebase ContentHugging, ContentCompressionResistance lazy weak var Main 스토리보드 제거하기 저번 주 TIL에 적었던 것 같은데 생각해 보니 올린 거엔 없길래,,, 아 날린 애 중 하나구나 싶었다 암튼!! 이제 스토리보드는 사용하지 않으니 제거해 보려고 한다. 굳이 스토리보드를 남겨두어 빈 스토리보드가 컴파일되는 시간을 줄 필요 없으니까!! (시간낭비임...) 하지만 스토리보드를 제거한 이후에 스토리보드를 제거한 이후 해 줄 일은 다음과 같다. info.plist에서 메인 스토리보드 설정 제거하기 target - buildSetting에서 스토리보드 설정 제거하기 i..
우리는 privacy와 authorization과 관련해서는 기술보다는 사용자를 우선으로 해야 한다. 어떻게 하면 사용자 경험을 방해하지 않고 더 많은 통제권을 줄 수 있을지, 그럼으로써 더 나은 사용자 환경을 제공하려면 어떤 방식을 써야 하는지 생각해야 한다. 그렇다고 유저를 너무 귀찮게 해서도 안 된다! (당연함 불편하다...) 필요 이상의 정보를 요청하지 않으면서 사용자와의 신뢰를 구축하고, 사용자가 모르는 사이에 이미 통제권을 가지고 있다는 걸 알게 해야 한다. 사용자에게 권한을 필요로 하는 것들 중에서 권한을 요청하지 않고 사용할 수 있는 것은 아무것도 없다. 사진, 카메라부터 위치까지 모두 그렇다. 사실 당연하다. 개인정보니까! 그렇기 때문에, 모든 설정은 iOS 시스템 설정을 우선시한다. 만..
✔︎ 오늘의 정리 setTitle과 Configuration stackView로 메세지 화면 만들기 Add alignment location 화면 전환 코드 리팩토링하기(generic) SetTitle과 Configuration.attributedText 결론부터 말하자면, Configuration과 SetTitle이 동시에 적용이 안 된다. 둘 다 적용했을 때 setTitle이 우선 적용이 된다. 그러니까... 왼쪽은 버튼에 setTitle을 적용한 경우이고, 후자는 caption을 적용한 것이다. 코드로 확인해 보면 다음과 같다. 처음 코드는 아래와 같다. static func makeButton(image: UIImage?, title: String) -> UIButton { let button ..
✔︎ 오늘의 정리 Notification 코드로 오토레이아웃 잡아보기 오토레이아웃 연습 Notification https://dk308c.tistory.com/27 [iOS] Notification User Notification Framework 사용자의 디바이스에 알림을 주는 프레임워크로, 앱의 실행 여부에 상관없이 사용자에게 새로운 정보를 전달할 수 있다. 앱 아이콘 상단에 뜨는 뱃지와 알림 소리, 알림의 dk308c.tistory.com 아... 목표를 정햇다 온라인 수업 날에는 밥 묵고 들와서 무조건 블로그 개념 정리 글을 하나씩 적어야겠다 매일 하나씩은 쓸 수 없겠지만 ㅇ.ㅇ 3일에 2개는 써바야겟음 ㅋ 코드로 오토레이아웃 잡아보기 먼저, 이전에 프레임으로 레이아웃을 잡을 때의 순서는 다음과..
User Notification Framework 사용자의 디바이스에 알림을 주는 프레임워크로, 앱의 실행 여부에 상관없이 사용자에게 새로운 정보를 전달할 수 있다. 앱 아이콘 상단에 뜨는 뱃지와 알림 소리, 알림의 내용을 설정할 수 있으며, 이 기능은 사용자의 디바이스의 권한이 필수적이다. 따라서, 알림을 보내기 전에 사용자에게 권한을 묻는 알림창을 꼭 띄워 주어야 한다. 또한, 이 알림창의 경우에는 각 앱마다 앱의 이름만 달라질뿐, 개별적으로 문구를 설정할 수 없다. 알림은 사용자의 알림 센터에 표시되며, stack 형식으로 차례차례 쌓인다. 설정에서 사용자는 알림 센터에 알림을 줄 앱을 켜고 끌 수 있다. 알림을 사용하는 주된 이유는 여러 가지가 있지만, 앱의 재사용률에 기여하기 위해 notific..
✔︎ 이번 주의 정리 TMDB Project 문제 확인 collectionViewLayout 잡기 검색으로 영화 추천해 주기 가볍게 정리해 본 TableView의 쓰임 DispatchGroup TMDB Project 문제 확인하기 아... 사실 문제가 너무 많다... ㅜㅜ 코드 ㄹㅇ 꼴도보기싫음 그래도어쩌겟냐해야지... 문제1: 테이블뷰는 로딩되는데 index가 업데이트되지 않는 건지 페이지가 업데이트되고 바로 클릭하면 오류가 남 Thread 1: "Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (40) must be equal to..