안녕하세요 Pingu입니다.🐧 오늘은 iOS에서 앱의 생명주기에 따라 호출되는 AppDelegate 메서드들을 알아볼 계획입니다. iOS 13 이후부터는 SceneDelegate가 생겨나서 AppDelegate가 하는 일들을 대체하는 메서드들도 생겨났는데요. 이렇게 대체된 메서드들은 아래와 같습니다. 즉 Scene을 사용하게 되면 AppDelegate의 메서드들이 호출되는 것이 아닌 SceneDelegate의 메서드들이 호출됩니다. SceneDelegate에 대해서 더 자세히 알고 싶으시면 여기를 참고해주세요. 처음 Scene이라는 개념이 등장하며 나온 오래된 자료라 지금과는 메서드 이름도 조금 다르지만 크게 다른 것은 없는 거 같아요. 그럼 앱의 생명주기에 따라 호출되는 AppDelegate 메서드들을..
안녕하세요 Pingu입니다. 🐧 오늘은 iOS에서 데이터를 저장하는 방법 중 하나인 Core Data에 대해 알아보려고 합니다. 예전에 알아본 UserDefaults도 비슷한 역할을 했었는데, 좀 더 복잡한 데이터를 저장하기 위해서는 Core Data가 적합하다고 합니다! 오늘 알아볼 Core Data를 사용하면 앱의 Permanent Data (영구 데이터)를 저장할 수 있다고 합니다. Core Data는 앱에서 모델 계층 개체를 관리하는 데 사용하는 프레임워크입니다. 즉 DB가 아니에요!! Core Data의 기능은 아래와 같아요. Persistence(영속성) Core Data는 객체를 저장소에 매핑하는 세부 정보를 추상화하여 DB를 직접 관리하지 않고도 Swift 데이터를 쉽게 저장할 수 있어요...
안녕하세요 Pingu입니다!🐧 오늘은 NotificationCenter를 사용하여 특정 동작이 발생했을 때 어떤 객체에 알리는 일종의 옵저버 패턴에 대해 알아보려고 합니다. 간단하게 만화를 그려봤는데 한 번 봐주세요 ㅎㅎ 위와 같이 A가 B에게 밥 먹을 때 연락하라고 말을 합니다. 그리고 자신도 그 때 밥을 먹겠다고 하죠. 나중에 알아보겠지만 이러한 과정이 addObserver라는 메서드에 의해 수행됩니다. 그럼 언젠가 B가 밥을 먹을 때 A에게 이를 알리겠죠? 위와 같이 B는 착하게도 A에게 밥을 먹는다고 알려주고 A는 이걸 듣고 자신도 밥을 먹게 됩니다. 위와 같은 과정을 앱에서 할 수 있도록 해주는 것이 NotificationCenter입니다. Apple 문서에서 NotificationCenter에..
안녕하세요 Pingu입니다!🐧 프로젝트를 진행하려고 하는데 서버가 필요한 일이 생겨서, Swift로 서버를 구축하는 방법을 한 번 알아보려고 합니다. Swift Server Side 프레임워크에는 Perfect, Vapor, kitura 같은 것들이 있었는데, 제가 오늘 알아볼 것은 Vapor입니다. 일단 Vapor를 설치해줘야 하는데요! docs.vapor.codes/4.0/install/macos/ Vapor: Install → macOS Install on macOS To use Vapor on macOS, you will need Swift 5.2 or greater. Swift and all of its dependencies come bundled with Xcode. Install Xcode..
안녕하세요 Pingu입니다~🐧 iOS 앱은 처음 실행되고 종료될 때까지의 Life Cycle이 존재합니다. 앱이 background에 가거나 foreground로 진입하는 것도 모두 App Life Cycle의 일부분이죠. 이번 글에서는 이러한 App Life Cycle에 대해 알아보려고 합니다. 참고로 View Controller의 Life Cycle이랑은 전혀 다른 별개의 Life Cycle이며 View Controller의 Life Cycle은 여기를 참고해주세요~ 앱은 현재 Life Cycle의 상태에 따라 할 수 있는 작업과 할 수 없는 작업으로 나뉩니다. 상태에 따라 어떤일을 할 수 있는지에 대한 내용은 여기에 정리해뒀어요. 따라서 이러한 상태가 변화될 때 특정 클래스의 메서드를 통해 알리게 ..
안녕하세요 Pingu입니다~🐧 오늘은 iOS 앱개발에서 아주아주 중요한 ViewController의 Life cycle에 대해 알아보려고 합니다. 제일 처음 iOS 공부를 시작할 때 공부한 내용인데, 정리는 이제야 해서 올리네요ㅠ iOS 앱개발에서 아주 중요한 내용이니 잘 정리해보도록 하겠습니다. 애플 문서에 나온 사진을 하나 첨부해서 설명하도록 할게요. 위와 같이 애플에서는 뷰 컨트롤러의 생명 주기를 그림으로 설명해주는데, 이를 좀 더 직관적으로 제가 그려봤습니다. ViewDidLoad 이건 뷰 컨트롤러를 만들 때 한 번만 호출합니다. ViewWillAppear 만들어진 뷰 컨트롤러가 뷰 계층 구조에 추가되기 직전에 호출됩니다. 즉 이름 그대로 뷰가 곧 보일 때 호출되는 메서드입니다! ViewDidAp..
안녕하세요 Pingu입니다! 🐧 오늘은 동영상이나 음악을 백그라운드에서 재생 할 때 사용할 수 있는 제어센터에 존재하는 정보중 컨텐츠의 현재 재생 시간을 알려주는MPNowPlayingInfoPropertyElapsedPlaybackTimer가 있는데요, 얘가 참 말을 안듣습니다; 그래서 열심히 찾아서 해결한 방법을 정리해보려고 합니다. 누군가 동일한 문제가 발생하시면 이 글을 보고 해결하셨으면 좋겠어요 ^~^ 일단 간단하게 MPNowPlayingInfoPropertyElapsedPlaybackTime를 사용할 때 발생하는 문제입니다. 위와 같이 일시정지를 하고 좀 있다가 재생을 누르면 현재 시간이 자기맘대로 흘러있는것을 볼 수 있어요. 이게 실제 콘텐츠의 재생시간이 흐른게 아닌 그냥 저기 보이는 시간만 ..
안녕하세요 Pingu입니다! 🐧 오늘은 모든 UIView에 존재하는 CALayer에 대해 알아보려고 합니다. CALayer를 직접 사용해본 기억은 cornerRadius를 사용하여 뷰를 둥글게 만들 때랑 커스텀 AVPlayer를 만들 때? 정도밖에 없는 것 같은데, 얘가 어떤 역할을 하는지에 대한 개념이 정확하지 않아서 한 번 알아보려고 합니다. 일단 View에 존재하는 layer라는 프로퍼티의 정의를 살펴보겠습니다. 렌더링에 사용되는 뷰의 핵심 애니메이션 레이어라고 합니다. 렌더링은 학교에서 그래픽스 시간에 배운 기억이 있는데, 모델 또는 영상 등을 만드는 과정이었던 것으로 알고 있습니다. 어쨌든 뷰에 나타나는 애들을 만들어내는 곳이라고 이해하면 될 것 같아요. 그리고 눈에 들어오는 내용 중 하나인 절..
- Total
- Today
- Yesterday
- OS
- Combine
- 자료구조
- Apple
- 동시성
- System
- 문법
- OSTEP
- 알고리즘
- 아이폰
- 프로그래밍
- 앱개발
- mac
- 코딩테스트
- IOS
- design
- 백준
- BFS
- Swift
- operator
- pattern
- 테이블뷰
- dfs
- Publisher
- operating
- 스위프트
- DP
- document
- Xcode
- 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |