일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 진입점
- AppTransportSecurity
- RunLoop
- 후행 클로저
- Remot Push
- entrypoint
- DispatchQueue
- for-in
- tableViewCell
- uikit
- CoreLocation
- ios
- 동시성프로그래밍
- OperationQueue
- property wrapper
- Understanding Swift Performance
- 원격 푸시
- IBOutletCollection
- 트레일링 클로저
- TableView
- viewcontroller
- weak
- 연산 프로퍼티
- SWiFT
- UIButton
- userdefaults
- firebase
- IBOutlet
- Choosing Between Structures and Classes
- WWDC16
- Today
- Total
목록분류 전체보기 (72)
iOS 공부하는 감자
보호되어 있는 글입니다.
순서 Allocation Reference Counting Method Dispatch Protocol Types Generic Code Understanding Swift Performance Swift의 추상화 메커니즘이 성능에 미치는 영향을 이해하기 위한 가장 좋은 방법은 기본 구현을 이해하는 것. 개발자는 추상화를 구축하고 추상화 메커니즘을 선택할 때, 다음의 3가지를 고려해야 한다. 인스턴스가 Stack에 할당되는지, Heap에 할당되는지? (Allocation) 인스턴스를 전달할 때, 얼마나 많은 Reference Counting Overhead가 발생하는지? 인스턴스 메서드를 호출할 때, Method Dispatch 방식이 Static인지 Dynamic인지? 보다 빠른 Swift 코드를 작성..
객체 vs 인스턴스 다른 프로그래밍 언어들은 Swift와 다르게 구조체의 기능이 제한적이다. (메서드를 사용하지 못함) 그래서 클래스의 인스턴스를 많이 사용하고, 클래스의 인스턴스를 전통적으로 객체라고 부른다. 하지만 Swift에서 구조체는 Class와 기능이 흡사하기 때문에 객체보단 Class와 Struct를 모두 표현할 수 있는 인스턴스라는 표현을 사용한다. Structures and Classes An instance of a class is traditionally known as an object. However, Swift structures and classes are much closer in functionality than in other languages, and much of thi..
순서동시성 프로그래밍Operation과 비교해볼 GCD 기능OperationOperationQueueQosBlock Operation비동기 함수를 호출하는 Operation종속성작업 취소 동시성 프로그래밍분산 처리가 필요한 작업들을 여러 스레드로 분산시켜서 처리하는 프로그래밍 방식Swift에서는 동시성 프로그래밍 구현을 위한 2가지 방법을 제공한다.GCD (DispatchQueue)Operation - OperationQueue자바나 C언어같은 경우, 개발자가 동시성 프로그래밍을 구현하기 위해 직접 스레드를 생성하고 수행할 작업을 지정해야 한다.Swift에서는 동시적으로 사용할 스레드의 개수를 직접 관리하지 않고, Queue라는 대기행렬로 작업을 전달하면 OS가 알아서 여러 스레드로 분배하여 처리한다.따..
Remote Notification 서버로부터 받은 정보로 Push를 띄우는 것. ex) 쿠팡 특가 알림, 이벤트 Push 수신 등.. 시뮬레이터에서는 Remote Notification 테스트가 불가능 -> Local Notification만 테스트가 가능했다. 하지만 Xcode 11.4 이후로 시뮬레이터에서도 Remote Notification을 수신할 수 있도록 지원하기 시작했고, 별도 설정을 거치면 시뮬레이터에서도 테스트가 가능하다. APNs (Apple Push Notification System) Push Notification을 관리하는 애플의 시스템으로, 모든 푸시는 APNs를 통해 사용자에게 전달된다. APNs를 사용하기 위한 Key는 애플 개발자 계정이 있어야 사용할 수 있다. Remo..
https://apps.apple.com/kr/app/tripcard/id1645004488 앱 정보와 기획 의도 나는 여행을 엄청 좋아한다. 군대에 있을 땐 월급을 전부 적금에 넣으면서 1년 가까이 유럽 여행을 준비했고, 사적 국외여행 신청서를 따로 제출하고 휴가 써서 일본을 혼자 다녀올 정도로 좋아했다. 근데 전역할 때쯤 코로나가 터지더니 유럽여행은 공중분해되고 그 뒤로 이런저런 이유로 여행을 많이 가지 못했다.. 공부하느라 바쁜 와중에도 여행 생각은 틈틈이 나서(특히 자기 전에) 가끔 갤러리에 들어가서 사진을 보곤 하는데 여행 관련 사진만 골라서 보고 싶은디 사진이 하도 많으니까 그게 어려웠다. (스크롤 압박..) SlideBox라는 사진을 정리해주는 어플을 써서 정리해보려 했는데.. 이게 한 장 ..
iOS에서 앱을 사용하다 보면 아래와 같은 권한 요청 메시지를 자주 보게 되는데, 보안을 중요하게 생각하는 애플이 위치를 포함한 카메라, 연락처 등 민감한 개인정보에 대해 사용자에게 먼저 권한을 부여받아야 사용할 수 있도록 만들어두었기 때문이다. WWDC의 "what's new in Privacy"를 통해 보안을 점점 강화하고 있고, 사용자 중심으로 개발하는 것을 요구하고 있다. 때문에, 권한 설정이 올바르지 않은 앱은 출시 과정에서 리젝 사유가 된다. 리젝 당하는 경우 권한에 대한 필요성 Description이 명확하지 않은 경우 앱에 꼭 필요하지 않은 권한을 등록한 경우 여러 권한 중 위치 정보를 받아오기 위해서는 다음과 같은 순서로 작업하면 된다. info.plist에 필요한 권한 추가 & Desc..
보호되어 있는 글입니다.
RunLoop란? 런루프 객체는 소켓, 파일, 키보드, 마우스 등의 입력 소스와 타이머 이벤트 등을 수신하고 처리하는 이벤트 처리 루프이다. 특정 이벤트가 발생했을 때, 스레드가 일해야 할 때는 일하고, 일이 없으면 쉬도록 하기 위해 애플에서 만든 스레드 관리 Loop이다. RunLoop가 수신하는 이벤트 Input Sources : 다른 스레드나 다른 응용프로그램의 비동기 이벤트를 수신하고, 이벤트 핸들러를 수행한다. Timer Sources : 예정된 시간이나 반복되는 간격으로 발생하는 동기 이벤트를 수신하고, 이벤트 핸들러를 수행한다. 각 스레드는 1개의 RunLoop를 가지며, RunLoop는 수신받은 이벤트를 모아 두었다가 실행되는 순간에 모아두었던 이벤트에 대한 핸들링 처리를 수행한다. (+ ..
Cell 내부에 구현된 버튼의 Touch Event를 ViewController에서 처리하는 것이 좋은 이유 Event 핸들링은 ViewController에서 처리하는 것이 유지보수에 좋다. 버튼의 Touch Event로 Data처리가 필요한 경우, ViewController를 통해 Model의 Data에 접근하여 처리할 수 있다. TableViewCell 파일에 IBAction으로만 기능을 구현하면, 모든 Cell의 버튼이 동일한 기능을 수행하므로 각 Cell별로 분기처리가 필요한 경우 구현하기 까다롭다. 다음의 3가지 방법을 통해 Cell에 있는 Button Action을 ViewController에서 처리할 수 있다. Button에 Tag를 부여해서 처리 CallBack 함수(클로저)를 사용하여 처..