안녕하세요 MIN.IOS입니다!
근 한달간 블로그 작성을 안하다가 오늘부턴 새로운 주제로 시작해보려합니다! 😁
바로 SWIFTUI에 관한 내용인데요.
우선, SwiftUI를 공부하게 된 이유는 제가 최근 스터디를 시작하게 되었는데
SwiftUI 프로젝트 생성 후 바뀐게 너무 많은거 같아서
애플에서 새로 개발한 SwiftUI라는 기술을 익혀보고 싶단 이유로 시작하게 되었습니다!
그럼 이번 글에선 SwiftUI란 무엇인지 간단하게 정리하는 글을 써보겠습니다! 😊
먼저 SwiftUI란? 2019년 애플의 WorldWide Developers Conference(WWDC)에서 처음 소개되어,
모든 애플의 운영체제 앱을 개발하는 데 완전히 새로운 방법을 제공한 것입니다.
새로 개발된 이유는 앱 개발을 더 쉽고 빠르게 하며 소프트웨어를 개발할 때 일반적으로 발생하는 버그를 줄이기 위해서 입니다!
가장 큰 변화로는 라이브 프리뷰라는 기능을 이용하여 프로젝트를 실시간으로 테스트할 수 있게 한다는겁니다!
(사진으로 라이브 프리뷰 예시 첨부해볼게요!ㅎㅎ)
(오른쪽에 실시간으로 보이는 부분이 라이브 프리뷰입니다!!)
자 이제 SwiftUI의 가장 큰 장점으로 소개되는 두가지 특징을 정리해보겠습니다!!
1. SwiftUI의 선언적 구문!!😍
SwiftUI는 기존 UIKit과 인터페이스 빌더를 사용하여 사용자 인터페이스 레이아웃을 설계하고 필요한 동작을 구현하는 것과 다른 방법인
선언적구문(declarative syntax)를 도입했는데,
기존 방법들은 화면을 구성하는 컴포넌트들(라이브러리 패널에 있는 버튼, 텍스트 필드, 슬라이더 등 화면을 구성하는것들)의 레이아웃과
모양에 대한 복잡한 세부 사항을 직접 설계하는 대신, SwiftUI는 단순하면서 직관적인 구문을 이용해 화면을 만들게 해주는데요
정리하자면 SwiftUI를 사용하면 레이아웃이 실제로 구축되는 방식의 복잡함에 대해 고민할 필요 없이
선언하는 방식으로만 레이아웃을 생성할 수 있다는 내용입니다!
SwiftUI 또한 레이아웃을 구성하는 컴포넌트들을 선언해주는데 이때 VStack, HStack, Form, List와 같은 매니저 종류를 명시하고
(매니저 종류가 어떤 차이점이 있는지 차근차근 업데이트 해보겠습니다😁 )
텍스트, 색상, 이벤트 시 호출되는 메서드등을 설정하는 수정자를 사용하면 레아이웃의 위치와
컨스트레인트(다른 오브젝트를 참조하는 연계작업을 통해 자신의 폼이 결정되는 자동화 컨트롤러),
렌더링(사진이나 영상을 만들어내는 과정이나 기법)등을 SwiftUI가 자동으로 처리해준다고 합니다!!😍
SwiftUI에서는 아까 보신거같은 Xcode의 라이브 프리뷰 모드를 통해 시뮬레이터나 디바이스에 빌드 실행하지 않아도
앱을 실행하고 테스트하게 해주는것도 큰 장점인거 같습니다 ㅎㅎ
자 이제 두번째 특징을 정리하겠습니다!!
2. SwiftUI는 데이터 주도적이다!!😍
SwiftUI도 여전히 사용자가 이벤트를 처리하는것은 필요합니다. 다만 앱 데이터와 인터페이스, 로직 사이의 관계에서
데이터 주도적이라는것인데요!
SwiftUI이전에는 앱 내에서 데이터의 현재 값을 검사하려면 코드를 작성해서 계속 확인했고,
데이터의 최신 상태를 확인하려해도 계속 코드를 작성했어야 됐습니다.
그 현상이 계속 반복되면 여러 부분에서 코드가 복잡해졌습니다!
하지만! SwiftUI에서는 앱의 데이터 모델과 사용자 인터페이스의 컴포넌트 그리고 기능을 구현한 로직을
바인딩!!(Binding : 프로그램의 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정시켜놓는 것!)하는
방법을 이용해 이런 복잡함을 해결했다고 합니다!!😁
이런 방법으로 구현하면 앱의 다른 부분에서 구독할 수 있는 데이터 변수를 게시만 하면 된다는 장점을 가지고 있다고 합니다!
만약 컴포넌트와 데이터 모델이 바인딩된다면 추가적인 코드를 작성하지 않아도 그 데이터의 변경 사항을 SwiftUI가
자동으로 반영한다고 합니다ㅎㅎ
또, SwiftUI는 데이터의 변화로 앱의 동작과 모양을 주도하는 점이 데이터 주도적이라고 합니다!
위의 내용과 같이 이런걸 게시자와 구독자 모델로 이루어 진다고 하네요!!
마지막으로 SwiftUI는 IOS 13 이후의 버전에서만 작동한다고 합니다! 이 부분도 참고하시면 좋겠습니다. 😊
오늘은 새롭게 공부를 시작한 SwiftUI의 특징에 대해 간단하게 정리해봤는데요!
현재는 SwiftUI를 주로 한 프로젝트라고 해서 이전 방법인 UIKit을 전혀 사용하지 않는게 아니라고 합니다!
앞으로 두 방법을 적절하게 활용하여 새로운 기능들 차근차근 구현 해보면서 달라진 점과 사용하는 방법을
꾸준하게 정리해보도록 하겠습니다!!😍
'[IOS][SWIFTUI]' 카테고리의 다른 글
[IOS][SWIFTUI] 텍스트를 통한 뷰(View) 개념알기! (0) | 2021.10.27 |
---|