# AppLifeCycle

[Flutter] App의 상태 AppLifecyleState 이야기
3줄 요약: Flutter의 AppLifecycle은 native OS의 작동 방식에 의존합니다. 따라서 각 OS의 AppLifecycle을 잘 알아두면, 이를 다루는 기능을 개발하는데 용이합니다. App의 Lifecycle Flutter를 사용해 여러 기능을 개발하다 보면, 종종 앱의 생애주기를 다루어야 할 일이 생깁니다. 예를 들자면 백그라운드로 앱이 내려갈 때도 계산을 이어 해야 한다던지, 백그라운드에서 포어그라운드로 복귀할 때 마다 상태를 확인해야 한다든지, 앱 종료 직전에 서버에게 이를 알려야 할 때가 대표적인 상황일 겁니다. WidgetBindingObserver 다행히 Flutter에서 AppLifecycleState를 관측할 수 있도록 방법을 제공해줍니다! WidgetsBindingObserver를 mixin으로 활용

Swift. AppLifeCycle - AppState
App Life Cycle 이란 ? 앱의 실행/종료 및 Foreground/Background 상태에 있을 때, 시스템이 발생시키는 이벤트에 의해 앱의 상태가 전환되는 과정을 의미한다. 앱의 현재 상태에 따라서 수행할 수 있는 작업과 수행할 수 없는 작업이 결정된다. 예를 들어 foreground 상태에서는 앱이 화면에 표시되고 있고 사용자가 직접 사용하고 있는 상황이므로 CPU를 포함한 시스템 리소스의 우선순위가 높다. 그러나 background 상태에서는 앱이 화면에 표시되고 있는 상황이 아니기 때문에 가능한 적은 작업을 수행해야 한다. App State 앱의 상태는 총 다섯가지로 구분할 수 있다. Not runni
[Flutter] Lifecycle(앱 상태) 이벤트 5편
Lifecycle(앱 상태) 이벤트 5편 Lifecycle(앱 상태) 이벤트 1편 Lifecycle(앱 상태) 이벤트 2편 Lifecycle(앱 상태) 이벤트 3편 Lifecycle(앱 상태) 이벤트 4편 JSONPlaceholder provider | Flutter Package [share
[Flutter] Lifecycle(앱 상태) 이벤트 4편
Lifecycle(앱 상태) 이벤트 4편 Lifecycle(앱 상태) 이벤트 1편 Lifecycle(앱 상태) 이벤트 2편 Lifecycle(앱 상태) 이벤트 3편 Lifecycle(앱 상태) 이벤트 5편 JSONPlaceholder provider | Flutter Package [shared_preferen
[Flutter] Lifecycle(앱 상태) 이벤트 3편
Lifecycle(앱 상태) 이벤트 3편 Lifecycle(앱 상태) 이벤트 1편 Lifecycle(앱 상태) 이벤트 2편 Lifecycle(앱 상태) 이벤트 4편 Lifecycle(앱 상태) 이벤트 5편 get | Flutter Package [sharedpreferences | Flutter Package](https://pub.dev/packages/sharedpref

[iOS] App의 실행 (App Life Cycle + App Structure)
🐸 iOS App의 5가지 State와 그와 관련된 AppDelegate 함수를 알아보았는데요, 이번에는 좀 더 전반적인 App의 실행 (App Life Cycle + App Structure)를 살펴보겠습니다. 앱의 실행과정 앱이 처음 launch되면 main 함수가 실행되어 UIApplication 객체 생성 nib 파일을 사용하거나 Info.plist 파일을 읽어들여 파일에 기록된 정보를 참고해 그 외에 필요한 데이터를 로드 App Delegate 객체를 만들고 UIApplcation 객체와 연결하고 App Main Loop를 만드는 등 실행에 필요한 준비를 한다. 실행을 앞두고 app Delegate에게 application:didFinishLaunchingWithOptions 메세지를 보낸다. App Structure 
[iOS] Preparing your UI to run in the background
🐸 저번 글에서는 App이 Inactive, Active 상태가 되며 불리는 delegate 함수에 대해 보았는데요, 이번엔 Preparing your UI to run in the background를 보겠습니다. 개요 앱은 수많은 이유로 Background 상태로 전환됩니다. 사용자가 foreground 앱을 종료시키면 앱은 UIKit이 suspend 되기전에 잠시 Background 상태가 됩니다. 시스템은 앱을 Background 상태로 direct하게 launch 하거나, Suspendend된 앱을 Background 상태로 이동시킵니다. 그리고 중요한 Task를 수행할 시간을 줍니다. 앱이 Background 상태가 될 때, 가능하면
[Flutter] Lifecycle(앱 상태) 이벤트 2편
Lifecycle(앱 상태) 이벤트 2편 Lifecycle(앱 상태) 이벤트 1편 Lifecycle(앱 상태) 이벤트 3편 Lifecycle(앱 상태) 이벤트 4편 Lifecycle(앱 상태) 이벤트 5편 shared_preferences | Flutter Package App Life Cycle에 대하여 정리해 놓은 인트로 참고하세요 ! [Ap
[iOS] Preparing your UI to run in the foreground
🐸 저번 글에서는 앱이 launch되며 launchScreen이 뜨는 동안 AppDelegate에서 처리할 수 있는 작업에 대해 학습했는데요. 오늘은 그 다음 단계인 Preparing your UI to run in the foreground을 학습하겠습니다. 개요 UI를 화면에 나타내기 위해 foreground 전환을 사용합니다. foreground로의 앱 전환은 주로 유저 액션에 대한 응답입니다. 예를 들어, 유저가 앱의 아이콘을 터치했을 때 시스템은 앱을 시작하고 foreground로 전환시킵니다. 앱의 UI 업데이트, 리소스 요청, 유저의 요청을 핸들링하는 서비스의 시작을 위해 foreground로의 상태변환을 사용할 수 있습니다. UIKi

[iOS] iOS App Life Cycle
🐸 iOS의 App Life Cycle에 대해 정리해보겠습니다. Managing your app’s life cycle Scene Support 버전은 일단 제하고, app-based life cycle만 정리하겠습니다! 개요 App의 현재 상태에 따라 수행할 수 있는 작업과 없는 작업이 결정됩니다. 예를 들어 foregorund 상태: CPU를 포함한 시스템 리소스 보다 우선 순위가 높다. background 상태: 가능한 적은 작업을 수행해야 하며, 화면 밖에 있기 때문에 아무 작업도 수행하지 않는 것이 좋다. App이 상태 변환을 하면 그에 따라 동작을 조정해야 합니다. App의 State가 변경되면 UIKit은 적절한 delegate 객체를 통해 개발자에게 알려줍니다

[Flutter 기초] AppLifeCycle과 WidgetBindingObserver에 대해 알아보자
App의 LifeCycle이란? 특정 앱을 실행하였을 때, 이 앱이 잠시 백그라운드에 넘어갈 수도 있고, 혹은 상태바를 내리는 액션을 통해 앱이 잠시 중지되었을 수도 있다. 이와 같이 앱 전체 프로세스 상태를 이 글에서 App LifeCycle이라고 칭하기로 한다. 그렇다면, Flutter에서는 앱의 LifeCycle을 몇가지 정도로 구분하고 있을까? 플러터 내부에서는 이 LifeCycle의 상태를 'AppLifecycleState' 이라는 enum 값으로 관리하고 있다. AppLifecycleState은 총 4개의 상태값으로 이루어져 있다. > Resumed, Inactive, Paused, Detached App의 LifeCycle에 따라 로직을 수행하기 위해서는 어떻게 해야 할까? 편리하게도, 플러터는 이 기능을 위해 WidgetsBindingObserver라는 abstract class를 구현하여 사용하도록 한다. 우리는 이 앱의 라이프사

User Event & MainRunLoop
TableView에서 스크롤 동작을 진행 할 때마다, 기존에 진행되고 있었던 Timer의 로직이 수행되지 않는 이슈를 만나게 되었습니다. 트러블 슈팅 도중에 RunLoop와 연관이 있었다는 것을 알게 되었으며, 이슈 해결 방법과 Runloop에 대해 알아보는 시간을 가졌으면 해서 글을 작성해보려 합니다. 이야기를 시작하기 앞서 AppLifeCycle에 대해서 알아보겠습니다. MainRunLoop의 생성을 엿 볼 수 있기 때문인데요! AppLifeCycle의 순서는 아래와 같습니다. > 사용자가 앱의 아이콘

App Life Cycle
App Life Cycle는 중요한 시스템관련 이벤트들을 다루는 곳이며 app이 foreground, background있을 때 시스템 notification이 반응하는 것을 말한다. 그러니까 이 사이클에서 각각 상태에 따라 할 수 있는 것과 할 수 없는 것을 App이 결정한다. 예를 들어 foreground 상태에서는 유저의 이벤트에 반응하고 이를 우선적으로 한다. 반대로 background 상태에서는 최소한의 일을 하고 아무것도 하지 않는 것을 선호한다. 그리고 앱의 상태가 다른 상태로 변하게 되며 그에 따른 행동도 앱의 역할도 바꿔야 한다. iOS 13 이전에는 life cycle events에 대해 UIApplicationDelegate를 사용해서 반응했다. iOS 13 이상에서는 UISceneDelegate 객체를 활용해 scene관련 앱에 대해서 life cycle event를 반응했다. 이게 무슨말인가? 먼저 13이전인 UIApplicationDelegate

[WWDC] Architecting Your App for Multiple Windows
블로그 이사 갔어요! 이 글을 보고 싶으시면 아래 링크로 가면 볼 수 있어요! 새 블로그 가서 Architecting Your App for Multiple Windows 글 읽기

May 06, 2021, TIL (Today I Learned) - Scene Delegate & App Delegate
layout: post title: "May 06, 2021, TIL (Today I Learned) - Scene Delegate & App Delegate" summary: "iOS 커리어 스타터 캠프 2기" author: inwoodev date: '2021-05-06 22:35:23 +0530' category: ['Swift_iOS', 'Protoocol', 'TIL'] thumbnail: /assets/img/posts/light-bulbs.jpg keywords: ios, swift, protocol, app delegate, scene delegate permalink: /blog/TIL(Today I Learned)/39 usemathjax: true 수업 내용 Managing Your App's Life Cycle Respond to Scene-Based Life-Cycle Events ![Screen Shot 20
Managing Your App's Life Cycle
"Respond to system notifications when your app is in the foreground or background, and handle other significant system-related events." 앱이 포어그라운드 혹은 백그라운드에 진입할 때 시스템 노티피케이션에 응답합니다. 그리고 다른 중요한 시스템 관련 이벤트를 처리합니다. Overview 앱의 현재 상태는 무엇을 할 수 있고 무엇을 할 수 없는지 보여줍니다. 포어그라운드 앱은 사용자의 집중을 끌고 있는 것으로, 시스템 리소스(CPU 포함) 상 우선순위를 가집니다. 반대로 백그라운드 앱은 가능한 가장 적은 작동만 해야 합니다. 앱의 상태 변화에 따른 움직임을 적용해줘야 합니다. 앱의 상태가