λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
🍎 iOS/UIKit

[iOS/Swift] Launch Screen :: μ•±μ˜ μ‹œμž‘ ν™”λ©΄

by Danna 2021. 2. 21.
728x90
728x90

Launch screen

Launch Screen 은 앱이 μ‹œμž‘λ  λ•Œ λ‚˜νƒ€λ‚¬λ‹€κ°€ μ•±μ˜ 첫번째 ν™”λ©΄μœΌλ‘œ λΉ λ₯΄κ²Œ μ „ν™˜λœλ‹€. 앱이 μ‹€ν–‰λ˜κ³  μ‚¬μš©λ  μ€€λΉ„κ°€ λ˜μ—ˆμŒμ„ μ•Œλ €μ£ΌλŠ” 역할을 ν•˜λ©°, 앱이 λΉ λ₯΄κ³  λ°˜μ‘μ μ΄λΌλŠ” 인상을 μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€. κ°€μ΄λ“œμ—μ„œ μ‹œκ°μ μΈ 효과λ₯Ό μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 것은 μ•„λ‹ˆλΌκ³  ν•œλ‹€. 

 

μ•ˆλ“œλ‘œμ΄λ“œ κ°œλ°œμ‹œμ—λŠ” Splash screen 이라고 λΆˆλ €λŠ”λ°, iOS μ—μ„œλŠ” Launch Screen 이라고 λΆ€λ₯΄λŠ” 점이 λ‹€λ₯΄λ‹€. 

Launch screen in Xcode

Xcode ν”„λ‘œμ νŠΈλŠ” launch screen 을 μœ„ν•΄ launch storyboard λ₯Ό μ œκ³΅ν•œλ‹€. μœ μ €κ°€ 앱을 처음 μ‹€ν–‰ν–ˆμ„ λ•Œ, μ‹œμŠ€ν…œμ€ μ•±μ˜ UIλ₯Ό 화면에 보여쀄 μ€€λΉ„κ°€ 될 λ•ŒκΉŒμ§€ launch storyboard λ₯Ό 보여쀀닀. λ§Œμ•½ 앱이 λΉ λ₯΄κ²Œ μ΄ˆκΈ°ν™” μž‘μ—…μ„ 끝내고 UIλ₯Ό μ€€λΉ„ν–ˆλ‹€λ©΄, μœ μ €λŠ” 짧은 μ‹œκ°„λ™μ•ˆ launch screen 을 보게될 것이닀. 

 

Launch screen storyboard λ₯Ό μƒˆλ‘œ λ§Œλ“€μ§€ μ•ŠμœΌλ©΄ 기본적으둜 섀정이 적용 λ˜μ–΄μžˆλ‹€. μƒˆλ‘œ νŒŒμΌμ„ λ§Œλ“€κ³  λ³€κ²½ν•΄μ•Ό ν•  κ²½μš°μ—λŠ” Target > General μ„€μ •μ—μ„œ λ³€κ²½ν•  수 μžˆλ‹€. 

Launch screen storyboard λ₯Ό μ΄μš©ν•˜λ©΄ κΈ°κΈ°λ‚˜ λ©€ν‹°νƒœμŠ€ν‚ΉμœΌλ‘œ 인해 λ‹€λ₯Έ 슀크린 μ‚¬μ΄μ¦ˆμ— μ ν•©ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆλ‹€. main storyboard μ—μ„œ μž‘μ—…ν•˜λŠ” 것과 λ§ˆμ°¬κ°€μ§€λ‘œ view λ₯Ό μΆ”κ°€ν•˜κ³ , auto layout 을 μ΄μš©ν•΄ ν™˜κ²½λ§ˆλ‹€ μ ν•©ν•œ μ‚¬μ΄μ¦ˆμ™€ μœ„μΉ˜λ₯Ό μ‘°μ •ν•  수 μžˆλ‹€. 

 

κ°€μ΄λ“œμ—μ„œλŠ” ν…μŠ€νŠΈλ‘œ Launch screen 을 λ§Œλ“€μ§€ μ•Šλ„λ‘ ꢌμž₯ν•˜κ³  μžˆμœΌλ‚˜, 예제λ₯Ό μœ„ν•΄μ„œ μ΄μš©ν–ˆλ‹€.

 

launch screen 에 static image λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 슀크린 μ‚¬μ΄μ¦ˆλ§ˆλ‹€ λŒ€μ‘ν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ κ°€μ΄λ“œν•˜κ³  μžˆλ‹€. λ‹€λ₯Έ κΈ€μ—μ„œλŠ” launch image λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ μžˆμ–΄ Xcode μ—μ„œ μ‚΄νŽ΄λ³΄λ‹ˆ Deprecated 된 방식이라고 λ‚˜μ™€μžˆλ‹€. 

Storyboard 만 μΆ”κ°€ν•˜κ³  앱을 싀행해보면 Launch screen 이 μ •μƒμ μœΌλ‘œ λ‚˜νƒ€λ‚œλ‹€.

 

λ°˜μ‘ν˜•

 

Initialize Your App's Data Structures

앱이 μ‹œμž‘λ˜λŠ” μˆœκ°„ ν•„μš”ν•œ initialization code λŠ” λ‹€μŒ method 에 μž‘μ„±ν•˜λ©΄ λœλ‹€. UIKit 은 ν•΄λ‹Ή method 듀을 μ•±μ˜ launch cycle의 μ‹œμž‘λ‹¨κ³„μ—μ„œ ν˜ΈμΆœν•œλ‹€. 

application(_:willFinishLaunchingWithOptions:)

application(_:didFinishLaunchingWithOptions:)

 

μ•±μ˜ data structure 초기 μ„€μ •κ³Ό app 이 μ‹€ν–‰λ˜κΈ° μœ„ν•œ μ€€λΉ„κ°€ ν•„μš”ν•˜λ‹€λ©΄ ν•΄λ‹Ή method μ—μ„œ μ§„ν–‰ν•˜μž. λ‹€μŒκ³Ό 같은 μž‘μ—…λ“€μ΄ ν•΄λ‹Ήλœλ‹€.

  • μ•±μ˜ data structure λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” μž‘μ—…
  • 앱이 μ‹€ν–‰λ˜κΈ° μœ„ν•΄ ν•„μš”ν•œ resource λ₯Ό 가지고 μžˆλŠ”μ§€ 증λͺ…ν•˜λŠ” μž‘μ—…
  • 앱이 싀행될 λ•Œ ν•œλ²ˆλ§Œ ν•„μš”ν•œ 섀정을 μˆ˜ν–‰ν•˜λŠ” μž‘μ—… (ν…œν”Œλ¦Ώ 뢈러였기 λ“±)
  • μ•± μ‚¬μš©μ— ν•„μš”ν•œ critical services λ₯Ό μ—°κ²°ν•˜λŠ” μž‘μ—… (앱이 μ•ŒλžŒμ„ 보낼 수 μžˆλ„λ‘ Apple Push Notification service λ₯Ό μ—°κ²°ν•˜λŠ” λ“±)
  • Launch options dictionary λ₯Ό ν™•μΈν•˜λŠ” μž‘μ—…

앱을 μ‹œμž‘ν•  λ•Œ μ–΄λ–€ μž‘μ—…μ΄ ν•„μš”ν•œμ§€ 아직 감이 μ•ˆμ™”μ§€λ§Œ, λ‚˜μ€‘μ— ν•„μš”ν•œκ²½μš° μœ„μ— ν•΄λ‹Ήν•˜λŠ” κ²½μš°μΈμ§€ 확인해봐야겠닀.

 

Launch Screen 의 λ””μŠ€ν”Œλ ˆμ΄ μ‹œκ°„ μ‘°μ •ν•˜κΈ°

각 View λ§ˆλ‹€ Label ν•˜λ‚˜μ”© κ°–κ³  μžˆλŠ” μ•±μœΌλ‘œ ν™•μΈν•΄λ΄μ„œ κ·ΈλŸ°μ§€ ꡉμž₯히 λΉ λ₯Έ μ‹œκ°„μ— Launch Screen 이 μ‚¬λΌμ‘Œλ‹€. μœ„μ—μ„œ μ–ΈκΈ‰ν•œ mehod μ—μ„œ λ”œλ ˆμ΄λ₯Ό μ€˜μ„œ 길게 λ””μŠ€ν”Œλ ˆμ΄ λ˜λ„λ‘ ν•  수 μžˆλ‹€. 근데, μ–΄ν”Œμ— λ„€νŠΈμ›Œν‚Ή μž‘μ—…μ΄ μΆ”κ°€λ˜κ³  UI ꡬ쑰가 λ³΅μž‘ν•΄μ§„λ‹€λ©΄ ꡳ이 μ„€μ •ν•  ν•„μš”κ°€ 없을 것 κ°™λ‹€. μœ„μ—μ„œλ„ μž‘μ—…μ΄ 빨리 λλ‚˜λ©΄ μœ μ €κ°€ 잠깐 λ³΄κ²Œλœλ‹€κ³  ν–ˆμœΌλ‹ˆ κΌ­ ν•„μš”ν•˜μ§€ μ•Šλ‹€λ©΄ μ‘°μ ˆν•˜μ§€ μ•ŠλŠ”κ²Œ 쒋은 것 κ°™λ‹€.

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        sleep(1)
        return true
    }
    // ...
}

 μ°Έκ³  λ¬Έμ„œ

μ°Έκ³  λΈ”λ‘œκ·Έ

 

ν•¨κ»˜ 보면 쒋을 μ˜μƒ

 

[WWDC2017] Love at First Launch

첫인상이 μ€‘μš”ν•˜λ‹€. μ•„νŒŒνŠΈλ₯Ό κ³„μ•½ν•˜λ €κ³  ν•  λ•Œ, μ²˜μŒλΆ€ν„° μ—¬κΆŒ μ„œλ₯˜λ“±μ„ μš”κ΅¬ν•˜κ² λŠ”κ°€? 사기꾼 μ•„λ‹κΉŒ 싢은 집주인 πŸ₯Ή 앱도 λ§ˆμ°¬κ°€μ§€λ‘œ, μ•± μ„€μΉ˜λΆ€ν„° 둜그인 ν™”λ©΄λΆ€ν„° λ‚˜νƒ€λ‚˜κ³  κΆŒν•œλ“€μ„ μš”κ΅¬

jellysong.tistory.com

 

728x90
728x90