본문 바로가기

iOS

(36)
[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:) 응답을 수신한 후..
[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
[iOS] UICollectionView 공식문서 톺아보기 # UICollectionView: UIScrollView 앱의 주요 작업은 CollectionView와 연결된 data를 관리하는것 [개요] 컬렉션 뷰는 컬렉션 뷰의 dataSource 프로퍼티에 저장된 데이터 소스 개체에서 데이터 정보를 가져옴 UICollectionViewDiffableDataSource 컬렉션 뷰는 데이터 및 UI 업데이트를 간단하고 효율적으로 관리하는데 필요한 동작을 제공해줌 UICollectionViewDiffableDataSource이 프로토콜을 채택해서 커스텀하여 사용할 수도 있음 컬렉션 뷰의 데이터는 프레젠테이션을 위해 섹션으로 그룹화할 수 있는 개별 item으로 구성됨(단일) item은 표시하려는 데이터의 가장작은 단위임(tableView의 cell처럼), 단일이미지가 ..
[예약] Responder Chain 공부 https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/using_responders_and_the_responder_chain_to_handle_events Apple Developer Documentation developer.apple.com
[iOS] GCD 심화 개념 톺아보기 # Qos(Quality of Service) 서비스에 품질 ?? 우선순위 ??? Qos를 우선순위로 번역하다보니 그 의미를 오해할 수 있는데 여기서 말하는 우선순위란 무엇인가? 무엇에 더 품질을 신경쓸까와 같은맥락이다. 예를들어 DispatchQueue와 Operation Queue를 공부한다고 했을때 디스패치큐가 현재는 더 중요하다고 생각해 7:3비율로 공부를 하는것처럼 에너지를 쏟아 품질을 높이는것 # 에너지를 더많이 쏟는다는건 무슨말일까 ?? 더 많은 스레드를 할당한다는 뜻이다. # DispatchQoS는 무슨 타입인가? enum 열거형 타입으로 설계되었고 총 6개의 클래스가 있으며, 4개의 쥬요 유형과 다른 2개의 특수유형으로 구분할 수 있다. userInteractive, userInitiat..
[iOS]의존성 관리 도구 종류 및 장단점!(feat. 오픈소스) # 오픈소스 소스코드를 공개해 누구나 제한없이 코드를 볼 수 있는것 타입들을 다 만들어서 사용하면 시간이 오래걸리니깐 이미 만들어져있는 코드들을 사용하는 것이다. 오픈소스 제작의 의미 코드에 신경을쓰게되며 코드를 제공하고 배울 수 있는 기회가될 수 있다. 의존성 관리도구란? Cocoa, CocoaTouch 는 애플에서 제공하는 앱 개발환경을 의미 macOS에서는 Cocoa, iOS에서는 Cocoa Touch라고 부른다. 의존성관리도구를 사용하는것은 필수는 아니나 라이브러리 업데이트가 올라오면 교체해줘야하는데 이걸 일일이 기존 라이브러리를 삭제하고 삽입시키면 휴먼에러도 발생할 수 있음 => 이를 명령어 한줄 혹은 클릭 몇번으로 해결하면 시간절약과 안정성까지 보장받을 수 있다. 오픈소스 작성시 주의할점 MI..
[iOS] 동시성 프로그래밍 햇갈리는 개념 잡기(feat. 야곰닷넷) 0️⃣ core와 thread(솦트웨어에서의)는 각각 무엇을 의미하는지 설명해보세요 core는 cpu에서 일처리하는 개체입니다. 코어는 한번에 한가지일만 처리가 가능하다는 특징을 가지고있습니다. thread는 프로세스(프로그램) 내부에서 작업 단위가 되는 가상 스레드이며 작업을 처리하는 개체입니다. 1️⃣ sync와 async의 차이는 무엇인가요 ? sync는 동기고 async는 비동기 방식이며 병프와 동프와는 전혀다른 맥락이다. 둘의 차이점은 동기는 작업을 끝날때까지 기다리는 것이고 비동기는 기다리지 않고 다음 블럭을 바로 실행시키는 코드이다. 2️⃣ async(비동기)와 concurrent(동시성)는 구분되는 개념이라고 했습니다. 각각을 설명해보세요. async는 기다리지 않고 다음 코드 작업을 수행..