[SeSAC] July 23, 2023

✔︎ 오늘의 정리

  • AutoLayout
  • launchScreen
  • Print vs Return

 

내일로 미룬 거: Raw String :)


 

✔︎  AutoLayout

etc-image-0
etc-image-1
etc-image-2

신조어 검색기는 새로 맹글어 본 거고 두 번째는 배달의 민족 UI, 세 번째는 카카오톡 프로필을 참고해서 만들어 보았다.

너무 깔꼼하고 마음에 든다.... ^_^

가끔 붉은 어쩌고가 많이 생길 때면 조금 화가 나긴 하지만

그럴 때는 그냥 무로 돌아가서 처음부터 설정해 주면 편하다.

시간 절약은 때로는 욕심을 버리는 것에서부터 오더라....

필기한 내용을 다시 읽어 보기는 했는데, 나중에 시간 내어 정리하고 싶다. 다음 주가 가기 전에 꼭 하겠음. ㅋㅋ

 

 

 

✔︎  LaunchScreen

먼저, 런치 스크린이란 앱이 시작될 때 나타났다가 첫 번째 화면으로 교체되는 화면을 말한다. 앱의 데이터를 로딩하는 동안 빈 화면을 나타내지 않기 위해 사용되는 이미지로, 보통 앱의 로고나 대표적인 아이콘을 넣어줄 수 있다.

 

Apple에서는 런치 스크린에 많은 애니메이션이나 내용이 들어가기를 권장하지 않는다. 최소한의 동작으로 화면을 보여주는 것이 가장 좋다.

 

모든 OS에서 런치 스크린이 필요한 것은 아니며, iOS, iPadOS, tvOS는 필수로 런치 스크린을 제공해야 하지만 macOS, visionOS, watchOS에서는 런치 스크린이 필요하지 않다.

 

공식 문서에서는 아래와 같은 요소를 강조하고 있다.

 

 

 

1. 앱의 첫 화면과 거의 동일한 시작 화면을 디자인할 것
2. 시작 화면에 텍스트를 포함하지 말 것
3. 런치 스크린에서 앱의 첫 화면으로 원활하게 전환되도록 할 것
4. 광고하지 말 것

 

 

각각의 OS에 나누어 적절한 방침도 소개하고 있는데, 이는 https://developer.apple.com/design/human-interface-guidelines/launching < 링크를 참조하면 될 것 같다.

 

 

Q1. 특정 서비스에서는 런치 스크린에서 애니메이션이 재생되기도 하고, 영상이 재생되기도 한다. 또, 빌드할 때마다 런치 스크린이 달라지기도 하는데, 이는 어떻게 구현할 수 있을까?

런치 스크린 창에서는 바로 구현하지 못한다. 설정에서 launchScreen을 다른 스토리보드로 설정해 두고 해당 뷰 컨트롤러에 애니메이션이나 영상, 혹은 하나의 이미지뷰에 코드로 여러 개 중 랜덤으로 나오는 방식을 적용시켜 해당 런치 스크린을 구현할 수 있을 것이다.

 

관련 자료를 얻을 수 있는 링크는 아래로 달겠다!

 

https://stackoverflow.com/questions/37112950/how-to-add-animation-to-launch-screen-in-ios-9-3-using-objective-c

 

how to add animation to launch screen in iOS 9.3 using Objective c

how to make a animated splash screen like below image in iOS 9.3.

stackoverflow.com

https://www.hohyeonmoon.com/blog/launch-screen-animation/

 

Animation으로 iOS Launch Screen 구현하기 | Hohyeon Moon

iOS UIKit의 Launch Screen 혹은 Splash Screen을 Lottie Animation으로 구현해봅니다

www.hohyeonmoon.com

 

 

 

 

Q2. 런치스크린을 사용하지 않는 서비스도 있을까? 만약 사용하지 않는 서비스가 있다면 런치 스크린 스토리보드를 삭제하면 안 될까?

 

iOS 14 이전까지는 런치 스크린 삭제를 지원하지 않았지만, 그 이후로는 런치 스크린 삭제를 지원한다. 이는 런치 스크린 스토리보드를 삭제해도 괜찮다! 는 말이 아니라 런치 스크린 설정을 꺼놓을 수 있다는 말이다.

 

하지만, 앞서 말했듯 런치 iOS, iPadOS, tvOS 앱의 경우에는 런치 스크린을 필수로 사용하도록 권장한다. macOS, visionOS, watchOS에서는 런치 스크린이 필요하지 않다. 만약 서비스가 macOS, visionOS, watchOS 위주의 앱이라면 런치 스크린을 지원하지 않아도 될 것이다.

 

 

런치 스크린 스토리보드를 프로젝트에서 삭제하게 되면, 화면의 크기를 제대로 잡지 못하게 된다. 런치 스크린 스토리보드가 앱이 모든 장치에서 어떻게 보일지를 결정하는 역할을 하기 때문에, 런치 스크린 스토리보드를 삭제하게 되면 기존의 최적화된 사이즈가 아니라 위아래 검은 화면이 포함된 이상한 사이즈의 화면이 나오게 된다.

 

 

직접 해 보자면.... 

etc-image-3

plist에서 launchScreen 설정을 삭제해준 후, 네비게이션 바에서도 런치 스크린을 삭제해 주었다.

 

 

etc-image-4

그 결과, 왼쪽처럼 떠야 할 화면이 오른쪽처럼 나오는 걸 볼 수 있다.

런치 스크린을 삭제하면 화면이 최적화되지 않고 이상하게 나오니

실제 프로젝트에서 사용하지 않더라도 일단 삭제하지는 말자 ^_^ 

 

 

 

 

 

 

 

https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen/

 

Specifying your app’s launch screen | Apple Developer Documentation

Make your iOS app launch experience faster and more responsive by customizing a launch screen.

developer.apple.com

https://developer.apple.com/design/human-interface-guidelines/launching

 

Launching | Apple Developer Documentation

People appreciate a streamlined launch experience that helps them start using your app or game immediately.

developer.apple.com

https://jellysong.tistory.com/63

 

[iOS/Swift] Launch Screen :: 앱의 시작 화면

Launch screen Launch Screen 은 앱이 시작될 때 나타났다가 앱의 첫번째 화면으로 빠르게 전환된다. 앱이 실행되고 사용될 준비가 되었음을 알려주는 역할을 하며, 앱이 빠르고 반응적이라는 인상을 주

jellysong.tistory.com

https://jeong9216.tistory.com/193

 

[iOS/Swift] 런치 스크린 (Launch Screen) / 스플래시 화면

[iOS/Swift] 런치 스크린(Launch Screen) / 스플래시(Splash) 화면 안녕하세요. 개발하는 정주입니다. 오늘은 런치 스크린에 대해 포스팅하려고 합니다. 목차 런치 스크린(Launch Screen)이란? 공식 문서에서

jeong9216.tistory.com

 

 

 

 

✔︎  print / Return

 

print의 경우에는 터미널 창에서 확인할 수 있도록 표시하는 것을 말한다.

Return은 반환값으로, 함수에서 사용하며

 

func sayHi() -> String {
	return "hi"
}

 

위처럼 특정 값을 반환하여 사용할 수 있다.

하지만, Return 값은 변수에 담지 않으면 그저 흘려보내는 값이 되기 때문에 함수를 호출하여 return값을 사용하고자 한다면 변수에 해당하는 값을 담아주는 게 중요하당.

 

 

 

 

 

 

 

'TIL' 카테고리의 다른 글

[SeSAC] August 1, 2023  (0) 2023.08.01
[SeSAC] July 31, 2023  (0) 2023.08.01
[SeSAC] July 27, 2023  (0) 2023.07.28
[SeSAC] July 24, 2023  (0) 2023.07.24
[SeSAC] July 20, 2023  (0) 2023.07.20