Tűzmajom az egyszerűtől a bonyolultig. Mi az a FireMonkey? a natív osztályok testreszabásához nyújtott támogatás hiánya

Mi az a FireMonkey?


A FireMonkey (FMX) a platformok közötti fejlesztés keretrendszere mind asztali rendszerekre (a közeljövőben tervezik a Windows, Mac OS + szervertámogatást Linuxon), mind mobilra (iOS és Android) Delphi/C++ nyelvet használva.

Sajátosságok:

  • egyetlen kódbázis minden platformhoz;

  • bármely vezérlő (vizuális komponens) lehet tároló (szülő) más komponensek számára;

  • nagyon fejlett relatív elrendezés (20 féle) jelenléte az űrlapon;

  • A LiveBinding lehetővé teszi bármilyen típusú adat vagy információ csatlakoztatását bármilyen felhasználói felülethez vagy grafikus objektumhoz;

  • forma/komponens stílusok jelenléte;

  • A Multi-Device Preview lehetővé teszi a vizuális megjelenítés testreszabását az egyes platformokhoz;

  • FireUI Live Preview – valós időben jeleníti meg az alkalmazás megjelenését valós eszközökön.

Lehetőségek:

  • az egyes platformok natív API-jának használata, valamint a harmadik felek natív könyvtárainak hívásának lehetősége;

  • interakció az összes érzékelővel (GPS, gyorsulásmérő, iránytű, Bluetooth (beleértve az LE-t) és mások);

  • push értesítések, IoT támogatása;

  • aszinkron HTTP kérések támogatása;

  • a legtöbb adatbázis támogatása (MsSQL, MySql, Oracle, PostgreSQL, MongoDB stb.);

  • a felhőszolgáltatással való munkavégzés (Amazon, Azure);

  • Android szolgáltatás támogatása.

Hátrányok (jelenleg):

  • a natív osztályok testreszabásához nyújtott támogatás hiánya;

  • konkrét dolgok megvalósítása vagy lehetetlen (kütyü, bővítmény (iOS) stb.), vagy egy tamburával táncolni kell (háttérszolgáltatás, sugárzott üzenet stb.);

  • A Splash screen (kezdeti képernyő) testreszabása enyhén szólva is hiányzik;

  • Az FMX vezérlők saját megjelenítést (vizualizációt, rajzot) használnak, amely pusztán vizuálisan hasonlít a natívhoz;

  • a natív vezérlők használata nagy testmozgásokat igényel;

  • ha sok a komponens egymásba ágyazása, hihetetlen dolgok történnek: az alkalmazás különböző helyeken összeomlik, elveszti a fókuszt, lefagy stb.;

  • egy alkalmazás hibakeresésének információtartalma a mobil platformokon nulla;

  • a mobil platformokon előforduló hibák leírása a haszontalan „Error 0x00000X”-re redukálódik;

  • az összeállítási idő a legjobb a közepes és nagy projektekhez;

  • egy fájl használatának szükségessége a mobilalkalmazások csiszolásához minden platformon;

  • nem támogatja az Intel Atom architektúrát;

  • nem megfelelő ár a versenytársakhoz képest.

Előnyök:

  • mind a termék, mind a közösség nagyon aktív fejlesztése az utóbbi időben, egyre több új technológia támogatása;

  • hatalmas számú ingyenes és kereskedelmi komponens jelenléte;

  • Az alkalmazás sebessége nagyon közel áll a natívhoz;

  • nagyon fejlett vizuális szerkesztő és általában a környezet, stílusok jelenléte;

  • Lehetőség van egy alkalmazás tesztelésére Win rendszeren, és csak azután telepíthető az eszközökre, ami nagyban felgyorsítja a fejlesztést;

  • mód/platform váltása egy csuklómozdulattal;

  • A PAServer egyszerű interakciót biztosít a MacO-kkal az Apple OS-re való fejlesztés során;

  • 3D grafika támogatása a dobozból.

Végezetül szeretném elmondani, hogy az elmúlt néhány évben a FireMonkey professzionális eszközzé nőtte ki magát az üzleti alkalmazások és még sok más platformok közötti fejlesztéséhez. Számos hiányosság fokozatosan feloldódik, és minden kiadással modernebbé, önellátóbbá válik a termék, és megszűnik a sokéves stagnáláshoz kapcsolódóan fennálló szkepticizmus magával a Delphi nyelvvel szemben is. Új projekteket írni FireMonkey-ban „biztonságos” és ígéretes.

A tavaly szeptemberben megjelent Delphi XE2 rekordszámú újítást tartalmaz.
A Delphi XE2 képességeinek rövid áttekintése már megjelent a Habrén. De nyilvánvalóan a legszembetűnőbb újítás a FireMonkey platform, és itt szeretnék egy kis figyelmet fordítani rá.
Készítettem egy kis válogatást az anyagokhoz mutató linkekből, amelyek, remélem, segítenek többé-kevésbé megfelelő képet alkotni erről a platformról. De először azoknak, akik nem értenek hozzá, röviden elmondom, mi az a FireMonkey.
Az Embarcadero Technologies a FireMonkey-t olyan platformként pozicionálja, amellyel gazdag üzleti alkalmazások hozhatók létre Windows, Mac és iOS rendszeren. Ráadásul ez a platform minden operációs rendszerben natív, pl. A FireMonkey segítségével létrehozott alkalmazás futtatásakor a rendszer nem használ további bővítményeket.
A FireMonkey közvetlenül egy natív (az operációs rendszer szempontjából) grafikus könyvtárhoz kapcsolódik, például az OpenGL-hez vagy a DirectX-hez. Így a GPU szempontjából a legjobb megoldást javasoljuk.
A FireMonkey architektúra magja egy hatékony osztálykönyvtár (beleértve a vizuális összetevőket is).
A célplatform kiválasztása a fordítási folyamat során történik.
A FireMonkey első verziója csak a Win32-t, a Win64-et, a MacOSX-et és az iOS-t támogatta, de az Embarcadero azt tervezi, hogy a jövőben több más platformra is portolja.

Mit érdemes figyelembe venni?

Bár a FireMonkey platform kiterjedt eszközöket biztosít a 3D alkalmazások fejlesztéséhez, nem tekinthető játékmotornak. A FireMonkey kifejezetten az üzleti alkalmazások fejlesztésének platformja.
A termék jelenleg fejlesztésének kezdeti szakaszában van. És sok funkcionalitás A FireMonkey minőségi és mennyiségi változásokon megy keresztül.

Remélem, az alábbi linkek segítenek megérteni az új platform főbb jellemzőit.
Hivatalos termékoldal az Embarcadero honlapján (orosz)

Az angol nyelvű anyagok közül kiemelném a sorozatot (angol)

Mit kell látni?

Vonatkozó legújabb verzió Delphi, minden eddiginél több videóanyagot szentelnek a termék képességeinek és a vele való munkavégzésnek. Mindkettő hivatalos, az Embarcaderotól és független fejlesztőktől. A FireMonkey-ról rengeteg videó található a YouTube-on, csak a keresést használhatod. Ebből a rengeteg anyagból kiemelek egy három videóból álló sorozatot a Marco Cantu - RAD in Action nyitóoldalról, ezzel adva a kutatásom hasznosságát.

Valószínűleg tudatában van annak, hogy az Embarcadero aktívan népszerűsíti új vízióját egy többplatformos GUI létrehozásáról - FireMonkey ( keretrendszernek hívják, de a jelenlegi állapotához képest túl menőnek hangzik). Egy-egy versenyt hirdetnek a RuNeten, webináriumokat tartanak, és bár ez utóbbiak minősége hagy kívánnivalót maga után, az aktivitás biztató. Most tulajdonképpen a témához. A legutóbbi verseny keretében javasolták valamilyen tanulási alkalmazás kidolgozását. Tegnap pedig egy újabb mű jelent meg, szerzője Jevgenyij Chmel ( Nem tudom, hogy ez a vezetéknév hajlamos-e vagy sem). A korábban látott egyszerű „egyforma”-októl eltérően itt megpróbálták a majmot minden végtagjánál fogva húzni: stilizáció, 3D, shader effektusok ( Az Embarcadero evangélisták szeretnek GPU-gyorsított grafikáról beszélni :))). Lássuk, mi lett belőle. Azok számára, akik nem nézték a webináriumokat, teszek egy kis kitérőt. Az egyik webináriumon az Embarcadero evangélista, Vszevolod Leonov egy szívszorító történetet mesélt el arról, hogyan kellett „konkrétan keményen újraindítania a számítógépet” (ez egy idézet) amiatt, hogy a Silverlight SDK és Windows emulátor A 7-es telefon „nem működött” (ez egy idézet) a számítógépén, mert... Nem szerették a videó adaptert és a GPU beállításait. De a FireMokey segítségével fejlesztett alkalmazások – folytatja Vsevolod – egyáltalán nem igényesek hardver. Lássuk, hogyan hazudott nekünk. A Mark Rusinovich Process Explorer v15.05 pártatlan tanúja lesz. Tehát töltse le Evgeniy alkalmazását, és indítsa el ( Nem adok képernyőképeket Evgeniy alkalmazásáról, ezek elérhetők a munkájához mutató linken. Vegye figyelembe az elmosódott betűtípusokat).

Elindította az alkalmazást. Nézzük a fogyasztást:

Szerénytelen, de meg tudsz bocsátani" fejlett technológia" Lépjen a „Leckék” szakaszba, és válassza az „5. lecke” lehetőséget. Megkezdődik a színpadi felkészülés. Ez a folyamat hosszú ( Kicsit több mint egy percembe telt, egy négymagos Phenom II-n, 3,3 GHz-es frekvenciával), Legyél türelmes. A színpad megépült. Nézzük a fogyasztást:

A majom jól táplálkozott. Nagyon jól. Most próbálja meg mozgatni az egeret a válaszlehetőség gombjaira. Úgy tűnik, hogy a grafikus felület nagyon lomhán reagál, nem igaz? Nézd meg a CPU használati grafikont ( Úgy értem, próbáld ki magad, a számítógépeden) – ezekben a pillanatokban a terhelése megközelíti a 100%-ot ( ~21,5%-om volt négymagos processzornál, ami egymagosnál 86%-nak felel meg). De valaki beszélt nekünk a GPU-gyorsított grafikáról. Oké, menjünk tovább. A leckében minden kérdésre válaszolunk. Nézzük a fogyasztást:

Elkerekedett a szemed? Most összehasonlításképpen nézze meg, mennyit fogyaszt a FarCry 3D-s lövöldözős aktív játékmenettel ( a szintet Factorynak hívják, ha valakit érdekel) teljes képernyős módban 1440x900:

Vonja le saját következtetéseit.

Több mint három év telt el azóta, hogy az olyan világhírű eszközök, mint a Delphi, C++Builder és JBuilder, valamint az Interbase adatbázis-kezelő rendszer létrehozásáért felelős CodeGear részleg az eszközeiről ismert Embarcadero Technologies részévé vált. az adatbázis tervezéshez és adminisztrációhoz, valamint két éve, hogy lapunk oldalain megbeszéltük, hogy mire számíthatunk az olyan eszközök fejlesztésében, amelyek olyan népszerűek Orosz fejlesztők. David Intersimone-t, az Embarcadero Technologies fejlesztői kapcsolatokért felelős alelnökét és vezető evangélistát, valamint Kirill Rannev-et, az Embarcadero Technologies képviseleti irodájának vezetőjét megkértük, hogy beszéljenek arról, milyen újdonságok történtek ezen a területen az elmúlt két évben, és mire számíthatunk a közeljövőben, Oroszországban. Tájékoztatjuk legfiatalabb olvasóinkat, hogy nem ez az első interjú, amit David és Kirill ad a ComputerPressnek – együttműködésünk már második évtizede tart. Körülbelül ugyanennyi éve rendszeresen publikálunk adatbázis-kezelő eszközök ismertetőit, amelyekben nagy figyelmet szentelnek az Embarcadero termékeknek.

ComputerPress: David, az ön részlege három éve az Embarcadero része. Két évvel ezelőtt lelkesedtél, hogy egy olyan cég részévé válj, amely közel áll a céljaidhoz és szellemiségedhez. Változott valami ezalatt az idő alatt? Ön és kollégái még mindig ugyanolyan lelkesek?

Igen, még mindig nagyon lelkes vagyok. A fő változás, ami azóta történt, hogy az Embarcadero cég részévé váltunk, hogy rengeteget fektettek a Delphi fejlesztésébe. Nőtt a fejlesztői eszközökön dolgozók száma, nőtt azoknak a technológiáknak a száma, amelyeket fejleszteni tudunk, vagy szükség esetén beszerezhetünk.

A RAD Studio XE 2 kiadása, amelyet Moszkvában tervezünk bemutatni, ennek a terméknek a legnagyobb kiadása, hatalmas képességekkel és számos támogatott platformmal a Delphi első verziója óta, amelyet a Windows 16 bites verziójához készítettek. amely egy innovatív termék volt, amely egyesítette a komponens megközelítést és a fordítást gépi kódba. Most már nem csak Windowsra, hanem Macintoshra is támogatjuk a fejlesztést, nem is beszélve a webfejlesztésről és az alkalmazások létrehozásáról mobil eszközök, és ezek az alkalmazások különböző platformokhoz egyetlen kóddal rendelkezhetnek.

Az új fejlesztői platform – FireMonkey – az Embarcadero és a közelmúltban felvásárolt orosz KSDev cég közös erőfeszítése az UlanUde-tól, a komponensek gyártójától. vektoros grafika, DirectX és OpenGL, grafikus effektusok létrehozására szolgáló technológiák és Delphi alkatrészek segítségével GPU a PixelShader 2.0-val. Egy éve megvásároltuk a KSDev céget (lásd ksdev.ru), és elkezdtük együttműködések egy többplatformos fejlesztőeszköz létrehozása, amely magában foglalja a FireMonkey alkalmazásfejlesztő platformot Delphi és C++Buider komponensekkel az alkalmazások felhasználói felületének létrehozásához, adatbázis-integrációhoz, GPU grafikus feldolgozáshoz és operációs rendszer integrációhoz.

A FireMonkey segítségével létrehozhat egy olyan alkalmazást, amely a CPU-n és a GPU-n együtt fut, majd különböző fordítók és futásidejű könyvtárak (RTL) segítségével lefordíthatja azt Windows, Mac OS vagy iOS rendszerre. Ahelyett, hogy megtanulnának programozni különböző grafikus könyvtárak használatával, megtanulnák a különböző platformok API-it, amelyek eltérő koordinátarendszerrel és képességekkel rendelkeznek, a Delphi és a C++Builder fejlesztők ugyanazt a komponens alapú megközelítést használhatják, vizuálisan szerkeszthetik az űrlapokat és kapcsolódhatnak adatbázisokhoz. az alkatrész mozgatása az egérrel. Ez egy alapvetően új módja a különböző platformokon futó alkalmazások létrehozásának, és ez a jövő. Ha más operációs rendszerek és platformok támogatását szeretné hozzáadni az alkalmazásához, akkor nem kell újra megtervezni és fejleszteni, csak újra kell fordítania.

Új fordítókat hozunk létre, amelyek natív kódot generálnak. Ma már léteznek 32 és 64 bites Delphi fordítók Windows verziók, a Mac OS 10 32 bites verziói. Dolgozunk a Delphi és a C++Builder fordítók következő generációján, amelyek lehetővé teszik nagy teljesítményű gépi kód létrehozását mind ezekre, mind más platformokra, például Androidra vagy Linuxra, és ugyanazt a tervezést, ugyanazokat az összetevőket, ugyanazt a kódot tartsa meg különböző fordítók és futásidejű könyvtárak használatával.

Amint látja, van elég okom a lelkesedésre. És a fejlesztők, akikkel világszerte találkozom, tudják, hogy az Embarcadero sokat fektet a Delphibe és a C++Builderbe, valamint a PHP fejlesztőeszközökbe.

KP: Milyen sikereket ért el a két cég eszközeinek integrálása terén az elmúlt két évben? Mik az Embarcadero tervei a jövőben ezen a területen?

DI.: Abban az időben, amikor a CodeGear az Embarcadero részévé vált, a cégnek Torontóban, Monterreyben és Romániában volt fejlesztőcsapata, mi pedig Scotts Valley-ben és Oroszországban, Szentpéterváron voltunk és vagyunk. Az Embarcaderonak voltak eszközei a fejlesztők és adatbázis-adminisztrátorok számára, a CodeGearnél az alkalmazásfejlesztéshez, de utóbbiak adatbázisokat is használnak. A cégek összevonása a szakértelem, az adatbázisok területén szerzett tudás, a kódoptimalizálás, ezen belül a szerverkód kombinációja. A cégek összefogása egy új termék, az AppWave létrehozásához is vezetett, amely egy speciális technológia, amellyel egy szokásos Windows-alkalmazást nagyon könnyen használhatóvá (például iPhone-ra vagy más eszközökre) lehet átalakítani. Az AppWave lehetővé teszi, hogy ne telepítsünk egy alkalmazást, hanem egyszerűen kiválasztjuk és elindítjuk az előkészített alkalmazástároló szerverről (app), és a rendszer a felhasználó számítógépén lefut anélkül, hogy módosítaná annak beállításjegyzékét és rendszerterületét. fájlrendszer. Az AppWave alkalmazásböngésző egyébként Delphiben van írva. Az Embarcadero a Dephit használja saját fejlesztéséhez és alkalmazásfejlesztési szakértelméhez.

által létrehozott iPhone (iOS) alkalmazás
a FireMonkey platform használatával

A fejlesztői eszközeink és a DB Optimizer integrációját is használhatja az SQL lekérdezések optimalizálására alkalmazások létrehozásakor. Az SQL kód közvetlenül a DB Optimizerbe való átadásával profilozhatja, tesztelheti, és visszaküldheti az optimalizált verziót a fejlesztői környezetbe. Az Embarcadero adatbázis-szakértelme a DataSnap technológiát is továbbfejlesztette. A torontói fejlesztőknek köszönhetően sok ismeretet szereztünk a többrétegű rendszerek és adatbázisok architektúrájáról. Jelenleg mindkét vállalatnál közös szakértelemmel rendelkezünk a szerverkód és a tárolt eljárások létrehozásában. Olyan eszközökkel rendelkezünk, mint a RapidSQL és a DB Change Manager, valamint olyan fejlesztői környezeteink, amelyek leegyszerűsítik a szerverkód létrehozását – például a Code Insight és Code Completion technológiák lehetővé tették az SQL insight és SQL Completion technológiák létrehozását. A kliens- és szerverkód létrehozásának közös megközelítése, közös filozófiánk lehetővé teszi, hogy közös vonásokat adjunk az adatbázis-kezelő eszközöknek és az alkalmazásfejlesztő eszközöknek.

Kirill Rannev: Egy fontos dolgot szeretnék hozzátenni. Kereskedelmi szempontból nagyon fontos, hogy hogyan szállítjuk eszközeinket. Például, új kiadás A RAD Studio XE 2 Ultimate a DB Power Studio eszközök teljes készletét tartalmazza. Ez egy nagyon hatékony eszközkészlet, beleértve a RapidSQL lekérdezésfejlesztő környezetet, a DB Change Manager változáskezelő eszközt és a DB Optimizer lekérdezésoptimalizáló eszközt, amely lehetővé teszi a fejlesztési és üzembe helyezési folyamat fontos részének végrehajtását a módosítások kezelésével. az adatmodell, adatbázis, kód stb. Ez a technológiák nagyon jó és helyes kombinációja.

DI.: De ha szükséges, a fejlesztők használhatják a Subversion-t verzióvezérlésre forráskódés a DB Change Manager a metaadatok verziózásához. A kódprofilozást és a DB Optimizert használhatja a kiszolgálókód optimalizálására, a RapidSQL-t a kiszolgálókód összeállítására és hibakeresésére, a fejlesztői környezeteinket pedig az alkalmazások készítésére és hibakeresésére. A RAD Studio XE Ultimate Edition technológiai kombinációja bemutatja az adatbázis- és alkalmazásfejlesztési modellek közötti párhuzamot. A Delphi és C++Builder segítségével üzleti alkalmazásokat készítő fejlesztők többsége adatbázisokkal dolgozik, és szüksége van ezekre az eszközökre, a RAD Studio XE Ultimate Edition pedig nagyszerű kombináció az ilyen fejlesztők számára.

KP: A modern felhasználó már nem csak a Windows platform felhasználója. Mobil eszközöket használunk, iPhone, iPad, Android platformon alapuló eszközöket. Ez azt jelenti, hogy a fejlesztőknek meg kell kezdeniük a különböző platformok megcélzását anélkül, hogy jelentősen növelnék a képzési befektetéseket – vagyis univerzális eszközökre van szükség. Nyilvánvalóan irreális a platformgyártóktól univerzális eszközöket várni, és ebben a kérdésben csak független szerszámgyártókra számíthatunk. Hogyan számíthatunk az Embarcaderóra?

DI.: A platformtámogatás terén még sok tennivalónk van. A mai napon bevezetjük az iOS platform támogatását iPhone-ra és iPadre, majd az Android platformra épülő okostelefonok, a Windows 7 és a Blackberry megkapják a támogatásunkat. A RAD Studio XE 2-ben a FireMonkey platform iOS-re való kiépítésével kezdtük, majd a FireMonkey-t más platformokra is elhoztuk.

Ugyanakkor számos operációs rendszer támogatja a telefonok érintőképernyőjét, táblagépekés asztali eszközöket, és továbbra is támogatjuk őket. Ezen kívül van hang, mozgás, biometrikus rendszerek, gyorsulásmérők, ezért folytatnunk kell a FireMonkey bővítését, hogy minden fejlesztő kihasználhassa az új platformok előnyeit. Például a Microsoft Kinect eszközt Xbox 360-hoz tervezték, és most már létezik egy megfelelő SDK (Software Development Kit) a Windowshoz. És már vannak példáink arra, hogy mozgást használunk egy alkalmazás vezérlésére, ugyanúgy, ahogy az egeret vagy a billentyűzetet általában használnák.

Ha sok összetett grafikát tartalmazó alkalmazást hoz létre, új felhasználói felületek egész világát hozza létre. Ha műtővel van dolgunk Windows rendszer, beágyazzuk az alkalmazását szoftver interfész Windows API a VCL könyvtárban (Visual Component Library – vizuális komponensek könyvtára, amely a Delphi és a C++Builder fejlesztői eszközök része. - jegyzet szerk.), amely egyébként tovább használható. A FireMonkey-ban pedig beágyazzuk az operációs rendszer API-t. De manapság sokkal szélesebb körben kezeljük a formákat és a grafikákat. Fizikai tulajdonságokat is hozzáadhat a térhez animáció és speciális effektusok számára. Ezen túlmenően rengeteg további lehetőség áll rendelkezésre a felhasználói felületek létrehozásához, amelyeket a következő néhány évben fogunk megvalósítani különböző platformokon, mobil- és táblagépeken.

A Microsoft nemrég jelentette be részletes információk az egy év múlva megjelenő Windows 8-ról. Támogatni fogjuk ezeket az újításokat a VCL könyvtárban és a FireMonkey platformon. A Delphi azonban nem csak Windowsra, hanem Macintoshra, iPhone-ra és iPadre is tervezett fejlesztőeszköz. Emellett PHP-termékeinket is fejlesztjük, támogatjuk a jQuery Mobile-t, az iOS API-t használjuk mobil kliens alkalmazások fejlesztésére, valamint szerveroldali PHP-alkalmazásokat készítünk varázslók és eszközök segítségével kliensoldali JavaScript, HTML és lépcsőzetes stíluslapok generálásához. Csomagokat készíthetünk PHP alkalmazásokból és kliens alkalmazásokból natív kóddal iPhone iOS, és egy ilyen ügyfél kommunikálni fog PHP szerver. Ő pedig kommunikálni fog az adatbázis-kiszolgálóval és a webszolgáltatásokkal - mindennel, ami az üzlethez szükséges.

RadPHP XE2 fejlesztői környezet. Mobil webalkalmazás készítése
jQuery Mobile komponensek használatával iPhone 3G-hez

Vagyis a FireMonkey és a VCL képességeinek bővítését tervezzük, beleértve a mobil platformok támogatását is.

KP: Mondana többet a FireMonkey platformról?

DI.: Ahogy már megjegyeztem, a Windows számára létrehozott VCL-könyvtár tovább fog fejlődni és javulni fog. De ma, ha valódi üzleti alkalmazásfejlesztést szeretne, akkor különböző platformokra kell létrehoznia azokat. Erre tervezték a FireMonkey platformot. Támogatja a nagyfelbontású felhasználói felületek, a nagy teljesítményű 3D-s grafika, a nagy képkockasebesség létrehozását, és ami fontos, ehhez a grafikus processzort használja.

Ezeket a képességeket tudományos, mérnöki és üzleti alkalmazások létrehozásakor használhatja. Az ilyen alkalmazások a dbExpress technológiával kapcsolódhatnak adatbázisokhoz, továbbra is a fejlesztők számára ismert nem vizuális komponenseket használva, mint például a ClientDataSet vagy a DataSource, használhatják a DataSnap technológiát, csatlakozhatnak bármilyen adatbázishoz, SOAP és REST szerverekhez. Létrehozhat vonzó vezérlőket, dobozos gombokat, szokatlan táblázatokat és egyéb interfészelemeket, két- és háromdimenziós változatban. A kész 3D modellt betöltheti az alkalmazásba, és összekapcsolhatja egy 2D alakzattal, amelyben elforgathatja és különböző szögekből megtekintheti. Létrehozhat adatkockát vagy 3D-s üzleti diagramot, és elforgathatja az egér, a billentyűzet vagy akár egy Kinect eszköz segítségével, vagy beléphet a kocka belsejébe, és belülről nézheti meg annak különböző felületeit. Mindezt pedig nagy sebességű GPU segítségével lehet megtenni. Ugyanez az alkalmazás lefordítható egy másik platformra, például Mac OS-re.

Egy forgó adatkockát tartalmazó alkalmazás,
szélére helyezve

Vagy létrehozhat egy 3D alakzatot a semmiből, és kamerákat és lámpákat használhat a felhasználói felület egyes részei megvilágítására és elforgatására. Az űrlaptervező már rendelkezik egy beépített környezettel, amely támogatja a 3D felhasználói felületet a tervezés során.

Windows rendszeren a kétdimenziós grafikával való munkához nagy felbontású használhatja a Direct2D könyvtárakat, és a 3D grafika- Direct3D. Mac OS rendszeren a Quartz és az OpenGL könyvtárak ugyanazokra a célokra használhatók. iOS esetén a Quartz és az OpenGL ES könyvtárak használatosak. De mindez rejtve van a fejlesztő elől – a FireMonkey platformot, annak koordinátarendszerét és alkalmazásprogramozási felületét használja anélkül, hogy ezekre a könyvtárakra gondolna, és ugyanazt az alkalmazást tudja lefordítani különböző platformokra.

Emlékezzünk, mi az a VCL. A VCL egy komponens burkoló a Windows API körül. Foglalkozunk erőforrásokkal, menükkel, párbeszédpanelekkel, színekkel, stílusokkal, Windows üzenetekkel. Mivel többplatformos burkoló, a VCL-lel ellentétben a FireMonkey megtartja ugyanazokat az esemény- és komponensmodelleket, lehetővé téve az eseményekben való gondolkodást (például OnClick, OnHasFocus, onMouseDown és onKeyDown események), de kezeli a Macintosh vagy iPhone eseményeket.

A FireMonkey platform is jár hozzá komplett rendszer felhasználói felület elemeinek animációja. Ez természetesen nem egy átfogó Pixar-stílusú animációs rendszer, de lehetővé teszi az olyan effektusokat, mint a bittérképes animáció, a felhasználói felület elemeinek fókuszkiemelése és a vektorgrafika. Több mint 50 vizuális effektus áll a fejlesztő rendelkezésére: elmosódás, a kép fekete-fehérré alakítása, feloldás, átmenetek, tükrözés, árnyékok létrehozása – mindenféle effektus elérhető a modern grafikus processzorokban, amelyek ma már szinte minden számítógépen megtalálhatók. A FireMonkey platformra épülő alkalmazás parancsokat küld a GPU-nak, amely elvégzi a grafika megjelenítésének és a felhasználói felület létrehozásának minden munkáját. Ahol CPU ingyenes a számításokhoz és az operációs rendszer hívásaihoz. A fejlesztő csak megfelelően helyezheti el az összetevőket.

A FireMonkey platform legalapvetőbb dolga a felhasználói felület felépítése. Vannak szálláslehetőségek raszteres grafika olyan felületelemeken, mint a menük, gombok és görgetősávok. A FireMonkey-nál GPU-val hajtott vektorgrafikát használunk erre a célra. Programozási szempontból ezek még mindig ugyanazok a vezérlők, de a megjelenítésük minden munkáját a grafikus processzor végzi. Alkalmazhatunk stílusokat a vezérlőkre, az alkalmazást úgy nézhetjük ki, mint egy Mac OS vagy Windows operációs rendszer, létrehozhatunk saját stílust, alkalmazhatunk saját stílusokat az interfész elemeire (például egy gombot négyszögletessé vagy kerekíthetünk úgy, hogy megváltoztatjuk a stílusát az űrlapszerkesztőben ) - ehhez Van egy stílusszerkesztő a fejlesztői környezetben. Létrehozhatja saját stílusát, vagy megváltoztathatja egy már kész alkalmazás stílusát.

FireMonkey Platform – Fejlesztői eszközök
és támogatott platformok

Ha emlékszel, a VCL-könyvtárnak korlátozott számú vezérlője volt - konténerek (vagyis lehetővé tette, hogy más elemeket helyezzen el bennük), és a FireMonkey-ban minden vezérlő egy konténer. Ez azt jelenti, hogy minden vezérlő tartalmazhat bármilyen más vezérlőt. Például a legördülő lista elemei tartalmazhatnak képeket, gombokat, szerkesztőmezőket és egyéb vezérlőket. Az alkatrészeket rétegekben is elhelyezheti.

A FireMonkey renderelő rendszer meglehetősen rugalmas - képes használni a Direct2D, Direct3D és OpenGL könyvtárakat, parancsokat küldve a GPU-nak. Ahhoz, hogy a VCL-ben ugyanezt elérjük, külön képernyőn kívüli puffert kellett generálni, a megfelelő grafikus könyvtár függvények meghívásával létrehozni benne egy képet, majd megjeleníteni az űrlapon.

Példák a FireMonkey által támogatott grafikus effektusokra

Ha nem rendelkezik GPU-val, továbbra is alkalmazhat 2D vagy 3D alakzatokat, és használhatja a FireMonkey vezérlőket. Ebben az esetben a FireMonkey platform a GDI+ könyvtárakat vagy más hasonló könyvtárakat használja, és ugyanazokat az effektusokat, animációkat vagy 3D objektumok manipulációját hajtja végre.

A FireMonkey másik funkciója az új rendszer interfész elemek összekapcsolása adatokkal, nyitott és rugalmas. A VCL-ben kétféle interfész elem létezik: adathoz kötött és nem adathoz kötött (például TDBEdit és TEdit). A FireMonkey-ban minden vezérlő bármilyen típusú adathoz társítható. Ez lehet egy egyszerű kifejezés, egy adatkészlet mezője, a fejlesztő által létrehozott objektumokból származó adatok vagy a metódushívások eredményei.

Ezenkívül egy alkalmazás létrehozásakor kész 3D-s modellt tölthet bele és használhatja - ilyen képességekre gyakran szükség van üzleti és mérnöki alkalmazásokban is. Van egy ügyfelünk, aki logisztikai alkalmazásokat készít. Volt nekik Tájékoztatási rendszer, amelyet Delphi segítségével építettek, és benne - egy olyan alkalmazást, amely adatforrásokból tervet rajzolt és információkat jelenített meg. Nemrég csináltak valami érdekeset - teljesen automatizált 3D raktárt rajzoltak az AutoCAD-ben, és az alkalmazásuk lehetővé teszi, hogy megnézze, hogyan mozog az automata targonca a raktárban, és hogyan helyezi el az árukat a polcokon. És a megfelelő képre felteszik a forrásokból származó adatokat.

Példák az alkalmazásstílusok megváltoztatására

KP: Milyen 3D-s modellformátumok támogatottak jelenleg?

DI.: Ebben a kiadásban támogatjuk az AutoCAD, Collada (nyílt forráskódú 3D modellező eszköz) modellek betöltését. jegyzet szerkeszteni.), Maya, egy OBJ formátum, amelyet számos 3D grafikus gyártó támogat.

KP: Milyen további formátumokat tervez hozzáadni?

DI.: Terveink szerint hozzáadjuk a 3DS-t (3D Studio MAX), az SVG-t (általában ezt a formátumot használják 2D-s vektorgrafikákhoz, de néha 3D-hez), a Google SketchUp-ot. Talán más formátumokat is támogatunk.

KP: A 3D modellek FireMonkey-val épített alkalmazásokban való használatához szükséges a megfelelő 3D modellező eszköz licence?

DI.: Nem, ez nem igényli. Nincs más dolgunk, mint elolvasni a modellfájlt. Importáljuk a modellt, de nem exportáljuk (bár természetesen írhatna egy alkalmazást, ami a modellt saját formátumban menti el). Nem állítjuk magunkat 3D modellező eszközök gyártójának – ehhez használhatja az AutoCAD, 3D Studio Max, Maya vagy bármely más 3D modellező eszközt, és importálhatja a létrehozott modelleket alkalmazásainkba.

KP: Mennyire teljesítenek a FireMonkey-val készített alkalmazások modern hardverplatformokon?

DI.: A termelékenység meglehetősen magas. Például egy 3D-s alakzat megjelenítése három gömbbel és három bekapcsolt fényforrással MacBook Pro másodpercenként 100 képkocka sebességgel hajtható végre. Vagy elérheti a 600-at – ez attól függ, hogy pontosan mit csinálunk. Ismét minden a GPU teljesítményétől függ.

KP: Ez azt jelenti, hogy a FireMonkey segítségével modern játékokat hozhat létre?

DI.: Fejlesztőeszközeinket nem játékeszközként pozícionáljuk. A modern GPU-k nagy teljesítményét kihasználva azonban FireMonkey segítségével is készíthet játékokat – elvégre Direct3D vagy OpenGL segítségével készülnek.

KP: Milyen munkát végez jelenleg a gesztusfelismerés és más újszerű dolgok támogatása terén? Van ilyen támogatás?

DI.: Ebben a kiadásban még nincs kézmozdulattámogatásunk. A FireMonkey egy jövőbeli kiadásában a gesztusvezérlés is megjelenik, de addig is használhatod az operációs rendszerbe épített gesztustámogatást.

Mikhail Filippenko, a Fast Reports, Inc. igazgatója.

K.R.: Azt már elmondtuk, hogy a FireMonkey technológia orosz gyökerekkel rendelkezik - az alapjait hazánkban hozták létre, majd maga a technológia és a fejlesztők is csatlakoztak az Embarcaderohoz. Általában véve örömteli látni az orosz komponens növekedését a RAD Stúdióban és a Delphiben. Ez magában foglalja a szentpétervári fejlesztési központunk tevékenységét és a független orosz fejlesztők közreműködését. Például a Rad Studio XE2 tartalmazza a FastReport jelentéskészítőt - az egész világon ismert és hazánkban is nagyon népszerű. Eredetileg Rostov-on-Donból származik.

KP: A fordítókról szeretnék beszélni. Milyen fordítót használnak iOS alkalmazások létrehozásakor?

DI.: Nincs saját Delphi-fordítónk az iPhone-hoz vagy iPad-hez – még nem fejlesztettünk fordítókat az ezekben az eszközökben használt ARM-processzorokhoz. iOS esetén ideiglenesen a Free Pascal fordítót és futásidejű könyvtárat használjuk. De dolgozunk a fordítók következő generációján, beleértve az AWP processzorokat is. De vannak fordítók a Windows és a Mac OS számára, mivel mindkét hardverplatform Intel processzorokon alapul.

KP: Mi történt a fordítóprogramok készítése terén az elmúlt két évben?

DI.: 32 és 64 bites Delphi fordítóink vannak Windows és Mac OS rendszerekhez. Dolgozunk a Delphi és a C++ fordítók új generációján. Ezek még folyamatban vannak, de ha elkészülnek, lesznek Delphi fordítóink ARM processzorokhoz, Android platformokhoz, Linuxhoz és mindenhez, ami a kettő között van. Lesznek 64 bites C++ fordítóink Windowshoz és más platformokhoz, amelyek kompatibilisek az ISO által most elfogadott legújabb C++ nyelvi szabvánnyal.

KP: Mi történik ma az Embarcadero fejlesztői eszközeinek felhőalapú számítástechnikai támogatásával?

DI.: A RAD Studio XE 2-ben támogatjuk az alkalmazások Microsoft Azure vagy Amazon EC2 felhőbe való áthelyezését a Platform Assistant segítségével. A Cloud Storage for Azure és az Amazon S3 szerverösszetevői pedig táblák, bináris adatok és üzenetsorok tárolására szolgálnak. BAN BEN előző verzió A RAD Studio XE-vel az alkalmazások Amazon EC2-re történő telepítését is támogattuk, de hiányzott a tárolási támogatás.

Felhőalapú számítástechnikai támogatás a RAD Studio XE 2-ben

KP: Két évvel ezelőtt beszélt az új All-Access megoldásról. Mennyire volt népszerű? Milyen előnyei vannak a rendszerintegrátoroknak és a fejlesztőknek?

DI.: Az All-Access megoldást és az AppWave felhőeszközt széles körben használják szerte a világon. Úgy tervezték, hogy megkönnyítsék saját és harmadik féltől származó alkalmazásaink használatát. Valójában ez egy megoldás a licencek és az alkalmazáshasználat kezelésére, és kényelmes nagy cégek. Azok a kisebb cégek, amelyek nem rendelkeznek az alkalmazások kezeléséért felelős emberekből álló csapatokkal, elhelyezhetik az alkalmazást egy adattárba, kiválaszthatják a felhasználóneveket az adatbázisból, és elérhetővé tehetik ezeket az alkalmazásokat anélkül, hogy emlékezniük kellene arra, hogy hol. licenckulcsés hány licenc áll rendelkezésre. Az All-Access és az AppWave böngészőt úgy tervezték, hogy kezelje a verziószámot és a hozzáférés-szabályozást.

K.R.: A piac annyira sokszínű, a felhasználók pedig annyira különbözőek, hogy lehetetlen minden igényt egy megoldással lefedni. Ezért törekszünk változatos csomagolási megoldásokra. Sokat dolgoztunk azon, hogy egységesítsük a licencelési, licenckezelési és terméktelepítési módszereket. Ez a megoldássor nem csak az Embarcadero termékekhez, hanem bármely más termékhez, így a vállalaton belüli fejlesztésekhez is tartalmaz licenc- és kiépítés-kezelő eszközöket.

A csomagolásfejlesztési eszközökön a felhasználók számára hatékony készletek kialakítása még folyamatban van. Van All-Accessünk – egy szuperkészlet, amely az összes Embarcadero terméket egyesíti. Ha egy ügyfél All-Access Platinumot vásárol, megkapja az Embarcaderoban található összes eszközt. De néha ez a készlet feleslegesnek bizonyul; például az adatbázis-specialisták számára két másik készletet készítettünk - a DB Power Studio Developer Edition és a DB Power Studio DBA Edition. A különbség közöttük az, hogy a fejlesztők számára a RapidSQL-t kínáljuk - a szerverkód fejlesztésére szolgáló eszközt, az adminisztrátornak pedig a beépített DBArtizan - egy adatbázis-adminisztrációs eszköz, amely szélesebb termék, mint a RapidSQL. A szakemberek számára a következő All-Access csomagokat kínáljuk: az összes terméket tartalmazó csomag, a DB Power Studio a fejlesztőknek, a DB Power Studio rendszergazdáknak, az ER Studio Enterprise Edition az építészek és a modellezéssel foglalkozók számára. Vannak kombinációk alkalmazásfejlesztéshez és rendszergazdák számára. A Delphi egy fejlesztői eszköz, és nagyon logikus, hogy SQL fejlesztői és optimalizálási eszközöket adjunk hozzá. Végül a DB Change Manager egy logikai eszköz az adatbázisokban az életciklusuk során bekövetkező változások összetettségének kezelésére.

Így az All-Access a különféle termékkészletekből álló nagy család feje.

KP: Ha nem titok, Oroszországban ki használja az All-Access szolgáltatást?

K.R.: Vannak ügyfeleink, akik a Delphi alapú All-Access szolgáltatást vásárolták meg. Sokan közülük komplex kliens-szerver rendszereket hoznak létre SQL szerverés az Oracle, és azonnal megkedvelték a platformok közötti adatbázis-eszközeinket. Van egy ügyfélcégünk, amely az első verzió óta dolgozik a Delphi-vel, és egy éve vált Delphi segítségével az All-Access készlethez. Két eszköz, amelyet a cég minden fejlesztője garantáltan használni fog, a Delphi és a DArtisan. És vannak olyan ügyfelek, akik az adatbázis oldaláról érkeztek az All-Acceshez. Fő feladatuk az adatbázisok adminisztrálása, de időnként alkalmazásokat is fejlesztenek. Az All-Access szolgáltatást használó ügyfelek közé tartoznak a médiavállalatok, a mérnöki cégek és más iparágak.

Külön a kis cégekre szeretnék összpontosítani. Nagyon gyakran kis csapatokban a fejlesztő mindent megtesz, és egy ilyen cég néha nagy All-Access termékkészleteket vásárol egy-két fejlesztő számára. Nagy csapatokban nem ösztönzik, hogy egy fejlesztő egyben például adatbázis-adminisztrátor szerepet is töltsön be, így ott általában népszerűek a kis termékkészletek, de kis cégeknél a felelősségek ilyen kombinációja teljesen elfogadható.

A Delphi Architect egy erősen forgalmazott termék, amely modellező és programozó eszközöket is tartalmaz. Az eladott példányszám azonban kevesebb, mint a Delphi Enterprise verzióé, de ez is nagy. Szeretném megjegyezni, hogy 2010-ben mi bizonyultunk a legjobb országnak az értékesítési volumen tekintetében, annak ellenére, hogy minden ország válságot élt át. Ez a növekedés nem annyira gazdasági tényezőkkel függött össze, hanem azzal, hogy a RAD Studio XE 2009 végén megjelent verziója nagyon népszerűnek bizonyult. Egyelőre további értékesítési növekedésre számítunk.

Újabb ésszerű lépést tettünk, amely rendkívül népszerű Oroszországban. Termékeink különböző verzióinak legalizálási foka eltérő: minél magasabb a verzió, annál legalizáltabb, mert korábban szoftver nem olyan aktívan vásárolt. A RAD Studio XE-től kezdve a licenc a 2010-es, 2009-es, 2007-es verziókra, sőt a Delphi 7-re is kiterjed, amely egy széles körben használt termék.

Ma a fejlesztők szembesülnek azzal a ténnyel, hogy új projektjeik és támogatott projektjeik is vannak. Nagyszámú projektet helyeztek át korábbi verziók Delphi a 7-es verzióra, és ezen a verzión belül marad, és továbbra is viszonylag kis erőforrásokon dolgozik. Senki nem helyezi át őket újabb verziókra, de működőképes állapotban vannak. És most lehetővé tesszük, hogy mind a RAD Studio XE-t, mind a Delphi 7-et kevés pénzért (kevesebb, mint egy Delphi 7 licenc ára) szerezze be - vagyis legalizáljuk a fejlesztőt mind új projektek megvalósításához, mind támogató projektekhez.

KP: Hogyan értékeli az Embarcadero közösség jelenlegi helyzetét?

DI.: Ez a közösség nagy és nagyon igényes. Mindenre azonnal szükségük van – ők fejlesztők. De néha sok időbe telik, hogy valamit jól csináljunk.

Néhány évvel ezelőtt átvettük a Windows komponens architektúrát, és Linux asztali számítógépekre helyeztük. Most látjuk, hogy nem ez volt a helyes döntés. A megfelelő megoldás egy alkalmazásplatform létrehozása. Az alkalmazások még a különböző platformokon is rendelkeznek menükkel, ablakokkal, grafikával, hálózati hozzáféréssel és eszközhozzáféréssel. Különböző platformok lehetnek különböző modellekáramlásvezérlés vagy kivételkezelés, de az alkalmazás kódjában ugyanazokat a try blokkokat látjuk. A mi feladatunk az, hogy megkönnyítsük a fejlesztők számára az üzleti alkalmazások létrehozását és lefordítását azokra a platformokra, amelyeken használni kívánják őket, függetlenül attól, hogy a megfelelő processzorok utasításkészlete hogyan épül fel, és milyen egyéb jellemzői vannak ezeknek a platformoknak. És a FireMonkey pontosan az, amire szüksége van a probléma megoldásához.

KP: Ha egy vállalat új eszközt hoz létre, és azt szeretné, hogy azt a FireMonkey támogassa, ez lehetséges?

DI.: Az új generációs fordítókkal, amelyek platformfüggetlen front-end és platform-függő hátterűek lesznek, ez teljesen lehetséges lesz. Eközben minden operációs rendszerhez a semmiből készítünk egy fordítót és egy futásidejű könyvtárat.

Minden modern új eszköznek általában van grafikája felhasználói felület(sokuknál van kétmagos processzorés GPU) és szabványos SDK-k fejlesztőknek. Ez megkönnyíti az eszköztámogatás létrehozását a FireMonkey-ban. Ha az új eszköz csak kétdimenziós grafikákhoz, például a Quartzhoz rendelkezik könyvtárakkal, akkor a FireMonkey-ban is támogatni fogunk egy ilyen eszközt, de ez körülbelül több hónapot vesz igénybe. Sok múlik azonban a platformon: nem minden platform támogatja az összes funkciót, például az iOS nem rendelkezik menükkel és párbeszédpanelekkel, és az ilyen alkalmazások űrlapjain nem lehet megfelelő összetevőket elhelyezni.

KP: Változott valami a partnerekkel való együttműködés politikájában? Mit tesznek annak érdekében, hogy növeljék termékei felhasználóinak arányát? Mi folyik Oroszországban?

DI.: Partneri ökoszisztémánk széles – több száz olyan szerszám- és alkatrészgyártó létezik, amelyek nem találhatók meg termékeinkben, és van technológiai partnerségi programunk. Ezért az alkatrészek, technológiák és eszközök széles skálája áll a fejlesztők rendelkezésére. Az ügyfeleik számára készített megoldások pedig jobbak, mintha csak a mi termékeinket használnák. Az értékesítéshez pedig számos országban vannak irodáink, viszonteladóink és forgalmazóink.

K.R.: Számunkra nem a partnerek száma a fontos, hanem az egyes partnerek munkájának minősége. Egyelőre a meglévő partnerekkel való szoros együttműködésre szeretnénk összpontosítani, bár a partnerek köre továbbra is nyitva áll. Sok partnerünk van, és technikailag is segítenünk kell őket. Fejlesztőkkel dolgozunk, és ők tudják, mit akarnak, és tudják, mi kapható a piacon, és ehhez a partnerek képességeinek is meg kell felelniük.

Vannak olyan üzleti partnereink, akik komolyan fektettek be az Embarcaderóba, mint üzletágba – képzett szakemberekkel, termékeink marketingjével, elkötelezett munkatársakkal, akik felelősek ezért a vonalért, és figyelemmel kísérik, mi történik a termékeinkkel, az árlistával, a marketinggel. Természetesen termékeink értékesítésében sikeresebbek, mint azok a cégek, amelyek alkalmanként értékesítik termékeinket.

KP: David, Kirill, nagyon köszönöm az érdekes interjút. Engedjék meg, hogy kiadványunk és olvasóink nevében további sikereket kívánjak cégének az Ön csodálatos eszközeinek elkészítéséhez, amelyekre a fejlesztőknek oly nagy szüksége van!

Natalia Elmanova kérdései

A FireMonkey az „új Delphi” alaptechnológiája. Kérem, mondja el nekünk ennek az alapvetően új könyvtárnak a céljait, képességeit és technikai vonatkozásait. Egy idő után, visszatekintve, mennyire volt nehéz és indokolt, hogy megtagadta a szupernépszerű VCL továbbfejlesztését?

Ezt választották a Delphi technológia fejlesztésének fő irányának egy konkrét cél elérése érdekében - többplatformos fejlesztés egyetlen környezetből, egyetlen forráskód alapon, a fejlesztők radikális átképzése nélkül. A mára klasszikus és szupernépszerű VCL keretein belül ez lehetetlen volt, a WinAPI-val való kapcsolata túl szoros volt, mondhatni „genetikai szinten”.

A VCL komponensek nem rendelkeztek „absztrakt” réteggel a felület és a megjelenítési mechanizmusok funkcionális szintje között. Funkcionális szint— hogyan viselkedik vezérlőként, milyen eseményekre reagál, milyen felhasználói interakciót biztosít. Kijelző— a platform-orientált vizualizációs módszerek raszteres objektumok és vektorprimitívek által alkotott képként való meghívása. A FireMonkey kezdetben azt az elvet alkalmazta, hogy a vezérlést szigorúan két részre osztotta: „viselkedési” és „vizuális” részre.


Vsevolod Leonov, Embarcadero Technologies

Az első általában nem is a VCL alapjait ismétli meg, hanem az objektum-orientált programozás lényegét. A komponens egy osztály; az összetevő osztályok hierarchiát alkotnak, ahol a családok és a modulok megkülönböztethetők. Egy összetevő osztálya lazán kapcsolódik a megjelenítés módjához.

A vizuális „kép” dinamikusan alakul, nincs mereven beírva a komponensosztályba. A FireMonkey képe vagy "stílusa" az alkalmazás indításakor betöltődik az összetevőbe. Van valamilyen funkcionális keretünk az alkatrészhez, és a „héj” vagy „burkolat” változtatható, de miért? Ez azért van így, hogy a FireMonkey alkalmazások hitelesnek tűnjenek bármilyen platformon – Windows 7, Windows 8, Mac OS, iOS és a közeljövőben Androidon. Ezt a VCL hagyományos monolitikus osztálystruktúrája nem tudta biztosítani.

Itt a technológiai megközelítés kiemelt szerepet játszik. Elvileg meg lehet venni a VCL-könyvtárat és „megtömni” a WinAPI-val és az összes többi lehetséges platformhívással. Ez még mindig megtehető az összetevők nagyon korlátozott részhalmazán, de a VCL több száz összetevőt tartalmaz, így ez a megközelítés egyszerűen „megölheti” a VCL-t. Úgy döntöttek, hogy nem érintik a VCL-t, hanem új képességeket fejlesztenek ki egy új platformon - FireMonkey. Ez a technológia Még egy bizonyos technikai eleganciája is van - a projekt egy adott platformra való összeállítása során a Delphi IDE csatlakoztatja a szükséges fordítót, és az interfész komponensei platformstílust kapnak.

A felhasználó számára ez egyetlen egérkattintás és ugyanaz a forráskód, a Delphi esetében pedig sok év kemény munkája a fejlesztők részéről egy ilyen többplatformos könyvtár létrehozása.

Amikor világossá vált, hogy a FireMonkey-t külön új platformként vezetik be, a megfelelő együttélési stratégiát kellett választani: az Embarcadero semmilyen módon nem akarta negatívan befolyásolni a VCL felhasználókat. Ezért a következő tervet választottuk: A VCL ideológiailag és építészetileg stabil marad, hogy biztosítsa a lehető legmagasabb kompatibilitást, megkönnyítve a projektek modern verziókba való migrálását. A FireMonkey fejlesztése természetes és párhuzamos utat fog követni, a VCL-re való tekintet nélkül.

Ennek a megoldásnak a gyenge pontja a meglehetősen problémás migráció VCL-ről FireMonkey-re ugyanazon a projekten belül. Egy új projekthez azonban a fejlesztő választhatja a FireMonkey-t, hogy biztosítsa az eredményül kapott alkalmazás többplatformos jellegét. Az iOS-támogatással ellátott XE4 megjelenése után már kezdetnek a Delphi fényes versenyelőnyeiről beszélhetünk mobil fejlesztés vállalati környezetben, amelyet a tervezett Android támogatás megvalósítása után növelni fognak.

Ezért nincs nyilvánvaló „elutasítás” a VCL mint olyan fejlesztésétől. Az új verziókban a Delphi VCL része is fejlődik. Ez magában foglalja a 64 bites támogatást, a vizuális komponensek stílusának bevezetését, a rugalmas dinamikus kapcsolatok vagy „kötés” mechanizmusának megvalósítását, valamint a FireDAC könyvtár beépítését az adatbázisokkal való munkavégzéshez a VCL projektekben. Csak arról van szó, hogy a FireMonkey óriási minőségi ugrásához képest a VCL fejlődése kissé halványnak tűnik. De akárhogy is legyen, a VCL a Delphi szerves része, és az is marad még sok éven át. Bár a platformok fejlődése és a dolgok jelenlegi állása az operációs rendszer területén asztali rendszerek a mobileszközök pedig olyanok, hogy a jövő mindenképpen a FireMonkeyé.

Az interjúban már szó esett az iOS támogatásáról, beszéljünk olvasóinknak a legújabb RAD Studio XE4 legújabb technológiáinak támogatásáról, mint például a Windows 8 és a WinRT, a 64 bites rendszerek, a MacOS és így tovább. Felsorolnád, mit tud még nyújtani az újításokkal elkényeztetett modern programozónak?

Valószínűleg a modern programozót nem „rontják el” az innovációk. Mert nagy projektek minden „újítás” gyakran gigantikus mennyiségű munkát eredményez.

Például mindenki sokáig várt, sokan azonnal rohantak lefordítani a kódjaikat új platform. De kiderül, hogy még a nagyon profi csapatok sem állnak készen erre. A 64 bites kód fordítása nem jelenti azt, hogy működik. A „fiatalság bűnei” például 4 bájtos címméretet feltételező utasítások segítségével kezdtek felszínre kerülni. A tesztkultúra hiánya, technológiai felkészületlenséggel párosulva ennek a folyamatnak a rövid időn belüli megvalósítására.

És itt - minél nagyobb a projekt, mondjuk a forráskód sorainak számával mérve, annál körültekintőbbek és kiegyensúlyozottabbak a programozók a különféle újításokkal, kezdve a „gomb” megjelenésétől a felületen a „szintaktikai cukorig” a fordítóprogramban.

Az egyik ilyen „problémás” vívmány a Windows 8 kiadása volt. Személy szerint PC-felhasználóként és csak modern informatikusként nagyon örülök a Windows 8-nak. Ez azonban bizonyos nehézségeket jelent azoknak a fejlesztőknek, akiknek terhelésként Windows 8-at futtató számítógépeket küldtek az új operációs rendszer alatti fejlesztési specifikációkkal.

Ennek az operációs rendszernek az új felületéhez igyekeztünk a lehető legkényelmesebben és fájdalommentesen fejlesztési támogatást nyújtani. Ezért mind a VCL, mind a FireMonkey esetében speciális stílusokat vezettek be, és a programozó vagy újraépítheti az alkalmazás felületét, vagy létrehozhat egy új alkalmazást, amely megkülönböztethetetlen lesz a Windows 8 „natív” alkalmazásától. kinézet. Természetesen szükség van a Windows 8 „natív” támogatására a WinRT-n keresztül. De ezt befolyásolja a célok prioritása modern körülmények között. Mac OS, iOS, Android a közeljövőben még nem teszi lehetővé, hogy a közeljövőben teljes körű támogatásról beszéljünk a WinRT számára.

Az Embarcadero stratégiai célja természetesen a többplatformos. A RAD Studio XE4 kiadása kulcsfontosságú volt, elsősorban az iOS támogatása miatt. A VCL-t használó meglévő programozó órákon belül elkezdheti az iOS-re való fejlesztést. Még egyszerű is mobil alkalmazás azonnal átalakítható egy erőteljes projektté, amely a meglévő infrastruktúrán belül működik. Ne hidd, hogy könnyű új fordító a FireMonkey-hoz és egy új stílus az iOS felületnek való megfelelés biztosítása érdekében.

Ez magában foglalja az új vizuális tervezőt, a különféle formai tényezők beépített támogatását, az adathozzáférési könyvtárakat, beleértve az új FireDAC-ot, valamint a LiveBindings technológiát a vállalati adatokkal való rugalmas és dinamikus összekapcsoláshoz. Mindezek az újítások egyszerre érkeznek – Windows, Mac OS és iOS rendszerre. operációs rendszer A Mac OS nem fejlődik olyan gyorsan, így nincsenek olyan problémák, mint például a Windows 7-ről a Windows 8-ra való átállás. De megjelentek Retina kijelzők, és ez különös figyelmet igényelt. Mostantól minden Delphi XE4-ben létrehozott MacOS-alkalmazás automatikusan két stílust tartalmaz: „normál” és „nagy felbontású”.

Hogy. ugyanannak az alkalmazásnak ugyanaz a jó minőségű „natív” felülete lehet bármelyiken asztali számítógép az Apple-től.

Az Embarcadero nem akarja „meglepni”, „lenyűgözni” vagy akár „szórakoztatni” a fejlesztőket új, innovatív kiadásaival. Éppen ellenkezőleg, az informatikai szféra már tele van különféle meglepetésekkel: új eszközök, új platformok, új felhasználók, új igényeik, új interakciós forgatókönyvek. Adjon hozzá új szoftverfejlesztési technológiákat, és a programozóknak egyszerűen nem lesz idejük új és meglévő rendszereket létrehozni – mindössze annyit fognak tenni, hogy egyik környezetből a másikba, egy régi könyvtárból egy újba, egyik nyelvről a másikra vándorolnak.

De nem vallunk minden új elutasítását. Csupán mindennek a folytonosságát akarjuk biztosítani – kódnak, interfésznek, projektnek, még a szakmai ismereteknek is, amikor új platformok és eszközök jelennek meg. Mondhatnánk, hogy a fejlesztési eszközök egészséges konzervativizmusával küzdünk az egészségtelen konzervativizmus ellen az új platformokat illetően. Ne várjon egzotikus termékeket, nem szabványos programozási nyelveket vagy szokatlan fejlesztőeszközöket az Embarcaderotól.

Nálunk mindig megtalálja a vizuális fejlesztést, a klasszikus nyelveket, a „natív” kódot, és hagyja, hogy az alkalmazásaihoz használt célplatformok, ugyanolyan jól bevált klasszikus módon készültek, újak legyenek.




Top