Městská knihovna Praha, 15. září 2014
Jako jeden z účastníků semináře bych se s vámi rád podělil o dojmy z uvedení mové verze RAD Studia. Jedná se o verzi XE s pořadovým číslem 7, která přišla, jak je v posledních letech u Embarcadera již zvykem, opět ke konci třetího čtvrtletí roku.
Přednáškou nás provázel Paweł Głowacki z evropského zastoupení společnosti Embarcadero, který je zkušeným matadorem podobných akcí a podle toho měl celý průběh velmi profesionální úroveň. Jak jeho jméno napovídá, je Paweł původem z Polska, což se odráží i na jeho angličtině, která se našim slovanským uším skvěle poslouchá, a tak byl simultánní překlad pro češtiny nutný opravdu jen pro těch málo účastníků, kteří zůstali tímto jazykem zcela nepolíbeni.
Ještě předtím, než vystoupil Paweł, nás Ludovic Neveu, viceprezident pro EMEA, krátce seznámil s vývojem a zaměřením společnosti, portfoliem produktů (v obecné rovině, tj. modelování, vývoj aplikací, databáze). Takové to klasické obchodnické (nebo chcete-li marketingové) povídání, co nám vývojářům jde jedním uchem tam a druhým ven. Po této rozehřívací části, která byla tak akorát dlouhá, aby se utišil sál, začalo to, nač všichni čekali. Představení RAD Studia XE7.
V úvodu více jak tříhodinové přednášky byly vypíchnuty horké novinky představené v XE7, ke kterým se pak Paweł postupně vracel, aby je představil „live“ i s příklady. Podívejme se tedy na ně blíže:
FireUI: The multi-device development dream comes true
Pod tímto sloganem se neskrývá nic jiného, než zapouzdření vývoje uživatelského rozhraní pro různá zařízení pod jeden rámec. Celá myšlenka kombinuje několik technologií, které v Delphi již v různých obdobách existují, a to tak, aby vývojářům co nejvíce usnadnily život. Funguje to přibližně tak, že navrhnete základní formulář pro tzv. obecné zařízení, pak se přepnete na platformu, konkrétní kategorii zařízení a příp. orientaci (např. Apple, Apple / iPad nebo Apple / iPad / landscape) a upravíte vše podle konkrétních požadavků a představ. Např. vyměníte grafiku tlačítek, změníte jejich rozložení, přidáte prvky specifické pro dané zařízení apod. Podle způsobu práce je implementace realizovaná podobně jako dědění (inheriting) formulářů, což je funkční a ověřená technologie, která se k tomuto účelu přímo nabízí, ale přitom se zachovává jedna úroveň kódu. Zajímavé řešení a sám jsem zvědavý, nakolik hladce to bude fungovat.
Gadgets, Wearables, and the Internet of Things
Mezi další zajímavé novinky patří rozšíření technologie App Tethering (přeložil bych to asi jako „provázání aplikací“) a nově podpora pro komunikaci s Bluetooth Low Energy zařízeními. Pomocí široké škály profilů lze komunikovat s různými zařízeními od sportovních bot přes různé měřiče tepu či tlaku, až např. pro glukometr. A to vše opravdu velmi jednoduše, jak nám Paweł prakticky předvedl na měřiči srdečního tepu, který si přinesl, a doslova na své vlastní kůži. Implementace Bluetooth Low Energy je dostupná pro zařízení iOS (iPhone 4s+, iPad3+), Android (4.3+), Windows 8 a Mac. Komunikace přes bluetooth a App Tethering jsou implementované nejen pro FireMonkey, ale i pro VCL. Pod pojmem Internet of Things se rozumí psaní aplikací pro zařízení vybavená nejspíše operačním systémem Android (pozn. admina: IMHO nezáleží na OS, spíše na filozofii - jedná se embedded zařízení připojené do internetu) , tj. např. Google Glass, jejichž profil je přímo součástí instalace, nebo různých hodinek apod.
Fast code faster
Rad Studio XE7 implementovalo knihovnu, která výrazně zjednodušuje psaní kódu plně využívajícího maximální výpočetní výkon zařízení, na kterém kód právě běží. Pomocí sady tříd a anonymních metod lze přímo v jakékoliv části aplikace spustit paralelní zpracování vhodné úlohy. Dle mého názoru z praxe to bude jedna z hojně využívaných nových vlastností pro zrychlení mnoha aplikací.
Turnkey EMS middle-tier solution
Tato technologie je určena jen pro specifický okruh zákazníků, ale její podstatou je připravený výkonný a robustní REST server, jehož funkce se rozšiřují prostřednictvím samostatných balíčků (packages z RAD Studia) a obsahuje zabudové nástroje pro správu uživatelů, analýzu využití apod. Dle mého názoru nešťastný je licenční model založený na uživatelských licencích, byť jako nadstavba DataSnap to pro enterprise zákazníky určitě stojí pro pozornost. Komunikace s databází probíhá přes FireDAC.
Další novinky ve VCL a programování pro Win32
Jak bylo patrné i na konferenci, drtivá většina uživatelů RAD Studia stále programuje ve VCL. Je tudíž jen dobře, že jej Embarcadero neodsunulo na vedlejší kolej a stále jej rozšiřuje, i když je patrné, kolik zdrojů musejí vyčlenit na zlepšování FireMonkey.
VCL v XE7 tudíž doznalo spíše jen menších změn, ale i ty jsou příjemné. Již v XE6 přibyla podpora různých senzorů, taskbaru a App Tethering. Nyní lze ovládat nabídku „rychlých úloh“ nebo posledních otevřených souborů, která je přístupná v nabídce vyvolené pravým tlačítkem myši při kliknutí na běžící nebo připnutou aplikaci v taskbaru. Dále je to knihovna pro paralelní zpracování úloh, což je zcela určitě velký krok správným směrem. Vylepšeno bylo FireDAC a přibyla podpora Bluetooth, důležitá právě pro App Tethering.
Ze syntaktických změn bych vyzvedl rozšíření práce s dynamickými poli, se kterými se dá konečně plnohodnotně pracovat. V podstatě se s nimi dá pracovat jako s řetězci pomocí sčítání, funkcí Insert, Delete a Concat. Rovněž je možné pole snadno inicializovat a používat společně s poli s pevným počtem prvků.
Ještě pár slov k mobilním aplikacím
Z představených zajímavostí bych ještě rád zmínil např. novou komponentu TMultiView, která nabízí snadnou a hlavně automatizovanou změnu prezentace aplikace nad různými platformami.
Dále vývojáři v Embarcadera začali experimentovat s myšlenkou, že FireMonkey je sice fajn, ale programovat všechno vlastními silami při současném rychlém vývoji není úplně ta nejlepší cesta, a tak vymysleli technologii Behavior Services. Ta umožní u jednotlivých komponent zvolit, zda se mají vykreslit pomocí FireMonkey, nebo zda mají použít odpovídající ekvivalent z operačního systému. Díky tomu může uživatel ovládat aplikaci tak, jak je zvyklý, i s případnými rozšířeními třetích stran, se kterými vývojáři FireMonkey nepočítali. Zatím je tato funkcionalita dostupná jen pro editační pole a kalendář pod iOS.
Hezkou drobností, která při vývoji mobilních aplikací potěší, je podpora spuštění aktualizace obsahu táhnutím dolů v prvku seznamu (ListView). Jde sice o maličkost, ale uživatelé jsou na takové chování zvyklí a programátorům to ušetří programování navíc.
Vývojáři pro Android nyní mohou snadno připojovat a využívat knihovny Java. Součástí instalace je nástroj Java2OP, který generuje rozhraní pro Object Pascal pro přístup ke třídám v jazyce Java. Přibyla též podpora notifikací a splash screen.
Shrnutí
Paweł samozřejmě zmínil mnoho dalších novinek, předvedl spoustu praktických příkladů a ukázal, že XE7 se ubírá správným směrem. FireMonkey postupně dozrává jako kvalitní víno a dostává funkce, které umožní jeho reálné nasazení při vývoji mobilních aplikací (multitouch, IoT, nové senzory, API pro podporu reklamy, sdružený design pro různá zařízení apod.). Rovněž postupné prolínání knihoven VCL a FireMonkey umožní těžit maximum z obou platforem, protože nikomu se nechce přepisovat celou podnikovou aplikaci do FireMonkey jen proto, aby si mohla vyměnit pár bytů s mobilní verzí. Stále je patrný velký důraz na podporu mobilních aplikací, nicméně zdá se, že prvotní opojení vyprchalo a nastoupil střízlivý pohled, který umožní plnohodnotné propojení všech platforem.
Igor Gottwald