{"id":19317738,"url":"https://github.com/queeniecplusplus/ios_back_14","last_synced_at":"2026-04-18T03:32:09.016Z","repository":{"id":104588297,"uuid":"333997570","full_name":"QueenieCplusplus/iOS_Back_14","owner":"QueenieCplusplus","description":"LifeCycle of iOS app","archived":false,"fork":false,"pushed_at":"2021-01-29T12:34:33.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-24T04:44:48.049Z","etag":null,"topics":["appdelegate","viewcontroller"],"latest_commit_sha":null,"homepage":"https://github.com/QueenieCplusplus/QuickGoThru/blob/master/README.md#apple-ios-swift-溫故愛鳳---計畫復甦","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QueenieCplusplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-29T00:55:59.000Z","updated_at":"2021-01-29T12:34:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"1436d3ce-a52f-44a4-b2df-7367f3749254","html_url":"https://github.com/QueenieCplusplus/iOS_Back_14","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/QueenieCplusplus/iOS_Back_14","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FiOS_Back_14","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FiOS_Back_14/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FiOS_Back_14/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FiOS_Back_14/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QueenieCplusplus","download_url":"https://codeload.github.com/QueenieCplusplus/iOS_Back_14/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FiOS_Back_14/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appdelegate","viewcontroller"],"created_at":"2024-11-10T01:16:06.872Z","updated_at":"2026-04-18T03:32:08.998Z","avatar_url":"https://github.com/QueenieCplusplus.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iOS_Back_14\nLifeCycle of iOS app\n\n* App's Life Cycle\n\n         import UIKit\n\n      @main\n      class AppDelegate: UIResponder, UIApplicationDelegate {\n      \n      \n          // 應用程式初始化\n          func applicationDidFinishLaunching(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n\n         // 應用程式初始化後\n          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -\u003e Bool {\n              // Override point for customization after application launch.\n              return true\n          }\n\n\n\n          //即將啟動 Running phase\n          func applicationDidBecomeActive(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          //進入前景 (使用者使用中)\n          func applicationWillEnterForeground(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n\n          // 使用者離開活動中\n          func applicationWillResignActive(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          // 進入背景\n          func applicationDidEnterBackground(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          // 閒置過久，檢查記憶體與存儲空間，如不足，被迫移除（釋放資源）。\n          func applicationWillTerminate(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n          \n          ---------- 下方無關生命週期重要階段 ------------------------------------\n\n          // 記憶體不足提醒\n          func applicationDidReceiveMemoryWarning(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          // 時間相關\n          func applicationSignificantTimeChange(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n\n          // 資料相關\n          func applicationProtectedDataDidBecomeAvailable(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          func applicationProtectedDataWillBecomeUnavailable(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n          // Auth\n          func applicationShouldRequestHealthAuthorization(_ application: UIApplication) {\n              \u003c#code#\u003e\n          }\n\n\n\n      }\n\n\n* Download App\n一旦 app 下載進入手機設備中的磁碟內時，App 的生命週期就開始了，請詳 AppDelegate。\n而通常本地端的推播功能就是設計於此環節，能讓使用者在沒有網路的情況下，能接受 app 定時設計好的推送訊息。\n\n   https://github.com/QueenieCplusplus/iOS_Back_15 (示範範例)\n\n* Open App\n當使用者啟動 app，進入畫面即前景 ，則畫面的生命週期便是展開，請詳 ViewController。\n\n* Press Home button\n按下 Home 鍵，雖然前景畫面跑回了手機主頁，然而針對某些特殊設計的應用程式（開發者設定為可於背景執行）則地圖 app 、音樂 app、資料撈取、遠端推播 remote notification、藍芽 BLE 功能的 app 因應 CPU 資源和電池電量的資源供給量（主要供給予前景執行的 app）均能於背景（使用者即便看不見應用程式畫面）亦能執行任務，方便使用者繼續更新地圖、聆聽音樂、下載資料。\n\n   https://github.com/QueenieCplusplus/iOS_Back_16 (示範範例)\n\n* Lock Screen\n使用者因為一定時間內沒有與手機互動，系統為保安全，便會鎖定螢幕，此階段與按下 Home 鍵的執行方式一樣。\n\n* View's Life Cycle\n\n                    //\n                  //  ViewController.swift\n                  //  KatesBackgroundRunner\n                  //\n                  //  Created by KatesAndroid on 2021/1/29 PM 8\n                  //\n                  import UIKit\n\n                  class ViewController: UIViewController {\n\n                      //override var viewIfLoaded: UIView?\n\n                      //override var isViewLoaded: Bool\n\n\n                      // ------ 載入畫面前 ------------------\n\n                      override func loadViewIfNeeded() {\n                          \u003c#code#\u003e\n                      }\n\n                      override func loadView() {\n                          \u003c#code#\u003e\n                      }\n\n                      // ------ 載入畫面後 ------------------\n\n                      override func viewDidLoad() {\n                          super.viewDidLoad()\n                          // Do any additional setup after loading the view.\n                      }\n\n                      // ------ 畫面出現 ------------------\n\n                      override func viewWillAppear(_ animated: Bool) {\n                          \u003c#code#\u003e\n                      }\n\n                      override func viewDidAppear(_ animated: Bool) {\n                          \u003c#code#\u003e\n                      }\n\n                      // ------ 畫面消失 ------------------\n\n                      override func viewWillDisappear(_ animated: Bool) {\n                          \u003c#code#\u003e\n                      }\n\n                      override func viewDidDisappear(_ animated: Bool) {\n                          \u003c#code#\u003e\n                      }\n\n                      // ------ 畫面傳輸 ------------------\n\n                      override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {\n                          \u003c#code#\u003e\n                      }\n\n                      // ------ 與畫面生命週期無關 ------------------\n\n                      override func updateViewConstraints() {\n                          \u003c#code#\u003e\n                      }\n\n                      override func viewWillLayoutSubviews() {\n                          \u003c#code#\u003e\n                      }\n\n                      override func viewDidLayoutSubviews() {\n                          \u003c#code#\u003e\n                      }\n\n                      override func viewSafeAreaInsetsDidChange() {\n                          \u003c#code#\u003e\n                      }\n\n\n                  }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fios_back_14","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqueeniecplusplus%2Fios_back_14","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fios_back_14/lists"}