Qt 6.2는 2021년 9월 에 릴리스되어 Qt 6 시리즈 내에서 첫 번째 LTS(장기 지원) 버전을 제공합니다. Qt 6.3이 마무리 단계에 접어들면서 Qt 제품의 다음 단계가 무엇인지 생각해 볼 좋은 시간입니다.
그러나 먼저, 우리 커뮤니티의 강력한 지원 없이는 여기까지 오지 못했을 것이라는 점을 밝히는 것이 중요합니다. 기고, 보고서 및 메일링 목록 토론은 Qt Company에 다양한 관점을 제공하고 공통 요구 사항을 향해 나아가며 개선해야 할 가장 큰 영역을 다루는 데 똑같이 유익합니다. Qt의 각 버전을 이전보다 더 나은 버전으로 만드는 데 도움을 주신 모든 분들께 감사드립니다. 이 포스트에서는 주로 Qt를 위한 Qt Company의 노력에 초점을 맞출 것입니다. 생태계의 기업뿐만 아니라 개인 기여자로부터 오는 많은 추가 항목이 있습니다.
플랫폼을 대표하는 Qt를 사용하면 포트폴리오 내에서 개별 자산을 식별하기 어려울 때가 있습니다. Qt를 사용하면 데스크탑에서 시작하여 모바일을 통해 하위 수준의 임베디드 프로젝트로 이동하는 모든 종류의 솔루션을 만들 수 있습니다. MCU용 Qt를 통해 마이크로컨트롤러 솔루션도 가능합니다 . Qt는 솔루션 생성을 지원하는 많은 도구와 함께 제공됩니다. Qt Design Studio 를 사용한 2D 및 3D 사용자 인터페이스 구성으로 시작하여 Qt Creator 또는 다른 IDE 통합 중 하나에서 개발 하고 최근에는 Froglogic 제품 과 함께 QA 도구를 사용 하여 전체 소프트웨어 개발 수명 주기를 다룹니다.
이 블로그 게시물에서는 프레임워크 기능에 중점을 둘 것입니다. 이것은 Qt로 만들 수 있는 제품에 대한 새로운 기능에 대한 좋은 개요를 제공합니다. 툴링 관련 제품의 경우 후속 기사를 제공할 것입니다.
모든 대상 플랫폼에 유사하게 도움이 되는 추가 사항부터 시작하겠습니다. 가장 많이 사용되는 모듈을 Qt 6으로 마이그레이션한 후 여기서 멈추지 않습니다. 우리는 모든 각도, 고객 및 커뮤니티의 피드백을 듣고 있습니다. 결과적으로, 우리는 아직 구할 수 없는 항목에 대해 조사했고 계속 투자할 것입니다.
Qt 6.3의 경우 Qt PDF 가 이식되었으며 처음에는 모든 사람이 사용할 수 있습니다. 마찬가지로 Qt Speech 는 현재 작업 중이며 이후 단계에서 재도입을 볼 수 있습니다.
또한 Qt Location 은 이미 우리가 매우 감사하는 Lauri Laanmets 로부터 주요 업데이트를 받고 있습니다. 이러한 변화는 해당 분야에서 지속적으로 노력할 수 있는 큰 원동력입니다. 고객 및 오픈소스 사용자들과의 다양한 논의 끝에 지도 시각화 솔루션의 범위 설정을 마쳤습니다. 이 분야의 노력은 올해 하반기에도 계속될 것입니다. 이 주제는 댓글 섹션에서 다소 자주 언급되었으므로 전용 게시물을 올릴 가치가 있으며 곧 후속 조치를 취하겠습니다.

개별 모듈에서 이동하는 목표는 WebAssembly용 Qt 인 Qt 포트폴리오에 중요한 플랫폼을 하나 더 추가하는 것입니다 . WebAssembly 는 기본 솔루션과 웹 솔루션을 연결하는 매우 흥미로운 기술입니다. 네이티브 사용자 인터페이스를 웹으로 가져오는 데 도움이 될 뿐만 아니라 또한 비디오 편집, 이미지 인식, 게임 등과 같은 작업을 위해 최고의 성능을 필요로 하는 웹 애플리케이션을 위한 강력한 인에이블러입니다. WebAssembly용 Qt는 이러한 요구를 완벽하게 충족하며 잠시 동안 기술 프리뷰 상태였습니다. 우리의 현재 초점은 사용자가 기대하는 품질로 제공할 수 있도록 테스트 기능을 다듬는 것입니다. 다시 한 번, 우리는 이에 관한 더 많은 소식을 곧 제공할 것입니다.

우리는 Qt 6용 Qt Quick Compiler 의 도입에 대해 광범위하게 이야기했습니다. 참고로 이 게시물을 제품 관리 와 개발자가 읽어보세요( 1 2 3 ). 올해 동안 작업이 계속되고 몇 가지 추가 기능이 계획됩니다. 다른 이점 중에서 Qt Quick Compiler는 바인딩 평가에 소요되는 시간을 줄이고 성능 향상을 위해 일반적으로 QML을 C++에 더 가깝게 만듭니다.
프레임워크에 약간만 닿아도 QML 언어 서버 는모든 구문 분석, 리팩토링 및 린트 작업을 위한 중심 도구를 제공하는 지원이 곧 제공될 예정입니다. Qt Creator 통합을 시작으로 Visual Studio AddIn 및 Visual Studio Code에도 LSP를 가져오는 것을 목표로 합니다.
개발 환경 설정과 다른 프로그래밍 언어 학습을 단순화하기 위해 패키지 관리자가 점점 더 중요해지고 있습니다. Conan을 지원하고 Conan을 통해 Qt를 가져오기 위한 우리의 계획에 대해 읽었을 것입니다 . IDE 관점에서도 워크플로를 간소화하는 방법에 대한 추가 업데이트가 곧 제공될 예정입니다.
Qt는 데스크탑에서 시작했으며 항상 우리 제품의 중요한 구성 요소로 간주했습니다. 많은 개발자들이 데스크탑에서 시작하는 것뿐만 아니라, Qt Creator, Qt Design Studio, Squish 등과 같은 도구를 최고 품질로 작동하도록 유지하려면 개 먹이를 주는 것이 중요합니다.
지난 몇 년 동안 도입된 대부분의 기능은 데스크톱 및 모바일 사용에도 도움이 되었지만 때로는 해당 부문에 대한 변경 사항 및 추가 사항을 구체적으로 강조하는 것이 더 나을 수도 있습니다. 따라서 이 섹션에 있는 내용을 살펴보겠습니다. 모든 주요 플랫폼, Windows 및 macOS
에 대한 새로운 운영 체제 버전이 출시되었습니다 . Windows 11 동안대부분 개발 관점의 반복이며 Qt는 지속적인 지원을 처리했으며 응용 프로그램이 최신 Windows뿐만 아니라 Windows 10에서도 작동하는지 확인했습니다. 스타일 변경 사항에 대한 더욱 심화된 업데이트가 구현됩니다. 우리는 ARM에서 Windows를 지원하기 위해 열심히 노력해 왔으며 시장에 출시되는 새 하드웨어와 함께 더 많은 노력을 기울일 것입니다. Apple 하드웨어 측면에서 가장 큰 변화는 분명히 Apple Silicon(M1) 아키텍처 의 도입입니다 . 초기부터 Qt 6은 최신 macOS 플랫폼에 대한 배포를 지원하도록 업데이트되었습니다.
기존 기능 및 모듈 세트를 지원하는 것 외에도 많은 새로운 기능이 제공됩니다. TreeViews 및 Calendar 와 같은 구성 요소모바일 또는 임베디드에 비해 데스크탑 플랫폼에서 훨씬 더 많이 사용됩니다. 결과적으로 그리고 귀하의 피드백을 기반으로 6.3부터 Qt 빠른 제어에 도입 및 통합되었습니다. 또한 Qt Quick Dialogs 는 데스크탑 플랫폼에서의 사용에 더 적합하도록 항상 업데이트되고 있습니다. 예를 들어 TextEdit와 같은 큰 텍스트 구성 요소의 표시와 관련하여 많은 최적화가 이루어졌습니다. HiDPI 시나리오 관리를 위한 업데이트가 이미 있었지만 특히 다른 분수 스케일을 포함하여 설정이 다른 여러 모니터가 있는 시나리오에서 이 분야를 더욱 개선할 것입니다.
Qt 위젯데스크톱 플랫폼에서 널리 사용되며 항상 올바르게 실행되도록 지원됩니다. 또한 Qt Widgets와 Qt Quick을 연결하면 두 세계의 장점을 모두 사용할 수 있습니다. 이것은 주로 QQuickWidget 주변에서 발생합니다. QQuickWidget 을 사용하면 Qt Quick 요소를 위젯 기반 데스크탑 애플리케이션에 포함할 수 있습니다. 주요 사용 사례는 애니메이션, 하드웨어 가속, 셰이더가 프로젝트에 통합된 최신 사용자 인터페이스 기능을 갖는 것입니다. 또한 사용자 인터페이스를 원활하게 변환할 수 있습니다. 드물게 프로젝트가 전체 애플리케이션을 한 번에 점검할 수 있습니다. 우리는 또한 RHI 및 기타 요소에 대해 연구하고 있지만 현재로서는 구체적으로 공유할 수 있는 사항이 없습니다.
모바일 쪽에서는 최신 버전의 Android 및 iOS 가 지원됩니다. 최신 버전을 가져오는 동시에 호환성을 유지하려는 버전을 결정하는 것은 무리일 수 있습니다. 또한 최근 상점 요구 사항이 변경되고 있으며 Qt는 이에 적응할 것입니다.
스타일 은 응용 프로그램이 기본적으로 느껴지도록 하는 중요한 요소입니다. 따라서 우리는 업데이트된 iOS 스타일을 작업하는 동시에 Android용 머티리얼 스타일과 Windows용 유니버설도 업데이트하고 있습니다.
또한 추가 요구 사항으로 인해 모바일 플랫폼의 개발이 복잡해질 수 있습니다. 현재 권한 관리 를 개선하는 방법을 연구 중입니다.일반적으로. 플랫폼은 정적인 설명에서 보다 동적인 접근 방식으로 발전했습니다. 각 사용자는 앱이 한 번 또는 정기적으로 가져야 하는 권한을 세분화된 방식으로 런타임에 결정할 수 있습니다. 이것은 여기에 도움이 되는 적절한 API에 대한 Qt의 투자에 대한 좋은 쇼케이스입니다. 인증은 조사해야 할 또 다른 잠재적 요소입니다.
때로는 플랫폼별 API가 필요하지 않은 플랫폼별 기능이 필요합니다. 특히 Android의 경우 한 가지 예는 다양한 종류의 백그라운드 작업 및 서비스를 처리하는 방법입니다. 현재 Qt 서비스 구현 은 추가 사용 사례를 지원하도록 확장될 것입니다. 리치 콘텐츠 삽입 , 새로운 Splash Screen API 와 같은 Android 플랫폼에 대한 최신 추가 기능 뿐만 아니라범위 지정 저장소에 대한 IME 개선 및 지원은 다음 버전의 Qt에서 작업하고 제공될 예정입니다.
임베디드 솔루션의 경우 Qt는 항상 최신 참조 장치가 추가되는지 확인합니다. Qt가 직접 또는 전체 공급업체 생태계를 통해 지원하는 하드웨어 포트폴리오는 도전의 여지가 없으며 Qt는 이를 계속 유지할 것입니다. QBSP 의 참조 목록에 최신 추가 사항NXP i.MX8M(Plus), STM32MP1, Nvidia Jetson AGX Xavier, Renesas RZ/G2L 및 Renesas E3, H3, M3에 대한 Qt 6 지원이 추가되었습니다. 우리의 목표는 예를 들어 i.MX8 및 기타 참조 플랫폼에서와 같이 Raspberry Pi를 사용하여 메이커 장면에 대해 동일한 간단한 워크플로를 만드는 것입니다. 또한 기본 운영 체제는 제품 설계에서 중요한 역할을 할 수 있습니다. QNX, Integrity 및 기타 실시간 운영 체제를 지원하는 Qt는 사용자에게 완전한 유연성을 제공합니다. 마지막으로 WebOS 플랫폼 에 대한 지원을 발표했으며 계속 지원하고 있습니다 .
이 외에도 임베디드 제품에 Qt를 선택하는 것이 UI 전용 결정인 경우는 거의 없습니다. Qt는 전체 미들웨어 계층을 구현하기 위한 많은 모듈을 제공합니다. Qt 인터페이스 프레임워크이전에 Qt IVI로 알려졌던 를 사용하면 백엔드와 프론트엔드 로직을 명확하게 분리하여 서비스와 백엔드를 사용자 인터페이스에 연결할 수 있습니다. 역사적으로 자동차 부문에 중점을 두었지만 이제 우리는 일반적으로 임베디드 플랫폼으로 기능 세트를 확장하고 있으며 우리의 예제와 문서에서도 이를 강조할 것입니다.
드물게 임베디드 제품이 하나의 중앙 UI 애플리케이션을 중심으로 설계되었습니다. 대신 현대적인 디자인을 통해 여러 애플리케이션을 관리할 수 있습니다. Qt Wayland 컴포지터 뿐만 아니라 Qt Application Manager 도 여기 에서 큰 도움이 될 것입니다.
자동차 분야에서는 Android Automotive 에 대한 지원도 확대 및 개선하고 있습니다.(AAOS 및 GAS 모두). Qt Android Automotive는 개발자에게 더 나은 경험을 제공하기 위해 다양한 Android API와 계속 통합됩니다. Qt Android 애플리케이션에 타사 Android 활동을 포함할 수 있는 새로운 QML 구성 요소를 기술 미리 보기로 출시합니다. 또한 타사 음악/비디오 앱과 상호 작용하고 Qt Android 앱 내에서 알림을 읽고 상호 작용할 수 있는 사용하기 쉬운 API 및 구성 요소를 제공하기 위해 적극적으로 노력하고 있습니다. 최신 데모를 확인하는 것을 잊지 마십시오.
https://youtu.be/bXGF-E-B_gI
일부 영역에서는 안전이 스택에서 고려해야 하는 중요한 자산입니다. Qt Safe Renderer 를 사용하면 ISO 26262에 따라 인증을 받은 안전 필수 요소를 쉽게 통합할 수 있습니다 . 올해 후반에 다른 기능 중에서 터치 및 다중 디스플레이 지원과 같은 기능을 제공할 예정입니다.
Qt는 뛰어난 그래픽 사용자 경험과 인터페이스를 만드는 기능으로 주로 알려져 있고 사용됩니다. 지금까지 이 기사의 초점은 이와 관련된 많은(전부는 아님) 요소였습니다. 그러나 물론 RHI에서 시작하여 Qt Design Studio를 사용하는 디자이너를 위한 최신 UI 기능 및 도구를 위한 고급 API에 이르기까지 하드웨어 가속을 통해 렌더링하는 전체 그래픽 파이프라인에도 상당한 투자가 이루어지고 있습니다.
Qt Quick 3D를 사용하면 고유한 워크플로를 통해 현대적인 애플리케이션과 장치를 만들 수 있습니다. Qt 6.0의 초기 도입 이후 파티클, 인스턴스 렌더링, 메쉬 모핑 등과 같은 많은 기능을 추가했습니다. Qt 6.3은 실시간 반사, 리소스 관리 API 및 새로운 효과를 가져올 것입니다. 그러나 우리는 여기서 멈추지 않을 것입니다.
https://youtu.be/1ZWSo-GbaoI
고객 피드백을 기반으로 물리 통합 및 충돌 감지에 대한 추가 개발이 이루어집니다. 셰이더 생성 및 렌더링 향상과 관련된 도구를 개선할 것입니다. 또한 엔진은 잠재적인 병목 현상을 정확히 찾아내고 제품 성능을 최적화하기 위해 프로젝트 분석과 관련된 추가 기능을 얻습니다.
이러한 모든 기능은 디자이너와 개발자를 위한 추가 도구로 둘러싸여 있습니다.
처음에 언급했듯이 Qt는 광범위한 개발 프로젝트를 다루고 제품 생성의 모든 측면을 위한 추가 도구로 프레임워크를 지원합니다.
더 많은 항목이 있으므로 더 논의할 시간이 있었으면 합니다. 예를 들어, 우리는 클라우드 연결 에 대해 이야기하지 않았습니다 . 일반적으로 우리는 Qt 애플리케이션을 클라우드 솔루션에 연결하는 프로세스를 단순화하는 것을 목표로 합니다. 요즘에는 모든 제품 발명이 연결된 우선 접근 방식을 취하기 때문입니다. Qt에서는 이미 모든 것이 가능하지만 워크플로를 더욱 단순화할 수 있는 몇 가지 아이디어가 있습니다. Qt HTTP Server 완성, 더 나은 프로토콜 버퍼, gRPC 통합 등과 같은 개별 항목은 향후 게시할 자체 기사를 받을 자격이 있습니다.
오늘 우리는 Python용 Qt 와 같은 다른 언어로 바인딩 및 제공하는 Qt의 다른 각도에 대해 논의할 시간이 없었습니다 . 당연히 이 문서에서 언급된 모든 기능도 암시적으로 지원됩니다. 그러나 또한 Python 세계에서 개발을 보다 자연스럽게 느낄 수 있는 방법에 대한 몇 가지 계획이 있습니다. Python은 임베디드에서도 더 많은 관심을 받고 있으며 Qt가 처음부터 어떻게 거기에 있을 수 있는지 연구하고 있습니다.
마지막으로, Qt Company는 우리의 핵심 제품에 인접하고 사용자가 배포 후 설정을 할 수 있도록 도와주는 신제품도 개발 중입니다. 한 가지 예는 최근 출시된 Qt 디지털 광고 플랫폼 입니다.
보시다시피, Qt에는 앞으로 많은 것들이 있으며 우리는 여러분과 함께 이 길을 가게 되어 기쁩니다.