SwiftUI

SwiftUI 프레임워크를 사용해야하는 이유

왜 SwiftUI 프레임워크를 사용해야하는가?


SwiftUI는?

  • “The Shortest Path to a Great App”, “Less code, Better code. Everywhere”
  • Swift 언어 기반의 UI프레임워크
  • AppKit, UIKit 등으로 구분하지 않고 유저 인터페이스 영역까지 모든 플랫폼에서 사용가능
  • 적응형레이아웃, 뷰 갱신, 현지화, 접근성, 유동적 글자 크기 등 개발자가 직접 구현해야 했던 상당 부분을 프레임워크가 대신 지원 해줌으로써  코드길이의 굉장히 줄어 들게 됨 
  • 코드를 읽고 이해하기 쉬워짐
  • 기존의 명령형(Imperative) 대신 선언형(Declareative) 프로그래밍 방식을 활용.
  • 모든 애플 플랫폼 지원(아이폰, 맥북, 아이패드, 애플TV 등) 함 (iOS를 개발하려면 UIKit, macOS는AppKit, watchOS는 WatchKit 등 플랫폼별로 각기 다른 프레임워크를 사용해야 했다.)
  • 데이터가 변경되는 즉시 UI도 자동으로 갱신됨
  • 코딩시 버그 발생할 여지도 줄어듬
  • 다루기 쉬운 API 제공
  • 표현할 타입이 클래스가 아닌 구조체(Struct)를 사용

프리뷰(Preview)

코드로 개발할지 스토리보드로 개발할지 고민할 필요가 없어짐 

  • 간단한 변경시 매번 시뮬레이터를 재시작해야하는 불편함이 해소됨에 따른 개발 생산성 향상.
  • Xcode 11 부터 SwiftUI를 이용하면 시뮬레이터를 실행하지않고도 캔버스 영역 안에서 프리뷰(Preview)를 통해 작업 중인 코드의 결과를 확인 가능
  • 코드를 수정하면 즉시 동기화되어 바로 프리뷰에서 확인 가능(프리뷰에서 직접 변경하는 내용도 코드로 즉시 반영됨)
  • 다크모드, 폰트, 현지화 등을 반영해 여러 개를 동시에 생성 가능

SwiftUI의 4가지 핵심 원칙

1.선언형 프로그래밍 방식 채택

명령형 방식 선언형 방식
강남역에서 교대역까지 어떻게(HOW) 가야 하는지 초점 정확히 무엇(WHAT)을 하고 싶인지에 초점.
파스타를 직접 요리해서 만들어 먹는 것과 같다. “파스타 하나 주문이요.” 하고 주문을 넣은 것과 같다.
코드가 길어짐 코드가 간결해짐

2. 자동화

  • 가능한 많은 기능이 자동으로 수행될 수 있도록 제공하는 것
  • 매번 직접 작성해야했던 상용구를 생략할 수 있게됨, 생산성을 높임
  • 통상 가장 흔하게 작성했던, 화면에 뷰를 배치할 오토레이아웃 코드들이 제거되고, 최소한의 설명만으로 적용할 수 있다는 점에서 체감할 수 있음

3. 조합

  • 뷰의 조합과 분리를 간단히 할 수 있게 제공
  • 반복적인 개발 작업을 빠르게 할 수 있게 설계됨
  • 가령, 큰 뷰를 하나의 기능을 가진 작은 뷰들로 잘게 나누거나 각각의 뷰를 조합해 원하는 뷰를 쉽게 만들어 낼 수 있게 지원.
  • 뷰 프로토콜에 다양한 공용 수식어를 제공해, 모든 객체에 공통적인 UI나 기능을 적용하는 것도 간단하게 할 수 있음.

4. 일관성

  • UI는 항상 데이터와 동기화되어 일관성 있게 보여야 한다는 점
  • 스위프트UI는 데이터가 변경되는 즉시 UI도 자동으로 갱신됨으로 더이상 UI 동기화를 신경 쓰지 않아도 됨(기존에는 데이터와 UI동기화를 수동으로 직접했고, 추가적인 코드가 필요했고, 실수로 코드를 삽입하지 않거나 잘못된 코드를 넣는 등의 의도치 않는 버그가 발생하기 쉬운 구조였음)

위 포스팅 내용들은 “스윗한 SwiftUI(이봉원 지음)” 전자책을 보고 스터디 및 실습한 내용들을 기록하였습니다.

(책의 저자는 메서드 대신 수식어(Modifier)라는 용어를 사용)

Leave a Reply

error: Content is protected !!