본문 바로가기

Swift

(132)
[iOS] Core Animation (feat. Layer, CABasicAnimation) # Core Animation [정의] 시각적요소를 렌더링, 합성하고 애니메이션화합니다. 즉, Core Animation은 iOS/ OS X 에서 사용할 수 있는 그래픽 렌더링 및 애니메이션 인프라이다. (Core Animation은 드로잉 시스템 그자체가 아니다. 하드웨어에서 앱의 컨텐츠를 합성/조작 하기위한 인프라임) Core Animation인프라에는 핵심이 Layer(CALayer)가 존재한다. 이는 컨텐츠를 관리/조작 하는데 사용됩니다(Layer는 그래픽 하드웨어로 쉽게 조작할 수 있도록 비트맵으로 컨텐츠를 캡쳐합니다.) Core Animation을 사용하면 대부분의 작업이 자동으로 수행된다. 그래서 시작과 끝지점과 같은 매개변수를 구성하고 CoreAnimation이 시작하도록 지시하면된다. C..
[iOS] View Drawing Cycle # Drawing cycle이 뭔디 View가 로드되거나 변경이 되었을때 화면에 시각적으로 표현되어 그려지는 사이클임 view load 시 system이 UIView에게 draw를 통해 Drawing을 요청함 view의 스냅샷을 캡쳐하고 UIView에게 전달함 view의 content변경시 관련(setNeedsDisplay, setNeedsLayout 등등) 호출하여 system에 업데이트를 요청함 Next drawing cycle에서 업데이트 요청 받은 view를 업데이트함 # view drawing cycle trigger 해주는 상황 View 컨텐츠 변경 관련한 업데이트 트리거를 해주는 상황이 존재한다 view를 부분적으로 가린 타 view의 이동 및 제거 hidden view 노출 view를 화면..
[iOS] multipart/form-data 형식으로 서버에 request요청하기! func postProduct(imageNamed:String, name: String, discountedPrice: Int, price: Int, currency: String, stock: Int, descriptions: String) { // URL생성 guard let url = URL(string: "https://market-training.yagom-academy.kr/api/products") else { return } // boundardy생성 let boundary = UUID().uuidString // request생성 및 identifier와 content-Type을 값을 저장 var request = URLRequest(url: url, cachePolicy: .usePro..
[iOS] UIImagePickerCotroller 문서 훑고 맛보기 UIImagePickerController 사진을 찍고, 동영상을 녹화하고 사용자의 미디어라이브러리 항목을 선택하기위한 VC임 뭔소린지 추상적이라서 더 자세히 읽어보도록 하자 Declaration @MainActor class UIImagePickerController : UINavigationController 일단 네비게이션컨트롤러를 상속받고있는 클래스임…ㅇㅎ [개요] UIImagePickerController는 사용자의 상호작용을 하고 이러한 결과를 대리자개체에 전달한다. 이미지 선택하는 Controller의 역할과 모양은 presentation하기이전에 할당한 자원 타입에 따라 다르다…? => 설정 하기에따라 모양이 다르다는소리같음… UIImagePickerController.SourceType...
[iOS] Fetching Website Data into Memory Fetching Website Data into Memory URL Session에 데이터 작업을 생성해 데이터를 직접(데이터 -> 메모리) 수신합니다. URLSessionDataTask(데이터작업)는 어떤기능을 하는가 ? 데이터작업은 하나 이상의 NSData(bytes) 객체로 앱(메모리)에 직접 반환을 시키는 기능이다. [특징] URLSessionTask의 하위클래스이다. (메서드들에대한 설명은 URLSessionTask에 설명되어있음) 데이터를 업로드하는 동안 Session은 주기적으로 StatusCode와 함께 delegate메서드를 호출합니다. urlSession(_:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:) 응답을 수신한 후..
[Swift] Swift성능 개선을 위한 요소 3가지(Understanding Swift Performance, WWDC 2018 ) UnderStanding Swift Performance [목표 및 알아볼 주제들] 오늘은 성능을 사용해 디자인 공간을 좁힐 수 있또록 권한을 주는것이 목표이다. 카일: 경험상 성능영향을 고려하면 더 관용적인 솔루션을 찾는데 도움이 되는경우가 많다. 따라서 우리는 주로 성능에 중점을 두며 모델링에대해 조금 만져볼것이다. 오버헤드에 대한 멘탈모델을 심화하기위해 구조체와 클래스를 사용해 일부코드를 추적해볼것이다. 그다음 정리하기위해 배운내용을 적용하는 방법을 살펴볼 것입니다. 후반에는 프로토콜 지향프로그래밍의 성능을 평가할 것입니다. 프로토콜 및 제네릭과같은 고급 Swift의 기능의 구현을 살펴보고 모델링 및 성능 영향을 더 잘 이해해볼 것이다. 빠른면책조항: 우리는 Swift가 사용자를 대신해 컴파일하고 ..
[iOS] File System 공식문서 톺아보기 및 간단 정리 FileSystem을 사용하는 이유는 ? 파일을 쉽게 검색할 수 있도록 하고 코드로 구현된 내부적인 파일접근시스템이 사용자 파일과 방해받지 않도록 하는것 sandbox에서 데이터 보호를 위해 별도의 앱전용 폴더 컨테이너를 만들어서 파일 관리를 하며 앱에게 권한을 부여하여 사용자 데이터와 상호작용하는 방식을 갖게된다. sandbox 시스템이 존재하지 않는다면 사용자 데이터에 자유롭게 접근하기때문에 이를 악용할 수도 있다. 그렇기때문에 별도의 전용 앱 디렉토리를 만들어서 데이터를 저장하는 것이고 이를 관리하는게 하고 쉽게 검색해서 파일을 접근할 수 있는게 File System이다 라고 이해함… FileSystem Documents 문서를 해석해보자 새 App을 설치하는 동안 설치프로그램이 sandbox디렉토..
[예약] Runtime시 발생하는 관련 오류는 보라색으로 표시된다..? https://developer.apple.com/videos/play/wwdc2017/406/ Finding Bugs Using Xcode Runtime Tools - WWDC17 - Videos - Apple Developer Learn how to use Xcode 9 runtime tools to help find issues and bugs, ranging from missing and unintended UI updates to integer overflows... developer.apple.com
[네트워크] HTTP 요청과 응답 메세지 이해하기 # HTTP 요청 - 응답 메시지 이해하기 참고링크 [네트워크] HTTP의 이해2: HTTP Request-Response Messages HTTP 요청-응답 메시지 브라우저에 URL을 입력하면 HTTP 표준에 따라 URL을 요청 메시지로 변환하고 TCP/IP를 사용하여 인터넷을 통해 요청을 보낸다. 웹 서버는 요청을 수신하고 클라이언트가 요청한 cotak.tistory.com HTTP를 요청을 하고 서버가 응답을 하는 과정에서 어떠한 정보를 주고 받는지에 대해 이해한다면 프로젝트 코드구현하는데 있어서 수월할 수 있을 것같다. HTTP Request 브라우저에 URL을 입력하면 HTTP표준에 따라 URL을 요청 메세지로 변환하고 TCP/IP를 사용해 인터넷을 통해 요청을 보낸다. Client -> Ser..
[iOS] UICollectionView 공식문서 톺아보기 # UICollectionView: UIScrollView 앱의 주요 작업은 CollectionView와 연결된 data를 관리하는것 [개요] 컬렉션 뷰는 컬렉션 뷰의 dataSource 프로퍼티에 저장된 데이터 소스 개체에서 데이터 정보를 가져옴 UICollectionViewDiffableDataSource 컬렉션 뷰는 데이터 및 UI 업데이트를 간단하고 효율적으로 관리하는데 필요한 동작을 제공해줌 UICollectionViewDiffableDataSource이 프로토콜을 채택해서 커스텀하여 사용할 수도 있음 컬렉션 뷰의 데이터는 프레젠테이션을 위해 섹션으로 그룹화할 수 있는 개별 item으로 구성됨(단일) item은 표시하려는 데이터의 가장작은 단위임(tableView의 cell처럼), 단일이미지가 ..