RAD스튜디오 버전별 주요 업데이트

IDE 업데이트

□ C++용 Win64 디버깅과 링커

10.4에서 새로운 윈도우즈 64비트 C++ 디버거가 도입되었습니다. LLDB를 기반으로한 이 디버거는 64비트 애플리케이션을 디버깅할때 안정성이 크게 향상되었으며, 추가된 핵심 기능으로는 C++ 및 델파이 문자열과 std::vector, std::map 등을 포함한 STL 컬렉션의 평가 및 검사등을 지원합니다. 또한 앱의 디버그 정보 생성이 확장가능한 새로운 포맷을 사용합니다. 최정적으로 더 안정적이고 다양한 기능의 디버깅 경험과 디버깅 타임에서의 더욱 파워풀해진 검사와 평가를 제공합니다.

 

 

□ 겟잇 패키지 매니저 향상

IDE의 겟잇 패키지 매니저가 10.4에서 대폭 개선되었습니다. 각 패키지에 출시 일자를 표시하고, 출시 일자별로 정렬해 표시할 수 있습니다. 설치된 패키지에 대한 새로운 필터링 옵션, 업데이트 구독 고객만을 위한 독점 컨텐츠, 업데이트가 가능한 패치 표시 등등.

 

 

□ 온라인과 오프라인 설치를 위한 통합 설치 프로그램

10.4에서는 겟잇 설치 기술을 이용한 통합 설치 프로그램을 도입했습니다. 온라인(인터넷 연결) 설치와 오프라인 설치(ISO 이용)를 모두 지원하는 단일 설치 프로그램을 제공합니다. 이제 온라인과 오프라인 설치 모두에서 초기 설정(언어와 플랫폼 선택, 언어 지원, 도움말/리소스 등) 가능하고, 언제든지 옵션을 추가하거나 삭제할 수 있습니다.

□ 코드 에디터 상태 표시줄에 생산성 기능 추가

코드 에디터의 상태 표시줄에는 파일의 코드페이지, 폰트 크기를 표시하고 설정을 포함한 몇가지 생산성 향상이 추가되었습니다.

 

□ TCustomTitleBar 컨트롤

IDE 및 핵심 대화상자에는 새로운 TCustomTitleBar 컨트롤을 이용해 제목 표시줄에 검색 및 설정하는 기능을 구현해 네이티브 룩앤필과 윈도우즈 DWM 동작이 가능합니다.

 

□ 1,000개가 넘는 품질 및 성능 향상 기능들

RAD 스튜디오 10.4는 현재 1,000개가 넘는 품질 및 성능 향상을 제공하는 가장 훌륭한 품질의 릴리즈  중 하나입니다. 여기에는 퀄리티 포털에 고객이 직접 등록해준 700건이 넘는 문제에 대한 수정사항이 포함되어 있습니다.

  • 비주얼 라이브 바인딩: 향상된 성능과 새로운 기능
  • 앱테더링 품질
  • 병렬 프로그래밍 라이브러리 품질 향상 및 개선
  • C++ 툴체인(컾아릴러, 링커, 디버거)
  • RTL 성능 향상 및 새로운 작은 기능들(버퍼링, FreeAndNil)
  • FireDAC 드라이버 업데이트 (SQLite 등)
  • HTTP와 REST 그리고 클라우드와 SOAP 클라이언트 개선

VCL 업데이트

□ VCL 스타일의 High-DPI 지원

10.4에서 VCL 스타일 아키텍처가 High-DPI 및 4K 모니터를 지원하도록 크게 개선되었습니다. VCL 폼의 모든 UI 컨트롤들은 폼이 표시되는 모니터의 적절한 해상도에 맞게 자동으로 조정됩니다.

High-DPI 스타일을 지원하도록 스타일 API가 전면 수정되었습니다. 각 UI 요소는 다중-스케일 버전의 라이브러리를 선택해 어떤 DPI로든 확장되어, UI 요소를 모든 모니터의 해상도에 맞춰 선명하게 표현할 수 있습니다.

 

□ High DPI 이미지 리스트 지원

High DPI(일명 HiDPI)는 디스플레이에 몇 배 더 많아진 픽셀 수 만큼 몇 배로 더 선명하게 보여주는 표시방식입니다. 고해상도 모니터 출시에 따라 윈도우와 실행되는 애플리케이션의 해상도 배율 설정이 이슈가 될 수 있습니다. RAD스튜디오는 이미 10 시애틀(2015년 출시) 버전 부터 발빠르게 이를 지원하고 있습니다.

10.3 리오에서는 버튼, 툴바, 팝업메뉴 등에 포함되는 이미지를 담는 이미지 리스트에 High DPI가 적용되어 UI컨트롤, 글자 등에 더블어 이미지도 높은 해상도록 선명하게 표현하는 기술이 추가되었습니다.

□ 새로운 High-DPI 스타일

새로운 High-DPI 스타일 모드를 지원하도록 기본 제공 및 프리미엄 VCL 스타일을 업데이트해, 어떤 모니터에서도 멋지게 표시되는 애플리케이션을 제작할 수 있습니다.

 

□ VCL 개별 컨트롤(Per-Control) 스타일링

VCL 개발자들은 이제 단일 애플리케이션의 서로 다른 폼에서 다양한 VCL 스타일을 사용할 수 있습니다. 또한 같은 폼안의 서로다른 비주얼 컨트롤마다 다른 스타일을 적용할 수도 있습니다. 물론 여전히 기본 플랫폼 테마를 사용해 모든 요소에 일괄 스타일을 적용도 지원합니다. 이것은 스타일링의 유연성을 높이는 것 외에도 스타일이 지정된 VCL 애플리케이션에서 써드파티 컨트롤등에 대해 스타일을 적용하지 않을 수도 있습니다.

 

□ 새로운 VCL 컴포넌트: 엣지 브라우저 컨트롤

10.4에는 Chromium 기반의 Microsoft의 새로운 Edge WebView2를 사용하는 새로운 VCL 웹브라우저 컴포넌트인 TEdgeBrowser를 포함합니다. Internet Explorer 기반의 기존 TWebBrowser에 비해 훨씬 더 현대적이고 안전한 HTML 엔진을 제공합니다.

또한, 기존 TWebBrowser 컴포넌트는 시스템에서 사용 가능한 브라우저에 따라 Internet Explorer 또는 엣지 브라우저로 표시하도록 확장되었습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/463351

 

□ 새로운 VCL 컴포넌트: TTitleBarPanel과 CustomTiltleBar

새로운 TTitleBarPanel 컨트롤 및 TForm.CustomTitleBar 속성을 사용해 VCL 폼의 기본 윈도우즈 제목 표시줄을 사용자 정의할 수 있습니다. 윈도우즈 제목 표시줄에 VCL 컨트롤을 배치하거나, 아이콘 및 캡션과 같은 항목의 색상등을 제어하거나, 최소화/최대화/닫기 버튼 근처에 새로운 시스템 버튼을 추가하거나, 또는 제목 표시줄을 완전히 새롭게 사용자 정의 할 수 있습니다. 10.4의 새로운 제목 표시줄 지원은 요즘 가장 인기있는 워드프로세서 및 웹브라우저 애플리케이션과 유사한 현대적이고 고급스러운 제목 표시줄을 작성할 수 있습니다.

 

□ 새로운 VCL 컴포넌트: 다중 해상도를 지원하는 이미지 컴포넌트

다중 해상도 및 DPI 스케일링을 지원하는 새로운 TVirtualImage 컴포넌트입니다. 기존 TImage 컴포넌트를 교체해 고품질 이미지 스케일링 및 디스플레이를 지원합니다.

 

□ 윈도우즈 API 업데이트

RAD 스튜디오가 제공하는 뛰어나 플랫폼 통합을 더욱 향상하기 위해 많은 API 선언을 개선하고 추가했습니다.

 

RTL 업데이트

□ 툴체인 성능 및 품질 개선

  • Dinkumware의 STL 다수 개선
  • 주요 RTL 메소드 및 영역 개선, 공통 C++ 라이브러리와 호환성 개선
  • CMake 지원에 대한 여러가지 개선
  • 다수의 품질 및 안정성 개선

 

 

□ 향상된 병렬(페러럴) 프로그래밍 라이브러리 지원

병렬 프로그래밍 라이브러리(PPL: Parallel Programming Library)는 최신 멀티코어 CPU에서 병렬로 작업을 실행할 수 있는 기능을 제공합니다. 10.4에서는 PPL 라이브러리의 성능과 안정성이 크게 향상되었습니다.

 

□ FireDAC 데이터베이스 엑세스 라이브러리

10.4에서는 FireDAC 데이터베이스 엑세스 라이브러리의 일부가 개선되었고, FireBird, PostgreSQL 및 SQLite 용 드라이버가 업데이트되었습니다. SQLite 임베디드 데이터베이스의 경우, 연결 방식을 정적(static) 및 동적(dynamic) 연결 중 하나를 선택할 수 있습니다.

 

□ 라이브 바인딩 성능 및 기능 향상

10.4에서 VCL과 파이어몽키 애플리케이션 모두에서 Visual LiveBindings 아키텍처와 구현의 큰 향상이 있었으며 특히 성능 향상에 중점을 두었습니다. 결과적으로 라이브 바인딩 작업이 훨씬 더 빨라졌습니다.

언어와 컴파일러 업데이트

□ 델파이의 새로운 언어 기능: 커스텀 관리 레코드

델파이 언어에 추가된 주요 문법으로, 델파이 레코드 타입은 이제 초기화(Initialization), 종료(finalization), 그리고 복사 연산자를 직접 작성할 수 있습니다. 개발자들은 레코드 생성, 복사, 파괴하는 각 단계에서 실행될 코드를 직접 작성해 지정할 수 있습니다. 이 추가기능을 잘 활용한다면 클래스보다 더 효과적으로 사용할 수도 있습니다..

 

□ 통합 메모리 관리

델파이 메모리 관리는 지원하는 모든 플랫폼(모바일, 데스크톱 및 서버)에서 전통적인 객체 메모리 관리 방식으로 일원화되었습니다. 자동 참조카운트(ARC: Automatic Reference Counting)에 비해 기존 코드와의 호환성이 높아지고, 컴포넌트, 라이브러리, 애플리케이션 개발에 필요한 코드도 간결해집니다. ARC 모델은 모든 플랫폼 지원을 위한 문자열 관리와 인터페이스 타입 참조를 위해 유지됩니다.


C++의 경우, 이러한 변화는 C++에서 델파이 스타일의 클래스 생성과 삭제가 다른 C++ 클래스의 힙-할당과 같이 일반적인 메모리 관리로 통일되므로 복잡성이 크게 줄어들게 될것입니다.

 

□ C++ 라이브러리 지원 확장

10.4에서는 인기 있는 수많은 C++ 라이브러리를 C++빌더로 이식해 C++빌더에서 사용할 수 있도록 최적화했습니다. libSIMDpp, NemTode, SDL 등을 포함하며 겟잇 패키지 매니저를 통해 다운로드할 수 있습니다. Boost 1.70도 다운로드 받을 수 있습니다.

 

FMX(파이어몽키) 업데이트

□ macOS와 iOS에서 Metal 드라이버 GPU 지원

macOS 플랫폼(델파이)에서는 기존 Quartz API와 OpenGL(애플의 지원중단) 대신 Metal API 기반으로 애플리케이션을 빌드할 수 있습니다. 파이어몽키 Metal 지원은 화면 렌더링 성능을 향상 시키고, 향후 Apple의 마이그레이션 요구에 유연하게 대응할 수 있을 것입니다. 10.4에서는 iOS(델파이와 C++빌더)도 Metal API를 지원합니다.

 

 

□ 최신 iOS와 애플의 새로운 시작화면 스토리보드 요구사항 해결

RAD 스튜디오 10.4를 사용하는 개발자는 최신 iOS SDK 지원 뿐아니라, 내장 IDE 지원을 통해 Apple의 새로운 시작화면 스토리보드 요구사항을 해결할 수도 있습니다.

 

□ Tmemo 컴포넌트에 대한 새로운 FMX 구현 기능 추가

이번 출시에는 윈도우즈 플랫폼에서 스타일 기반 TMemo 컴포넌트에 대해 새로운 FMX 구현이 포함되어, IME 지원 및 추가 기능이 향상되었습니다.

 

□ 개발도구에 FMXLinux 통합 (엔터프라이즈, 아키텍트 에디션 한정)

엔터프라이즈 및 아키텍트 에디션 고객은 FMXLinux 통합 기능을 통해 리눅스 GUI 애플리케이션을 만들수 있습니다.

 

□ iOS용 TWebBrowser 컨트롤

iOS용 TWebBrowser 컨트롤은 WKWebView API를 이용 구현됩니다.

 

□ 맥OS용 미디어 플레이어 컨트롤

macOS의 미디어 플레이어 컨트롤은 AVFoundation을 이용해 구현됩니다.

 

플랫폼에서 항상 네이티브하게 작동되는 컨트롤들은 TWebBrowserTMediaPlayerTBannerAdTMapView가 있습니다 (이 컨트롤들은 파이어몽키(FMX)가 아닌 기존 안드로이드 OS에서 렌더링 됩니다). 10.3 RIO 버전부터 필요에 따라 플랫폼에서 네이티브로 작동하는 새로운 4가지 컨트롤들을 선보입니다. 

IDE 업데이트

10.3 리오는 장기적인 사용성과 가시성이 좋은 깔끔하고 우아한 UI 제공을 목표로 업데이트했습니다. 이 결과, 여러 업데이트 항목들이 추가되어 레이아웃이 대폭 개선되었습니다. 보기에 더 깔끔하고 더 현대적인 화면을 제공합니다.

□ [10.3.3] 엔터프라이즈 커넥터 무상 제공

약 70여개 이상의 SaaS, 세일즈포스, 구글 드라이브 등 다양한 솔루션을 DB 연결하듯이 개발한 프로그램에 바로 연동할 수 있는 솔루션인 엔터프라이즈 커넥터가 무상 제공됩니다. 단 엔터프라이즈 or 아키텍트 에디션을 사용중이고, 업데이트 서브스크립션 계약중인 분들께만 무상 제공됩니다 (1년 구독 라이선스).

 

 

□ [10.3.2] C++ 코드인사이트: 코드 완성 기능(Code Completion)

Clang에 대한 코드 완성 기능을 완벽 지원합니다. 코드 완성은 . , ->, :: 그리고 헤더 부문의 #include <> 구문에 < 입력 시 자동 호출됩니다.
Ctrl + 스페이스바를 눌러서 수동으로 불러올 수도 있습니다. 현재 위치에서 사용 가능한 항목의 목록을 자동으로 표시해주고, 원하는 항목을 화살표 버튼 + 엔터키를 이용해 IDE에 적용할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 파라미터 완성

메소드가 있으면 IDE가 파라미터 이름과 타입을 확인할 수 있도록 알려줍니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 오류 인사이트

IDE 기능 중 하나로 오류가 있는 부분을 빨간색 줄로 표시해줍니다. 컴파일 하기 전에 에디터 상에서 알려주는 기능입니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 툴팁 인사이트와 코드 브라우징

툴팁 인사이트는 심볼(symbol)에 마우스를 올려놓으면 선언을 보여주는 기능입니다.
코드 브라우징은 선언된 부분으로 자동 이동할 수 있는 기능입니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

 

□ [10.3.2] 코딩 & 디자인 화면의 빠른 전환

10.3.2에서는 특히 빠른 속도와 부드러운 화면 전환에 초점을 맞추었습니다. 훨씬 자연스럽게 동작하는 모습을 확인할 수 있습니다.

 

□ [10.3.2] 더욱 좋아진 퀄리티 향상

리포팅된 400개 이상의 이슈들을 해소했습니다. 그 중에서도 두드러지는 부분들은 다음과 같습니다.

  • 툴바 모음: 사용자가 배치해놓은 위치에 툴바가 위치합니다.
  • IDE 사이즈 조절이 가능합니다. 최소화, 최대화 모두 가능합니다.
  • 레이아웃 변경: 예를 들어 디버깅 실행 시, IDE를 디버그 레이아웃으로 변경할 수 있습니다.
  • 타이틀 바의 컨트롤들: 예를 들어 IDE 메인 화면, 옵션 대화 상자의 검색창 등이 있습니다.

 

□ 북마크(Bookmarks) 기능

소스코드가 많고 규모가 큰 프로젝트더라도 IDE에서 바로 원하는 코드 위치를 찾아 작업할 수 있어, 불필요한 작업 시간이 크게 줄어듭니다. 이 기능은 10.3.1을 받은 고객이라면 겟잇패키지매니저(GetIt Package Manager)를 통해 다운로드 받아 사용할 수 있습니다. 코드 편집기에서 이전에 작업했던 위치를 보여주는 기능입니다. ‘바로가기’를 설정하면 그 위치로 바로 이동할 수 있는 새로운 북마크가 만들어집니다. 생성한 모든 북마크들은 북마크 화면에서 모두 확인할 수 있습니다. 그리고 구문 강조 표시와 작업 전부 정보에 대해서도 확인할 수 있습니다. 또한 ‘이동하기(Escape)’ 버튼을 이용해 이동할 위치들을 모아놓은 캐럿 북마크(Caret Bookmarks) 기능을 제공합니다.

 

□ 네비게이터 기능

델파이에서 지능형 검색을 활용해 유닛의 어떤 위치로든 바로 이동할 수 있는 기능입니다. Ctrl + G를 누르고 타이핑하면, 유즈절(uses clause), 메소드, 속성(property), 속성 백업 필드 또는 속성 메소드, 다른 코드 요소르 이동할 수 있습니다. 그리고 델파이와 C++ 모두에서 ‘미니맵’ 기능을 사용할 수 있습니다. 이 기능은 코드 미니어쳐 버전을 보여주는 사이드 패널입니다.

 

□ 선택된 화면 모습의 변화

제목 표시줄이 더 커져 메뉴명을 한 눈에 파악할 수 있고 클릭이나 이동이 더 쉬워졌습니다. ‘프로젝트’ 화면의 툴 바를 한 줄로 정리했습니다. 화면에 보이지 않는 메뉴들은 드롭다운 형식으로 표시해 이전과 동일한 기능을 사용할 수 있습니다. 전체적인 화면 너비와 높이가 넓어져 메뉴 파악이 더욱 쉬워졌습니다.

 

□ 데스크탑 레이아웃, 테마, IDE 인사이트 컨트롤

다른 도구들과 마찬가지로 도구 모음에 위치해있던 컨트롤들이 10.3 버전부터는 제목 표시줄로 위치가 이동했습니다. 

 

□ 코드 에디터 탭

탭 메뉴명을 더 구분하기 쉽도록 바뀌었습니다. 탭 사이즈를 좀 더 크게 만들어 클릭하기 쉬워졌습니다. 각 탭은 X 버튼을 클릭해 닫을 수 있습니다. 

 

□ 선택된 메뉴를 명확하게 표시

클릭한 항목이 포함된 메인 메뉴를 진한 파란색으로 나타내 클릭된 영역을 확실하게 알아볼 수 있습니다. 

 

□ VCL 디자이너

클사용되지 않는 상당(top), 좌측(left)의 크기 조절을 위한 드래그 버튼이 사라졌습니다. 이전에는 7×7 px 사이즈의 사각형을 클릭해 크기를 조정해야 했지만, 이 크기도 더 커졌습니다. 드래그 바는 다른 VCL 컨트롤과 마찬가지로 마우스오버에 반응합니다.

 

□ 새로운 밝은 테마와 어두운 테마

밝은 테마(Light Theme)

10.3의 밝은 테마가 바뀌었습니다. 다양한 파란색 음영을 사용했으며, 회색을 주로 사용했던 이전 버전들과 달리 쾌적한 시각 효과를 제공합니다.

 

 

 

 

 

 

 

어두운 테마(Dark Theme)

10.2.2 버전에서 처음 선보였던 어두운 테마에도 변화가 있습니다. 기존과 비슷한 색상을 사용하지만 새로운 밝은 테마에서 아이디어를 얻어 색상에 변화가 있었고 이를 통해 눈의 피로도를 줄여주고 장시간 사용하기 좋습니다. 

VCL 업데이트

10.3 리오는 High DPI를 지원하는 이미지 리스트가 추가되어, 컨트롤 내의 이미지들을 다양한 해상도로 더욱 선명하게 표현할 수 있게 되었습니다.

 

□ VCL용 새로운 스타일 10종 지원

새로운 스타일들을 활용해 애플리케이션 룩앤필을 빠르게 업데이트 할 수 있습니다. 제공되는 스타일들을 원하는대로 바꾸어 사용할 수도 있습니다. 10.3.1에서는 새로운 스타일이 총 15 종류가 제공되는데, 그 중 5가지는 FMX(파이어몽키)용이고 10가지는 VCL용입니다. FMX 스타일은 윈도우, 맥OS, 안드로이드, iOS 모두에서 활용할 수 있는 멀티-디바이스 스타일이고, VCL 스타일은 윈도우에서 활용 가능합니다. 그리고 비트맵 스타일 디자이너 템플릿도 포함되어 있습니다.

새로운 스타일들은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 이용해 다운로드 받아 사용할 수 있습니다.

새롭게 추가된 10 종류의 VCL 스타일들:

  • VCL Style – Calypso
  • VCL Style – Flat UI Light
  • VCL Style – Material Oxford Blue
  • VCL Style – Puerto Rico
  • VCL Style – Stellar
  • VCL Style – Wedgewood Light
  • VCL Style – Windows 10 – Black Pearl
  • VCL Style – Windows 10 – Blue Whale
  • VCL Style – Windows 10 – Clear Day
  • VCL Style – Windows 10 – Malibu

 

□ High DPI 이미지 리스트 지원

High DPI(일명 HiDPI)는 디스플레이에 몇 배 더 많아진 픽셀 수 만큼 몇 배로 더 선명하게 보여주는 표시방식입니다. 고해상도 모니터 출시에 따라 윈도우와 실행되는 애플리케이션의 해상도 배율 설정이 이슈가 될 수 있습니다. RAD스튜디오는 이미 10 시애틀(2015년 출시) 버전 부터 발빠르게 이를 지원하고 있습니다.

10.3 리오에서는 버튼, 툴바, 팝업메뉴 등에 포함되는 이미지를 담는 이미지 리스트에 High DPI가 적용되어 UI컨트롤, 글자 등에 더블어 이미지도 높은 해상도록 선명하게 표현하는 기술이 추가되었습니다.

 

□ TImageCollection

TImageCollection 컨포넌트는 이미지 목록별로 다양한 해상도의 이미지를 등록할 수 있는 컴포넌트입니다. TImageCollection Editor를 통해 다양한 해상도의 이미지를 등록/편집/삭제할 수 있습니다. 

 

□ TVirtualImageList

탭이미지 컬렉션(TImageCollection)에 등록된 다중해상도 이미지를 이미지 리스트로 제공하기 위해 TVirtualImageList 컴포넌트를 사용합니다. TVirtualImageList는 TCustomImageList를 상속받아 구현되었으며, 응용 프로그램이 구동되는 윈도우의 디스플레이 배율에 맞게 이미지 컬렉션의 이미지를 제공하는 역할을 합니다. 

 

□ High DPI가 적용된 이미지 리스트

위 그림은 각각 TImageList와 TVirtualImageList (+TImageCollection)을 적용한 툴바(TToolbar) 화면입니다. 100%, 150%, 225% 배율 적용 시 배율에 따라 적절한 해상도의 이미지로 선명하게 표현된 것을 확인할 수 있습니다. 

RTL 업데이트

10.3 리오는 RTL 측면에서 JSON 및 HTTP에 대한 표준 호환성 향상 등 상당한 성능 향상이 있습니다.

 

□ 데이터 컬렉션(Data Structure) 증가 정책 변경

여러가지 데이터 컬렉션(TStringList, TList, TList<T>, TQueue<T>, TSTack<T>)는 데이터가 가득차 확장이 필요하면 이전보다 2배의 크기로 크기를 증가했습니다. 이제 좀 더 유연하게 성장하도록 증가 정책이 변경되었습니다.

새로운 증가 정책은 공유 전역 함수(System.pas, GrowCollection)에 구현되며, SetGrowCollectionFunc 함수를 통해 사용자 정의 할 수 있습니다.

 

□ TStringBuilder 변경

성능 향상을 위해 일부 변경되었습니다. 메모리 증가 정책과 유사한 변경 및 중복 코드 제거 등의 전반적인 정리등을 진행했습니다.

TStringBuilder 열거형이 최적화 되었습니다. 

 

□ JSON 개선

정확성과 성능을 위해 JSON  처리 및 분석 향상이 크게 진행됐습니다

 

□ 기타 RTL 변경

10.3 이전에는 디버그 정보를 활성화 하면 컴파일러 최적화가 비활성화 되었습니다. 업데이트된 Win32 컴파일러에서 이제 최적화된 빌드를 디버깅할 수 있습니다. 

 

□ 앱 테더링 긴 문자열 전송

앱테더링에 사용되는 TTetheringAppProfile 클래스의 SendString / AsString 작업의 현재 1,400문자 길이에 제한되어 있었습니다. 10.3 에서는 다음 변경 사항 및 추가 기능을 통해 호환성을 유지하며 긴 문자열 처리가 가능하게 되었습니다.

  • 새로 추가된 TTetheringAppProfile의 SendLongString 메소드는 문자열과 스트림을 사용합니다.
  • TResourceValue.AsString은 받은 스트림에서 문자열을 반환합니다. 만약 없다면 반은 문자열 값을 반환합니다. 이는 일반 문자열과 긴 문자열에 대한 대응입니다.

문자열 길이가 1.3 KB보다 작은 경우 TTetheringAppProfile.SendString을 사용하고, 더 길다면 TTetheringAppProfile.SendLongString을 사용하기 바랍니다. 

 

□ TMemIniFile 최적화

RAD 스튜디오 10.3 리오는 TMemIniFile 구현이 최적화 되었습니다. TMemIniFile 읽기와 생성(constructing)이 10~25배 빨라지고 메모리 사용량도 절반으로 감소했습니다. TMemIniFile 작업도 향상되어 이전 구현에 비해 50~100 고속화 되었습니다.

또한 10.3에서는 다음 두가지 오버로드 생성자가 추가되고 스트림에서 TMemIniFile을 가져올 수 있습니다.

  • TMemIniFile.Create(Stream)
  • TMemIniFile.Create(Stream, UseLocale)

언어와 컴파일러 업데이트

10.3 리오는 특히 델파이와 C++빌더 모두 언어에서 큰 변화가 있습니다. 델파이는 전통적인 방식을 뛰어넘는 인라인 변수 선언 지원과 더불어 타입 추론을 지원하고 C++빌더는 19년 현재 최신 표준인 C++17을 공식 지원합니다.

 

□ [10.3.2] 델파이 맥OS 64-bit 애플리케이션 개발 지원

LLVM 컴파일러 인프라를 기반으로 하는 새로운 맥OS 64-bit 플랫폼용 델파이 컴파일러가 추가되었습니다. 지금까지 지원되었던 맥OS, 윈도우, 리눅스와 같은 다른 모든 델파이 데스크탑/서버 플랫폼과 동일한 비ARC 형식입니다.

 

□ [10.3.2] C++17, 윈도우 64-bit 지원

최신 C++표준인 C++17을 사용하는 훌륭한 컴파일러가 제공됩니다. 최신 언어 기능들을 활용할 수 있습니다.
C++17이 모든 윈도우를 완벽 지원하면서, 최신 C++ 언어 기능들을 Win32와 Win64에서 모두 활용할 수 있습니다.

 

□ 인라인 변수 선언

델파이 언어가 10.3 버전부터 로컬 변수 선언에 있어 훨씬 더 융통적으로 변합니다. 매우 핵심적인 기능 변화라고 볼 수 있습니다. 이번 업데이트는 본래 파스칼(Pascal) 언어의 핵심 개념을 깨는 변화이기는 합니다. 하지만 이 변화는 많은 장점을 제공하며, 이를 통해 불필요한 코드를 줄일 수 있습니다.

 

□ 타입 추론

인라인으로 선언 된 변수는 타입 추론의 장점이 있습니다. 직접 할당하는 인라인 변수는 형식을 지정할 필요가 없습니다. 이것은 거기에 대입 된 값에서 형식을 유추 할 수 있기 때문입니다.

 

□ Clang 업그레이드: C++17 지원

C++빌더 및 RAD 스튜디오 10.3은 윈도우 32비트용 C++17을 지원하는 업데이트된 Clang 확장 컴파일러가 도입되었습니다. 점진적인 컴파일러 업그레이드의 일환으로, 최신 C++ 언어 기능을 사용해 더욱 강력하고 간결한 코드를 작성하고, 써드파티 C++ 라이브러리를 사용해 더 강력한 애플리케이션을 구축할 수 있습니다.

 

□ Win64에서 연산 성능 향상

많은 C ++ 수학 함수가 새롭게 구현되었습니다. 이러한 방법은 이전 버전에 비해 평균적으로 약 2 배 빨라졌습니다. 

 

□ C++ 코드 보완 개선

C++ Win32 코드 보완 업데이트로 확장된 Clang 기반의 C++ 컴파일러를 사용합니다. 이로써 이전보다 훨씬 빠른 C++ 코드 보완이 가능합니다.

 

□ C++ 오류 인사이트

오류 인사이트(오류 항목 아래에 빨간색 밑줄을 그어 편집기에서 코드의 문제를 미리 확인할 수 있는 기능)가 C++빌더에서도 가능해졌습니다. 새로운 Win32용 Clang 확장 컴파일러를 사용하는 경우 이 기능이 제공됩니다.

FMX(파이어몽키) 업데이트

□ [10.3.3] 델파이 안드로이드 64비트 지원

구글 플레이 스토어 지원과 새로운 64비트 지원 요구 사항이 해결되었습니다. 완벽한 안드로이드 앱 번들 지원으로 안드로이드 64비트 앱을 구글 플레이 스토어에 등록하세요.

 

 

□ [10.3.3] iOS 13, 맥OS 카탈리나 지원

10.3.3으로 iOS 13(델파이, C++빌더 모두)과 맥OS 카탈리나(델파이만) 용 앱을 개발할 수 있습니다. 다크 테마를 완벽 지원하는 iOS 13 앱을 지금 앱스토어에 배포하세요. 공증 지원까지 갖춘 64비트 맥OS 카탈리나 델파이 앱도 맥OS 앱 스토어에 배포할 수 있습니다.

 

 

□ iOS12, iPhone X 시리즈 디바이스 지원

10.3.1 버전부터 최신 iOS와 아이폰 디바이스들을 지원합니다. 이는 2019년 3월부터 시행될 애플(Apple)사의 앱스토어 요구 사항에 대응하기 위해서 꼭 필요한 지원 기능입니다. 새로운 애플사의 요구사항은 ‘앱은 iOS 12.1 SDK로 구축될 것’, ‘아이폰XS Max, 아이패드 Pro를 완벽 지원할 것’ 두 가지 입니다.

이번에 업데이트된 내용은 다음과 같습니다.

  • 새 이미지 크기를 보여주는 Info.plist 업데이트
  • IDE에서 앱 아이콘, 스플래시 화면 크기 추가 지원 (아이폰/아이패드)
  • 아이패드 Pro에 대한 네이티브 해상도 지원

 

 

□ FMX용 새로운 스타일 5종 지원

새로운 스타일들을 활용해 애플리케이션 룩앤필을 빠르게 업데이트 할 수 있습니다. 제공되는 스타일들을 원하는대로 바꾸어 사용할 수도 있습니다. 10.3.1에서는 새로운 스타일이 총 15 종류가 제공되는데, 그 중 5가지는 FMX(파이어몽키)용이고 10가지는 VCL용입니다. FMX 스타일은 윈도우, 맥OS, 안드로이드, iOS 모두에서 활용할 수 있는 멀티-디바이스 스타일이고, VCL 스타일은 윈도우에서 활용 가능합니다. 그리고 비트맵 스타일 디자이너 템플릿도 포함되어 있습니다.

새로운 스타일들은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 이용해 다운로드 받아 사용할 수 있습니다.

새롭게 추가된 5 종류의 FMX 스타일들:

  • FMX Style – Calypso
  • FMX Style – Material Oxford Blue
  • FMX Style – Puerto Rico
  • FMX Style – Stellar
  • FMX Style – Wedgewood Light

 

□ 안드로이드 API 레벨 26이상 지원

RAD 스튜디오 10.3 리오는 안드로이드 API 레벨 26을 공식 지원합니다.

구글은 보안과 성능에 최적화된 최신 API 기반으로 앱을 만들고, 사용자가 혜택을 누릴 수 있도록, 플레이 스토어에 등록 시 안드로이드 레벨 26 이상을 요구하도록 정책을 변경했습니다.(신규앱 등록 2018년 8월 부터, 기존앱 업데이트 2018년 11월 부터).

RAD 스튜디오 10.3 리오는 최신 SDK와 NDK를 지원하고, 매니페스트에 적절한 API레벨을 설정할 수 있도록 업데이트 되었습니다.

또한 최신 API에서 변경된 권한 모델등을 제공하도록 업데이트 되었습니다.

 

□ 새로운 안드로이드 런타임 권한 모델 지원

     

          [기존 권한 요청 방식]                  [새로운 권한 요청 방식]

안드로이드 API의 최신버전은 런타임 시 권한을 요청하는 매커니즘으로 변경되었습니다.

기존의 권한 모델은 설치 시 전체 권한을 승인하는 방식이었습니다. 새로운 권한 모델은 기능 사용 시 개별 권한을 묻는 방식으로, 사용자는 기능 별 허용 및 거부가 가능해졌습니다.

위 변경에 따라 10.3 리오에서는 사용 권한을 요청하는 메소드가 추가되었고, 그 결과를 콜백 메소드로 받아 기능을 수행할 수 있도록 업데이트 되었습니다. 

 

□ 안드로이드 Z-Order

XE7 버전에서 iOS용 ControlType 속성이 처음 적용되었습니다. 그리고 10 시애틀 버전에서는 이 속성이 윈도우용까지 확장되었습니다. 플랫폼 설정을 변환하면 파이어몽키 컨트롤이 런타임 시 플랫폼 네이티브 컨트롤로 전환됩니다.

10.3 RIO에서는 ControlType 속성이 안드로이드 용으로까지 확장됩니다. 그리고 이로써 얻게될 두 가지 중요한 이점을 소개하고자 합니다: 더욱 네이티브한 컨트롤과 수정된 Z-Order가 그것입니다. 

 

□ 다양한 안드로이드 네이티브 컨트롤

        [TSwitch 컴포넌트]

플랫폼에서 항상 네이티브하게 작동되는 컨트롤들은 TWebBrowserTMediaPlayerTBannerAdTMapView가 있습니다 (이 컨트롤들은 파이어몽키(FMX)가 아닌 기존 안드로이드 OS에서 렌더링 됩니다). 10.3 RIO 버전부터 필요에 따라 플랫폼에서 네이티브로 작동하는 새로운 4가지 컨트롤들을 선보입니다. 

RAD서버 업데이트

10.3 리오는 RAD 서버의 성능향상과 엔드 포인트 연동을 더 쉽고 유연하게 작성할 수 있는 특성등이 추가되었습니다.

□ [10.3.3] RAD서버 도커(Docker) 배포 기능 제공

기본 제공되는 스크립트로 RAD서버 도커(Docker)를 배포하고 구성할 수 있는 기능이 제공됩니다. 도커 허브(Docker Hub)에서 호스팅되는 리눅스의 RAD서버용 도커 이미지도 제공됩니다. 바로 사용할 수 있는 형태입니다! 이제 도커에서 RAD서버를 배포하는 작업이 정말 간편해집니다.

 

□ [10.3.2] 새로운 RAD서버 관리 콘솔

새로운 기능면에서, UI와 사용 기능상의 업그레이드 외에도 REST 디버거 통합 버전이 제공된다는 점이 가장 획기적입니다. 이제 특정 RAD 서버 인스턴스에서 사용가능한 엔드포인트를 리스트로 정리하여 볼 수 있습니다.

 

□ 재설계한 RAD서버 콘솔 UI

RAD서버 콘솔 UI가 변경되었습니다. 이제 RAD서버 API 분석을 한 눈에 확인할 수 있고, Ext JS 프레임워크로 마이그레이션 할 수도 있습니다. 또한 RAD서버 푸시 알림이 더 많은 디바이스에 지원됩니다. 추가 분석 데이터에 대한 지원도 제공됩니다. 이 기능은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 통해 다운로드 받아 사용할 수 있습니다.

 

□ 엔드포인트 메소드와 Content-Type, Accept 연동 특성 추가

커스텀 리소스에 요청 시 URL과 HTTP 메소드에만 의존하지 않고, HTTP 해더의 Accept 및 Cotnet-Type에 따라 엔드 포인트 메소드를 연결하는 특성이 추가되었습니다. 이제 동일한 URL 및 HTTP 메소드라도 Accept 및 Content-Type에 따라 다른 동작을 구현할 수 있습니다.

  • EndpointProduce : GET 메소드의 엔드 포인트에 추가할 수 있습니다. HTTP 해더의 Accept 항목 값과 일치하는 MIME 타입/파일 확장자를 파라메터로 지정합니다.
  • EndpointConsume : PUT / POST / PATCH 메소드의 엔드 포인트에 추가할 수 있습니다. HTTP 해더의 Content-Type 항목 값과 일치하는 MIME 타입/파일 확장자를 파라메터로 지정합니다.

 

□ 커스텀 메소드와 HTTP 메소드 연결 특성 추가

RAD 서버의 이전 버전에서는 HTTP 메소드(GET, POST 등)의 엔드 포인트 메소드 이름과 매핑되었습니다.

이제 위 방식 외에도 다른이름의 메소드를 엔드 포인트 메소드로 매핑할 수 있는 EndpointMethod 특성이 추가되었습니다. 

 

□ 요청 처리를 클래스 또는 컴포넌트로 위임

RAD 서버의 사용자 리소스에 발생한 요청을 필드로 지정한 다른 자원 모듈(클래스 / 컴포넌트)로 위임하는 기능이 추가되었습니다.

위임받는 클래스는 IEMSEndpointPublisher 인터페이스를 구현해야 합니다. 

 

□ JSON 처리를 위한 헬퍼 컴포넌트 추가

컴포넌트에 요청 처리를 위임하는 새로운 기능을 이용해 RAD 스튜디오 10.3 리오에서 JSON 처리를 단순화 하는 새로운 컴포넌트가 추가되었습니다.

  • TEMSFileResource: 경로 및 파일이름 속성에 지정된 파일로 요청 처리
  • TEMDDataSetResource: DataSet 속성에 설정된 데이터셋의 데이터를 JSON으로 처리, 페이징 파라메터 지원 

IDE 업데이트

□ [10.2.2] 다크 테마와 라이트 테마 지원

IDE에서 기존의 회색 테마 외에도 다크테마를 추가했습니다. 야간 작업 또는 오랫동안 작업 시 눈의 피로를 줄일 수 있습니다.

IDE 데스크탑 툴바에서 “Dark” 또는 “Light”로 테마를 변경할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/438339

 

□ [10.2.2] 기본 컴포넌트 아이콘 변경

기본 컴포넌트의 아이콘들이 전체적으로 심플하고 모던하게 변경되었습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/438339

 

□ [10.2] View 메뉴 분류별로 재배치 개선

View 메뉴가 분류별로 재배치 되어 더 빠르게 메뉴를 찾을 수 있습니다.
(Object Inspector, Structure, Messages 등의 도구 창은 Tool Windows 하위 메뉴로 이동되었으며 새 Editor 하위 메뉴에는 편집기의 컨텍스트 메뉴에있는 여러 가지 편집기와 유용한 기능이 포함되어 있습니다).

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/431419

 

□ [10.2] 코드 에디터 탭에서 “Show In Explorer” 기능 추가

코드 에디터 탭의 컨텍스트 메뉴에 “Show in Explorer” 메뉴가 추가되어, 편집 중인 파일 위치의 탐색기를 바로 열 수 있습니다. 프로젝트 매니저의 Show In Explorer 메뉴는 프로젝트 파일 위치의 탐색기를 바로 열 수 있습니다.

 

□ [10.2] 기타 개발환경 개선사항

  • 코드 인사이트(InSight)와 코드 완성(Completion)은 이제 정적 및 동적 배열을 올바르게 처리합니다.
  • 서로 다른 DPI에서 폼을 디자인하고 오픈 하는것에 대한 지원이 향상되었습니다.
  • 프로젝트의 매니페스트 파일 지원은 이제 Invoker, Highest Available 및 Require Administrator와 같은 몇 가지 실행 수준을 지원하며 UI 액세스 플래그도 설정할 수 있습니다.
  • IDE 로딩 속도는 네트워크 부하가 높거나 네트워크 연결이 끊긴 상태에서도 빠릅니다.
  • 100 개가 넘는 프로젝트가 있는 대형 프로젝트 그룹을 지원하는 기능이 개선되었습니다.
  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/431419

VCL 업데이트

□ [10.2.2] 새로운 VCL 컨트롤

TCardPanel

TCardPanel은 여러장의 카드를 관리하는 패널 컴포넌트입니다. 한번에 하나의 카드만 표시되며, 메소드(PreviousCard, NextCard, ActiveCard, ActiveCardIndex)를 호출해 카드를 전환할 수 있습니다. 각 카드는 다른 컨트롤들을 포함하는 컨테이너 역할을 합니다.

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\CardPanel

 

TStackPanel

TStackPanel은 컨트롤들을 담는 컨테이너로, 컨트롤들의 자체 크기를 유지하며 수직 또는 수평으로 정렬할 수 있습니다.컨트롤 모두를 대상으로 위치(왼쪽, 중안, 오른쪽, 채우기)를 지정할수도, 개별 컨트롤 마다 위치를 지정할 수 있습니다.

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\StackPanel

 

TDatePicker / TTimePicker

윈도우 10 룩앤필을 제공하는 새로운 형식의 날짜 및 시간 선택 컨트롤입니다. 날짜 포맷(DateFormat)과 시간 포맷(TimeFormat)을 직접 지정할 수 있어 원하는 날짜 형식으로 제공가능합니다. 드롭다운 메뉴의 갯수 지정, OK/Cancel 버튼 표시, 분단위 증가량 등을 사용자 지정할 수 있습니다. 이 컴포넌트들은 자체적으로 윈도우즈10 룩앤필을 제공하며, 윈도우 7과 윈도우 8에서도 동일한 윈도우즈10 룩앤필을 지원합니다.

 

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\DateTimePicker

자세히 보기: https://tech.devgear.co.kr/delphi_news/438358

 

□ 고 해상도 지원

  • 폼의 경계는 WM_DPICHANGED 메시지에 대한 응답으로 올바르게 조정됩니다. 즉, 폼의 상단 / 왼쪽 위치 뿐만 아니라 TForm.AutoScroll이 올바르게 작동됩니다.
  • 시스템에 해상도가 다른 여러 모니터가 있는 경우 폼이 올바른 배율로 열립니다.
  • 다른 해상도를 사용하는 폼간에 이동 시 TTabSheet 및 TPageControl, 탭 시트 또는 페이지 컨트롤에 배치 된 ActionMainMenuBar 와 VCL 메뉴 (메인 메뉴와 팝업 메뉴)가 높은 해상도 모니터에 올바르게 표시됩니다.
  • TStatusBar의 높이가 정확합니다.
  • 메시지 대화 상자의 아이콘 크기가 올바르게 조정되었습니다.
  • 서로 해상도 모니터 간에 폼을 이동할 때 고정 된 컨트롤 위치에 유지됩니다.
  • TCheckBox 및 TRadioButton가 정확히 그려집니다.
  • 폼 상속에서 몇 가지 이슈가 해결되었습니다. 계승된 폼에서 ParentFont가 true로 설정된 패널 위에 컨트롤들이 배치 될 때 정확한 폰트 사이즈가 사용됩니다. TListView 컬럼 사이즈는 상속 된 폼에서 그대로 유지됩니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/431449

RTL 업데이트

□ [10.2] HTTP 클라이언트

64비트 리눅스에서 네이티브 HTTP 클라이언트 라이브러리(libCurl)를 지원합니다. HTTP 클라이언트에서 개선 된 비동기 지원

 

□ 64 비트 리눅스를위한 RTL 지원

RAD Studio 10.2 도쿄는 표준 시스템 함수, 스트림 및 IOUtils 유닛을 사용하여 리눅스파일 시스템을 지원합니다. 또한 64비트 리눅스에 대한 표준 RTL 경로 기능 지원을 제공합니다.

 

□ RAD 서버 다중 테넌시 지원

다중 테넌시 지원을 사용하면 하나의 RAD 서버 데이터베이스 연결을 사용하는 단일 RAD 서버 인스턴스가 분리된 다중의 테넌트를 지원할 수 있습니다.

 

 

□ 앱 테더링 개선 사항

  • TTetheringManager과 TTetheringProfile 의 새로운 SynchronizeEvents 속성은 메인 스레드와의 이벤트 동기화를 제어합니다. 따라서 이제 관리자와 프로파일은 이벤트 핸들러가 메인 스레드에서 실행되는지 여부를 제어 할 수 있습니다.
  • 로그 필터링 향상 : 더 많은 로깅 메시지가 추가되었습니다.
  • 새로 추가된 TTetheringAppProfile의 SendLongString 메소드는 문자열과 스트림을 사용합니다.
  • TResourceValue.AsString은 받은 스트림에서 문자열을 반환합니다. 만약 없다면 반은 문자열 값을 반환합니다. 이는 일반 문자열과 긴 문자열에 대한 대응입니다.

□ 추가되거나 기능 향상된 해시 함수
System.Hash 유닛에 정의 되어 있는 다음 메소드들은 스트림 또는 문자열을 입력 매개 변수로 허용합니다.

  • THashMD5.GetHashString.
  • THashMD5.GetHashBytes
  • THashSHA1.GetHashString
  • THashSHA1.GetHashBytes
  • THashSHA2.GetHashString
  • THashSHA2.GetHashBytes

System.Hash 유닛에는 파일에서 해시 다이제스트를 얻을 수 있는 다음과 같은 새로운 메소드가 있습니다.

  • THashMD5.GetHashBytesFromFile
  • THashMD5.GetHashStringFromFile
  • THashSHA1.GetHashBytesFromFile
  • THashSHA1.GetHashStringFromFile
  • THashSHA2.GetHashBytesFromFile
  • THashSHA2.GetHashStringFromFile

자세히 보기: https://tech.devgear.co.kr/delphi_news/431498

 

□ 파이어 버드 개선 사항

Direct I / O 백업 기능 지원을 위해 새로운 Direct 속성 추가

 

□ MySQL 기능 향상

MySQL v 5.7 지원

 

MariaDB v 5.5 이상 지원. FireDAC의 MySQL 노드를 사용하여 MariaDB에 연결합니다.

 

최신 MySQL 버전 5.6.x 및 5.7.x와의 호환성.

 

이전 API (MySQL 텍스트 프로토콜)와 PS API (MySQL prepared statements 프로토콜) 모두 지원됩니다.

  • TFDResourceOptions.DirectExecute 속성을 사용하여 API를 선택할 수 있습니다.
  • 사용중인 API에 따라 TFDCommand.CommandIntf.CliObj 속성은 TMySQLStatement 또는 TMySQLResult 개체를 반환합니다.

내부 BLOB 스트리밍 지원 (smOpenWrite 모드에서만).

연결 트랜잭션 상태와 TFDConnection.InTransaction 속성의 동기화 개선. 이 등록 정보를 사용하면 연결 트랜잭션이 현재 진행 중인지 여부를 결정할 수 있습니다.

 

□ TFDMemTable이 개선

  • TFDMemTable 컴포넌트를 개선하여 설계 시점에 TFDMemTable 데이터 셋을 편집할 수 있습니다.
  • TFDMemTable 컨텍스트 메뉴에 컴포넌트 데이터를 편집하여 양식에 저장할 수있는 Edit DataSet … 항목을 제공합니다. 데이터는 런타임에서도 사용할 수 있습니다.(참고 : Edit DataSet …을 사용하기 전에 TFDMemTable.FieldDefs에 대한 필드 정의를 지정하거나 영구 필드를 만들어야합니다).  

 

□ 기타 FireDAC 변경 사항

  • TFDDataMove 컴포넌트는 삭제되어 툴 팔레트에서 더 이상 사용할 수 없습니다. 대신 TFDBatchMove 컴포넌트를 사용하십시오.( 시작 > 프로그램 > Embarcadero RAD Studio 10.2 Tokyo > Samples 를 선택하고 Object Pascal\Comp Layer\TFDBatchMove\DataMove_Deprecated 폴더에 있는 FireDAC.Comp.DataMove.pas를 사용하십시오.
  • TFDBatchMove가 최적화되었습니다. 그 결과로 TFDBatchMoveMappingItem의 DestValue 및 SourceValue 속성을 더 이상 사용할 수 없습니다.
  • TFDMSAccessService는 이제 Microsoft Access 2007 이상을 지원합니다.

 

□ TDBImage JPEG과 PNG 그래픽형식 지원

  • VCL의 TDBImage가 Bitmap 뿐 아니라, JPEG과 PNG 그래픽 형식을 지원합니다.
  • 기타 다른 그래픽 포맷을 지원하려면 OnFindGraphicClass 이벤트의 GraphicClass 파라메터에 그래픽 처리 클래스를 매핑해 추가 지원할 수 있습니다.

 

□ Blob Field Display 옵션 강화

  • Blob 형식의 데이터를 클래스 형식 또는 문자열로 표현할 수 있습니다.
  • DisplayValue로 표시형식을, DisplayWidth로 표시 길이를 지정할 수 있습니다.

 

□ 기타 데이터베이스 개선

  • TField 클래스에 대한 직접 GUID 액세스.

 

자세히 보기: https://tech.devgear.co.kr/delphi_news/431411

FMX(파이어몽키) 업데이트

□ iOS의 새로운 시스템 상태 표시 줄 옵션

iOS의 시스템 상태 표시줄 동작을 변경하기위한 SystemStatusBar.BackgroundColor 및 SystemStatusBar.Visibility와 같은 두 가지 새로운 속성이 TForm에 추가되었습니다.

 

□ TMultiView의 개선된 기능

  • Enabled 속성을 사용하여 TMultiView와의 사용자 상호 작용을 해제합니다.
  • BorderOptions 속성이 추가되어 테두리 모양을 관리할 수 있습니다.
  • 도킹 패널 모드에 Top과 Bottom 속성이 추가되었습니다.

 

 

□ 안드로이드에서 델파이와 자바 쓰레드 통일

델파이 코드가 이제 자바 UI 쓰레드에서 실행되어, 델파이로 자바 UI 코드 작성 시 쓰레드 동기화가 필요 없습니다. CallUIThread 메소드는 이제 더이상 사용되지 않습니다.

10.1 베를린 이전 procedure ToastMessage(const AValue: string);
begin
CallInUiThread(procedure
begin
TJToast.JavaClass.makeText(SharedActivityContext, StrToJCharSequence(AValue), TJToast.JavaClass.LENGTH_SHORT).show;
end);
end;
10.2 도쿄 이후 procedure ToastMessage(const AValue: string);
begin
TJToast.JavaClass.makeText(SharedActivityContext, StrToJCharSequence(AValue), TJToast.JavaClass.LENGTH_SHORT).show;
end;

□ TBitmap, TCanvas 및 TContext3D에 대한 멀티 스레딩 지원

  • TBitmap : 완벽한 멀티 스레딩 지원. 동기화없이 모든 스레드에서 생성, 삭제 및 수정할 수 있습니다.
  • TCanvas : 한 번에 여러 스레드에서 사용되는 것을 지원하지만 내부적으로 직렬화됩니다.
  • TContext3D : 한 번에 여러 스레드에서 사용되는 것을 지원하지만 내부적으로 직렬화됩니다.

 

□ 기타 FireMonkey 변경 사항

  • TagObject 및 TagString 속성을 TListViewItem에 추가했습니다.
  • TStringGrid 이벤트를 다시 노출했습니다
  • TText, TStyleTextObject, TActiveStyleTextObject, TTabStyleTextObject 및 TButtonStyleTextObject와 같은 텍스트 컨트롤에 ICaption에 대한 지원이 추가되었습니다.
  • Windows 용 TWebBrowser에 대한 FMX 개선
  • TEdit에 CharCase 속성이 추가되었습니다.
  • FMX.Platform.Android.pas 향상
  • TForm의 Release 메소드는 더 이상 사용되지 않습니다.
  • 안드로이드에서 ShowModal의 변경.

 

□ 새롭게 추가된 파이어몽키스타일

맥 및 안드로이드용 새로운 파이어모몽키 스타일이 추가되었습니다. 다음 위치에서 새로운 스타일을 확인 할 수 있습니다.

  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\MacOS\macOSgraphite.fsf
  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\Android\AndroidWearDarkBlue.fsf

자세히 보기: https://tech.devgear.co.kr/delphi_news/431389

RAD서버 업데이트

□ [10.2] RAD 서버 싱글 사이트 라이선스 제공

10.2.2에서 RAD 서버 싱글 사이트 라이선스를 제공합니다.(RAD 스튜디오, 델파이, C++빌더 엔터프라이즈 및 아키텍트 에디션에만 포함)

RAD 서버는 즉시 사용가능한 턴키방식의 미들웨어 서버입니다. 주요 기능으로 범용적인 REST API 개발해 서비스 할 수 있으며, 엔터프라이즈 데이터베이스 제공, 통합 미들웨어 역할 수행, IoT 엣지웨어(사물인터넷 정보 수집) 등의 기능과 서비스를 모니터링 및 관리할 수 있는 웹 콘솔 서비스를 제공합니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/438369

IDE 업데이트

□ [10.1] 폼 디자이너 분리

델파이7 등과 같이 폼 디자이너 화면 여러개를 동시에 보고, 편집할 수 있습니다. 이제 멀티 모니터를 더욱 적극적으로 활용할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/421500

 

□ [10.1] 설치 작업 개선

설치 시 개발에 필요한 플랫폼과 언어를 선택할 수 있습니다.

 

□ [10.1] ListView 레이아웃을 입맛에 맞게 변경할 수 있습니다.

ListView는 미리 정의된 외관(Appearence)을 이용해 항목을 구성하기 때문에, 많은 데이터를 아주 빠르게 스크롤 할 수 있습니다.

RAD스튜디오 10.1 베를린에서는 ListView 아이템 디자이너가 개선되며, ListView 아이템의 레이아웃을 변경할 수 있는 디자인 모드가 추가되었습니다.

 

□ [10.1] Dynamic Apprearance

ListView 컴포넌트의 ItemAppearance 속성 중 DynamicAppearance를 선택하면, 원하는 ListView 아이템의 하위 객체를 추가할 수 있습니다. 추가된 항목은 DesignMode에서 위치 및 크기 등을 조정해 원하는 레이아웃을 구성할 수 있습니다.

 

□ [10.1] Dialog 사용법이 상당 부분 변경되고, 기능이 추가되었습니다.

메소드 변경

많이 사용하는 MessageDlg, ShowMessage, InputBox, InputQuery 등이 새로운 메소드로 많이 변경되었습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/422020

 

□ [10.1] 버퍼를 이용한 파일 스트림 – TBufferedFileStream

TBufferedFileStream을 이용해 TFileStream 보다 더 빠르게 파일을 읽고 쓸 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/422069

 

□ [10.1] GetIt 속성 관리

새로운 프로젝트 옵션 페이지에서 GetIt(겟잇) 속성을 관리할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/422726

VCL 업데이트

□ [10.1] 리본 컨트롤을 겟잇 패키지 매니저에서 설치할 수 있습니다.

리본 컨트롤 설치

겟잇 패키지 매니저에서 리본 컨트롤(Ribbon Control)을 검색해 다운로드 받을 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/422522

 

□ [10.1.2] 윈도우 10 캘린더 활용

추가된 캘린더 컴포넌트(2종)을 이용해 윈도우10 룩앤필을 제공할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/427301

□ [10.1] 리본 컨트롤을 겟잇 패키지 매니저에서 설치할 수 있습니다.

리본 컨트롤 설치

겟잇 패키지 매니저에서 리본 컨트롤(Ribbon Control)을 검색해 다운로드 받을 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/422522

□ [10.1] 윈도우 태스크바 알림 뱃지 제어

자세히 보기: https://tech.devgear.co.kr/delphi_news/425596
□ [10.1.2] 윈도우 10 캘린더 활용

추가된 캘린더 컴포넌트(2종)을 이용해 윈도우10 룩앤필을 제공할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/427301

 

□ [10.1.2] 퀵에디트(Quick Edit) 메뉴 사용하기

새로 추가된 퀵 에디트 메뉴를 통해 손쉽고, 빠르게 화면을 제작할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/427298

 

□ [10.1.2] 윈도우 10 스타일 3종(다크블루, 그린, 퍼플)

자세히 보기: https://tech.devgear.co.kr/delphi_news/427295

 

□ [10.1.2] 데스크탑 브릿지 기술을 이용해 윈도우 10 스토어에 배포

자세히 보기: https://tech.devgear.co.kr/delphi_news/427290

RTL 업데이트

□ [10.1] 윈도우10에서 블루투스 LE와 비콘 지원

새로운 WinRT 블루투스 API가 제공되어, 윈도우10에서도 블루투스LE와 비콘을 활용할 수 있습니다:

  • 데이터 값이 들어오면 알려줄 BLE 디바이스 스캔 기능
  • BLE를 통해 들어오는 데이터 값 송수신 기능
  • iBeacon, AltBeacon 포맷 사용 기능

자세히 보기: https://tech.devgear.co.kr/delphi_news/422711

 

□ [10.1] Eddystone Beacon 포맷 지원

아래 3개 타입을 활용할 수 있습니다:

  • EddystoneUID: 네임스페이스(Namespace)와 인스턴스(Instance)로 구성된 식별자 정보 제공
  • EddystoneURL: 압축된 형식의 URL 제공
  • EddystoneTLM: 비콘 동작 상태 관련 원격 정보 제공

자세히 보기: https://tech.devgear.co.kr/delphi_news/422713

FMX(파이어몽키) 업데이트

□ [10.1] FireUI 앱 미리보기

개발중인 앱 화면을 각 디바이스에서 실시간으로 확인하며 개발할 수 있습니다.

 

□ [10.1] 연락처 컴포넌트(TAddressBook)

  • 연락처 컴포넌트로 연락처 정보를 읽고 쓸 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/421632

 

□ [10.1] 스타일 디자이너(Style Designer) 개선

스타일 디자이너에 미리보기, 클립보드 기능 등이 강화되어 더욱 사용하기 편리해졌습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/421717

 

 

□ [10.1.1] iOS 32비트 디버거 핫픽스

iOS 32 비트 타겟으로 빌드 후 디버깅이 되지 않는 이슈를 해결합니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/428450

 

□ [10.1.1] TGrid 네이티브 렌더링 지원 – iOS

TGrid의 ControlType 속성을 변경해 스타일과 플랫폼 렌더링을 선택할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/425609

 

□ [10.1.1] 갤럭시 S7 Edge(안드로이드 6.0.1) 디버깅 이슈 해소

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/422527

IDE 업데이트

□ [10] IDE 메모리 개선

RAD Studio IDE 메모리가 개선되어 더 큰 프로젝트를 더 빠르게 코딩하고 컴파일 할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/416097

 

□ [10] 고해상도 모니터와 멀티 모니터 지원

4K 고해상도 모니터를 지원하고 모니터 당 DPI로 멀티 모니터를 지원합니다.

 

□ [10] 멀티-모니터 지원 강화

이제 여러개의 모니터를 활용해 개발환경 레이아웃을 구축해 개발 효율성을 극대화 할 수 있습니다.

 

□ [10] IDE 생산성 기능 추가

20개 이상의 IDE 생산성 기능들이 내장되어 생산성, 품질, 안정성이 향상됩니다.

 

□ [10] 겟잇(GetIt) 라이브러리 확장

비콘펜스(BeaconFence)등 새로운 오픈 소스와 컴포넌트 패키지를 IDE에서 직접 확보할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/415122

 

□ [10] 저장되지 않은 파일 자동 복구

시스템 충돌 등으로 비정상적으로 IDE가 종료되는 경우 IDE는 사용자의 저장하지 않은 작업을 복구를 지원합니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/416073

VCL 업데이트

□ [10] 윈도우 10 VCL 컨트롤

윈도우 10 용 새 VCL 컨트롤을 이용해 윈도우 10 UI를 손쉽게 적용할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/414834

 

□ [10] TSplitView

윈도우 10 시작 메뉴에서 사용하는 일명 햄버거 메뉴 형태 구현에 용이합니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/414834

 

□ [10] 윈도우 10 스타일 지원

VCL 스타일을 적용해 1분만에 윈도우 10 최신신 룩앤필을 적용할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/414848

□ [10] 공용 대화 상자와 웹브라우저에도 VCL 스타일 적용

VCL 스타일이 공용 대화 상자와 웹브라우저에도 적용됩니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/414855

□ [10] 윈도우 10 서비스 활용
알림, 계약(Contract) 등의 윈도우 10 플랫폼 서비스 기능을 컴포넌트와 API로 쉽게 활용할 수 있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/414873

RTL 업데이트

□ [10] JSON과 BSON 스트림

JSON 데이터를 DOM 모델이 아닌 스트리밍 모델로 읽고, 쓸수있습니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/416103

 

□ [10] FireDAC NoSQL 드라이버로 몽고DB 지원

몽고DB는 가장 인기 있는 NoSQL 데이터베이스입니다. FireDAC 기능 향상에는 API 맵핑, 데이터 처리, JSON과 BSON 포맷 지원 (새 RTL) 등이 있습니다.
자세히 보기: https://tech.devgear.co.kr/delphi_news/415015

FMX(파이어몽키) 업데이트

□ [10] iOS 64-bit 디버깅

iOS 64-bit와 유니버설 앱을 만들고 디바이스에서 디버깅할 수 있습니다.

 

□ [10] 파이어몽키 스타일 디자이너 강화

  • 내장된 파이어몽키 스타일 디자이너가 강화되어, 스타일북 컴포넌트에 여러가지 플랫폼 스타일을 담을 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/415102

 

□ [10] 윈도우 10용 FMX 강화

롤오버 되는 컨트롤 힌트, TEdit, TMemo 용 플랫폼 네이티브 렌더링, ZOrder 강화, 멀티뷰 업데이트(윈도우 10 용), 스위치 컨트롤, 이미지를 지원하는 클립보드 등

자세히 보기: https://tech.devgear.co.kr/delphi_news/415125

 

 

□ [10] 파이어몽키 네이티브 윈도우 컨트롤

TEdit, TMemo, TPresentedScrollBox(신규) 세가지 컨트롤을 파이어몽키 스타일과 네이티브로 렌더링 할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/415125

 

□ [10] 안드로이드 서비스 개발

안드로이드 서비스 앱을 개발하면 안드로이드 OS에서 백그라운드 작업을 실행할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/415128

 

□ [10] 안드로이드 인텐트 강화
모든 종류의 인텐트 액션을 처리할 수 있도록 애플리케이션을 등록할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/416115

 

□ [10] TBeaconDevice 컴포넌트
블루투스 LE를 지원하는 장치(디바이스)에서 비콘의 광고데이터 신호를 발생할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/416134

 

□ [10-핫픽스] OS X 앨 캐피탠(El Capita: 10.11)에 맞춘 PAServer 핫픽스
이번 핫픽스에서는 OSX 엘 캐피탠 지원과 iOS SDK 호환성 업데이트가 추가되었습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/415998

언어와 컴파일러 업데이트

□ [10] 표준 C++11이 Win32에도 적용

여러분의 기존 윈도우 앱을 C++11으로 가져오세요. C++11을 준수하는 새 32-bit 윈도우 컴파일러와 클래식 bcc32 컴파일러를 같은 윈도우 프로젝트에서 손쉽게 바꾸어 반영할 수 있습니다.