[Swift 톺아보기] SwiftUI - 1

kio·2022년 7월 19일
0

Swift

목록 보기
2/11
post-thumbnail

SwiftUI의 탄생배경

Swift는 2014년 WWDC에서 만들어진 LLVM 컴파일러를 통해 Objective-C와 호환되면서 좀더 쉽고 모던한 패턴들을 포함한 언어이다.
하지만 swift가 만들어지고 금방 어려움에 닥쳤으니,
바로 apple이 너무 많은 기기를 내놓기 시작했다.

iOS를 위한 UIKit, MacOS를 위한 AppKit, watchOS를 위한 WatchKit 등 각 기기에 맞는 프레임워크로 앱을 새로 만들어야 됬다.

하지만 돌파구는 있었으니 이 위에 언급한 프레임워크는 모두 Objective-C위에서 돌아가고, Foundation과 그래픽영역을 공유하는 즉 LLVM 컴파일러로 실행되는 공통점이 있었으니

이에 착안하여( 실제로 이에 착안했는지는 모르겠지만 ) 만든것이 새로운 UI프레임워크인 SwiftUI이다.

SwiftUI의 장점

우선 위에서 호환선에 대해 얘기했으니 이번엔 가독성에 관련된 얘기를 해보려고 한다.

import UIKit
import SnapKit

class ViewController: UIViewController{
    
    let yellowView: UIView = {
        let view = UIView()
        view.backgroundColor = .yellow
        
        return view
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(yellowView)
        yellowView.snp.makeConstraints{
            $0.centerX.centerY.equalToSuperview()
            $0.height.width.equalTo(50)
        }
    }
}

UIKit과 SnapKit을 사용해서 노란색 뷰를 50 x 50의 사이즈로 가운데에 띄우는 코드이다.
이건 SnapKit이라는 layout을 잘 정리해주는 코드를 썼음에도 길고 복잡하다.

import SwiftUI

struct ContentView: View {
    var body: some View {
        ZStack{}
            .frame(width: 50,
                   height: 50,
                   alignment: .center)
            .background(Color.yellow)
    }
}

레전드 아닌가? 그냥 이건 코딩을 모르는 사람도 조금만 눈치빠르면 어떻게 나올지 알 수 있을정도로 간단하다.

UIKit을 사용해서 스토리보드로 앱을 만들게됬을때 앱 볼륨이 커지면 스토리보드로 유지보수하기 상당히 힘들다.

이건 볼륨이 그렇게 크지 않아도 불편하도 느껴진다.
그래서 코드로 모든 레이아웃을 잡고 UI를 배치해도 코드길어지는 단점이 있다.
하지만 SwiftUI를 사용하면, UI를 꾸미는데 큰 문제가 없고 가독성 또한 높아진다.

이렇게 장점이 많은 SwiftUI의 장점과 탄생배경을 알아 보았다. 그럼 다음부턴 조금더 실용적인 블로그를 올려보도록 하겠다.

0개의 댓글