[IOS] AppDelegate AppDelegate.swift 는 swift로 IOS 개발을 시작하면서 부터 보였고, 계속 궁금해서 이 기회에 정리해놓으려한다. 공식문서 참고 UIApplicationDelegate AppDelegate.swift 크게 두가지 기능을 한다. AppDelegate 클래스를 정의 어플리케이션이 그려질 window를 생성하고, 상태가 변할 때 반응 할 수 있게 한다. 또한 AppDelegate 클래스는 UIApplicationDelegate 프로토콜을 채택해야한다. 앱에 대한 진입 점과 입력 이벤트를 앱에 전달하는 실행 루프를 생성 이 작업은 파일 상단에 나타나는 UIApplicationMain 의 특성이다. (@UIApplicationMain)에 의해 수행된다. 하지만 IOS13부터는 AppDelegate.swift , SceneDelegate.swift 두 파일로 나뉘어 생긴다. 그렇기 때문에 여러 소스를 보았을 때 혼란을 야기했다. 이전에는 (~ IOS12) 아래와 같은 구조였다. AppDelegate Process Lifecycle App Launched App Terminated UI Lifecycle Entered Foreground Become active 하지만 지금은 (IOS13) 아래와 같다. Session Lifecycle에 대한 역할이 추가되었다. AppDelegate Process Lifecycle Session Lifecycle Session Created Session Discarded SceneDelegate UI Lifecycle Entered Foreground Become active AppDelegate 클래스에 있던 프로퍼티인 window가 SceneDelegate로 옮겨졌다. 하지만 하나의 화면에서 여러개의 다중 화면을 지원하면서 scene 개념이 추가...
[dev] Github issue labels Github에서 프로젝트의 문제점을 알리거나 기여를 할 때 이 issue label을 달거나 읽어야 할 일이 생긴다. 해당 이슈에 알맞은 라벨을 선택하고, 의미를 파악하기 위해 알아두자. keyword 의미 bug 예기치 않은 문제 또는 의도하지 않은 동작(버그)을 나타냅니다. documentation 문서를 개선하거나 추가 할 필요가 있음을 나타냅니다. duplicate 해당이슈 또는 PR이 기존에 있음을 나타냅니다. enhancement 새로운 기능 요청을 나타냅니다. good first issue 처음 기여해볼 사람에게 좋은 문제를 나타냅니다. help wanted 관리자가 문제 또는 PR 요청에 대한 도움을 원함을 나타냅니다. invalid 이슈 또는 PR 요청이 더 이상 관련이 없음을 나타냅니다. question 이슈 또는 풀 요청에 추가 정보가 필요함을 나타냅니다. wontfix 문제 나 PR 요청에서 작업이 계속되지 않음을 나타냅니다. 참고 : https://help.github.com/en/github/managing-your-work-on-github/about-labels
[IOS] Application Life Cycle 앱의 생명주기는 앱의 사용과정 중 가지는 상태값 입니다. foreground, background을 오가며 앱의 상태값이 바뀝니다. 크게 5개의 상태를 가지고 개발자가 상태에 맞게 개발할 수 있도록 인터페이스를 제공합니다. 상태 Not Running(Terminated) : 앱이 시스템에 의해 완전히 종료된 상태입니다. 혹은 아직 실행되지 않았을 때도 Not Running 상태입니다. Inactive(Foreground) : 앱이 실행 중인 상태입니다. 하지만 이벤트를 받지는 않습니다. Active 상태로 넘어가기 전에 앱은 반드시 이 상태를 거칩니다. 알림 같은 특정 알림창이 화면을 덮어서 앱이 event를 받지 못하는 상태가 여기에 해당됩니다. Active(Foreground) : 앱이 실행 중이고 이벤트를 받을 수 있는 상태입니다. Foreground 상태에 있는 앱들은 보통 이 상태입니다. Background : 앱 사용중에 다른 앱을 실행하거나 홈 화면으로 나갔을 때 상태입니다. 백그라운드에서 동작하는 코드를 추가하면 suspended 상태로 넘어가지 않고 백그라운드 상태를 유지하게 됩니다. 처음부터 background 상태로 실행되는 앱은 inactive 대신 background 상태로 진입합니다. 음악을 실행하고 홈 화면으로 나가도 음악이 나오는 상태가 이 경우에 해당됩니다. Suspended : 앱이 background 상태에서 추가적인 작업을 하지 않으면 곧바로 suspended 상태로 진입합니다. 앱을 다시 실행할 경우 빠른 실행을 위해 메모리에만 올라가 있습니다. 메모리가 부족한 상황이 되면 iOS는 suspended 상태에 있는 앱들을 메모리에서 해제시켜서 메모리를 확보합니다. OverView 전체적인 그림을 놓고 봤을 때 Not Running 상태에서 Inactive 전환되기까지 거치는 단계가 있다. 그리고 Inactive에...
댓글
댓글 쓰기