Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
iOS Developer/Firebase

0.Firebase 초기 설정 / App Delegate

by Toughie 2023. 7. 2.

🔥Firebase 초기 설정 / App Delegate🔥

Firebase?

Firebase는 Google이 제공하는 개발 플랫폼으로,

모바일 앱 및 웹 애플리케이션을 빠르고 쉽게 개발하고 배포하기 위한 다양한 기능과 도구를 제공한다.

Firebase는 클라우드 기반의 백엔드 서비스와 개발 도구, SDK(소프트웨어 개발 키트)를 제공하여 앱 개발자가 사용하기 쉬운 방식으로

서버 관리, 데이터베이스, 사용자 인증, 스토리지, 푸시 알림, 실시간 데이터베이스, 애드몹 광고 등 다양한 기능을 제공한다.

 

Firebase의 주요 기능

  • 실시간 데이터베이스 (Realtime Database)
    실시간으로 동기화되는 JSON 데이터베이스를 제공하여 앱의 데이터를 저장하고 동기화할 수 있다.
  • 인증 (Authentication)
    사용자 인증을 관리하기 위한 기능을 제공하며, 이메일/비밀번호, 소셜 로그인(구글, 페이스북, 트위터 등), 익명 로그인 등 다양한 인증 방법을 지원한다.
  • 스토리지 (Storage)
    사용자 파일(이미지, 동영상 등)을 저장하고 관리하기 위한 클라우드 저장소를 제공한다.
  • 클라우드 Firestore
    *서버리스 데이터베이스로, 구조화된 데이터를 저장하고 실시간으로 동기화할 수 있다.
  • 애드몹 (AdMob)
    광고 수익을 창출하기 위한 광고 플랫폼을 통합하여 제공한다.
  • 푸시 알림 (Cloud Messaging)
    사용자에게 푸시 알림을 보낼 있는 기능을 제공한다.

    *서버리스 데이터베이스
    전통적 관계형 DB와 달리, 서버를 직접 관리하지 않고 클라우드 기반의 서비스를 통해 데이터베이스를 이용하는 방식을 말함.

초기 설정 방법 (with SwiftUI)

https://firebase.google.com/

 

Firebase

Firebase is an app development platform that helps you build and grow apps and games users love. Backed by Google and trusted by millions of businesses around the world.

firebase.google.com

구글 로그인 - 시작하기 - 프로젝트 생성

(설명이 잘 나와있어서 그대로 따라하면 된다.)

 

Info.plist 추가(네비게이터에 드래그앤 드랍)

*Info.plist iOS macOS 개발에서 사용되는 Xcode 프로젝트 파일의 하나로, 앱의 기본 설정 구성 정보를 포함한다.

 

패키지 추가

https://github.com/firebase/firebase-ios-sdk

 

GitHub - firebase/firebase-ios-sdk: Firebase SDK for Apple App Development

Firebase SDK for Apple App Development. Contribute to firebase/firebase-ios-sdk development by creating an account on GitHub.

github.com

 

코드 삽입

1. 앱 델리게이트 사용하지 않는 경우 (심플)

import SwiftUI
import Firebase

@main
struct FireBasePracApp: App {
    
    init() {
        FirebaseApp.configure()
        print("Firebase Configured")
    }
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

2. 앱 델리게이트 사용하는 경우(공식사이트 설명)

import SwiftUI
import Firebase

@main
struct FireBasePracApp: App {
    
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        FirebaseApp.configure()
        
        return true
    }
}

AppDelegate는 앱의 생명주기와 관련된 이벤트를 처리하는 역할을 담당한다.

AppDelegate 클래스는 UIApplicationDelegate 프로토콜을 채택하여,

앱의 시작, 종료, 백그라운드로의 전환 등과 같은 중요한 이벤트에 대한 처리를 담당한다.

 

AppDelegate 주요 역할

  • 앱의 시작과 종료 관리: 앱이 시작될 때, 종료될 때, 백그라운드로 전환될 때 등 앱의 생명주기 이벤트를 감지하고 처리합니다. 예를 들어, 앱이 시작될 때 필요한 초기 설정을 수행하거나, 앱이 종료될 때 데이터를 저장하고 정리하는 등의 작업을 수행할 수 있다.
  • 앱 상태 변화 처리: 앱이 백그라운드로 전환되거나 다시 포어그라운드로 돌아올 때의 상태 변화에 대한 처리를 담당한다. 예를 들어, 앱이 백그라운드로 전환될 때 동작을 일시 중지하거나, 다시 포어그라운드로 전환될 때 동작을 재개하는 등의 작업을 수행할 수 있다.
  • 앱에 대한 외부 이벤트 처리: 앱이 외부에서 발생하는 이벤트를 처리한다. 예를 들어, 다른 앱이나 시스템에서 앱으로 데이터를 전달할 때, 알림 메시지를 수신할 때, URL 링크를 처리할 때 등의 작업을 수행할 수 있다.
  • 앱에 대한 사용자 인터페이스 관리: 앱의 기본적인 사용자 인터페이스 (UI) 설정을 담당한다. 예를 들어, 앱이 시작될 처음으로 표시되는 화면이나, 상태 표시줄에 대한 설정 등을 처리할 있다.

Foreground vs Background

앱의 백그라운드 상태와 포어그라운드 상태는 앱이 실행되는 상황에 따라 다른 상태를 나타낸다.

포어그라운드 상태 (Foreground State)
앱이 포어그라운드 상태에 있는 경우, 사용자가 앱을 직접 조작하고 앱의 화면이 사용자에게 보여진다. 이는 사용자가 앱과 상호작용하고 앱의 기능을 사용할 수 있는 상태이다. 사용자 입력을 받고 앱의 주요 작업을 수행하는 동안 앱은 포그라운드 상태에 있습니다.

백그라운드 상태 (Background State)

백그라운드 상태에 있는 경우, 앱은 여전히 실행 중이지만, 사용자에게 직접적으로 보여지지 않는다. 이는 사용자가 앱을 백그라운드로 이동하거나 다른 앱을 사용하고 있을 때의 상태이다. 백그라운드 상태에서 앱은 일부 작업을 계속할 있지만, 자원과 제한이 있는 상황에서 동작한다. 예를 들어, 알림을 수신하거나 위치 업데이트를 받는 등의 백그라운드 작업을 수행할 있다.


로그인 라이브러리

'iOS Developer > Firebase' 카테고리의 다른 글

2. Sign In With Apple / 애플 로그인 / Firebase  (1) 2023.07.15