SwiftUI로부터

jungsesang·2022년 4월 10일
1
post-thumbnail

EKKo입니다.

Apple developer 생태계에 진입하고 IOS 프로젝트를 진행하게 되었습니다.
Storyboard가 아니라 SwiftUI를 도입하게 되었는데요.
제가 진행하는 프로젝트에 대한 이야기에 앞서 SwiftUI에 대해 먼저 이야기해볼게요.

SwiftUI

SwiftUI는 Better apps. Less code. 라는 키워드를 가지고 있습니다.

Swift의 성능을 바탕으로 모든 Apple 플랫폼에서 사용자 인터페이스를 구축할 수 있는 혁신적이고 간소화된 방법으로 소개됩니다.

이는 Apple이 추구하는 가치관과 일맥상통하다고 느껴지는 것이, Apple은 독자적인 OS에서 비롯한 자기들만의 생태계를 구축하여 소프트웨어와 하드웨어 사이의 최적화를 통해 사람들에게 가치를 전달하고자 한다고 생각합니다.

여기서 사람들은 User, Customer 뿐만 아니라 Developer, Engineer, Designer 등 공급자도 해당된다고 생각합니다.
// 어디까지나 제 사견입니다.

SwiftUI는 새로운 Xcode 디자인 도구와 원활하게 연동되어 코드와 디자인을 완벽하게 동기화합니다. 그리고 여러 기능들을 자동 지원하여 강력한 UI 코드를 작성할 수 있습니다.

좋습니다. 새로운 UI 개발의 패러다임을 제시한 Apple의 SwiftUI가 좋은 것도 알겠습니다.
그럼 어느 부분이 좋을까요?

좋았던 부분

제가 체감했던 부분으로는

  1. Declarative Syntax
    선언적이란 말은, "무엇을 해야하는가"에 초점을 두고 접근하면 된다.
    쉽게 말하자면

    위의 코드처럼 Text()를 선언하고 padding, font, color 등을 설정할 수 있습니다. 이것의 장점은 코드를 흐름대로 작성하고 읽으면 되기 때문에 가독성이 좋고, 시간과 유지보수에 용이하다고 느낀 부분이에요.
    그리고 레이아웃을 구성하는 컴포넌트들을 선언하면 레이아웃의 위치와 constraint, randering 등을 자동으로 처리해주는 장점도 있습니다.

  2. Data Managing

    SwiftUI에서는 Binding을 이용하여 앱의 데이터 모델과 UI 컴포넌트를 연동하는 로직을 구현하여 이벤트 처리를 간단하게 만들었습니다.
    데이터의 변경 사항을 감지하여 SwiftUI가 자동으로 반영해주기 때문에 기존에 코드를 작성하여 최신 상태를 확인하는 작업을 하지 않아도 됩니다.

    이런 것을 "앱의 동작과 UI 디자인을 데이터가 주도한다"라고 합니다.
    게시자와 구독자 모델이라고 합니다.

  3. Preview
    Web developer에서 처음 넘어왔을 때, 시뮬레이터를 통해 UI를 확인하는 과정이 생각보다 귀찮고 시간 소요가 있다고 느꼈습니다.
    그런데 SwiftUI에 도입된 Preview는 빠르게 UI를 확인하고 기능 동작을 테스트해볼 수 있어서 DX가 상당한 부분 개선되었다고 여겨졌습니다.
    이는 개발속도가 엄청나게 줄지 않을까 하는 생각이 큽니다.


마치며

제가 크게 느꼈던 장점은 이렇게 3가지이지만 훨씬 더 많은 장점들이 존재할 거에요.
자세한 내용은 아래 SwiftUI document에서 확인해보시면 감사하겠습니다.

물론 장점만 존재하는 것은 아닙니다.
SwiftUI는 iOS 13 이후의 버전에서만 동작한다는 제약이 있습니다. 그리고 초기 버전에서는 안정화 단계에서 오류도 많고 문제가 많았지만 점점 안정화가 되어가고 있고, 앞으로는 SwiftUI를 쭉 쓰게되지 않을까 하네요.

프로젝트에 대한 글을 작성하기 전에 현재 개발 단계에서 제가 느꼈던 SwiftUI를 공유하고 싶어서 이렇게 글을 쓰게 되었습니다.

감사합니다.

많은 의견 부탁드립니다


References

Apple: https://developer.apple.com/kr/xcode/swiftui/

What is SwiftUI?: https://codewithchris.com/swiftui/what-is-swiftui/

profile
좋은게 좋은거 아니겠어요?

1개의 댓글

comment-user-thumbnail
2022년 4월 11일

저는 SwiftUI를 사용하면서 오히려 정형화된 방식이 없어서 자유도가 너무 높다고 느꼈습니다. 이것이 장점이 될수도 단점이 될 수도 있을 것 같아요. 아직 나온 지 얼마 되지 않은 언어라 그런지, 기존 MVC는 어려울듯하니 어떤 아키텍쳐를 적용해야할 지, 뷰를 어느 단위로 나누고, 그 뷰마다 데이터 바인딩을 이어주어야할 지, 뷰모델을 사용하는 것이 좋은 지 등... 고민할 게 많은 프레임워크네요..
또 Preview 기능은 나름 좋지만, 빌드시간이 크지 않은 프로젝트 파일일 경우 빌드 시간 감소라는 장점이 사라질 것이라고 생각합니다. 코드를 계속 작성해나가다보면, preview가 오류가 발생하고 Resume버튼이나 Try again 버튼을 눌러 다시 로딩하는 시간을 고려해본다면 차라리 빌드를 통해 확인하는 것도 좋을 것 같다는 생각을 했습니다..! 그치만, 점점 커질수록 뷰단위로 UI를 확인할 수 있다는 것이 편하더라구요!
저도 SwiftUI의 아주 기초적인 개발단계에 있고 같은 고민,생각을 하시고 있는 것 같아 너무 반갑네요 ㅎㅎ

답글 달기