Na samém konci srpna tohoto roku uvolnila firma Embarcadero Technologies opět novou verzi svých vývojových nástrojů, jež nese tentokrát označení RAD studio 10 Seattle. I když skok v číslování – předchozí verze nesla číslo 8 – naznačuje, že jde o produkt šitý na míru Windows 10, jedná se o nástroj pro vývoj aplikací pro 32bitová a 64bitová Windows, Mac OS X, iOS, Android a IoT (Internet věcí).
Stejně jako v předchozích verzích lze i v RAD Studiu 10 Seattle vyvíjet aplikaci současně pro několik platforem zároveň.
Základem RAD Studia je stejně jako v předchozích verzích C++Builder a Delphi, integrovaná prostředí pro vývoj aplikací v C++ a v Object Pascalu. Vedle toho zde najdeme i řadu dalších nástrojů; jejich počet a možnosti se liší podle zakoupené edice.
Poznamenejme, že také příští verze by měla nést jméno po některém z amerických měst.
Edice
RAD Studio 10 Seattle je k dispozici v edicích Professional (nejslabší), Enterprise, Ultimate a Architect (nejsilnější). Lze pochopitelně zakoupit i samostatně Delphi nebo C++ Builder, a to ve stejných edicích jako celé RAD Studio.
Možnosti jednotlivých edic jsou v podstatě stejné jako v předchozích verzích RAD studia. To znamená, že rozdíly mezi jednotlivými edicemi se týkají především rozsahu podpory vývoje databázových aplikací. Edice Professional neobsahuje podporu vývoje aplikací pro mobilní platformy; lze si ji však dokoupit v jednom z doplňků (add-on).
Stejně jako u předchozí verze je i tentokrát pro samotné Delphi nebo C++Builder k dispozici také edice Starter. Tato edice je určena začínajícím programátorům, takže neobsahuje komponenty a ovladače pro vývoj databázových aplikací a pro komerční vývoj ji lze použít jen velice omezeně (podrobnosti najdete na webových stránkách českého zastoupení firmy Embarcadero).
Tento článek vznikl po prvním seznámení s edicí Architect.
Novinky
Jako vždy přinesla nová verze RAD Studia řadu novinek; začneme přehledem nejdůležitějších z nich.
Vývoj aplikací pro Windows 10
Operační systém Windows 10 je, i díky obchodní politice firmy Microsoft, uživateli přijímán, a tak se nelze divit, že roste i poptávka po aplikacích pro toto prostředí. RAD Studio 10 Seattle umožňuje vyvíjet aplikace pro 32bitovou i 64bitovou verzi Windows 10. Přitom nejenže umožňuje ve vyvíjených aplikacích snadno využívat nové vlastnosti této platformy, ale poskytuje i snadnou cestu, jak tyto vlastnosti přidat do existujících aplikací (ovšem za podmínky, že byly vyvinuty v některé z předchozích verzí RAD Studia). Základem jsou nové ovladače knihovny VCL pro uživatelské rozhraní, nové komponenty, jež zpřístupňují nové služby, jako jsou např. upozornění („notifikace“) apod.
Nový překladač jazyka C++
Součástí RAD Studia 10 Seattle je i nový 32bitový překladač jazyka C++ označený bcc32c. Je založen na vstupní části („frontendu“) Clang, ovšem přizpůsobenému pro práci s komponentami a dalšími rozšířeními používanými v RAD Studiu. Tím se výrazně zlepšila shoda překladače C++ v RAD Studiu s platným standardem jazyka C++.
Připomeňme si, že předchozí verze obsahovaly jednak 32bitový překladač bcc32, který je pokračováním překladačů firmy Borland s kořeny u legendárního Turbo C, a jednak 64bitový překladač založený na Clang a LLVM. Tyto dva překladače samozřejmě v RAD Studiu zůstaly; zdá se však, že překladač bcc32 byl nenápadně „odsunut na vedlejší kolej“, alespoň pokud jde o podporu standardu jazyka C++.
K vlastnostem překladačů jazyka C++ se ještě vrátíme.
Programovací jazyky a knihovny
Řada novinek se také týká programovacích jazyků C++ a Delphi a jejich knihoven, včetně knihovny VCL. Také k nim se vrátíme v samostatných oddílech.
Podpora více monitorů
Novinkou, kterou jistě řada vývojářů ocení, je, že vývojové prostředí lze zobrazit na více monitorech, a to i na monitorech s rozlišením 4K. Přesněji, vývojové prostředí umožňuje umístit většinu formulářů a tabulek na sekundárním monitoru. Příjemné také je, že zmizely některé problémy v práci s fonty při vyšších rozlišeních. Zdá se však, že nejde od sebe oddělit formulář a kód (alespoň se mi to zatím nepodařilo).
Větší paměť pro IDE
Nová verze integrovaného vývojového prostředí dokáže pracovat s dvojnásobným množstvím operační paměti než verze předchozí. To pochopitelně zrychlilo reakci prostředí zejména při práci s velkými projekty.
Další nástroje pro podporu produktivity vývojáře
Vedle zmíněných novinek obsahuje IDE nové verze RAD Studia řadu příjemných drobností. Například inspektor objektů, Object Inspector, nyní obsahuje filtr, který umožňuje snadnější vyhledávání vlastností podle jména. Vývojář si také může upravit vzhled tohoto nástroje, skrýt některé součásti apod. Jinou zajímavou možností, která ovšem byla v jisté podobě i v předchozí verzi, je IDE Inside, nástroj, který umožňuje vyhledávání nástrojů v IDE podle jména.
Návrhář formulářů umožňuje skrýt ikony nevizuálních komponent; to může v případě složitých formulářů zpřehlednit práci na vizuálním návrhu.
IDE nyní pravidelně zálohuje neuložené soubory, ukládá je do dočasného úložiště. To umožňuje alespoň částečné obnovení projektu při neočekávaném zhroucení.
Novinkou je také možnost vzdáleného ladění aplikací pro zařízení s 64bitovým systémem iOS.
Projekt
Vývojáři aplikací pro platformu Android ocení skutečnost, že integrované vývojové prostředí nyní podporuje projekt představující službu na této platformě (Android Service).
Vedle toho byly rozšířeny možnosti importu starších projektů vyvinutých v C++Builderu počínaje verzí 3 a v Delphi počínaje verzí 1. Několik drobných vylepšení se také týká podpory nasazování aplikací pro iOS, a to včetně identifikátoru Auto Bundle.
Správa zdrojového kódu
Knihovny verzovacího systému Subversion byly aktualizovány, takže nyní je k dispozici verze 1.8.13.
Požadavky pro instalaci RAD Studia XE8
Dle dokumentace potřebujeme pro instalaci RAD Studia 10 Seattle PC s alespoň 1 GB RAM a procesorem Intel Pentium (nebo kompatibilním) běžícím alespoň na frekvenci 1,6 GHz. Tento počítač musí být vybaven operačním systémem Windows 7 SP1 nebo pozdějším (může být 32bitový nebo 64bitový). Potřebný diskový prostor se pohybuje podle edice a rozsahu instalace v rozmezí od 9 do 63 GB; v tom je zahrnut i manipulační prostor potřebný pro vybalení souborů a další operace prováděné při instalaci. Konečná potřeba paměti po ukončení instalace je zhruba poloviční.
Monitor by měl mít rozlišení alespoň 768 x 1024 pixelů.
Podle svých vlastních zkušeností si dovolím doporučit počítač vybavený alespoň 4 GB RAM s procesorem pracujícím na frekvenci větší než 2 GHz a s pokud možno rychlým pevným diskem.
Dále je třeba, aby na cílovém počítači byl k dispozici Microsoft .NET Framework verze 3.5 a 4.5 a Microsoft Visual J# 2.0 Redistributable Package verze 2 (32bitový). Poznamenejme, že pod Windows 7 je třeba doinstalovat
Microsoft .NET Framework verze 4.5 a pod Windows 8 a novějšími je třeba doinstalovat Microsoft .NET Framework verze 3.5 (pokud je tam již nemáte např. proto, že používáte také některou z verzí MS Visual Studia). Modelovací nástroje v RAD Studiu také vyžadují, aby na vašem počítači byl instalován běhový systém Javy (JRE).
Pro vývoj aplikací pro Mac OS X je dále 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 VM, s alespoň 2 GB RAM s operačním systémem OS X 10.10 (Yosemite), 10.9 (Mavericks) nebo OS X 10.11 (El Capitan).
Pro vývoj aplikací pro iOS 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 VM, s alespoň 2 GB RAM s operačním systémem OS X 10.11, 10.10 nebo 10.9 s Xcode 6. Pro nasazení vyvinutých aplikací pro iOS na fyzická zařízení je třeba mít účet vývojáře pro Apple (Apple Developer account).
Instalace
Instalace probíhá naprosto stejně jako u předchozích verzí. To znamená, že RAD Studio můžeme buď instalovat z webu, nebo si můžeme stáhnout instalační soubor ve formátu ISO, připojit si ho jako virtuální mechaniku a instalovat RAD Studio z ní.
Instalace z webu je poměrně zdlouhavá; i při vysokorychlostním připojení mi trvala více než hodinu. Instalace z virtuální mechaniky je o něco rychlejší, neboť odpadnou některé kontroly, které jsou při webové instalaci nezbytné.
Ani při instalaci produktu, ani při následné registraci jsem se nesetkal s problémy.
Cílové platformy
Integrované vývojové prostředí RAD Studia 10 Seattle běží pouze pod Windows; umožňuje však, jak už víme, vyvíjet aplikace pro PC a tablety s procesory Intel nebo AMD vybavené některým z operačních systémů Windows 7, 8, 8.1, 10, dále Windows Server 2008 nebo Windows Server 2012. Dále umožňuje vyvíjet aplikace pro počítače Macintosh vybavené OS X 10.9, 10.10 nebo 10.11, pro iPhone, iPad nebo iPod Touch vybavené iOS 7 – iOS 8.4. Vedle toho můžeme vyvíjet aplikace pro mobilní telefony a tablety se systémem Android ARMv7 s podporou NEON s Ice Cream Sandwich (4.0.3-4.0.4), Jelly Bean (4.1.x, 4.2.x, 4.3.x) nebo Kit Kat (4.4.x) a Lollipop (5.x).
Podobně jako v předchozích verzích chybí mezi podporovanými mobilními platformami jakákoli z verzí Windows Phone, i když cesta se již rýsuje: Pomocí nástroje Microsoft Astoria Bridge pro Windows 10 phone lze na telefonech Luminia spustit aplikaci pro Android založenou na knihovně Fire Monkey (oba zmíněné nástroje jsou zatím v beta-verzi; podrobnější informace najdete v článku).
Prostředí
Asi nikoho nepřekvapí, že IDE RAD Studia 10 Seattle se na první pohled příliš neliší od IDE předchozích verzí. O nejdůležitějších vylepšeních, která se týkají práce s pamětí a práce s více monitory, nebo automatického zotavení po pádu IDE, jsme již hovořili.
Další novinky se týkají hlubší integrace nástroje Castalia. Jde o drobnosti, které mohou programátorovi usnadnit život, jako jsou klávesové zkratky pro uzavření vybraného textu do kulatých, hranatých nebo složených závorek, navigační lišta (Navigation Toolbar), historie schránky (Clipboard History), možnost úprav obsahu schránky (MultiPaste), statistické sledování práce na projektu (Project Statistics) apod.
Projekt
Také zacházení s projekty se neliší od předchozích verzí. Při vytváření nového projektu v RAD Studiu začínáme volbou, zda chceme projekt pro Delphi nebo pro C++Builder.
Základní nabídka pro oba tyto nástroje obsahuje aplikaci založenou na VCL, multiplatformní aplikaci (Multi-Device Application), vytvoření balíčku nebo formuláře. K dalším typům aplikací se dostaneme volbou Other; zde najdeme konzolové aplikace, vytvoření dynamické knihovny, balíčku, aplikace s rozhraním Metropolis založené na knihovně VCL nebo FireMonkey, aplikace s rozhraním MDI nebo SDI atd. V okně správce projektů (Project Manager) je k dispozici mj. položka Target Platform, jež označuje cílovou platformu projektu a umožňuje přidat další cílové platformy v závislosti na typu projektu a pak mezi nimi přepínat a tak překládat týž projekt pro různé operační systémy.
Novinkou, o níž jsme se již zmínili, je projekt služby pro platformu Android (Android Service). Tato nabídka je však k dispozici pouze v Delphi.
Object Pascal
V implementaci jazyka Object Pascal nedošlo k významnějším změnám. Pokud tento jazyk aktivně nepoužíváte, může pro vás být zajímavé, že jde o programovací jazyk obsahující dvě koncepce tvorby objektových typů. Jedna z nich, pokládaná za zastaralou, je podobná jako v C++, druhá obsahuje pouze dynamické objekty, je propracovanější a je na ní založena knihovna vizuálních komponent. Současný Object Pascal obsahuje také možnost deklarovat generické typy (šablony). Filozofie generických typů v Object Pascalu připomíná filozofii šablon v C++, neboť za běhu existují pouze typy vytvořené podle šablony, nikoli šablona sama. Navíc lze v deklaraci generického typu specifikovat omezení typových parametrů (constraints), tedy požadavek, aby skutečný typ použitý při specializaci byl potomkem zadané třídy nebo implementoval zadaná rozhraní.
V deklaraci typů a jejich složek lze uvést atributy zadávané jako komentář začínající $RTTI. Atributy připojují k deklaraci dodatečné informace, které si lze vyžádat za běhu pomocí mechanismu dynamické identifikace typů (RTTI). (Jde v podstatě o prvek aspektově orientovaného programování, který je v současné době v módě; analogické konstrukce najdeme v C#, v C++11 i v Javě.)
Současná verze Object Pascalu obsahuje také nepojmenované funkce, které lze použít jako náhradu lambda-výrazů.
C++
V současné verzi RAD Studia máme 7 překladačů jazyka C++. BCC32 je odvozen od původního borlandského překladače jazyka C++ a překladač BCCOSX je odvozen od BCC32. Ostatní překladače jsou založeny na vstupní části („frontendu“) Clang a infrastruktuře LLVM (Low Level Virtual Machine). Jejich přehled (spolu s použitými verzemi Clang a LLVM obsahuje následující tabulka; údaje jsem převzal ze serveru firmy Embarcadero.
Volba překladače
Jestliže určíme jako cílovou platformu Win64, použije IDE překladač bcc64 – zde nemáme na vybranou. Zvolíme-li 32bitovou platformu, použijeme příkazy nabídky Project | Options | C++ Compiler a ve stromu v pravé části dialogu, který tím otevřeme, vyhledáme Classic Compiler.
Jako výchozí je zaškrtnuta možnost Use ‘classic’ Borland compiler, jež znamená bcc32; požadujeme-li bcc32c, toto zaškrtnutí zrušíme.
Rozdíly
Podívejme se na nejdůležitější rozdíly mezi původním borlandským překladačem a překladači založenými na Clang:
- Překladače založené na Clang provádějí při překladu šablon dvoufázové vyhledávání (two-phase lookup), jak to vyžaduje standard jazyka C++. V první fázi (před vytvářením instance) se vyhledávají jména, která nejsou vázána na závislé typy, Ve druhé fázi (při vytváření instance) se kód šablony kontroluje znovu a vyhledávají se všechna jména. Tento postup může vést k odhalení chyb, které původní borlandské překladače nehlásily.
- Překladače založené na Clang dovolují deklarovat implicitní hodnoty parametrů pouze v deklaraci funkce. Původní borlandské překladače je tolerovaly také např. v deklaraci ukazatele na funkci nebo na metodu.
- Překladače založené na Clang nedovolují použití operátoru sizeof v direktivě #if (což je v rozporu se standardem jak jazyka C, tak i jazyka C++). BCC32 to dovoluje.
- Překladače založené na Clang poněkud přísněji kontrolují konverze. Například v případě deklarace
char * p = "nějaký řetězec";
kterou BCC32 ponechá bez povšimnutí, ohlásí překladače založené na Clang varování, neboť konverze z const char* na char* patří mezi nedoporučované konstrukce.
Podrobnější informace lze najít na webových stránkách; ovšem pozor, ne všechny informace tam uvedené jsou aktuální. Například tvrzení o tom, že překladače založené na Clang nepodporují identifikátory obsahující znaky Unicode, se ukázalo jako nepravdivé – přinejmenším znaky latinské abecedy s diakritickými znaménky toleruje. Také informace o samostatném preprocesingu, která je tam uvedena, neodpovídá skutečnosti.
Překladače C++ a standard jazyka
Podobně jako v recenzi předchozí verze RAD Studia mne zajímalo, jak je to s implementací novinek jazyka C++11. Výsledky testů se příliš neliší od výsledků testů v předchozí verzi, i když drobné rozdíly přece jen najdeme – např. překladače založené na Clang už podporují diakritiku v identifikátorech.
* I pro pole – auto A[] = {1, 3, 8}; je dovoleno jen v bcc32.
** Ne zcela korektně – překladač nevygeneruje implicitní konstruktor odvozené třídy.
Očekávané novinky (C++14 a C++17)
Žádný z překladačů jazyka C++, který je součástí RAD Studia, zatím nepodporuje konstrukce, které přinesl návrh nového standardu označovaný C++14. Jde např. o „příponu“ s, jež by měla definovat literál typu string, o přípony h, m, s a další pro definici literátů představujících čas apod. Žádný z překladačů také neimplementuje binární redukci balíku parametrů u variadických šablon (tato konstrukce by měla být k dispozici v C++17).
Knihovny
RAD Studio obsahuje řadu knihoven – počínaje knihovnami komponent a konče standardními knihovnami jazyků C++ a Pascal. Podívejme se na některé z nich.
VCL
Bezesporu nejznámější knihovnou RAD Studia je VCL, knihovna vizuálních komponent. Firma Embarcadero odhaduje, že přibližně 60 % vývojářů využívajících RAD Studio používá také tuto knihovnu, a tak se nelze divit, že věnuje velkou pozornost i jejímu vývoji. Bezpochyby nejzajímavější jsou novinky týkající se podpory Windows 10.
- Komponenta TSplitView umožňuje snadno zobrazovat a zase skrývat proměnný obsah. Lze ji využít např. k vytvoření „hamburgerové nabídky“, jež ukazuje pouze hlavní položku (nejlépe jako ikonu), a po klepnutí ji nahradí podřízená položka.
- Komponenta RelativePanel představuje je nový panel řídící rozložení komponent (layout panel), který umožňuje umístit a zarovnat dětské objekty na základě jejich vzájemných vztahů a vztahu k rodičovskému panelu. Umožňuje např. předepsat, jistý text bude vždy v pravé části panelu a tlačítko že bude pod ním. Jde tedy o zajímavou alternativu k podobným komponentám, jako je např. TGridPanel.
- Komponenta TToggleSwitch je komponenta podobná skutečnému vypínači a umožňuje vypínat nebo zapínat jiné komponenty.
- Komponenta TActivityIndicator slouží jako kruhový indikátor postupu v případě, že nemá smysl ukazovat skutečný stav procesu (tedy něco jako např. přesýpací hodiny ve Windows.)
- Komponenta TSearchBox je analogie stejnojmenné komponenty z knihovny FireMonkey.
Drobnými vylepšeními prošly také nástroje pro práci se styly komponent. VCL nyní podporuje nové styly pro Windows, a to 10 Windows10, Windows10 Blue a Windows10 Dark. Nový je styl OnyxBlue.
FireMonkey
Také knihovna FireMonkey plně podporuje Windows 10. Tato knihovna zařídí automatické zjištění cílové platformy, načtení a zobrazení nativního stylu za běhu, takže není třeba přidávat žádný kód. Podporuje také nové styly pro tuto platformu (Win10Modern.Style, Win10ModernBlue.Style a Win10ModernDark.Style).
Platformová služba knihovny FireMonkey, IFMXDragDropService, jež poskytuje podporu operací drag-and-drop, nyní umožňuje přetažení dat z aplikace založené na knihovně FireMonkey do jiné aplikace.
Nová komponenta BeaconFencing slouží počítání zón majáčků a jejich interakcí podle plánu prostoru (podlaží apod.); ještě se k ní vrátíme.
Z velké řady drobných vylepšení této knihovny zmíníme alespoň následující:
- Komponenty TEdit, TMemo a TPresentedScrollBox nyní podporují přirozené (nativní) zobrazování pod Windows.
- Byla odstraněna omezení velikosti komponenty TCalendar.
- Jednotka (modul) FMX.Notification byla nahrazena jednotkou System.Notification.
- Když na vizuální komponentu z knihovny FireMonkey nyní ukážeme myší, umí zobrazit nápovědu.
- Pro platformu Android byly přidány dotykové animace.
- Návrhář stylů – Style Designer – knihovny FireMonkey nyní umožňuje nastavit v jednom projektu různé styly pro různé platformy.
- Byly opraveny některé chyby z předchozích verzí.
Standardní knihovna jazyka C++
Vedle knihoven, které jsou společné pro Delphi a pro C++Builder, jako je VCL a FireMonkey, obsahuje RAD Studio 10 Seattle také standardní knihovnu jazyka C++. Používá implementaci Dinkumware, a to
- verzi 5.01 v překladačích BCC32 a BCCOSX,
- verzi 6.50v překladačích BCC32C a BCC64.
Toto rozlišení verzí v podstatě znamená, že v překladačích BCC32 a BCCOSX máme k dispozici knihovnu na úrovni standardu jazyka C++ z roku 2003 s některými prvky standardu z roku 2011, zatímco v ostatních máme k dispozici knihovnu v podstatě na úrovni standardu jazyka C++ v roku 2011. Přesněji řečeno:
- Pokud jde o knihovnu kontejnerů, obsahuje starší verze knihovny Dinkumware (používaná implicitně s původním borlandským překladačem) pouze implementaci hešových tabulek (unordered_set, unordered_multiset, unordered_map a unordered_multimap). Neobsahuje implementaci jednosměrně zřetězeného seznamu (forward_list), neobsahuje implementaci obalové třídy pro pole (šablonu array) a neobsahuje šanlonu n-tice (tuple). Novější verze, používaná s překladači založenými na Clang, je obsahuje.
- Starší verze standardní knihovny neobsahuje nástroje pro práci s regulárními výrazy, standardní nástroje pro práci s podprocesy (multithreading) a atomické operace a neobsahuje nové nástroje pro práci s časem deklarované v hlavičkovém souboru <chrono>. Novější verze je obsahuje.
- Ani jedna z porovnávaných verzí standardní knihovny neobsahuje manipulátory get_money() a put_money() pro formátovaný vstup a výstup měny. Neobsahuje také manipulátory get_time() a put_time() pro formátovaný vstup a výstup času.
Pro mobilní platformy tuto knihovnu RAD Studio nepodporuje.
Vedle toho lze používat implementaci standardní knihovny Boost (přesněji její podmnožinu přizpůsobenou pro RAD Studio), a to:
- verzi 1.39.0 v překladačích BCC32 a BCCOSX,
- verzi 1.55.0 v překladačích BCC32C a BCC64,
- verzi 1.53.0 v překladači BCCAARM (pro platformu Android).
Tuto knihovnu je však třeba instalovat zvlášť.
Internet věcí
V úvodu jsme se zmínili, že RAD Studio 10 Seattle představuje mj. nástroj pro vývoj aplikací pro Internet věcí. Protože jde o poměrně nový pojem, zastavíme se u něj podrobněji.
O co jde
Označení Internet věcí (Internet of Things, IoT) se používá pro propojení různých zařízení spravovaných vestavěným systémem (tedy vlastním procesorem) s internetem. Přitom se zpravidla klade důraz na bezdrátové propojení, které umožňuje vzájemnou interakci mezi těmito zařízeními, jejich sledování a ovládání a na tom založené služby. V roli oněch „věcí“ zde mohou vystupovat implantáty na sledování srdeční činnosti, biočipy používané na zvířecích farmách, dálkově ovládané automobily, přístroje a zařízení používané při záchranných operacích atd. Může ale také jít o inteligentní pračky či myčky nádobí, které jsou vzdáleně řízeny prostřednictvím WiFi. Patří mezi ně i majáčky (beacon), o nichž jsme podrobněji hovořili v recenzi předchozí verze RAD Studia.
Tyto přístroje – nebo alespoň některé z nich – samostatně shromažďují data a zabezpečují jejich toky k jiným součástem systému – k jiným „věcem“.
Tvorba aplikací pro IoT je založena na integraci knihoven pro využití protokolů HTTP, REST a Bloetooth LE. Patří sem samozřejmě i podpora majáčků, a to jak podle standardu iBeacons, tak i podle standardu AltBeacons, a nové technologie BeaconFence, k níž se ještě vrátíme.
Při tvorbě těchto aplikací se uplatní i technologie AppTethering (zřetězení, nebo spíše propojení aplikací), jež byla velkou novinkou RAD Studia XE6.
Aplikace pro IoT
Aplikace pro IoT budou často instalovány na mobilních zařízeních, jako jsou tablety vybavené nízkoenergetickým přijímačem BlueTooth. Takováto aplikace, je-li aktivní, může zjistit přítomnost dalších zařízení, navázat s nimi spojení a předat potřebné informace dále – například cloudové aplikaci, která vrátí mobilní aplikaci – a tedy uživateli – potřebné informace.
BeaconFence
BeaconFence (nástroj pro vymezení prostoru majáčky, možná také „plot majáčků“) není součástí RAD Studia, lze ho ale získat a zdarma vyzkoušet prostřednictvím služby GetIt. Jde o nástroj, který umožňuje sledování polohy a událostí majáčků při jakémkoli fyzickém rozložení a uspořádání. Pracuje s nákresem – plánem – objektu, v němž majáčky jsou, a na kterém jsou vyznačeny, a umožňuje sledovat vstupy, výstupy a podobné události a reagovat na ně. Součástí tohoto nástroje je i editor plánů (Beacon Fencing Map Editor).
Přístup k datům
RAD Studio 10 Seattle podporuje, stejně jako předchozí verze, používání starších technologií pro přístup k datům, které jsme měli k dispozici pod Windows. Ovšem nástroje pro práci s nejstarší technologií BDE (Borland Database Engine), jež byla určena k využívání „stolních“ databází, jako byla dBase nebo Paradox, je třeba si stáhnout samostatně.
Také komponenty dbExpress pro přístup k SQL serverům se už dnes považují za zastaralé; připomeňme si, že už v RAD Studiu XE8 byly nástroje pro přechod k současné multiplatformní technologii FireDAC.
Jistě neuškodí připomenout si, že knihovna FireDAC představuje vrstvu poskytující společné aplikační rozhraní pro přístup k datům různých databázových strojů, jež umí respektovat a využívat specifických vlastností jednotlivých databázových serverů bez omezení výkonu. Jejím základem jsou komponenty TFDConnection, TFDQuery, TFDTable a mnohé další, které zapouzdřují obvyklé operace s databázovým serverem. Tyto komponenty podporují technologii LiveBindings, takže programování přenosu dat je v mnoha situacích velice snadné.
Novinkou současné verze knihovny FireDAC je mimo jiné podpora databázového serveru MongoDB. Podpora formátů JSON a BSON.
Aplikační server
Pro vývoj vícevrstvých aplikací je nezbytný aplikační server. RAD Studio 10 nabízí, podobně jako předchozí verze, dvě možnosti. První z nich je komponenta DataSnap. To je aplikační server „bez zázemí“, tj. nemá konzolu, nemá vestavěnou správu uživatelů a některé další vlastnosti, které si musíme v případě potřeby doplnit sami. Jde tedy v podstatě o komponentu představující základ pro vývoj vlastního aplikačního serveru. Jeho používání je však bezplatné.
Druhou možností je EMS (Enterprise Mobility Services), který obsahuje všechny obvyklé nástroje, jeho používání je však zpoplatněno.
Databáze
Součástí instalace je i vývojářská edice databázového serveru InterBase XE7 (12.0.4.357) Developer Edition – stejné jako byla v předchozí verzi. Podrobnější informace najdete v recenzi předchozí verze RAD Studia; zde si pouze připomeneme, je k dispozici také edice IBLite, která je zdarma, a to i pro komerční nasazení. Je určena pro instalaci v mobilních zařízeních, neumožňuje šifrování dat a velikost databáze je omezena na 100 MB.
Licenční politika
Firma Embarcadero se rozhodla změnit licenční podmínky a jednoznačně preferovat využívání ročního předplatného. Uživatel, který se rozhodne pro předplatné, získá novou verzi RAD Studia automaticky, neplatí za upgrade a nová verze převezme sériové číslo verze předchozí. Poznamenejme, že nemáte-li předplatné, bude přístup k úpravám, opravám a aktualizacím existujících verzí nadále zpoplatněn.
Stav své licence můžete v současné verzi RAD Studia zjistit pomocí správce licencí (License Manager), který je dostupný v nabídce Help.
Co dodat
Podobně jako v případě předchozích verzí je jasné, že RAD Studio 10 Seattle je kvalitní a silný nástroj. Práce s ním je snadná a intuitivní (to jsem napsal v recenzi první verze C++Builderu v roce 1997 pro časopis Chip a od té doby necítím potřebu tento úsudek měnit). Jeho nejsilnější stránkou možnost současného vývoje aplikací s jedním zdrojovým kódem pro několik platforem zároveň.
Jeho nevýhodou pro nového uživatele je poměrně vysoká cena: Jedna licence nejsilnější edice Architect stojí v současné době 154 500 Kč, verze Enterprise, která by měla většině vývojářů zcela postačovat, stojí 103 000 Kč, nejslabší edice Professional stojí 62 100 Kč. Za samotné Delphi nebo C++Builder v edici Architect zaplatíte v současnosti 103 000 Kč, za edici Enterprise 85 900 Kč a za edici Professional 34 500 Kč.
Rozhodnete-li se pro předplatné, musíte samozřejmě na počátku zakoupit také licenci (takže při prvním nákupu zaplatíte za licenci a předplatné, dále platíte už jen předplatné).
Samotné předplatné pro 1 uživatele RAD Studia 10 edice Architect stojí 53 000 Kč, v případě edice Enterprise je předplatné 35 400 Kč a za edici Professional je 21 300 Kč. Předplatné pro 1 uživatele samotného Delphi nebo C++Builderu 10 edice Architect je 47 100 Kč, v případě edice Enterprise je předplatné 29 500 Kč a za edici Professional je 11 800 Kč.
Další informace o aktuálních cenách najdete na stránkách českého zastoupení firmu Embarcadero.
Autorem recenze je Miroslav Virius z Katedry softwarového inženýrství FJFI ČVUT.