Storyboard와 UIKit에 대해
배운걸 정리해보려고 한다.

사실 iOS 앱개발 하면
보통 UIKit 이라는 단어.
많이들 들어봤을 꺼다.
SwiftUI와 UIKit 둘중
뭐부터 배워야 하는가?
정답 = 없다.
둘중 자신에게 잘 맞는
자신에게 편하고 좋은 것부터
익혀 나아가는 것도
좋은 방법이 될 수 있다.
언제, 어디서나
자신이 선호하는 방법으로
Swift를 익혀 나아가면 그걸로 족하다.
필자는 SwiftUI를 먼저 해보고,
어느정도 화면을 그릴 줄 아는 시점에
UIKit을 학습해보는걸 추천해본다.
사실 SwiftUI와 UIKit
둘다 해보았을 때 어느쪽을
더 깊게 파고 들어야 할지는
해보고 나서 정해도 큰 문제는 없다.
SwiftUI와 UIKit의 공통점
둘다 화면을 그리는 방법을 말한다.
아이폰 앱의 버튼과 이미지
텍스트 등눈에 보이는 모든 UI들을
그리는 방법이다.
SwiftUI와 UIKit 둘다 "방법"이기 때문에
똑같이 그릴 수 있다.
하드웨어 즉, 아이폰에서
iOS 어플리케이션을 돌리고 있는데,
이 앱을 돌아가게 하기 위해서는
쉽게말해, 개발하기 위해서는
"코코아 터치 프레임워크" 라는게
필요하다.
결국엔 앱의 UI가 앱으로
만들어지기 위한 개발 도구가 필요한데
그 이름이 Cocoa touch framework 이다.
그리고 그 안에 UIKit
그 다음에 파운데이션
이런 얘들이 있다.
그리고 파운데이션은
MacOS와 만나는 점이 있다.
MacOS 앱은 앱킷이라는 녀석으로 만든다.
MacOS에서 파운데이션은
코코아 터치 프레임 워크가 아닌
코코아 프레임 워크 안에 있다.
그래서
지금도 존재하기는 하지만,
iOS는 UIKit으로 화면을 그리고
MacOS는 앱킷으로 화면을 그려서
앱을 띄웠었다.
파운데이션이라는 공통적으로
쓰이는 녀석이 있는데,
그중 SwiftUI는
이정도에 걸쳐 있다고 보면 된다.
SwiftUI로 개발을 하면
iOS와 MacOS에서
동시에 돌릴 수 있다는 점이
SwiftUI의 큰 장점이다.
그렇다 한다면,
"SwiftUI만 하면 되지않나?"
iOS 앱들 중에서는 일부는
SwiftUI로 만들어진게 있지만,
일부는 UIKit으로 만들어진게 있다.
SwiftUI로 만들어진 것은
UIKit으로 대부분 다 만들 수 있지만,
UIKit으로 만들어져 있지만,
SwiftUI로 만들지 못하는 녀석들이
아직은 존재한다.
그래서
SwiftUI와 UIKit 둘다
학습을 해야 한다는 것이다.
어떤 화면을 보고
구현을 해야지 하다보면,
간단한 화면은 SwiftUI로
전부 구현을 할 수 있을 것이고,
마찬가지로 UIKit으로도
다 구현을 할 수 있다.
그런데..
이게 조금 많이
복잡하게 느껴질 수 있는게
"어떠한 기능적인 부분에서
SwiftUI로 안되는 경우
UIKit 해야하는 것"이다 라는
결론이 나는 상황이 올 수 있다.
운이 좋다면
SwiftUI 만으로도 충분히
앱을 개발 할 수 있다.
좀더 Low레벨의 어떠한
다른 예전에 만들어진 것들을
이용하여 개발을 하려면,
UIKit이 반드시 필요하다.
결국엔 SwiftUI, UIKit
둘다 해야한다는 거다.

매우 슬프지만,
SwiftUI는 발전을 계속 하고 있기 때문에
UIKit이 해주는 것들을 다 해줄 것 이라고
일부 iOS개발자 분들은
바라고 기대하고 있다.
UIKit은 과거부터 오랫동안
10년이라는 세월이 넘게 사용되며
많은 앱들이 UIKit으로 개발이 되어 있기에
그 앱을 유지 보수를 하기 위해선 UIKit이
불가피하다.
그런데 필자는 왜
SwiftUI를 학습하기를 먼저 추천했냐면,
앞으로는 SwiftUI의 발전 가능성이 높고
애플에서 이게 사용자가 UI를 그리는데
직관적인 방법임을 밀고 있는 추세이기에
SwiftUI를 먼저 학습하고 UIKit을 학습해도
괜찮다고 생각을 하고 있다.
SwiftUI는 직관적이고,
학습하기도 어렵지 않기 때문에
기본기를 다져보면 좋다.
하지만 더 많은 것을 할 수 있는건
UIKit 이기 때문에
UIKit도 학습을 하는게 좋다고
다수의 앱 개발자들은 이야기한다.
Storyboard VS Code
UIKit
UIKit 안에서도
Storyboard 그리고 코드베이스
크게 2가지 방법으로
화면을 그린다.
SwiftUI는 코드베이스로 UI를 만들었다.
UIKit은 GUI를 사용한 스토리보드가 존재한다.
전체 앱 구조 자체가
스토리보드 안에 다 들어가고
뭐, 버튼을 드래그 앤 드롭으로 해서 놓거나
이미지를 드래그 앤 드롭해서 놓으면서
그런식으로 구현을 하는 게 가능하기도 하다.
게다가
SwiftUI처럼 코드만을 사용하는 방법도 있다.
이 방법 또한 굉장히 호불호가 많이 갈리는 편이다.
스토리보드로 UI를 그리는 파와
코드로 UI를 그리는 파
둘다 각각의 장단점은 존재한다.
예를들어,
스토리보드로 UI를 그려본다면
눈에 바로바로 보여지기 때문에
UI를 예측하기가 쉽고
상상하기도 편하다는 장점이 있다.
하지만 단점으로는 이게 여러 화면에
대응을 해야하기도 하고,
GUI로 그리다 보면
코드리뷰를 할 때나 이럴 때
많이 힘이 들 수 있다는 점이다...
필자를 포함한 일부 앱 개발자들은
스토리보드로 UI를 그리는걸
상당히 꺼려하는 분들이 있다.
반면,
코드로 하면 일단 전부 다 코드이기 때문에
보일 수 밖에 없다.
코드를 보면서
얘가 무슨 화면이 그려지겠거니,
상상을 하기도 쉽고,
자신이 무슨 짓을 하고 있는지도
명확하게 인지할 수 있다.
코드에 다 나오기 때문이다.
그렇기 때문에 두가지 방법
다 할 줄알아야 하지만
이 중에서도 우선은 스토리보드로
UIKit을 배운 내용을 정리해보겠다.
글을 쓰다보니 조금 많이 길어졌다..
이렇게 우선은 1편을 마무리 하겠다.
'IOS > Swift-TIL' 카테고리의 다른 글
[Swift-TIL] View와 ViewController (0) | 2024.11.28 |
---|---|
[Swift-TIL] Storyboard와 UIKit (2편) (0) | 2024.11.28 |
[Swift-TIL] 여러개 화면을 이어서 간단하게 앱을 만들어보기 (0) | 2024.11.28 |
[Swift-TIL] 탭뷰로 그려보기 (0) | 2024.11.27 |
[Swift-TIL] 네비게이션 써보기 (2편) (0) | 2024.11.26 |