티스토리 뷰

반응형

iOS 개발 공부를 하면서 새 프로젝트를 생성하면 기본적으로 생성되어있던 여러 가지 Swift파일들과 Main.Storyboard로 바로 개발을 시작했었는데, 이러한 파일들은 무슨 역할을 하는 것이며 Storyboard 없이 개발하는 방법은 없을까를 알아보았고 실제로 스토리보드 없이 개발하는 방법을 기록해두러고 합니다. 실제 현업에서는 스토리보드 없이 개발을 진행하는 곳도 많다고 하니 꼭 알아야 할 것 같습니다.

우선 프로젝트를 만들 때 템플릿을 아래와 같이 설정합니다.

그다음 User Interface에서 Storyboard를 선택하고 프로젝트를 생성합니다.

이렇게 프로젝트를 생성하면 아래와 같은 파일들이 자동적으로 생성되어있습니다.

여기서 이번 글에서 중점적으로 볼 것은 Main.storyboard 파일없이 간단하게 앱을 만드는 것입니다. 보통 스토리보드에 들어가서 버튼, 텍스트 뷰, 이미지 뷰 등 여러 가지도 추가하고 연결된 컨트롤러에서 코드로 작업을 진행하게 된다. 이번엔 이러한 스토리보드 없이 간단한 앱을 생성할 것이기 때문에 우선 Main.storyboard와 ViewController.swift 파일을 삭제해줍니다. 이렇게 되면 처음 프로젝트에 만들 때 저 스토리보드에서 시작하도록 설정되어있는 몇 가지 설정들도 해제해줘야 합니다.

위의 사진과 같이 프로젝트의 설정 부분에 Main Interface부분에 처음엔 Main이 적혀있을 텐데 이를 그냥 빈칸으로 비워둡니다.

그리고 아까 처음 생성된 파일 중 Info.plist 파일로 가서 위와 같이 체크된 부분을 삭제해줍니다.

이렇게 삭제를 해주면 아까 삭제한 Main.storyboard에 대한 설정이 모두 삭제되게 됩니다.

그럼 이젠 우리가 Main.storyboard와 같이 앱을 켰을 때 보일 화면을 직접 만들고 설정해보겠습니다.

우선 Xcode 11 버전에서는 프로젝트를 생성 시 자동으로 AppDelegate.swift와 SceneDelegate.swift가 생성되게 됩니다.

예전에는 AppDelegate.swift만 생성됐지만 iOS 13부터 AppDelegate의 몇 가지 역할을 SceneDelegate가 하게 되며 이제는 둘 다 생성되게 되었습니다. 이는 window 개념이 scene으로 대체된 것이 가장 큰 이유인데, multi window 앱을 만들 수 있게 되면서 바뀌게 되었습니다.

우선 AppDelegate와 SceneDelegate에 대한 설명은 후에 공부를 한 뒤 글을 작성하도록 해야 할 것 같습니다. 이번 글에서는 스토리보드 없이 간단하게 앱을 만들어보는 것에 중점을 두려고 합니다.

AppDelegate는 iOS앱의 시작 지점으로 앱이 시작될 때 아래의 코드가 시스템에서 가장 첫 번째로 호출하는 함수입니다.

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

간단한 앱을 만들기 위해서는 SceneDelegate의 scene(_ :willConnectTo:options:) 함수에 코드를 추가해주면 됩니다. 이 함수는 앱에 scene이 추가될 때 호출되기 때문에 scene을 구성하기 가장 좋은 지점이라고 볼 수 있습니다.

우선 그전에 뷰 컨트롤러의 역할을 해줄 새로운 ViewController를 하나 추가해줘야합니다. command + N 단축키를 사용하여 MyViewController.swift파일을 새로 생성합니다.

이제 다시 SceneDelegate.swift로 돌아와서 새로운 뷰 컨트롤러의 인스턴스를 새로운 rootViewController로 설정하면 됩니다.

위와 같이 코드를 추가해주면 rootViewController가 우리가 만든 MyViewController 인스턴스가 됩니다.

잘 수행되었는지 확인하기 위해 간단하게 MyViewController의 배경색을 green으로 해보고 실행을 시켜보겠습니다.

위의 실행결과와 같이 배경색이 green으로 설정된 화면이 보이게 되는 것을 볼 수 있습니다.

이제 이러한 방법으로 개발을 시작하면 됩니다.

다음 글에서는 화면에 버튼과 레이블과 같은 것들을 넣어보고 눌렀을 때의 이벤트도 설정하는 방법에 대해 알아보겠습니다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함