RAD Studio 10.3 Rio

12. 2. 2019

Sdílet

 Autor: Fotolia
V listopadu roku 2018 uvolnila firma Embarcadero Technologies novou verzi vývojového nástroje RAD Studio, jež nese číslo 10.3 a označení Rio. V Praze ho představil 28. listopadu v Městské knihovně v Praze pan Marco Cantù, autor řady knih o Delphi a Object Pascalu a produktový manažer Delphi a RAD Studia.

Stejně jako předchozí verze umožňuje Rio vyvíjet aplikace pro 32bitová a 64bitová Windows, Mac OS X, iOS a Android, a to i pro několik z těchto prostředí zároveň.  Základní součásti, které lze získat i samostatně, jsou C++Builder a Delphi, vývojová prostředí pro jazyky C++ a Object Pascal. Poznamenejme, že vyšší edice Delphi umožňují vyvíjet aplikace i pro Linux.

Edice

Podobně jako předchozí verze, i RAD Studio 10.3 Rio je k dispozici v edicích Professional, Enterprise a Architect (nejsilnější). Lze pochopitelně zakoupit i samostatně Delphi nebo C++ Builder, a to ve stejných edicích jako celé RAD Studio.

Samostatný C++Builder a samostatné Delphi jsou k dispozici také v edici Community, která je zdarma. Pokud jde o funkčnost a nástroje, je tato edice totožná s komerční edicí Professional, nelze ji však používat pro komerční vývoj (přesněji, mohou ji používat začínající podnikatelé s obratem, který nepřesáhne ekvivalent 5000 dolarů ročně, a samozřejmě kutilové a nadšenci, kteří programují pro radost).

Rozdíly mezi jednotlivými edicemi se týkají především rozsahu podpory vývoje databázových aplikací a využití aplikačního serveru; podrobné informace o jednotlivých edicích lze získat na adrese embt.cz, kde si lze stáhnout dokument obsahující šestadvacetistránkovou „matici vlastností“ (feature matrix).

Tato recenze se opírá o první zkušenosti s edicí Architect. Vzhledem k tomu, že podrobnější informace o předchozí verzi RAD Studia můžete najít např. v mém článku RAD Studio 10.2 Tokyo, který vyšel zde na Computerworldu, zaměřím se především na novinky, které verze 10.3 přinesla.

Přehled novinek

Nová verze RAD Studia přinesla řadu novinek; podívejme se na přehled nejdůležitějších z nich.

  • Výchozí překladač C++ pro Win32 podporuje C++17.
  • Také v jazyce Object Pascal v Delphi je několik novinek, i když zdaleka ne tak převratných.
  • Grafické uživatelské rozhraní RAD Studia prošlo modernizací.
  • Byla vylepšena spolupráce s Windows 10, mimo jiné pokud jde o zobrazování vizuálních komponent při vysokém rozlišení.
  • Byla rozšířena architektura aplikačního serveru mj. o možnost spolupráce s nástrojem Sencha a upraveny licenční podmínky pro jeho nasazení v aplikacích.
  • Součástí edice Professional jsou nástroje pro vývoj mobilních aplikací pro operační systémy iOS a Android (to platí ve skutečnosti už od verze 10.2.x).
  • Další novinky se týkají výkonu jak RAD Studia, tak vytvářených aplikací, knihovny FireMonkey, RAD Serveru atd.

Požadavky

RAD Studio sice umožňuje vývoj multiplatformních aplikací, lze ho však instalovat pouze na počítači s operačním systémem Windows 7 SP 1 nebo novějším nebo Windows Server 2008 nebo novějším a s instalovanou verzí 4.5 platformy .Net. Lze ho také instalovat ve virtuálním stroji běžícím v jiném prostředí, jako je macOS, ve kterém běží některá z požadovaných verzí Windows. Ovšem pro vývoj aplikací založených na knihovně FireMonkey musí virtuální stroj umožňovat přímý přístup ke grafické kartě hostitelského počítače.

Minimální hardwarové požadavky jsou

  • Procesor o rychlosti alespoň 1.6 GHz,
  • 2 GB RAM,
  • 6 – 60 GB diskového prostoru v závislosti na nástrojích, které instalujeme,
  • grafická karta, na které může běžet DirectX 11 s rozlišením alespoň 1024 x 768 obrazových bodů.

Cílové platformy

RAD Studio 10.3 Rio podporuje následující cílové patformy (uvedenou tabulku jsem převzal z dokumentace).

Operační systém

Podporované verze

Cílová platforma

Podporované jazyky

Podporované knihovny pro UI

Delphi

C++

FireMonkey

VCL

Windows

Windows 10, Windows 8.1, Windows 7 (SP1+), Windows Server 2016, Windows Server 2012 R2

Windows 32b-bit

Ano

Ano

Ano

Ano

Windows 64-bit

Ano

Ano

Ano

Ano

macOS

10.14 Mojave, 10.13 High Sierra, 10.12 Sierra

macOS

Ano

Ano

Ano

Ne

iOS

iOS 12, iOS 11, 

iOS 10

iOS Device 32-bit

Ano

Ano

Ano

Ne

iOS Device 64-bit

Ano

Ano

Ano

Ne

iOS Simulator

Ano

Ne

Ano

Ne

Android 

9, 8, 7, 6, 5

Android

Ano

Ano

Ano

 

Linux

Ubuntu 18.04 LTS, Ubuntu 16.04 LTS, Ubuntu 14.04 LTS, RedHat Enterprise Linux (v. 7)

64-bit Linux

Ano

Ne

Ano

Ne

Ve sloupci „Cílová platforma“ je uveden název, pod kterým je tato platforma uvedena v položce Target platforms v okénku správce projektů (Project Manager).

Pro vývoj aplikací pro Mac OS X je třeba, aby náš počítač byl připojen k počítači Macintosh s procesorem Intel nebo k počítači Macintosh, na kterém běží systém Windows ve virtuálním stroji, s alespoň 2 GB RAM s některým z operačních systémů uvedených v předcházející tabulce.

Pro vývoj aplikací pro iOS platí stejné požadavky jako pro vývoj pro Mac OS X a navíc je třeba mít na cílovém počítači k dispozici integrované vývojové prostředí  Xcode verze 7 nebo novější. Pro nasazení vyvinutých aplikací pro iOS na fyzická zařízení je třeba být členem vývojářského programu pro Apple (Apple Developer Program).

Pro vývoj aplikací pro Android je třeba mít zařízení vybavené tímto operačním systémem s procesorem ARMv7 s podporou koprocesoru NEON pro vektorové zpracování; současná verze RAD Studia nepodporuje simulátor OS Android.

Při vývoji pro Linux je třeba mít k dispozici buď Ubuntu Server (Ubuntu 16.04 LTS) nebo  RedHat Enterprise Linux (verze 7).

Instalace

Vlastní instalace v sobě neskrývá žádné zvláštní problémy. Po dokončení instalace nám dá možnost instalovaný produkt registrovat. Poznamenejme, že registrace je nezbytná i v případě bezplatné Community Edition. Po prvním spuštění nám instalační program nabídne možnost zvolit si výchozí „téma“, tedy barevné ladění integrovaného vývojového prostředí, a samozřejmě cílové platformy, pro které budeme vyvíjet.

Vybíráme instalované součásti

Při prvním spuštění...

Integrované vývojové prostředí

Integrované vývojové prostředí (IDE) RAD Studia 10.3 je podobné IDE předchozích verzí, je však o něco přehlednější a snáze ovladatelné. To se týká i dialogů, které IDE otevírá. Například dialog Options pro úpravu nastavení projektu je uspořádán přehledněji a konzistentněji, některé položky v něm byly přejmenovány. V řadě dialogů je k dispozici nástroj pro vyhledávání. Ve zmíněném okně voleb je v titulkové liště a umožňuje snadno vyhledat požadovanou volbu, známe-li alespoň začátek jejího názvu.

Celková koncepce IDE zůstala stejná

Prostory pro nápisy v IDE byly zvětšeny, aby se usnadnila lokalizace.

Vylepšen byl i dialog ukazující výsledky překladu, dialog nástroje GetIt pro stahování doplňků a další.

V titulkové liště hlavního okna IDE je vedle nástroje pro vyhledávání ještě nástroj pro volbu jednoho ze čtyř uspořádání (layout). Vedle výchozího lze vybrat klasické uspořádání prvních verzí Delphi, v němž se IDE skládá z neukotvených oken pro jednotlivé nástroje, uspořádání pro ladění a uspořádání po spuštění.

Úpravou prošlo i doplňování kódu (code completion). Zejména v Delphi poskytuje nyní správnější výsledky (viz však také poznámku v oddílu věnovaném jazyku Pascal). V C++Builderu bylo doplňování kódu upraveno pro C++17 a běží v samostatném podprocesu na pozadí. Neodpustím si však jízlivou poznámku: Intellisense, nástroj pro doplňování kódu ve Visual Studiu 2017 firmy Microsoft, je přece jen propracovanější a spolehlivější.

Většina oken obsahuje nástroj pro vyhledávání s našeptáváním

Jazyk C++

Překladače C++ v RAD Studiu lze rozdělit do dvou skupin. Překladač BCC32 pro Win32 je potomek původního překladače vyvinutý firmou Borland. Překladače win32c pro Win32 a BCC64 pro Win64 jsou založeny na front-endu Clang a back-endu LLVM, bohužel však na různých verzích. Velmi stručné shrnutí novinek v implementaci jazyka C++ může vypadat takto:

  1. Překladače BCC32 a BCC64 podporují s výhradami standard C++11.
  2. Překladač BCC32C, který je v současné verzi RAD Studia implicitním nástrojem pro překlad 32bitových programů, podporuje téměř úplně standard C++17.
  3. V překladači pro Win64 byla vylepšena implementace některých matematických funkcí ve standardní knihovně z hlediska výkonu.
  4. RAD Studio využívá novou implementaci standardní knihovny Dinkumware z roku 2018.

Souladu jednotlivých překladačů současné verze RAD Studia s platným standardem jazyka C++ jsem věnoval samostatný článek – viz [sem vložit odkaz].

Jazyk Object Pascal

Novinkou Object Pascalu v Delphi v současné verzi RAD Studia je možnost deklarovat proměnné uvnitř bloku před prvním použitím (v dokumentaci se pro tuto konstrukci používá označení „inline variable“). V případě takto deklarované proměnné není třeba uvádět její typ, jestliže si ho překladač dokáže odvodit z typu inicializátoru. Deklaraci lze uvést i v příkazu for.

To znamená, následující kód je nyní legální:

var vysledek: integer := 1;
for var i := 2 to n do
begin
  vysledek := vysledek*i;
end;

Na první pohled to vlastně už není Pascal, že? Jestliže si však na takovýto zápis zvykneme, může vést k výraznému zpřehlednění zdrojového kódu. Ovšem pozor, syntaktický analyzátor, který na pozadí analyzuje zdrojový kód a upozorňuje na chyby, tyto konstrukce zatím zřejmě nezná a signalizuje při jejich použití chyby, i když překlad pak proběhne úspěšně.

I když IDE ukazuje mnoho chyb, program se bez problémů přeloží

Překladače Object Pascalu v Delphi využívaly při správě paměti automatické počítání referencí (Automatic Reference Counting, ARC). Nyní ho začínají opouštět – alespoň v případě 64bitového překladače pro Linux. Důvodem je efektivita, složitost paměťového modelu a nemožnost převést knihovnu VCL na automatické počítání referencí.

Poznamenejme, že automatické počítání referencí zůstává u překladačů pro mobilní platformy.

Knihovna VCL

Knihovna vizuálních komponent VCL je součástí Delphi a C++Builderu od prvopočátku, a tak není divu, že jí je stále věnována velká pozornost, i když je k dispozici pouze pro aplikace pro Windows. Z novinek týkajících se této knihovny uvedeme alespoň dvě.

Zásadní novinkou je rozšíření této knihovny o podporu monitorů s vysokým rozlišením včetně rozlišení 4K. V prostředí Windows 10 implementuje tato knihovna „Per Monitor v2“, takže aplikace může podle rozlišení monitoru upravit zobrazení. Tato podpora je založena funkci GetSystemMetricsForWindow() v běhové knihovně (RTL) Delphi a  C++Builderu (a tato funkce se opírá o funkci GetSystemMetricsForDPI() z API Windows 10). Poznamenejme, že podmínkou jsou Windows 10 sestavení 1703 “Creators Update” nebo pozdější.

Jinou novinkou je komponenta TWindowsStore, jež umožňuje aplikaci připojit se k Windows Store a získat seznam aplikací vlastněných uživatelem, seznam dostupných doplňků, zakoupených doplňků apod. Tato komponenta je k dispozici pouze v aplikacích pro Windows. Poznamenejme, že podobná komponenta je k dispozici i v knihovně FireMonkey.

Knihovna FireMonkey

Připomeňme si, že knihovna FireMonkey je alternativní knihovnou pro multiplatformní vývoj grafického uživatelského rozhraní pod Windows a jedinou knihovnou pro ostatní platformy. Základním nástrojem je univerzální návrhář pro různá cílová zařízení (Multi-Device Form Designer), obsahující MultiView – komponentu představující univerzální kontejner, tedy obrazovku mobilního zařízení nebo okno v prostředí Windows. K tomu jsou k dispozici nástroje zajišťující chování komponent odpovídající zvolené platformě. IDE umožňuje při vytváření uživatelského rozhraní přepínat mezi jednotlivými cílovými platformami.

Nová verze knihovny FireMonkey podporuje vývoj aplikací pro Andriod API verze 26, jak to požaduje např. Google od listopadu 2018 u nových aplikací pro Play Store. K tomu je ovšem třeba aktualizovat SDK, aby obsahovala poslední verzi knihovny této platformy.

Lze také využívat nový model povolení (New Android Permission Model), který je součástí posledních verzí Android API.

Android Z-Order je nástroj, který umožňuje pokládat na sebe ovládací prvky z knihovny FireMonkey a nativní ovládací prvky platformy v jednom formuláři, aniž by se vzájemně zakrývaly a tím znemožňovaly použití zakryté komponenty.

V aplikaci založené na knihovně FireMonkey umožňuje RAD Studio také využívat nativní komponenty platformy Android.

Knihovna FireMonkey nově podporuje vývoj aplikací pro iOS 12 a vývoj 32bitových aplikací pro macOS 10.14 Mojave. Podporuje také používání znaků Unicode Emoji (různí usměváčni a podobné „ksichtíky“).

Databáze a FireDAC

Knihovna FireDac slouží pro tvorbu databázových aplikací a podporuje práci s řadou databázových serverů (tedy obsahuje potřebné ovladače). U většiny z nich byla podpora rozšířena na nejnovější verze. To znamená, že podporuje MySQL 8, MariaDB 10.3, SQL Server 2017, PostgreSQL 10, Firebird 3, MongoDB, InterBase 2017, SQLite 3.32.1 a SQL Anywhere. U některých serverů byly přidány nové parametry, podpora nových příkazů a operací; například u serveru Interbase je to podpora příkazu TRUNCATE, u serveru PosgreSQL je to mj. podpora šifrování hesla, u serveru SQLite je to podpora šifrování a abecedního řazení.

Součástí edice Architect je také nástroj Aqua Data Studio. To  je univerzální integrované vývojové prostředí pro práci s databázemi, které mohou využít vývojáři, administrátoři databází a analytici. Umožňuje pracovat s daty, přistupovat k nim, analyzovat je a výsledky zobrazovat. Lze je použít jak pro relační databáze, tak pro databáze nepoužívající SQL, a to včetně databází na cloudu.

Součástí instalace je i vývojářská edice databázového serveru InterBase 2017 Developer Edition, tedy stejná jako v předchozí verzi. Novinkou je volná licence ToGo pro nasazování na mobilní platformy.

RAD Server

RAD Server je aplikační server, tedy základ vícevrstvých aplikací. Nástroje pro vývoj aplikací pro RAD Server jsou součástí RAD Studia edic Enterprise a Architect spolu s omezenou verzí tohoto serveru a s licencí pro vývoj aplikací. Závažnou novinkou je úprava licenční politiky: Součástí licence k edici Architect je i oprávnění nasadit tento server jako součást vyvinuté aplikace (free deployment multi-site license); dosud na to byla – a v licenci Enterprise stále je – k tomu potřebná zvláštní licence.

Vylepšení tohoto serveru se týkají správy paměti a výkonu. Byly také přidány komponenty pro zpracování formátu JSON a ExtJS, možnost delegovat zpracování příchozího požadavku na uživatelskou komponentu nebo třídu atd. – o tom si krátce povíme v následujícím oddílu.

HTTP

Novinky týkající se práce s požadavky HTTP jsou nenápadné, ale užitečné. Zmíním se o následujících:

  • Třída THTTPClient, resp. její verze pro platformu Windows, byla optimalizována.
  • Nové jsou i nástroje, které usnadňují vyhledávání prostředků, jež nezávisí pouze na URL uvedeném v požadavku, ale i na záhlavích tohoto požadavku, jako je Accept nebo Content-Type.
  • V předchozích verzích RAD Studia odpovídalo metodě požadavku, jako je GET, POST atd., volání metody s odpovídajícím jménem. Toto chování je stále implicitní, lze si však pomocí atributu EndpointMethod předepsat volání metody s libovolným jménem. (Poznamenejme, že v dokumentaci se hovoří o slovesech (verb) GET a POST.)
  • Klientské aplikace SOAP využívají knihovnu klienta HTTP.

REST a Cloud

Novinkou pro práci s cloudovými úložišti je emulátor úložiště Azure a podpora AWS S3 pro nedávno přidané regiony.

Pokud jde o podporu REST, změny se týkají komponent TRESTClient, TRESTRequestParameterOption, TRESTRequestParameter a některých dalších; většinou jde o přidání vlastností nebo metod.

Sencha

Součástí edice Architect je také licence pro nástroj Sencha Ext JS Professional verze 6.6. Tento nástroj umožňuje vyvíjet aplikace v jazyce JavaScript, které pracují s velkými objemy dat a jsou určeny jak pro desktopové počítače, tak i pro mobilní zařízení. Poskytuje řadu předdefinovaných komponent po vytváření grafického uživatelského rozhraní, jako je Grid (mřížka pro zobrazování dat), Calendar (kalendář) atd.

Vedle toho je součástí licence nástroj pro jednotkové a další testování Sencha Test, nástroj pro optimalizaci při sestavování Cmd, nástroj pro ladění vizuálního podoby Ext JS Stencils, nástroj pro vizuální návrh aplikace Architect atd.

Kolik to stojí

Pojmenovaná licence nebo síťová pojmenovaná licence edice Professional pro jednoho vývojáře stojí v současné době (leden 2019) 68315 Kč, pojmenovaná licence edice Enterprise stojí 113 490 Kč, pojmenovaná licence edice Architect stojí 170 235 Kč. Poznamenejme, že jde o akční ceny. Podrobnosti o aktuálních cenách lze najít na webových stránkách společnosti embt.biz, českého zastoupení firmy Enbarcadero.

Závěrem

RAD Studio 10.3 Rio poskytuje nástroje pro velice snadný vývoj aplikací s grafickým uživatelským rozhraním založeným buď na klasické knihovně VCL, nebo na novější knihovně FireMonkey, umožňuje přístup k databázím (i zde si můžeme vybrat z různých nástrojů), podporuje vývoj webových aplikací.

Hlavními programovacími jazyky jsou C++ a Pascal. Drobnou nevýhodnou je, že se jednotlivé překladače C++  liší v podpoře současného standardu tohoto jazyka. To znamená, že chceme-li psát opravdu multiplatformní kód, měli bychom zůstat „při zdi“ a držet se standardu C++ z roku 2011.

Velkou nevýhodou tohoto nástroje pro menší firmy je jeho cena.

bitcoin školení listopad 24

Skončím oblíbenou frází: RAD Studio je neobyčejně silný nástroj; o tom není pochyb. Navazuje na dlouhou řadu úspěšných vývojových prostředí, která začala u Delphi 1.0, jež spatřilo světlo světa v roce 1995, a C++Builder 1.0, který byl uveden v r. 1997. Tehdy to byly nástroje pro snadný vývoj aplikací pro Windows, nic více. Současné verze RAD Studia jsou ovšem určeny pro vývoj multiplatformních aplikací (a také snadný, jak jinak).