안녕하세요 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라는 프로퍼티의 정의를 살펴보겠습니다. 렌더링에 사용되는 뷰의 핵심 애니메이션 레이어라고 합니다. 렌더링은 학교에서 그래픽스 시간에 배운 기억이 있는데, 모델 또는 영상 등을 만드는 과정이었던 것으로 알고 있습니다. 어쨌든 뷰에 나타나는 애들을 만들어내는 곳이라고 이해하면 될 것 같아요. 그리고 눈에 들어오는 내용 중 하나인 절..
안녕하세요 Pingu입니다! 🐧 약간 그냥 정리하는 식으로 쓸 계획이라 조금 정신없을 수 있습니다....ㅎ 이번 글에서는 앱이 Foreground 일 때와 Background 일 때가 무슨 상태인지 알아보려고 합니다. 일단 그 전에 Foreground, Background를 포함하여 앱 실행상태에는 어떤것들이 있고 어떤 과정으로 변화하는지를 먼저 살펴보도록 하겠습니다. 앱이 Foreground인지 Background인지에 따라 할 수 있는 작업과 할 수 없는 작업이 나뉘게 되는데요, 앱이 Foreground 상태라면 사용자가 사용중이므로 UI와 같은 것들을 처리하는데 주력한다고 합니다. 앱이 Background 일때는 화면 밖에 있으니까 별 일을 하지 않겠죠? 앱이 Foreground, Backgroun..
안녕하세요 Pingu입니다! 🐧 혹시 이런 뷰를 앱을 사용하시다가 본 적이 있으신가요? 이러한 뷰를 구현하는 방법 중 스켈레톤 뷰(Skeleton View)라고 하는 오픈소스가 있어서 한 번 사용해보려고 합니다! 스켈레톤 뷰는 네트워크 통신을 하는 앱에서 통신하는 동안 화면에 아무것도 띄우지 않는 것보다는 위와 같이 뭔가 진행되고 있는 듯한 느낌을 줘서 사용자가 기다리는 체감 시간을 줄여줄 거 같아요. 스켈레톤 뷰의 코드는 아래 깃 허브 주소에 있습니다. github.com/Juanpe/SkeletonView Juanpe/SkeletonView ☠️ An elegant way to show users that something is happening and also prepare them to which..
안녕하세요 Pingu입니다! iOS에서 개발을 하다 보면 네비게이션 컨트롤러를 자주 사용하는데요, 네비게이션 컨트롤러는 스택의 개념으로 뷰가 쌓이는데 가끔 2개나 3개를 한 번에 없애버리고 싶을 때가 있더라고요. 어떻게 하는 게 좋을까.. 하다가 다양한 방법이 있어서 정리해보려고 합니다. 물론 더 많은 방법이 있을 수 있지만... 제가 오늘까지 알아본 방법까지 정리해보겠습니다. 만약 다른 방법이 있다면 알려주시면 감사하겠습니다! 우선 프로젝트를 하나 만들고 네비게이션 컨트롤러를 만들어 줍니다. 그리고 구분이 쉽게 배경색을 RGB로 하나씩 만들어서 네비게이션 뷰 스택에 쌓는 용도로 만들어보겠습니다. 이렇게 만들어 놓으니까 은근히 예쁜데요? ㅋㅋㅋㅋ 배경 색이 없는 뷰는 WhiteViewController라..
안녕하세요 Pingu입니다! 저번 글에서 음악이나 동영상을 백그라운드에서 재생 가능하도록 만들었습니다. 그럼 이제 위와 같이 앱 외부에서 음악이나 동영상을 제어하는 방법을 알아보도록 하겠습니다! 우선 이번 글을 쓸 때 참고한 공식문서들입니다. developer.apple.com/documentation/mediaplayer/mpremotecommandcenter developer.apple.com/documentation/mediaplayer/becoming_a_now_playable_app 일단 음악이나 동영상을 백그라운드에서 재생 가능하도록 만들었다고 가정하고 진행하겠습니다. 우선 MPRemoteCommandCenter, MPNowPlayingInfoCenter에 대해 알아보고 가도록 하겠습니다. M..
- Total
- Today
- Yesterday
- OS
- BFS
- 테이블뷰
- Combine
- 문법
- 코딩테스트
- dfs
- Xcode
- 자료구조
- System
- operator
- 프로그래밍
- 동시성
- 스위프트
- Swift
- operating
- DP
- 알고리즘
- Apple
- document
- 백준
- IOS
- 앱개발
- 코테
- OSTEP
- Publisher
- mac
- design
- pattern
- 아이폰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |