# AppDelegate
[iOS][Swift] App LifeCycle - 앱 생명주기
앱의 생명주기는 사용자와의 상호작용, 시스템 이벤트 및 앱의 내부 상태 변화에 따라 앱이 경험하는 다양한 상태를 나타냅니다. 이 글에서는 iOS 앱의 주요 라이프사이클 상태와 관련 UIApplicationDelegate 메서드에 대해 살펴보겠습니다. 1. Not Running (실행되지 않음) 상태 설명: 앱이 시작되지 않았거나, 이전에 실행되었던 앱이 종료된 상태. 관련 메서드: 2. Inactive (비활성) 상태 설명: 앱이 전경에 있지만 이벤트를 받지 못하는 상태. 전화나 메시지 알림과 같은 이벤트로 인해 잠시 이 상태가 될 수 있습니다. 관련 메서드: 3. Active (활성) 상태 설명: 앱이 전경에 있고 사용자와 상호작용하고 있는 상태. 관련 메서드: 4. Background (백그라운드) 상태 설명: 앱이 백그라운드에서 코드를 실행하는 상태. 데이터 저장, 네트

[SeSAC] iOS week1 04
Alert & Action Sheet destructive 빨간색으로 경고 (스타일 먹인거 아니다) default 파란색 기본 cancel 파란색으로 default보다 볼드하다 추가되는 위치에 상관없이 action sheet 맨 아래, alert 왼쪽에 붙는다. cancel 스타일은 하나만 존재할 수 있으며, 두개 이상 붙일 경우 런타임 에러 스타일과 텍스트는 상관없다. 개발자가 의도에 맞게 스타일을 사용 Alert vs Action Sheet Alert title message를 nil로 잘 안씀 배경을 터치해도 내려가지 않는다 따라서, 좀 더 주의해야하는 상황(허용함, 허용안함 등)에서 사용한다 Action Sheet 배경
[Flutter] 푸시 앱 아이콘 뱃지 관리하기
푸시 앱 아이콘 뱃지 관리하기 fluterappbadger | Flutter Package firebase_messaging | Flutter Package 네이티브에서 푸시 수신 받아오기 플랫폼 통신(IOS) - Method Channel 플랫폼 통신(IOS) - Event Channel [플랫폼 통신(Android) - Method Channel](https://velog.io/@tyger
[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
[iOS] AppDelegate 함수 한 판 정리
🐸 시리즈에서 App의 LifeCycle, AppDelegate에 대한 정리를 했는데요. 지금까지 정리했던 함수를 한 판 정리 해보겠습니다. AppDelegate 함수 1️⃣ 앱이 실행될 때 불리는 함수 👩💻 App의 Data Structure 초기화 one-time Setup 앱이 사용하는 중요한 서비스를 연결 (APNs, Kakao SDK, Firebase 등) 앱이 어떻게 launch되었는지 체크 (Push로 실행되었는지 체크하고, 그에 맞는 이벤트를 정의) 내부 캐시 정책 초기화 등. 2️⃣ Inactive 상태로 전환될 때 불리는 함수 launch -> Inactive background -> Inactive 👩💻 Foreground 상태에 들어갈 때 App의 Data 모델을 업데이트 합니다. Background에서 foreground로 전환될 때, 이 함수를 이용해서 네트워크로 부터 데이터를 fetch하고 disk로
[iOS] application(_:open:options:) AppDelegate의 Open URLs 이벤트 처리
🐸 App이 URL로 특정된 리소스를 열어야 할 때 AppDelegate에 수신되는 delegate 메소드에 대해 알아봅니다. 정의 url open할 URL 리소스. 이 리소스는 네트워크 리소스나 파일이 될 수 있습니다. Apple-registered URL Schemes에 대해 알아보려면, 참고하세요. 이 함수는 App의 launch time 때 불리는 위 함수들에서 false를 리턴하면 절대 불리지 않습니다. 만일 App이 Suspended 상태거나 background 실행 중에 URL이 도달한다면, 시스템은 이 메서드를 호출하기위해 App을 foreground 상태로 우선 올립니다. 이 delegation 메서드를 위한 notification은 없습니다. 그래서 어떤 내용이 들어가는지? 예시1) 앱의 특정 기능이 카카오 로그인을 요구한다고 가정할 때, 앱에서 카카오톡으로 이동한 후 사용자가 [동의하고 계속하기] 버튼 또는 로그인 취소버

[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 상태가 될 때, 가능하면
[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] Responding to the launch of App
🐸 지난번 App Life Cycle에 대해 정리했는데요. 이번 글에는 Responding to the launch of your app 을 학습해보겠습니다. App이 실행되고 LaunchScreen이 보이고, UI가 보이기 까지 App의 Data Structure을 초기화하고, App을 실행시킬 준비를 하고, 시스템을 통한 launch-time request에 응답하는 내용을 담고 있습니다. 개요 App이 launch되는 시점에 App의 Data Structure을 초기화하고, 실행할 App을 준비하고, system으로 부터의 request에 응답합니다. 사용자가 App의

[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] WebView 사용하기 3편
WebView 사용하기 3편 WebView 사용하기 1편 WebView 사용하기 2편 이번 글에서는 IOS Native 코드인 swift를 사용해서 웹뷰를 오픈하는 방법에 대해서 작성해 보려고 한다. IOS에서는 웹뷰를 사용할 때 UiWebView와 WkWebView 두 개의 웹뷰를 제공하고 있는데, 신규로 배포하는 앱에서 UiWebView를 사용하게 되면 리젝된다는 얘기가 있던데 이 부분은 확인을 해봐야 할 것이다. 참고로 Flutter에서 제공하는 웹뷰 라이브러리는 대체적으로 WkWebView를 사용하고 있다. Swift 코드를 잘 모르기에 웹뷰를 띄우는 코드만 제공할 예정이다. Swift UiWebView AppDelegate Plat
iOS의 앱 라이프 사이클(App Life Cycle)
iOS의 앱 라이프 사이클(App Life Cycle) 앱 사용 시 문자와 전화처럼 예기치 못한 상황 또는 사용자의 고의/실수로 앱을 종료하거나 백그라운드 등으로 전환하는 시점에 운영체제가 자동으로 호출하는 함수(메서드)들이 존재하며, 이러한 메서드 실행의 일련 과정을 앱 라이프 사이클(App Life Cycle)이라 부릅니다. 앱 라이프 사이클(App Life Cycle)은 AppDelegate와 SceneDelegate에 의해 관리되며 각각 하는 역할이 다릅니다. 📌 앱 라이프 사이클의 실행 시점 및 메서드 
면접스터디 6W
상태 변화에따라 다른 동작을 처리하기 위한 앱델리게이트 메서들을 설명하시오. 애플리케이션이 실행된 직후 사용자의 화면에 보여지기 직전에 호출 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 애플리케이션이 최초 실행될 때 호출되는 메소드 func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool 애플리케이션이 InActive 상태로 전환되기 직전에 호출 task 일시정지, 타이머 비활성화, 일시정지(게임) func applicationWillResignA

Swift UI 에서 Appdelegate, Scenedelegate ? [2]
Appdelegate 및 SceneDelegate는 SwiftUI 에서 다른 방식으로 사용되고 있다. 하지만 아직까지는 완벽하게 자리를 잡지는 못한것 같다. 그러므로 우리는 다시 Appdelegate 와 SceneDelegate를 부활시켜서 기존 StoryBoard에서 사용했던 방식 그대로 사용하는 방법에 대해서 알아보자. 우선 당연히 새로운 swift 파일을 생성해야 한다. 나는 MyAppDelegate 와 MySceneDelegate로 생성했다. 이제 각각 파일에 Class 를 생성했다. Appdelegate는 UIResponder, UIApplicationDelegate 프로토콜를 채택한다. SceneDelegate는 UIResponder, UIWindowSceneDeleg

Swift UI 에서 Appdelegate, Scenedelegate ? [1]
지난 포스트에서 App Life Cycle을 Appdelegate 및 SceneDelegate 파일을 통해 공부를 했다. 근데 StoryBoard 가 아닌 SwiftUI로 프로젝트를 만드니깐, 이상하게 저 두파일이 보이지가 않는다. 그래서 구글링을 통해 왜 없는지, 다시 만들 수는 없는지에 대한 정답을 얻었다. 애플에서는 꾸준히 업데이트를 통해 조금 더 사용하기 편한 언어를 만들려고 하는것 같다. 그래서인지 매년 WWDC마다 항상 변경되는 부분이 생기는데, SwiftUI에서도 Appdelegate와 SceneDelegate가 없어지게된 이유는 역시나 편리성이다. 기존에 appdelegate에서는 앱 실행시 최초 1회 실행을 보장하는 경우에, 카카오톡 로그인 초기화하던가, firebase 초기화를 위해서 didFinishLaunchingWithOptions를 사용하고 했다. SceneDelegate에서는 scene이 Active/Inactive

[iOS]AppDelegate와 SceneDelegate (1)
Xcode에서 프로젝트를 생성하고 보면 자동으로 추가되어있는 파일 AppDelegate.swift, SceneDelegate 여태 정확하게 인지하지 못하고 여기 저기 설명에 적힌대로 코드를 적다보니 도대체 이녀석들이 무엇을 하는 녀석들일까 고민이 들더라구요 그래서! 이녀석들에 대해서 알아 보려합니다. iOS13 이후 AppDelegate에서 분리되어 AppDelegate와 SceneDelegate 두개의 Delegate가 생겼어요. AppDelegate? iOS13 이전의 AppDelegate 이전의 AppDelegated에는 두가지 기본 역할이 있었어요. 애플리케이션에 프로세스
[Flutter] 네이버 로그인 이슈(IOS)
카카오/네이버 로그인 충돌 카카오 로그인 이슈 Flutter로 앱을 개발하다 보면 잘되는 기능이 갑자기 되지 않거나 디버깅도 잘 안되는 경우가 종종 있다. 이전에 개발할 때 IOS에서 에어브릿지 SDK가 카카오 SDK와 충돌을 일으켜서 카카오 로그인이 되지 않았던 상황이 생겼었다. 이번에도 충돌의 원인은 로그인 중 swift를 통해 Flutter에서 사용하는 SDK로 리턴 되어야 하는 값이 들어오지 않게 되면서 로그인이 성공하지 못하게 되는 이슈이다. 원인만 알면 해결방법은 매우 간단하다. 해결 방법은 swift 코드에서 원하는 SDK가 수신할 수 있도록 바로 리턴을 보내주면 된다. AppDelegate.swift 먼저 swift 코드 상단에 라이브러리를 import해준다. swift 코드에 보면 flutter쪽으로 데이터를 리턴 보내는 기본 코드가 작성되
[Flutter/Swift] 플랫폼 통신(IOS) - Event Channel
Event Channel_IOS Platform Channel 한 번에 이해하기 - IOS(swift) / Android(kotlin) 플랫폼 통신(IOS) - Method Channel 플랫폼 통신(Android) - Method Channel 플랫폼 통신(Android) - Event Channel 이번 글에서는 flutter와 native간의 통신 방식 중 하나인 Event Channel에 대
[iOS] iOS App Lifecycle
Hits App Lifecycle App 의 생명주기는 다음 과정을 포함한다. 🌀 App 의 실행 · 종료 🌀 App Foreground · Background 상태 🌀 시스템이 발생시키는 event 에 의해 App 상태 전환 iOS App 은 Objective-C 기반이기 때문에 main 함수에서 시작된다. iOS 의 핵심 라이브러리인 UIKit framew