An open API service indexing awesome lists of open source software.

https://github.com/queeniecplusplus/ios_back_14

LifeCycle of iOS app
https://github.com/queeniecplusplus/ios_back_14

appdelegate viewcontroller

Last synced: 11 months ago
JSON representation

LifeCycle of iOS app

Awesome Lists containing this project

README

          

# iOS_Back_14
LifeCycle of iOS app

* App's Life Cycle

import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {


// 應用程式初始化
func applicationDidFinishLaunching(_ application: UIApplication) {
<#code#>
}

// 應用程式初始化後
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}

//即將啟動 Running phase
func applicationDidBecomeActive(_ application: UIApplication) {
<#code#>
}

//進入前景 (使用者使用中)
func applicationWillEnterForeground(_ application: UIApplication) {
<#code#>
}

// 使用者離開活動中
func applicationWillResignActive(_ application: UIApplication) {
<#code#>
}

// 進入背景
func applicationDidEnterBackground(_ application: UIApplication) {
<#code#>
}

// 閒置過久,檢查記憶體與存儲空間,如不足,被迫移除(釋放資源)。
func applicationWillTerminate(_ application: UIApplication) {
<#code#>
}

---------- 下方無關生命週期重要階段 ------------------------------------

// 記憶體不足提醒
func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
<#code#>
}

// 時間相關
func applicationSignificantTimeChange(_ application: UIApplication) {
<#code#>
}

// 資料相關
func applicationProtectedDataDidBecomeAvailable(_ application: UIApplication) {
<#code#>
}

func applicationProtectedDataWillBecomeUnavailable(_ application: UIApplication) {
<#code#>
}

// Auth
func applicationShouldRequestHealthAuthorization(_ application: UIApplication) {
<#code#>
}

}

* Download App
一旦 app 下載進入手機設備中的磁碟內時,App 的生命週期就開始了,請詳 AppDelegate。
而通常本地端的推播功能就是設計於此環節,能讓使用者在沒有網路的情況下,能接受 app 定時設計好的推送訊息。

https://github.com/QueenieCplusplus/iOS_Back_15 (示範範例)

* Open App
當使用者啟動 app,進入畫面即前景 ,則畫面的生命週期便是展開,請詳 ViewController。

* Press Home button
按下 Home 鍵,雖然前景畫面跑回了手機主頁,然而針對某些特殊設計的應用程式(開發者設定為可於背景執行)則地圖 app 、音樂 app、資料撈取、遠端推播 remote notification、藍芽 BLE 功能的 app 因應 CPU 資源和電池電量的資源供給量(主要供給予前景執行的 app)均能於背景(使用者即便看不見應用程式畫面)亦能執行任務,方便使用者繼續更新地圖、聆聽音樂、下載資料。

https://github.com/QueenieCplusplus/iOS_Back_16 (示範範例)

* Lock Screen
使用者因為一定時間內沒有與手機互動,系統為保安全,便會鎖定螢幕,此階段與按下 Home 鍵的執行方式一樣。

* View's Life Cycle

//
// ViewController.swift
// KatesBackgroundRunner
//
// Created by KatesAndroid on 2021/1/29 PM 8
//
import UIKit

class ViewController: UIViewController {

//override var viewIfLoaded: UIView?

//override var isViewLoaded: Bool

// ------ 載入畫面前 ------------------

override func loadViewIfNeeded() {
<#code#>
}

override func loadView() {
<#code#>
}

// ------ 載入畫面後 ------------------

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}

// ------ 畫面出現 ------------------

override func viewWillAppear(_ animated: Bool) {
<#code#>
}

override func viewDidAppear(_ animated: Bool) {
<#code#>
}

// ------ 畫面消失 ------------------

override func viewWillDisappear(_ animated: Bool) {
<#code#>
}

override func viewDidDisappear(_ animated: Bool) {
<#code#>
}

// ------ 畫面傳輸 ------------------

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
<#code#>
}

// ------ 與畫面生命週期無關 ------------------

override func updateViewConstraints() {
<#code#>
}

override func viewWillLayoutSubviews() {
<#code#>
}

override func viewDidLayoutSubviews() {
<#code#>
}

override func viewSafeAreaInsetsDidChange() {
<#code#>
}

}