[iOS] UIKit과 StoryBoard

 

 

 

1. iOS의 계층 구조

 

 UIKit 기준으로 iOS의 계층 구조는 4 단계로 구성되어 있다.

 

 

따라서 UIKit을 이용해 개발을 하려면 Cocoa Touch FrameWork를 사용해야 한다. Cocoa Touch FrameWork 안에는 UIKit/ Foundation/ CoreData/ MapKit 등을 포함하고 있으며, 애플 기기에서 실행할 애플리케이션을 개발하기 위해 사용되는 프레임워크이다.

 

 

위의 사진과 같이 UIKit을 사용해 코드작업을 하려면 새로운 파일을 만들 때 Cocoa Touch Class를 선택해 주면 된다. 

 

즉, 정리하자면 아래와 같다.

 

  • Cocoa Touch FrameWork
    • UIKit : 유저 인터페이스 도구를 통해 iOS 앱 구현하는 도구 제공
    • Foundation : 기본 데이터 형식, 앱의 기본 객체와 기반 기술을 제공

 

 

2. 그렇다면 SwiftUI는?

 

 SwiftUi는 iOS13 이상에서 사용 가능한 UI 도구이다. 하지만 등장한 지 얼마 되지 않았으며, UIKit에 비해 커스텀을 할 수 있는 부분 등이 제한되어 있다. 그러나 SwiftUI를 활용하면 모든 Apple 플랫폼(비전프로도!!)에서 사용이 가능하며, 향후 1~2년이 지나면 사용 빈도가 더 높아질 것이라고 판단하고 있다. (그리고 확실히 코드 작업을 하는데에 있어서는 SwiftUI가 빠르고 편하다.)

 

아 그리고 SwiftUI로 구동되는 코드들의 많은 부분이 사실은 백그라운드에서 UIKit으로 작동하고 있다고 한다. 그렇기에 iOS 개발자가 되려면 UIKit vs SwiftUI의 구도로 이해하며 하나만 공부해야 하는 것이 아니라 모두 공부하여 다룰 수 있어야 한다.

 

 

3. 스토리보드

 

스토리보드는 GUI 환경을 이용하여 화면을 편하게 만들 수 있게 도와주는 도구이다. 극단적으로 말하면 코드를 만지지 않아도 된다. 그 방법으로는 Xcode의 우상단에 있는 + 버튼을 눌러 Objects를 끌어와서 추가할 수 있어서 굉장히 편리하다. 다만 스토리보드를 사용해서는 화면만 구현이 가능하다. 버튼이 눌러지면 어떤 액션이 나타나는지 등은 코드로 구현을 해줘야 한다.

 

 

4. Entry Point

 

 엔트리 포인트란 말 그대로 시작하는 지점이다. 앱에 있어서, 특히 스토리보드에 있어서 시작하는 지점은 무엇일까? 바로 앱을 처음 실행했을 때 나타나는 화면이다. 

 

 

사진과 같이 화면 왼쪽 부분에 화살표가 있는 모습을 볼 수 있다. 이 화살표를 선택해서 다른 뷰(화면)로 옮겨주는 방식으로 엔트리 포인트를 바꿔줄 수도 있다. 

 

 

 

혹은 인스팩터 영역에서 Title 아래에 있는 'Is Initial View Controller'(이모티콘 있는 부분)를 체크해 주면 엔트리 포인트가 그 화면에 나타나게 된다.

 

 

 

만일 엔트리 포인트가 설정이 안 되어 있다면 Debug Area에 위와 같은 에러 메시지가 나오면서 검은색 화면만 나오게 된다.