목록분류 전체보기 (88)
iOS 개발일지
// 주의! 제스쳐를 추가할 버튼마다 제스쳐를 생성해주어야 한다. // 같은 타겟과 액션을 가진 제스쳐라도 하나씩 등록하지 않으면 제대로 동작하지 않는다. let panGestureStateButton = UIPanGestureRecognizer(target: self, action: #selector(dragButton)) stateButton.addGestureRecognizer(panGestureStateButton) let panGestureCountButton = UIPanGestureRecognizer(target: self, action: #selector(dragButton)) countButton.addGestureRecognizer(panGestureCountButton) @objc f..

Objective-C를 공부하게 될 줄은 몰랐는데, 해야만 하는 상황이 생겼다. 오래된 언어라서 그런지 마땅한 강의도 없고, 회사에 있는 10년도 더 된 책을 읽으며 공부하고 있다. 읽다가 이해가 가지 않는 개념은 구글링해서 여러 블로그도 참고하고, 그렇게 읽기만 하다가... 역시 코드는 쳐봐야 맛이지! 간단하게 일단 쳐봤다. 공부해본 언어라곤 Python 한스푼과 Swift밖에 없는 나에게 너무 생소한 생김새였다. 세미콜론부터가... 이름에서 유추할 수 있듯이 C 언어를 기반으로 만들어졌다고 하니, C 를 아는 사람에게는 이해가 더 수월할 수도 있겠다. 보다시피 objc 파일은 이렇게 h와 m으로 나누어진다. 선언과 구현을 한번에 하는 swift와는 다르게, objc는 선언을 헤더 파일에서 쫘르륵 하게..

개발을 하다보면 필연적으로 비동기/동시성 프로그래밍의 필요성을 느끼게 된다. 개인적으로는 배너 스크롤 뷰를 만들었을 때 가장 와닿았었다. 그냥 조금 빨라졌당! 정도가 아닌, 정말 절실할 정도의 속도 차이가 있었다. GCD와 DispatchQueue 그럼 이러한 비동기/동시성 프래그래밍은 어떻게 하느냐! 선입선출을 하는 Queue에 Task를 저장하면, GCD가 스레드를 적절히 생성해 Queue에 담긴 Task를 분배해준다. 여기서 GCD에서 관리하는 Queue의 이름이 DispatchQueue이다. 음...! 너무 어려우니 패스트푸드점으로 예시를 들어보자! 44회차 정리 - GCD 를 읽고 오면 이해가 더 편할 것이다. 비동기 프로그래밍 비동기 프로그래밍은 여러 일을 동시에 처리해야 할 때 매우 효율적이..
SDK (Software Development Kit) 소프트웨어 개발 키트 개발자에게 다른 프로그램에 추가하거나 연결하여 커스텀 앱을 제작할 수 있는 기능을 제공하는 도구 모음 SDK를 통해 광고 및 푸시 알림을 포함한 다양한 기능을 시스템에 추가하여 앱을 향상시킬 수 있음 Framework 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 프레임워크의 규칙에 따라 코딩하는 것으로, 앱의 흐름을 통제하기 때문에 해당 코드에 대한 제어권은 프레임워크에 있음 프레임워크 코드가 사용자의 코드를 호출 Library 특정 작업을 위해 쓰인 변수, 함수 등의 모음 여러가지의 유용한 함수가 담겨져있는 라이브러리를 이용해 내가 코드를 컨트롤 하는 것..

아이폰에서 앱을 새로 설치한 후 실행했을 때 자주 보이는 앱 추적 권한 창 iOS 14 이전 버전에서는 권한을 요청하지 않고도 IDFA 값을 가질 수 있었지만, iOS 14 이상 버전에서는 권한을 요청해야 한다. 맞춤형 광고이니만큼, 사용자가 광고에 관심을 가질 가능성이 높아지기 때문에 앱 추적을 사용하지 않을 때보다 수익을 올릴 수 있다. IDFA란? IDFA란 ID for Advertisers의 약자로, Apple에서 사용자의 기기에 할당한 광고 식별자이다. 기기에 할당된 IDFA를 통해 사용자를 식별하고 맞춤형 광고를 제작할 수 있다. 1. TARGETS -> Frameworks에서 + 버튼을 통해 AppTrackingTransparency을 추가한다. 2. info.plist에서 Privacy -..
여태 공부하며 배웠던 것들을 거의 매일 포스팅했지만, 누군가가 찾아 보려면 불편한 부분이 많을 것 같아 키워드 위주로 정리했습니다! 저도 다시 볼 일 있을때 편하려구...^^* 이렇게 다시 보니 새싹 과정 하면서 정말정말 많은 걸 배웠구나...! 하고 다시 깨닫게 되네요☺️ Swift 참고 문서 : https://jusung.gitbook.io/the-swift-language-guide/language-guide/23-automatic-reference-counting 1주차 ViewController Life Cycle Application Life Cycle 다크모드 / Appearance 세로모드와 가로모드 Parameter vs Argument ReturnKey로 키보드 내리기 비밀번호 숨기기 ..

iOS 앱 개발자 데뷔 과정 84회차 #1. Memo - Subscript 특정 멤버의 엘리먼트에 간단하게 접근할 수 있는 문법으로, 클래스, 구조체, 열거형 등에서 직접 정의해 사용할 수 있다. 하나의 타입에 여러 스크립트를 정의하거나, 오버로드해 Computed Property를 활용하여 정의한다. 참고 : indices 는 컬렉션을 순회할 때 사용하는 인스턴스 프로퍼티이다. - Copy On Write Collection Type (Array, Dictionary, Set) 등에서 복사가 이루어질 때, 실제로 복사를 하지 않고 원본 (메모리) 을 공유하다가 원본 또는 복사한 곳에서 수정이 일어나게 될 경우에 실제로 복사하는 작업을 말한다. 값에 대한 수정이 발생하지 않는다면, 같은 메모리를 공유하고..

iOS 앱 개발자 데뷔 과정 83회차 #1. API 통신 API 통신을 통해 회원가입/로그인/토큰을 통한 자동 로그인 등의 기능을 간단하게 구현했다. - ATS 특정 도메인 허용 1. info.plist 에서 App Transport Security Settings 추가 2. Exception Domains 추가 3. 허용하고자 하는 주소 입력 후 Type을 Dictionary로 변경 4. NSExceptionAllowsInsecureHTTPLoads 추가 후 value를 YES로 변경 - API url, headers, parameters 관리 (feat. 열거형) 열거형의 연관값을 활용해 url, headers, parameters 등을 관리할 수 있다. 참고 : Content-Type을 명시하지 않..