2019 WWDC(Worldwide Developers Conference)에서 Apple 은 모든 Apple 플랫폼에서 새로운 프레임워크를 발표했다.
테크전문지 'packtpub'에 따르면 "애플은 새로운 사용자 인터페이스 구축을 위한 'SwiftUI' 라는 새로운 프레임 워크를 발표했다"라고 보도했다.
SwiftUI는 코드 줄(line of codes)을 감소하기 위한 선언적 구문(Declarative syntax), 디자인 도구 및 실시간 편집을 지원한다. SwiftUI는 빈틈없는 기본 성능을 제공하므로 개발자는 Apple 플랫폼의 이전 기술 및 개발자 경험의 기능을 활용하여 완전히 통합된 느낌을 가질 수 있다. 또한 동적 유형, 어두운 모드, 현지화 및 접근성을 위해 자동으로 지원된다.
현재 SwiftUI 개발 도구는 macOS 10.15 베타에서 실행될 때만 사용할 수 있다.
■선언적 구문(Declarative syntax)
SwiftUI를 사용하면 개발자는 사용자 인터페이스의 요구 사항을 간단하게 설명 할 수 있으며 직접 수행 할 수 있다. 예를 들어 개발자가 텍스트 필드로 구성된 항목 목록을 원하면 각 필드 정렬, 글꼴 및 색상을 설명해야한다. 이렇게 하면 코드를 더 간단하고 읽기 쉽게 만들어 시간과 유지 보수를 줄일 수 있다. 또한 SwiftUI는 애니메이션과 같은 복잡한 개념을 훨씬 간단하게 만든다. 개발자는 모든 컨트롤에 애니메이션을 추가하고 몇 줄의 코드만으로 바로 사용할 수 있는 컬렉션을 선택할 수 있다.
■디자인 도구
WWDC 동안 Xcode 11 베타 릴리스 노트도 릴리스 되었다. Xcode 11 베타에는 iOS 13, macOS 10.15, watchOS 6 및 tvOS 13 용 SDK가 포함되어 있다. Xcode 11 베타는 SwiftUI로 개발을 지원한다. Organizer 창에서 응용 프로그램을 업로드 할 수 있으며 보조 편집기가 없어도 모든 창에 편집기를 추가 할 수 있다. 또한 MacOS의 LaunchServices는 Xcode에 임베디드 된 Instruments, Simulator 및 기타 개발자 도구를 시작할 때 선택된 Xcode를 따른다. 따라서 Xcode11의 이러한 직관적 인 새로운 디자인 도구를 사용하면 SwiftUI를 사용하여 끌어서 놓기, 동적 바꾸기 및 미리보기와 같은 인터페이스를 작성할 수 있다.
■ 끌어서 놓기(Drag and drop)
개발자는 캔버스에 컨트롤을 끌어서 사용자 인터페이스 내에 구성 요소를 배치 할 수 있다. 속성을 선택하여 글꼴, 색상, 정렬 및 기타 디자인 옵션을 선택하고 커서로 컨트롤을 쉽게 재정렬하여 수행 할 수 있다. 이러한 비주얼 편집기의 대부분은 코드 편집기에서도 사용할 수 있다. 또한 라이브러리에서 컨트롤을 드래그하여 디자인 캔바스 또는 코드에 직접 드롭하는 것이 가능하다.
■ 동적 교체(Dynamic replacement)
디자인 캔버스에서 작업 할 때 개발자가 수행한 모든 편집은 인접한 편집기의 코드와 완전히 동기화된다. Xcode는 변경사항을 즉시 다시 컴파일하여 개발자가 지속적으로 앱을 만들고 '라이브 앱'과 같이 동시에 실행할 수 있도록 한다. 이 기능을 사용하면 Xcode는 편집된 코드를 라이브 앱에서 직접 바꿀 수 있다.
■ 미리보기
SwiftUI 보기의 미리보기를 하나 이상 만들면 샘플 데이터를 가져올 수 있으며 큰 글꼴, 현지화 또는 어두운 모드와 같이 사용자가 볼 수 있는 거의 모든 항목을 구성 할 수 있다. 사용자의 코드는 미리보기로 즉시 표시되며 미리보기에서 변경사항이 발생하면 즉시 코드에 표시된다. 미리보기는 모든 장치 및 방향에서 UI를 표시 할 수도 있다.
SwiftUI는 모든 컨트롤과 플랫폼별 사용이 코드에 포함 되도록 작성 되었다. 이것은 소량의 코드와 인터랙티브 한 디자인 캔버스로 앱이 각 플랫폼의 이전 기술 기능에 직접 액세스 할 수 있게 한다. iPhone, iPad, iPod touch, Apple Watch 및 Apple TV를 포함한 모든 Apple 장치 용 사용자 인터페이스를 구축하는 데 사용할 수 있다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]