Firemonkey. Štart

3.6.2013 12:46 hod

Veľa som trpel kvôli nedostatku komponentu prehliadača vo FireMonkey. Slávny projekt Delphi Chromium Embedded obsahoval podporu FMX v najnovšej zostave. Ale aj napriek tomu, že už uplynulo dosť veľa času, autor sa s pridaním podpory FMX2 neponáhľa. Nakoniec som to musel vziať do vlastných rúk.

Komponent TChromiumFMX z oficiálnej zostavy funguje vo FireMonkey (v XE2) celkom dobre, no v FMX2 sa ani nekompiluje. Musel som trochu prísť na to, ako to funguje a opraviť to. Našťastie neboli potrebné žiadne zásadné zmeny.

Vo FMX2 sa zmenili dve veci, ktoré komponent potrebuje.

Po prvé, TBitmap už nemá vlastnosti ScanLine a StartLine. Priamy prístup k obsahu TBitmap bol prepracovaný (zaujímalo by ma prečo?) a je teraz dostupný prostredníctvom triedy TBitmapData, ktorá vracia metódu TBitmap.Map.

No, druhá, známejšia - Platforma .* už neexistuje, teraz musíte získať požadované rozhranie prostredníctvom TPlatformServices.GetPlatformService . Všetko je tu celkom jednoduché a neexistujú žiadne problémy.

Netestoval som to s osobitnou vynaliezavosťou, ale komponent je pre moje účely celkom vhodný - môžete si cez neho prezerať stránky. Stiahnuť to. Napriek tomu možno svoje úpravy pošlem autorovi, možno bude považovať za potrebné pridať ich do oficiálnej verzie.

30.07.2012 2:43 hod

Jason Southwell navrhuje vyvinúť sadu obalov FireMonkey pre natívne ovládacie prvky Windows/OSX a získava na to peniaze. Na začiatok plánuje vyzbierať 20 000 dolárov.

Myšlienka je jasná. Existujúce komponenty FireMonkey sú vykresľované pomocou nástrojov Delphi takmer od začiatku, čo na jednej strane do značnej miery zabezpečuje ich multiplatformnosť, no na druhej strane v dôsledku toho získavame komponenty, ktoré nevyzerajú celkom prirodzene v oboch aktuálne podporovaných operačných systémoch. systémov. A to nie je také zlé - okrem vzhľadu musíte samostatne rozvíjať logiku týchto komponentov. Napríklad RichEdit je pomerne komplikovaný a zopakovanie jeho logiky v rámci FireMonkey nie je triviálna úloha. VCL aj CLX nevymysleli bicykle, ale použili už hotové.

A teraz tie zlé správy. Všetko funguje za behu, ale nenašiel som spôsob, ako pridať nový typ karty do Návrhára položiek. A zdá sa, že všetky ovládacie prvky zoznamu majú rovnaký problém: TListBox, TGrid atď. Spočiatku sa mi veľmi páčil prístup k ich implementácii, ale teraz o tom akosi pochybujem. Internetové vyhľadávanie odhalilo, že s týmto problémom nie som sám.

Pomoc je tichá, v kóde som tiež nič nenašiel. Naozaj v žiadnom prípade? To by bolo mimoriadne nepríjemné.

Prešli viac ako tri roky odvtedy, čo sa divízia CodeGear zodpovedná za vytváranie takých svetoznámych nástrojov, akými sú Delphi, C++Builder a JBuilder, ako aj Interbase DBMS, stala súčasťou Embarcadero Technologies, spoločnosti známej dizajnom a správou databáz. tools. , a dva roky odvtedy, čo sme na stránkach nášho magazínu diskutovali o tom, čo môžeme očakávať pri vývoji nástrojov, ktoré sú medzi ruskými vývojármi také obľúbené. Opýtali sme sa Davida Intersimoneho, viceprezidenta pre vzťahy s vývojármi a hlavného evanjelistu Embarcadero Technologies, a Kirilla Ranneva, vedúceho zastúpenia Embarcadero Technologies v Rusku. Pre našich najmenších čitateľov informujeme, že to zďaleka nie je prvý rozhovor, ktorý David a Kirill poskytli ComputerPress – naša spolupráca trvá už druhú dekádu. A približne rovnaký počet rokov pravidelne publikujeme recenzie nástrojov na správu databáz, v ktorých sa veľká pozornosť venuje produktom Embarcadero.

ComputerPress: David, vaša divízia je už tri roky súčasťou Embarcadera. Pred dvomi rokmi ste boli plní nadšenia z toho, že sa stala súčasťou cieľavedome a duchom vám blízkej spoločnosti. Zmenilo sa niečo počas tejto doby? Cítite vy a vaši kolegovia rovnaké nadšenie?

Áno, stále som nadšený. Hlavnou zmenou, ktorá sa udiala odkedy sme sa stali súčasťou spoločnosti Embarcadero, je to, že sa veľa investovalo do vývoja Delphi. Zvýšil sa počet zamestnancov pracujúcich na vývojových nástrojoch, zvýšil sa počet technológií, ktoré vieme vyvinúť alebo v prípade potreby získať.

Vydanie RAD Studio XE 2, ktoré plánujeme predviesť v Moskve, je najväčším vydaním tohto produktu s obrovskými schopnosťami a veľkým počtom podporovaných platforiem od prvej verzie Delphi, vytvorenej pre 16-bitové Windows a bývalej inovatívnej produkt, ktorý spájal komponentný prístup a kompiláciu so strojovým kódom. Teraz podporujeme vývoj nielen pre Windows, ale aj pre Macintosh, nehovoriac o webovom vývoji a tvorbe aplikácií pre mobilné zariadenia, pričom tieto aplikácie pre rôzne platformy môžu mať jeden kód.

Nová vývojová platforma FireMonkey je výsledkom spolupráce medzi spoločnosťou Embarcadero a nedávno získanou ruskou firmou KSDev so sídlom v Ulan-Ude, ktorá vyrába komponenty vektorovej grafiky, DirectX a OpenGL, technológie grafických efektov a komponenty Delphi využívajúce GPU s PixelShader 2.0. Pred rokom sme získali spoločnosť KSDev (pozri ksdev.ru) a začali sme spolupracovať na vytvorení multiplatformového vývojového nástroja, ktorý zahŕňa platformu na vývoj aplikácií FireMonkey s komponentmi pre Delphi a C++ Buider na vytváranie používateľského rozhrania aplikácie, integráciu s databázami, grafické spracovanie pomocou grafického procesora a integrácia s operačným systémom.

Pomocou FireMonkey môžete vytvoriť aplikáciu, ktorá prevádzkuje CPU a GPU spoločne, a potom pomocou rôznych kompilátorov a run-time knižníc (Run-time Libraries, RTL) ju môžete skompilovať pre Windows, Mac OS alebo iOS. Namiesto učenia sa programovania s rôznymi grafickými knižnicami, učenia sa API z rôznych platforiem s rôznymi súradnicovými systémami a rôznymi schopnosťami môžu vývojári používajúci Delphi a C++Builder použiť rovnaký prístup k komponentom, vizuálne upravovať formuláre a pripájať sa k databázam presunutím komponentu pomocou myš. Toto je zásadne nový spôsob vytvárania aplikácií, ktoré bežia na rôznych platformách, a je to budúcnosť. Ak chcete do svojej aplikácie pridať podporu pre iné operačné systémy a platformy, nemusíte ju prerábať a vyvíjať – postačí ju len prekompilovať.

Vytvárame nové kompilátory, ktoré generujú natívny kód. Dnes existujú kompilátory Delphi pre 32-bitové a 64-bitové verzie Windows, 32-bitové verzie Mac OS 10. A pracujeme na novej generácii kompilátorov Delphi a C++Builder, ktoré vám umožnia vytvárať vysokovýkonné natívny kód pre tieto aj ďalšie platformy ako Android alebo Linux a zachovávajú si rovnaký dizajn, rovnaké komponenty, rovnaký kód pomocou rôznych kompilátorov a runtime knižníc.

Ako vidíte, dôvodov na nadšenie mám dosť. A vývojári, ktorých stretávam po celom svete, vedia, že Embarcadero veľa investuje do Delphi a C++Builder, ako aj do vývojových nástrojov PHP.

KP: Aký pokrok ste dosiahli v integrácii nástrojov týchto dvoch spoločností za posledné dva roky? Aké sú plány Embarcadero do budúcnosti v tejto oblasti?

DI.: V čase, keď sa divízia CodeGear stala súčasťou Embarcadera, mala táto spoločnosť vývojové tímy v Toronte, Monterrey a Rumunsku, my sme boli a stále sme v Scotts Valley a v Rusku, v Petrohrade. Embarcadero malo nástroje pre vývojárov a správcov databáz, CodeGear nástroje na vývoj aplikácií, no aj tí druhí využívajú databázy. Fúzia spoločností je spojením odbornosti, znalostí v oblasti databáz, optimalizácie kódu vrátane serverového kódu. Výsledkom zlúčenia bol aj vznik nového produktu AppWave, špeciálnej technológie na premenu obyčajnej Windows aplikácie na niečo veľmi jednoduché na používanie (ako sú aplikácie pre iPhone alebo iné zariadenia). AppWave umožňuje neinštalovať aplikáciu, ale jednoducho ju vybrať a spustiť z pripraveného aplikačného úložného (aplikačného) servera, pričom bude spustená na počítači používateľa bez vykonania zmien v oblasti jeho registra a systému súborov. Mimochodom, prehliadač aplikácií AppWave je napísaný v Delphi. Embarcadero používa Dephi pre svoj vlastný vývoj a naše odborné znalosti v oblasti vývoja aplikácií.

Aplikácia pre iPhone (iOS) vytvorená spoločnosťou
pomocou platformy FireMonkey

Môžete tiež použiť integráciu našich vývojových nástrojov a DB Optimizer na optimalizáciu SQL dotazov pri vytváraní aplikácií. Odovzdaním kódu SQL priamo do DB Optimizer ho môžete profilovať, testovať a vrátiť jeho optimalizovanú verziu späť do vývojového prostredia. Databázová expertíza Embarcadero tiež zlepšila technológiu DataSnap. Vďaka vývojárom z Toronta sme získali množstvo poznatkov o architektúre viacvrstvových systémov a databáz. Teraz máme spoločné odborné znalosti v oblasti serverového kódu a uložených procedúr v oboch spoločnostiach. Máme nástroje ako RapidSQL a DB Change Manager a vývojové prostredia, ktoré uľahčujú vytváranie kódu na strane servera, ako sú technológie Code Insight a Code Completion, ktoré umožnili vytvárať technológie SQL insight a SQL Completion. Náš spoločný prístup k vytváraniu kódu klienta a servera, naša spoločná filozofia, nám umožňuje zdieľať spoločné funkcie medzi nástrojmi na správu databáz a nástrojmi na vývoj aplikácií.

Kirill Rannev: Chcem dodať niečo dôležité. Z komerčného hľadiska je veľmi dôležité, ako dodávame naše nástroje. Napríklad nové vydanie RAD Studio XE 2 Ultimate obsahuje kompletnú sadu nástrojov DB Power Studio. Ide o veľmi výkonnú súpravu nástrojov vrátane prostredia na vytváranie dotazov RapidSQL, nástroja na správu zmien DB Change Manager a nástroja na optimalizáciu dotazov DB Optimizer, ktoré vám umožňujú vykonávať dôležitú časť procesu vývoja a nasadenia a spravovať zmeny v dátový model, databáza, kód atď. Ide o veľmi dobrú a správnu kombináciu technológií.

DI.: V prípade potreby však môžu vývojári použiť Subversion na správu verzií zdrojového kódu a DB Change Manager na správu verzií metadát. Môžete použiť profilovanie kódu a DB Optimizer na optimalizáciu serverového kódu, RapidSQL na vytváranie a ladenie serverového kódu a naše vývojové prostredia na vytváranie a ladenie aplikácií. Táto kombinácia technológií v RAD Studio XE Ultimate Edition demonštruje paralely medzi databázovými a aplikačnými modelmi vývoja. Väčšina vývojárov vytvárajúcich podnikové aplikácie pomocou Delphi a C++Builder pracuje s databázami a potrebuje tieto nástroje a RAD Studio XE Ultimate Edition je pre týchto vývojárov skvelou kombináciou.

KP: Moderný používateľ už nie je iba používateľom platformy Windows. Používame mobilné zariadenia, iPhone, iPad, zariadenia založené na platforme Android. To znamená, že vývojári musia začať cieliť na rôzne platformy bez výrazného zvýšenia investícií do školení – to znamená, že sú potrebné univerzálne nástroje. Je zrejmé, že je nereálne očakávať vznik univerzálnych nástrojov od výrobcov platforiem a v tejto veci sa môžeme spoliehať len na nezávislých výrobcov nástrojov. Kde sa môžeme spoľahnúť na Embarcadero?

DI.: V oblasti podpory platforiem máme stále čo robiť. Dnes predstavujeme podporu pre platformu iOS pre iPhone a iPad a následne podporu pre smartfóny Android, Windows 7 a Blackberry. V RAD Studio XE 2 sme začali budovaním platformy FireMonkey pre iOS a neskôr portujeme FireMonkey na iné platformy.

Zároveň existuje veľké množstvo operačných systémov, ktoré podporujú dotykové obrazovky (touch screen), pre telefóny, tablety a zariadenia, stolné počítače a ich podporu budeme aj naďalej pridávať. Okrem toho existujú systémy hlasového ovládania, systémy riadenia pohybu, biometrické systémy, akcelerometre, takže musíme pokračovať v rozširovaní FireMonkey, aby všetci vývojári mohli využívať výhody nových platforiem. Napríklad zariadenie Microsoft Kinect bolo navrhnuté pre Xbox 360 a teraz existuje zodpovedajúca súprava SDK (Software Development Kit) pre Windows. A už máme príklady, keď pohyb používame na ovládanie aplikácie v podstate rovnakým spôsobom, akým by sme bežne používali myš alebo klávesnicu.

Keď vytvárate aplikácie s množstvom komplexnej grafiky, vytvárate celý svet nových používateľských rozhraní. Ak máme čo do činenia s operačným systémom Windows, zapuzdreme jeho Windows API do knižnice VCL (Visual Component Library - knižnica vizuálnych komponentov, ktorá je neoddeliteľnou súčasťou vývojových nástrojov Delphi a C++ Builder. - Poznámka. vyd.), ktorý, mimochodom, možno aplikovať ďalej. A vo FireMonkey zapuzdrujeme API operačného systému. Ale dnes manipulujeme s formami a grafikou oveľa širšie. Môžete tiež pridať vlastnosti fyzického priestoru pre animáciu a špeciálne efekty. Okrem toho existuje obrovské množstvo ďalších doplnkových funkcií na vytváranie používateľských rozhraní, ktoré sa chystáme implementovať v najbližších rokoch pre rôzne platformy, mobilné a tabletové zariadenia.

Microsoft nedávno zverejnil podrobnosti o Windowse 8, ktorý má vyjsť o rok. Tieto inovácie budeme podporovať v knižnici VCL a v platforme FireMonkey. Ale Delphi je vývojový nástroj určený nielen pre Windows, ale aj pre Macintosh, iPhone a iPad. Vyvíjame aj naše produkty PHP, podporujeme jQuery Mobile, používame iOS API na vývoj mobilných klientskych aplikácií a vytvárame PHP aplikácie na strane servera pomocou sprievodcov a nástrojov na generovanie JavaScriptu, HTML a kaskádových štýlov na strane klienta. Môžeme zabaliť PHP aplikácie a iPhone iOS natívne klientske aplikácie, pričom klient bude komunikovať s PHP serverom. A to zase bude komunikovať s databázovým serverom a webovými službami - so všetkým, čo je potrebné pre podnikanie.

Vývojové prostredie RadPHP XE2. Vytvorte mobilnú webovú aplikáciu
pomocou komponentov jQuery Mobile pre iPhone 3G

Inými slovami, plánujeme rozšíriť možnosti FireMonkey a VCL vrátane podpory mobilných platforiem.

KP: Mohli by ste viac rozviesť platformu FireMonkey?

DI.: Ako som už poznamenal, knižnica VCL vytvorená pre Windows sa bude naďalej vyvíjať a zlepšovať. Ale dnes, ak chcete skutočne vyvíjať obchodné aplikácie, musíte ich vytvoriť pre rôzne platformy. Na to je určená platforma FireMonkey. Podporuje vytváranie používateľských rozhraní s vysokým rozlíšením, vysokovýkonnú 3D grafiku, vysoké obnovovacie frekvencie a, čo je dôležité, využíva na to GPU.

Tieto funkcie môžete použiť pri vytváraní vedeckých, inžinierskych a obchodných aplikácií. Takéto aplikácie sa môžu pripojiť k databázam pomocou technológie dbExpress, pričom stále používajú nevizuálne komponenty známe vývojárom, ako sú ClientDataSet alebo DataSource, využívajú technológiu DataSnap, pripájajú sa k ľubovoľným databázam, SOAP a REST serverom. Môžete vytvárať atraktívne ovládacie prvky, tlačidlá s políčkami, nezvyčajné tabuľky a ďalšie prvky rozhrania, a to v dvoch a troch rozmeroch. Hotový 3D model si môžete nahrať do aplikácie a skombinovať s 2D tvarom, v ktorom sa dá otáčať a pozerať z rôznych uhlov. Môžete vytvoriť dátovú kocku alebo 3D obchodný graf a otáčať ich pomocou myši, klávesnice alebo dokonca zariadenia Kinect, alebo môžete ísť do kocky a pozrieť sa na jej rôzne povrchy zvnútra. A to všetko je možné vykonať pomocou vysokorýchlostného GPU. Rovnakú aplikáciu potom možno skompilovať pre inú platformu, ako je napríklad Mac OS.

Aplikácia obsahujúca rotujúcu kocku s údajmi,
umiestnené na jeho okrajoch

Alebo môžete vytvoriť 3D tvar od začiatku a použiť kamery a svetlá na osvetlenie a otáčanie častí používateľského rozhrania. Návrhár formulárov už má vstavané prostredie na podporu 3D používateľského rozhrania priamo v čase návrhu.

V systéme Windows môžete použiť knižnice Direct2D pre 2D grafiku s vysokým rozlíšením a Direct3D pre 3D grafiku. Mac OS používa na rovnaký účel knižnice Quartz a OpenGL. Pre iOS sa používajú knižnice Quartz a OpenGL ES. To všetko je však pred vývojárom skryté – používa platformu FireMonkey, jej súradnicový systém a aplikačné programovacie rozhranie, bez toho, aby premýšľal o týchto knižniciach, a dokáže zostaviť rovnakú aplikáciu pre rôzne platformy.

Pripomeňme si, čo je VCL. VCL je komponent "obal" okolo Windows API. Máme čo do činenia so zdrojmi, ponukami, dialógovými oknami, farbami, štýlmi, správami systému Windows. FireMonkey, ktorý je na rozdiel od VCL multiplatformový obal, si zachováva rovnaké modely udalostí a komponentov, čo vám umožňuje myslieť v zmysle udalostí (napríklad udalosti OnClick, OnHasFocus, onMouseDown a onKeyDown), ale spracovávať udalosti na počítačoch Macintosh alebo iPhone.

Rámec FireMonkey prichádza aj s kompletným systémom na animáciu prvkov používateľského rozhrania. Určite to nie je komplexný animačný systém v štýle Pixar, ale umožňuje aplikovať efekty, ako sú animácie bitmapy, zvýraznenie zamerania prvku používateľského rozhrania a práca s vektorovou grafikou. Vývojár má k dispozícii viac ako 50 vizuálnych efektov: rozmazanie, premena obrazu na čiernobiely, rozpúšťanie, prechody, odraz, vytváranie tieňov – všetky typy efektov dostupné v moderných GPU, ktoré sú teraz takmer v každom počítači. Aplikácia vytvorená pomocou platformy FireMonkey odosiela príkazy GPU, ktoré vykonáva všetku prácu pri zobrazovaní grafiky a vytváraní používateľského rozhrania. Centrálny procesor je zároveň voľný pre výpočty a prístupy k operačnému systému. Vývojár potrebuje iba správne umiestniť komponenty.

Najzásadnejšou vecou platformy FireMonkey je spôsob, akým vytvára používateľské rozhranie. Existujú zariadenia na umiestnenie bitmapovej grafiky na prvky rozhrania, ako sú ponuky, tlačidlá a posuvníky. Vo FireMonkey na tento účel používame vektorovú grafiku GPU. Z programovacieho hľadiska sú to všetky rovnaké ovládacie prvky, ale všetku prácu na ich zobrazení vykonáva grafický procesor. Môžeme použiť štýly na ovládacie prvky, upraviť aplikáciu tak, aby vyzerala ako aplikácia pre Mac OS alebo Windows, vytvoriť vlastný štýl, použiť naše štýly na prvky rozhrania (napríklad urobiť z tlačidla obdĺžnikové alebo okrúhle zmenou jeho štýlu v editore formulárov) - na to má vývojové prostredie editor štýlov. Môžete si vytvoriť svoj vlastný štýl, alebo môžete zmeniť štýl už hotovej aplikácie.

Platforma FireMonkey – Vývojové nástroje
a podporované platformy

Ak si pamätáte, v knižnici VCL bol obmedzený počet ovládacích prvkov - kontajnerov (to znamená, že do nich môžete umiestniť ďalšie prvky) a vo FireMonkey je každý ovládací prvok kontajnerom. To znamená, že každý ovládací prvok môže obsahovať akýkoľvek iný ovládací prvok. Položky rozbaľovacieho zoznamu môžu napríklad obsahovať obrázky, tlačidlá, polia úprav a ďalšie ovládacie prvky. A môžete tiež umiestniť komponenty na vrstvy.

Renderovací systém FireMonkey je pomerne flexibilný – dokáže využívať knižnice Direct2D, Direct3D a OpenGL posielaním príkazov do GPU. Na dosiahnutie toho istého vo VCL bolo potrebné vygenerovať samostatný off-screen buffer, vytvoriť v ňom obraz volaním príslušných funkcií grafických knižníc a ten následne zobraziť na formulári.

Príklady grafických efektov podporovaných FireMonkey

Ak nemáte GPU, stále môžete použiť 2D alebo 3D tvary a použiť ovládacie prvky FireMonkey. V tomto prípade platforma FireMonkey použije knižnice GDI+ alebo iné podobné knižnice a vykoná rovnaké efekty a animáciu alebo manipuláciu s 3D objektmi.

Ďalšou vlastnosťou FireMonkey je nový systém na viazanie prvkov rozhrania na dáta, ktorý je otvorený a flexibilný. Vo VCL sú dva typy prvkov rozhrania: dátovo viazané a neviazané na dáta (napríklad TDBEdit a TEdit). Vo FireMonkey môže byť každý ovládací prvok spojený s údajmi akéhokoľvek typu. Môže to byť len výraz, pole z množiny údajov, údaje z objektov vytvorených vývojármi alebo výsledky volaní metód.

Navyše, pri vytváraní aplikácie môžete do nej načítať hotový 3D model a používať ho – takéto schopnosti sú často požadované v obchodných aj inžinierskych aplikáciách. Máme klienta, ktorý vytvára aplikácie pre logistiku. V Delphi mali vybudovaný informačný systém a v ňom aplikáciu, ktorá kreslila plán a zobrazovala informácie z dátových zdrojov. Nedávno urobili niečo zaujímavé - nakreslili plne automatizovaný 3D sklad v AutoCADe a ich aplikácia umožňuje vidieť, ako sa automatický nakladač pohybuje po sklade a umiestňuje tovar do regálov. A rozložia údaje zo zdrojov na príslušný obrázok.

Príklady zmeny aplikačných štýlov

KP: Aké formáty 3D modelov sú v súčasnosti podporované?

DI.: V tomto vydaní podporujeme načítanie modelov z AutoCADu, Collada (open source nástroj na 3D modelovanie. - Poznámka. vyd.), Maya, formát OBJ podporovaný mnohými predajcami 3D grafiky.

KP: Aké ďalšie formáty sa plánujú pridať?

DI.: Plánujeme pridať 3DS (3D Studio MAX), SVG (zvyčajne sa tento formát používa pre 2D vektorovú grafiku, ale niekedy aj pre 3D), Google SketchUp. Môžeme podporovať aj iné formáty.

KP: Vyžaduje si používanie 3D modelov v aplikáciách vytvorených pomocou FireMonkey licenciu na príslušný nástroj na 3D modelovanie?

DI.: Nie, nie. Všetko, čo robíme, je čítať súbor modelu. Model importujeme, ale neexportujeme (aj keď samozrejme môžete napísať aplikáciu, ktorá uloží model vo vašom vlastnom formáte). Netvrdíme, že sme výrobcom nástrojov na 3D modelovanie – na tento účel môžete použiť AutoCAD, 3D Studio Max, Maya alebo akýkoľvek iný nástroj na 3D modelovanie a importovať vytvorené modely do našich aplikácií.

KP: Ako výkonné sú aplikácie vytvorené pomocou FireMonkey na moderných hardvérových platformách?

DI.: Výkon je pomerne vysoký. Napríklad 3D tvar s tromi guľami a tromi svetlami možno na MacBooku Pro vykresliť rýchlosťou 100 snímok za sekundu. A môže to dosiahnuť 600 - záleží na tom, čo presne robíme. Opäť všetko závisí od výkonu GPU.

KP: Znamená to, že s pomocou FireMonkey môžete vytvárať hry, ktoré spĺňajú moderné požiadavky?

DI.: Naše vývojové nástroje neumiestňujeme ako nástroj pre hry. Napriek tomu s využitím vysokého výkonu moderných grafických procesorov môžete vytvárať hry aj s FireMonkey – napokon sú vytvorené pomocou Direct3D alebo OpenGL.

KP: Akú prácu teraz robíte v oblasti podpory rozpoznávania gest a iných nových vecí? Je takáto podpora dostupná?

DI.: V tomto vydaní zatiaľ nemáme podporu gest. Ovládanie gestami bude pridané v budúcom vydaní FireMonkey, ale zatiaľ môžete použiť podporu gest zabudovanú v operačnom systéme.

Michail Filippenko, riaditeľ Fast Reports, Inc.

K.R.: Už sme si povedali, že technológia FireMonkey má ruské korene – jej základy vznikli u nás a následne sa samotná technológia a jej vývojári spojili do Embarcadero. Vo všeobecnosti je potešujúce vidieť rast ruského komponentu v RAD Studio a Delphi. Ide o činnosť nášho vývojového centra v Petrohrade a o príspevok nezávislých ruských vývojárov. Napríklad Rad Studio XE2 obsahuje celosvetovo známy a u nás veľmi obľúbený generátor reportov FastReport. Pochádza z Rostova na Done.

KP: Chcel by som hovoriť o kompilátoroch. Aký kompilátor sa používa na vytváranie aplikácií pre iOS?

DI.: Nemáme vlastný kompilátor Delphi pre iPhone alebo iPad – zatiaľ sme nevyvinuli kompilátory pre procesory ARM používané v týchto zariadeniach. Pre iOS dočasne používame kompilátor Free Pascal a runtime knižnicu. Ale pracujeme na ďalšej generácii kompilátorov, vrátane tých pre procesory ARM. Existujú však kompilátory pre Windows a Mac OS, pretože obe hardvérové ​​platformy sú založené na procesoroch Intel.

KP: A čo sa za posledné dva roky urobilo v oblasti vývoja kompilátorov?

DI.: Máme 32 a 64 bitové kompilátory Delphi pre Windows a Mac OS. A pracujeme na novej generácii kompilátorov Delphi a C++. Práce na nich stále pokračujú, ale keď budú dokončené, budeme mať kompilátory Delphi pre procesory ARM, platformy Android, Linux a čokoľvek iné. A budeme mať 64-bitové kompilátory C++ pre Windows a ďalšie platformy kompatibilné s najnovším jazykovým štandardom C++, ktorý práve prijala ISO.

KP:Čo sa dnes deje s podporou cloud computingu vo vývojových nástrojoch Embarcadero?

DI.: S RAD Studio XE 2 podporujeme migráciu aplikácií do cloudu Microsoft Azure alebo Amazon EC2 pomocou Platform Assistant. A máme serverové komponenty pre Cloud Storage for Azure a Amazon S3 na ukladanie tabuliek, binárnych údajov, frontov správ. V predchádzajúcej verzii RAD Studio XE sme tiež podporovali nasadenie aplikácií na Amazon EC2, ale chýbala podpora úložiska.

Podpora cloud computingu v RAD Studio XE 2

KP: Pred dvoma rokmi ste hovorili o novom riešení All-Access. Koľko bol dopyt? Aké sú jeho výhody pre systémových integrátorov a vývojárov?

DI.: Riešenie All-Access a cloudový nástroj AppWave sú široko používané po celom svete. Sú navrhnuté tak, aby uľahčili používanie aplikácií našej spoločnosti aj tretích strán. V skutočnosti ide o riešenie na správu licencií a aplikácií a je vhodné pre veľké spoločnosti. Menšie firmy, ktoré nemajú vyhradený tím na správu aplikácií, môžu umiestniť aplikáciu do úložiska, vybrať používateľské mená z databázy a sprístupniť tieto aplikácie na použitie bez toho, aby si museli pamätať, kde je licenčný kľúč a koľko licencií je dostupných. All-Access a prehliadač AppWave sú navrhnuté tak, aby spravovali správu verzií aj riadenie prístupu.

K.R.: Trh je taký rozmanitý a používatelia sú tak rôzni, že nie je možné pokryť všetky potreby jedným riešením. Preto sa snažíme o rôznorodé „obalové“ riešenia. Urobili sme veľa práce na zjednotení licencovania, správy licencií a inštalácie produktov. Tento rad riešení zahŕňa nástroje na správu licencií a prístupu nielen pre produkty Embarcadero, ale aj pre akékoľvek iné produkty, vrátane interného vývoja spoločností.

Práca na spájaní vývojových nástrojov do efektívnych užívateľských súprav stále pokračuje. Máme All-Access - superset, ktorý kombinuje všetky produkty Embarcadero. Ak si zákazník zakúpi All-Access Platinum verziu, dostane všetky nástroje, ktoré sú v Embarcadero. Niekedy sa však táto sada ukáže ako nadbytočná, napríklad sme pre databázových špecialistov vyrobili dve ďalšie sady – DB Power Studio Developer Edition a DB Power Studio DBA Edition. Rozdiel medzi nimi je v tom, že pre vývojárov ponúkame RapidSQL - nástroj na vývoj serverového kódu a pre správcu je zabudovaný DBArtizan - nástroj na správu databázy, širší produkt ako RapidSQL. Pre profesionálov máme nasledujúce balíky All-Access: balík všetkých produktov, DB Power Studio pre vývojárov, DB Power Studio pre správcov, ER Studio Enterprise Edition pre architektov a kohokoľvek, kto sa zaoberá modelovaním. Existujú kombinácie pre vývoj aplikácií a pre správcov. Delphi je nástroj pre vývojárov a má veľký zmysel pridať k nemu vývojové nástroje SQL a nástroje na optimalizáciu. Nakoniec, DB Change Manager je veľmi logický nástroj na riadenie zložitosti zmien, ktoré sa vyskytnú v databázach počas ich životného cyklu.

All-Access je teda hlavou veľkej rodiny rôznych sád produktov.

KP: Ak to nie je tajomstvo, kto v Rusku používa All-Access?

K.R.: Máme zákazníkov, ktorí si kúpili All-Access založený na Delphi. Mnohí z nich budujú komplexné klient-server systémy s SQL Server a Oracle a okamžite si obľúbili našu multiplatformovú databázovú sadu nástrojov. Máme klientsku spoločnosť, ktorá spolupracuje s Delphi od prvej verzie a pred rokom prešla z Delphi na All-Access. Dva nástroje, ktoré budú zaručene používať všetci vývojári v tejto spoločnosti, sú Delphi a DBArtisan. A sú zákazníci, ktorí prišli do All-Access zo strany databázy. Ich primárnou úlohou je správa databáz, ale príležitostne vyvíjajú aj aplikácie. Medzi klientov využívajúcich All-Access patria mediálne spoločnosti, výrobcovia strojov a ďalšie odvetvia.

Samostatne by som sa chcel venovať malým spoločnostiam. Veľmi často v malých tímoch robí všetko vývojár a takáto firma niekedy kúpi veľké potravinové balíčky All-Access pre jedného alebo dvoch vývojárov. Vo veľkých tímoch sa neodporúča, aby vývojár vykonával napríklad aj úlohu správcu databázy, preto sú tam väčšinou obľúbené malé balíčky potravín a v malých firmách je táto kombinácia povinností celkom prijateľná.

Delphi Architect je silne predávaný produkt, ktorý zahŕňa modelovacie a programovacie nástroje. Počet predaných kópií je však nižší ako pri verziách Delphi Enterprise, ale je tiež veľký. Podotýkam, že v roku 2010 sme boli z hľadiska tržieb najlepšia krajina aj napriek tomu, že krízu prežili všetky krajiny. Tento rast nebol spôsobený ani tak ekonomickými faktormi, ako skutočnosťou, že verzia RAD Studio XE, vydaná koncom roka 2009, bola veľmi žiadaná. A zatiaľ očakávame ďalší rast tržieb.

Urobili sme ďalší rozumný krok, ktorý je v Rusku veľmi žiadaný. Stupeň legalizácie rôznych verzií našich produktov je rôzny: čím vyššia verzia, tým viac je legalizovaná, pretože predtým sa softvér tak aktívne nenakupoval. Počnúc RAD Studio XE, licencia pokrýva verzie 2010, 2009, 2007 a dokonca aj Delphi 7, čo je široko používaný produkt.

Developeri sa dnes stretávajú s tým, že majú nové projekty aj projekty v stave podpory. Veľké množstvo projektov bolo migrovaných zo skorých verzií Delphi na verziu 7 a zostávajú v rámci tejto verzie, pričom naďalej pracujú na relatívne malých zdrojoch. Nikto ich nepresúva na novšie verzie, no udržiavajú ich životaschopné. A teraz umožňujeme za málo peňazí (menej ako cena licencie Delphi 7) získať RAD Studio XE aj Delphi 7 - to znamená, že legalizujeme vývojára na implementáciu nových projektov aj na podporné projekty.

KP: Ako hodnotíte súčasný stav komunity Embarcadero?

DI.: Táto komunita je veľká a veľmi náročná. Potrebujú všetko a okamžite – sú vývojári. Niekedy však trvá dlho, kým sa niečo podarí.

Pred niekoľkými rokmi sme vzali architektúru komponentov Windows a umiestnili ju na desktopy Linuxu. Teraz vidíme, že to nebolo správne rozhodnutie. Správnym rozhodnutím je vytvorenie platformy pre aplikácie. Aplikácie aj pre rôzne platformy majú menu, okná, grafiku, sieťový prístup a prístup k zariadeniam. Rôzne platformy môžu mať rôzne modely riadenia toku alebo spracovania výnimiek, ale v kóde aplikácie vidíme rovnaké skúšobné bloky. Našou úlohou je uľahčiť vývojárom vytváranie obchodných aplikácií a ich kompiláciu pre platformy, na ktorých sa majú používať, bez ohľadu na to, ako je usporiadaný inštrukčný systém príslušných procesorov a aké sú ďalšie funkcie týchto platforiem. A FireMonkey je presne to, čo potrebujete na vyriešenie tohto problému.

KP: Ak by spoločnosť vytvorila nové zariadenie a chcela by mať preň podporu FireMonkey, bolo by to možné?

DI.: S kompilátormi novej generácie, ktoré budú mať platformovo nezávislý front-end a platformovo závislý back-end, to bude celkom možné. Medzitým pre každý operačný systém vytvoríme kompilátor a knižnicu runtime úplne od začiatku.

Každé moderné nové zariadenie má zvyčajne grafické používateľské rozhranie (mnohé z nich majú dvojjadrový procesor a GPU) a štandardné súpravy SDK pre vývojárov. To všetko zjednodušuje vytváranie podpory zariadení vo FireMonkey. Ak má nové zariadenie knižnice iba pre 2D grafiku, ako je Quartz, budeme môcť takéto zariadenie podporovať vo FireMonkey, ale bude to trvať približne niekoľko mesiacov. Veľa však závisí od platformy: nie všetky platformy podporujú všetky funkcie, napríklad iOS nemá ponuky a dialógy a na formuláre takýchto aplikácií nebudete môcť umiestniť zodpovedajúce komponenty.

KP: Zmenilo sa niečo v politike spolupráce s partnermi? Čo sa robí pre zvýšenie podielu používateľov vašich produktov? Čo sa robí v Rusku?

DI.: Náš partnerský ekosystém je široký – existujú stovky výrobcov nástrojov a komponentov, ktoré sa nenachádzajú v našich produktoch, a máme program technologického partnerstva. Preto je vývojárom k dispozícii široká škála komponentov, technológií a nástrojov. A riešenia, ktoré vytvárajú pre svojich zákazníkov, sú lepšie, ako keby sa používali iba naše produkty. A pre predaj máme pobočky v mnohých krajinách, predajcov a distribútorov.

K.R.: Nie je pre nás dôležitý počet partnerov, ale kvalita práce každého konkrétneho partnera. Zatiaľ sa chceme zamerať na úzku spoluprácu s existujúcimi partnermi, aj keď okruh partnerov zostáva otvorený. Máme veľa partnerov a musíme im pomôcť v oblasti technológií. Spolupracujeme s vývojármi a tí vedia, čo chcú a vedia, čo je na trhu dostupné a tomu musia zodpovedať možnosti partnerov.

Máme obchodných partnerov, ktorí do Embarcadera ako do oblasti podnikania veľa investovali – majú vyškolených špecialistov, marketing našich produktov, oddaných zamestnancov, ktorí sú za túto oblasť zodpovední a sledujú, čo sa deje s našimi produktmi, cenníkom, marketingom. Prirodzene sú z hľadiska predaja našich produktov úspešnejšie ako spoločnosti, ktoré naše produkty predávajú od prípadu k prípadu.

KP: David, Kirill, veľmi pekne ďakujem za zaujímavý rozhovor. V mene našej publikácie a našich čitateľov mi dovoľte zaželať vašej spoločnosti ďalší úspech pri vytváraní vašich úžasných nástrojov, ktoré vývojári tak veľmi potrebujú!

Otázky položila Natalia Elmanova

FireMonkey je základná technológia „nového Delphi“. Povedzte nám o cieľoch, schopnostiach a technických aspektoch tejto zásadne novej knižnice. Po chvíli, keď sa pozriete späť, aké ťažké a opodstatnené bolo vaše odmietnutie ďalej rozvíjať super populárny VCL?

Bol zvolený ako hlavný smer vývoja technológie Delphi na dosiahnutie konkrétneho cieľa – multiplatformový vývoj z jedného prostredia, založený na jednotnej základni zdrojového kódu a bez nutnosti radikálneho preškoľovania vývojárov. V rámci dnes už klasického a mimoriadne obľúbeného VCL to nebolo možné, jeho prepojenie s WinAPI bolo príliš úzke, dalo by sa povedať, „na genetickej úrovni“.

Komponenty VCL nemali „abstraktnú“ vrstvu medzi funkčnou úrovňou z hľadiska rozhrania a ich mapovacích mechanizmov. Funkčná úroveň- ako sa správa ako kontrola, na aké udalosti reaguje, akú interakciu používateľa poskytuje. Displej- volanie metód vykresľovania orientovaných na platformu ako druhu obrazu tvoreného rastrovými objektmi a vektorovými primitívami. FireMonkey spočiatku implementoval princíp prísneho rozdelenia ovládania na dve zložky: „behaviorálnu“ a „vizuálnu“.


Vsevolod Leonov, Embarcadero Technologies

Prvý ako celok zopakuje ani nie základy VCL, ale podstatu objektovo orientovaného programovania. Komponent je trieda, triedy komponentov tvoria hierarchiu, v ktorej možno rozlíšiť rodiny a moduly. Trieda komponentu nemá veľa spoločného s tým, ako sa vykresľuje.

Vizuálny „obraz“ sa tvorí dynamicky, nie je pevne zakódovaný v triede komponentov. Obrázok alebo „štýl“ vo FireMonkey sa načíta do komponentu pri spustení aplikácie. Máme nejaký funkčný rámec pre komponent a „pokožka“ alebo „obloženie“ sa dá zmeniť, ale prečo? Preto aplikácie FireMonkey vyzerajú autenticky na akejkoľvek platforme – Windows 7, Windows 8, Mac OS, iOS a v blízkej budúcnosti aj Android. Tradičná monolitická štruktúra triedy VCL to nemohla poskytnúť.

Osobitnú úlohu tu zohráva technologický prístup. V zásade si môžete vziať knižnicu VCL a „naplniť“ WinAPI všetkými ostatnými možnými volaniami platformy. Na veľmi obmedzenej podskupine komponentov sa to stále dá urobiť, ale VCL obsahuje niekoľko stoviek komponentov, takže tento prístup by mohol jednoducho „zabiť“ VCL. Bolo rozhodnuté nedotýkať sa VCL a vyvinúť nové funkcie na novej platforme - FireMonkey. Táto technológia má dokonca istú technickú eleganciu – v čase zostavovania projektu pre konkrétnu platformu pripojí Delphi IDE potrebný kompilátor a komponenty rozhrania dostanú platformový štýl.

Pre používateľa je to jedno kliknutie myšou a rovnaký zdrojový kód, pre Delphi je to mnoho rokov tvrdej práce vývojárov na vytvorení takejto multiplatformovej knižnice.

Keď bolo jasné, že FireMonkey bude predstavený ako samostatná nová platforma, bolo potrebné zvoliť správnu stratégiu koexistencie: Embarcadero nechcelo žiadnym spôsobom negatívne ovplyvniť používateľov VCL. Preto sme zvolili nasledujúci plán: VCL zostáva ideologicky a architektonicky stabilný, aby bola zabezpečená čo najväčšia kompatibilita a uľahčila sa migrácia projektov na moderné verzie. Vývoj FireMonkey sa bude uberať prirodzenou a paralelnou cestou, bez spätného pohľadu na VCL.

Slabou stránkou tohto riešenia je pomerne problematická migrácia z VCL na FireMonkey v rámci jedného projektu. Ale na druhej strane, pri novom projekte si vývojár môže zvoliť FireMonkey, aby zabezpečil multiplatformový charakter svojej výslednej aplikácie. S vydaním XE4 s podporou iOS sa už môžeme baviť o silnej konkurenčnej výhode Delphi pre mobilný vývoj vo firemnom prostredí, ktorá sa po implementácii plánovanej podpory pre Android ešte zvýši.

Preto ako také neexistuje žiadne výslovné „odmietnutie“ vývoja VCL. V nových verziách sa vyvíja aj VCL časť Delphi. To zahŕňa podporu pre 64-bit a zavedenie štýlu pre vizuálne komponenty a implementáciu mechanizmu pre flexibilné dynamické prepojenia alebo „binding“ a zahrnutie knižnice FireDAC pre prácu s databázami v projektoch VCL. Ide len o to, že na pozadí obrovského kvalitatívneho skoku vďaka FireMonkey vyzerá pokrok vo VCL akosi neprejavene. Ale nech je to akokoľvek, VCL je integrálnou súčasťou Delphi a zostane ňou ešte mnoho rokov. Hoci vývoj platforiem a súčasný stav v oblasti OS pre desktopové systémy a mobilné zariadenia sú také, že budúcnosť je jednoznačne s FireMonkey.

O podpore iOS sme už hovorili v rozhovore, povedzme našim čitateľom o najnovšej podpore RAD Studio XE4 pre ďalšie najnovšie technológie, ako sú Windows 8 a WinRT, 64-bitové systémy, MacOS a podobne. Môžete vymenovať, čo ešte môžete ponúknuť modernému programátorovi rozmaznanému inováciami?

Moderný programátor s najväčšou pravdepodobnosťou nie je „rozmaznaný“ inováciami. Pri veľkých projektoch sa každá „inovácia“ často zmení na gigantické množstvo práce.

Napríklad všetci dlho čakali, mnohí sa okamžite ponáhľali preniesť svoje kódy na novú platformu. Ukazuje sa však, že ani veľmi profesionálne tímy na to nie sú pripravené. Kompilovateľný 64-bitový kód neznamená funkčný. Začali sa objavovať „hriechy mladosti“, ako napríklad používanie inštrukcií predpokladajúcich veľkosť adresy 4 bajty. Chýbajúca kultúra vykonávania testov spojená s technologickou neochotou implementovať tento proces v krátkom čase.

A tu – čím väčší je projekt, meraný napríklad počtom riadkov zdrojového kódu, tým starostlivejšie a vyváženejšie programátori zaobchádzajú s rôznymi druhmi inovácií, od vzhľadu „tlačidla“ v rozhraní až po „syntaktický cukor“ v kompilátore.

Jedným z týchto „problémových“ úspechov bolo vydanie systému Windows 8. Osobne, ako používateľ PC a len moderný IT špecialista, som s Windowsom 8 spokojný. Ale pre vývojárov, ktorým bola ako záťaž zaslaná dávka počítačov so systémom Windows 8 s technickými špecifikáciami na vývoj pod novým OS, to znamená určité ťažkosti.

Podporu pre vývoj pod novým rozhraním tohto OS sme sa snažili poskytnúť čo najpohodlnejšie a bezbolestne. Preto boli zavedené špeciálne štýly pre VCL aj FireMonkey a programátor môže buď prebudovať rozhranie aplikácie, alebo vytvoriť novú aplikáciu, ktorá bude vzhľadom na nerozoznanie od tej „natívnej“ pre Windows 8. Samozrejmosťou je potreba „natívnej“ podpory pre Windows 8 cez WinRT. Tu však ovplyvňuje uprednostňovanie cieľov v moderných podmienkach. Mac OS, iOS, Android v blízkej budúcnosti zatiaľ nedávajú príležitosť hovoriť o plnej podpore WinRT v blízkej budúcnosti.

Strategickým cieľom Embarcadera je samozrejme multiplatformnosť. Vydanie RAD Studio XE4 bolo kľúčové, predovšetkým kvôli podpore iOS. Aktívny programátor využívajúci VCL môže začať s vývojom pre iOS v priebehu niekoľkých hodín. Aj jednoduchá mobilná aplikácia sa dá okamžite premeniť na výkonný projekt, ktorý funguje v rámci existujúcej infraštruktúry. Nemyslite si, že je to len nový kompilátor pre FireMonkey a nový štýl, ktorý zodpovedá rozhraniu iOS.

To zahŕňa nový vizuálny dizajnér, vstavanú podporu pre rôzne tvarové faktory, knižnice prístupu k údajom vrátane nového FireDAC a technológiu LiveBindings pre flexibilné a dynamické viazanie na firemné údaje. Všetky tieto inovácie prichádzajú synchrónne – pre Windows, pre Mac OS a pre iOS. Operačný systém Mac OS sa nevyvíja tak rýchlo, takže neexistujú také problémy ako prechod z Windows 7 na Windows 8. Objavili sa však Retina displeje a to si vyžadovalo osobitnú pozornosť. Teraz každá aplikácia MacOS vytvorená v Delphi XE4 automaticky obsahuje dva štýly – „normálny“ a „vysoké rozlíšenie“.

To. rovnaká aplikácia môže mať rovnako kvalitné „natívne“ rozhranie na akomkoľvek stolnom počítači od Apple.

Embarcadero nechce svojimi novými inovatívnymi vydaniami „prekvapiť“, „ohromiť“ či dokonca „baviť“ vývojárov. Naopak, IT sféra je už teraz plná rôznych prekvapení: nové zariadenia, nové platformy, noví používatelia, ich nové potreby, nové scenáre interakcie. Pridajte k tomu nové technológie vývoja softvéru a programátori jednoducho nebudú mať čas vytvárať nové systémy a na existujúcich - urobia len to, čo migrujú z jedného prostredia do druhého, zo starej knižnice do novej, z jedného jazyka do ďalší.

Ale nepriznávame odmietnutie všetkého nového. Chceme len zabezpečiť kontinuitu všetkého – kódu, rozhrania, projektu, dokonca aj profesionálnych zručností, keď sa objavia nové platformy a zariadenia. Dá sa povedať, že bojujeme proti nezdravému konzervativizmu vo vzťahu k novým platformám na úkor zdravého konzervativizmu vo vývojových nástrojoch. Od Embarcadera nečakajte exotické produkty, neštandardné programovacie jazyky a bizarné vývojárske nástroje.

U nás vždy nájdete vizuálny vývoj, klasické jazyky, „native“ kód a nechajte cieľové platformy pre vaše aplikácie vytvorené rovnakým osvedčeným klasickým spôsobom nové.

Čo je Fire Monkey?


FireMonkey (FMX) je framework pre multiplatformový vývoj pre desktopové systémy (Windows, Mac OS + v blízkej budúcnosti sa plánuje podpora serverovej časti na Linuxe) a mobilné (iOS a Android) s použitím jazyka Delphi/C++ .

Zvláštnosti:

  • jednotná kódová základňa pre všetky platformy;

  • akýkoľvek ovládací prvok (vizuálny komponent) môže byť kontajnerom (rodičom) pre iné komponenty;

  • prítomnosť veľmi pokročilého relatívneho usporiadania (20 typov) komponentov na formulári;

  • LiveBinding vám umožňuje pripojiť akýkoľvek typ údajov alebo informácií k akémukoľvek používateľskému rozhraniu alebo grafickým objektom;

  • prítomnosť štýlov formy/komponentov;

  • Multi-Device Preview vám umožňuje prispôsobiť vizuálnu prezentáciu pre každú z platforiem;

  • FireUI Live Preview – Zobrazuje zobrazenie aplikácie na skutočných zariadeniach v reálnom čase.

Schopnosti:

  • používanie natívneho API každej z platforiem, ako aj možnosť volať natívne knižnice tretích strán;

  • interakcia so všetkými senzormi (GPS, Akcelerometer, Kompas, Bluetooth (vrátane LE) a ďalšie);

  • podpora push notifikácií, IoT;

  • podpora asynchrónnych HTTP požiadaviek;

  • podpora väčšiny databáz (MsSQL, MySql, Oracle, PostgreSQL, MongoDB atď.);

  • práca s cloudovou službou (Amazon, Azure);

  • podpora služby Android.

Nevýhody (momentálne):

  • nedostatok podpory pre prispôsobenie pôvodných tried;

  • implementácia konkrétnych vecí je buď nemožná (widgety, rozšírenia (iOS) atď.), alebo je potrebný tanec s tamburínou (služba na pozadí, vysielaná správa atď.);

  • prispôsobenie Úvodná obrazovka (úvodná obrazovka), mierne povedané, nie;

  • Ovládanie FMX používa vlastné vykresľovanie (vizualizácia, kresba), ktoré je čisto vizuálne podobné natívnemu;

  • používanie natívnych ovládacích prvkov je spojené s veľkými pohybmi tela;

  • pri veľkom vnorení komponentov sa dejú neuveriteľné veci: aplikácia spadne na rôznych miestach, stratí sa zameranie, zamrzne atď.;

  • informačný obsah ladenia aplikácie na mobilných platformách je nulový;

  • popisy chýb na mobilných platformách sú zredukované na zbytočné „Chyba 0x00000X“;

  • čas kompilácie si želá, aby bol najlepší pre stredné a veľké projekty;

  • potreba použiť súbor na spresnenie mobilných aplikácií pre každú platformu;

  • žiadna podpora architektúry Intel Atom;

  • neprimeraná cena v porovnaní s konkurenciou.

výhody:

  • veľmi aktívny nedávny vývoj produktu aj komunity, podpora stále nových a nových technológií;

  • prítomnosť veľkého množstva bezplatných a komerčných komponentov;

  • rýchlosť aplikácie je veľmi blízka natívnej;

  • veľmi pokročilý vizuálny editor a prostredie vo všeobecnosti, prítomnosť štýlov;

  • možnosť otestovať aplikáciu na Win, a až potom ju nasadiť do zariadení, čo výrazne urýchľuje vývoj;

  • zmena režimu/platformy pohybom zápästia;

  • PAServer poskytuje jednoduchú interakciu s MacO pri vývoji pre Apple OS;

  • podpora 3D grafiky hneď po vybalení.

Na záver chcem povedať, že za posledných pár rokov sa FireMonkey rozrástol na profesionálny nástroj pre multiplatformový vývoj podnikových aplikácií a nielen to. Mnohé nedostatky sa postupne riešia a s každým vydaním sa produkt stáva modernejším a sebestačnejším a zároveň sa vytráca doterajšia skepsa voči samotnému jazyku Delphi spojená s dlhoročnou stagnáciou. Písanie nových projektov na FireMonkey je „bezpečné“ a sľubné.

Odkedy sa pojem FireMonkey stal viac-menej známym, už prešlo dosť času, ak nie všetkým vývojárom, tak aspoň tým, ktorí používajú Delphi. Počas tejto doby boli knihy o FireMonkey, články o FireMonkey, články o FireMonkey v mnohých blogoch. Čítať toto všetko je veľmi zaujímavé. Žiadna teória však nemôže nahradiť prax. A ja, ako mnohí predtým, som mal nutkanie skúsiť niečo napísať pomocou FireMonkey.

Pri tom však nastal problém. Z nejakého dôvodu som sa rozhodol, že len potrebujem zrealizovať nejaký nie veľmi zložitý pracovný projekt.

Na vysvetlenie, prečo sa mi to ukázalo ako problém, bude treba (človek chce písať, lyrickú) odbočku. Exkurzia do mojej minulosti vývojára. Vysvetlite niektoré moje názory na programovanie pomocou Delphi.

Musím povedať, že Delphi som začal používať na Windows 3.1, teda od prvej verzie. A odvtedy študujem VCL. Naštudované takpovediac v origináli. Sledoval, oslovoval, sledoval zdrojové kódy. Znova a znova.

Je známe, že v rôznych časoch sada komponentov dodávaných s Delphi obsahovala komponenty tretích strán, ktoré mali vyplniť medzery vo VCL a ktoré pravdepodobne prešli nejakým druhom kontroly kvality predtým, než boli zahrnuté. Niektoré z týchto komponentov sa dodávajú dodnes. Vezmite rovnakého Indyho. Nechcem nikoho uraziť, je to čisto môj osobný názor, ktorý platí aj pre mňa ako vývojára komponentov: ani jedna zostava nebola tak hlboko premyslená a implementovaná ako obrovský a rôznorodý VCL. Nie, nepredstieram, že som konečná pravda, a, samozrejme, v samotnom VCL je veľa chýb, rozhodnutí, ktoré spôsobujú nedorozumenie, spôsobujú odmietnutie a s ktorými sa chce nesúhlasiť. Ale vždy som mal dojem určitého jednotného štýlu. Vo VCL je podľa mňa krásne a silné jadro, ktoré podporuje celý dizajn Delphi a okolo ktorého je postavená softvérová infraštruktúra aj samotná vývojárska komunita. Z veľkej časti vďaka VCL, opäť, podľa môjho názoru, klebety o smrti Delphi sú stále fámami. A keď boli súčasťou dodávky VCL komponenty tretích strán, bolo to okamžite viditeľné, boli odlišné.

Ale potom príde moment a počujem, že VCL je technológia, ktorá je zastaraná. Technológia, ktorá by mala zostať v minulosti. Vývojári by mali implementovať všetky svoje nové projekty na FireMonkey, ale o starých ... bolo by pekné ich preniesť na nové koľajnice. FireMonkey je všade a vždy. A počúvam to z rôznych zdrojov. A dosť vytrvalo. Nie, nikto nezabije VCL. zostáva s nami. Ale už nie je číslo jeden. Mal by byť náhradníkom. Aspoň tak chápem, čo sa hovorí o budúcnosti produktu.

V princípe tomuto zosúladeniu rozumiem. Prešiel kurz pre multiplatformové, a čo je dôležitejšie, pre multiplatformové. Koniec koncov, čo je VCL? Vizuálna knižnica komponentov. Knižnica vizuálnych komponentov. S tým možno nebudete súhlasiť. Napríklad som vždy považoval veľa nevizuálnych komponentov, a nie komponentov, ale iba tried, za neoddeliteľnú súčasť VCL a obrovské množstvo tried a komponentov tretích strán - pokračovanie, rozšírenie VCL. No, nemôžem považovať dedičov TDatasetu za súčasť VCL. Hoci napríklad výraz DBExpress Library hovorí, že to nie je VCL. Embarcadero očividne skutočne rozdeľuje monolitické, z môjho pohľadu VCL na množstvo samostatných knižníc. Nie, samozrejme, nie úplne oddelené, ale predsa. A ak vezmete tento uhol pohľadu, FireMonkey má nahradiť vizuálnu časť VCL (ako by som mal stále nazývať kompletnú knižnicu tried a komponentov, možno Borland Component Library?).

Aké sú vizuálne komponenty knižnice? Okolo nízkoúrovňových základných prvkov poskytovaných operačným systémom. Rukoväte okien, fonty, samotné okná, vstupné prvky, správy, kontexty zariadení a mnoho ďalšieho – to nie sú koncepty knižnice, ktorá sa dodáva s Delphi, ale koncepty operačného systému. Áno, je to tak, Windows. A ak chcete vybudovať multiplatformovú knižnicu, potom je logické odmietnuť infraštruktúru ponúkanú operačným systémom, ktorý spúšťa program napísaný pomocou knižnice.

Presne o to sa FireMonkey snaží. Snažia sa vytvoriť infraštruktúru založenú na základných mechanizmoch podporovaných rôznymi operačnými systémami, ktoré môžu nahradiť službu, ktorú samotné operačné systémy ponúkajú.

Mnohí si pamätajú, že sa pokúšali vyrobiťmultiplatformová nielen knižnica, ale aj samotné Delphi. Paralelne s Delphi 6 bol vydaný produkt Kylix a knižnica CLX. Toto všetko bolo urobené preto, aby bolo možné vyvíjať pre Linux. Linux však nemá veľa základných konceptov zobrazovania okien GUI ako Windows. Rozhranie okna pre Linux vo všeobecnosti nie je prirodzeným javom. Toto je voliteľná aplikácia. A musel som napísať nejaký druh syntetickej knižnice. S jeho pomocou bolo možné napísať program pre Windows aj Linux. Stále si však pamätám ten pocit, nie sklamanie, skôr nepríjemné nepríjemnosti, ktoré som zažil, keď som sa pokúsil použiť analógy vizuálnych komponentov od CLX. Začalo mi veľa chýbať. To, čo som pri vývoji pomocou VCL robil bez premýšľania, sa ukázalo ako ťažké, veľmi odlišné alebo jednoducho nemožné pomocou CLX.

Pri prechode z BDE na DBExpress som sa cítil približne rovnako. Starý, známy z Field Test-a BDE (Borland ho už vtedy používal v Quattro Pro pre Windows a v Paradoxe pre Windows a volalo sa to ODAPI a potom IDAPI a bol to podľa môjho názoru výrez nad ODBC od Microsoftu) vyhlásená za zastaranú technológiu, ktorá by mala v nových projektoch ustúpiť novej knižnici. Vždy mi v DBExpress spočiatku niečo chýbalo, najmä vedomosti.

Zároveň v žiadnom prípade nechcem nadávať ani kritizovať vyššie uvedené knižnice ani rozhodnutia, ktoré viedli k ich vzniku. Ide len o moje dojmy, niekedy prvé dojmy.

Teraz je možno trochu jasnejšie, prečo rozhodnutie napísať malý pracovný projekt pomocou FireMonkey prinieslo množstvo problémov. Pri vývoji projektov, projektov a projektov sa dlhé roky formoval určitý stereotyp, určitá šablóna, čo a ako robiť. A v mojom prípade som musel čeliť skutočnosti, že šablónu treba zmeniť. Pretože všetko, na čo ste zvyknutí používať VCL, nemôžete preniesť do projektu postaveného na FireMonkey.

Na začiatku projektu som zažil istý pocit deja vu. Totiž pocit nepohodlia. Napríklad obvyklé vstupné prvky nemajú veľa vlastností. Triky, ktoré sa v praxi pevne udomácnili, založené na trikoch súvisiacich so znalosťou niektorých vlastností operačného systému, v novom kontexte nefungujú. Nehovoriac o tom, že niektoré komponenty sa radikálne zmenili.

No, ďalšia dôležitá nuansa. Aké projekty sa zvyčajne musia robiť v práci, ak to (práca) nesúvisí s písaním kompilátorov, modelovacích systémov alebo čohokoľvek iného vysoko vedeckého? Myslím si, že pre väčšinu je to o vývoji niečoho, čo zahŕňa používanie databáz. Navyše, niečo vysoko vedecké môže tiež využívať služby poskytované DBMS.

Tu ma čakal ďalší prepad. Z nejakého dôvodu, keď v praxi narazíte na to, že FireMonkey neobsahuje prvky zamerané na prácu s dátami uloženými v databáze, nie ste na to celkom pripravení (mierne povedané). Aj keď som o tom už veľakrát čítal a viete (teoreticky), čo by ste mali použiť. Ide o Živé väzby.

Nechcem sa púšťať do hádky o tom, či by skutoční cool programátori mali používať komponenty s db-aware alebo by nemali zobrazovať, upravovať a nakoniec ukladať. Čo opäť nie je zlé ani dobré. Mne sa to tak stalo.

Týmto končím môj príspevok o prvých dojmoch. Ďalšie v poradí sú príbehy o tom, čo a ako pri práci na projekte prekonali.