tuleahvi komponendid. Delphi, FireMonkey, All-Access ja muud meeldivad üllatused. Asjad, mida kaaluda

FireMonkey on "uue Delphi" põhitehnoloogia. Palun rääkige meile selle põhimõtteliselt uue raamatukogu eesmärkidest, võimalustest ja tehnilistest aspektidest. Mõne aja pärast tagasi vaadates, kui raske ja õigustatud oli teie keeldumine ülipopulaarse VCL-i edasiarendamisest?

See valiti Delphi tehnoloogia arendamise põhisuunaks konkreetse eesmärgi saavutamiseks - mitmeplatvormiline arendus ühest keskkonnast, mis põhineb ühel lähtekoodi baasil, ilma et oleks vaja arendajate radikaalset ümberõpet. Nüüdseks klassikalise ja ülipopulaarse VCL-i raames oli see võimatu, selle seos WinAPI-ga oli liiga tihe, võiks öelda, et "geneetilisel tasandil".

VCL-i komponentidel ei olnud liidese ja nende kuvamise mehhanismide funktsionaalse taseme vahel "abstraktset" kihti. Funktsionaalne tase— kuidas see käitub juhtelemendina, millistele sündmustele reageerib, millist kasutaja interaktsiooni see pakub. Ekraan— platvormile orienteeritud visualiseerimismeetodite nimetamine teatud kujutiseks, mille moodustavad rasterobjektid ja vektorprimitiivid. FireMonkey rakendas algselt põhimõtet jaotada juhtimine rangelt kaheks komponendiks: "käitumuslik" ja "visuaalne".


Vsevolod Leonov, Embarcadero Technologies

Esimene kordab üldiselt isegi mitte VCL-i põhitõdesid, vaid objektorienteeritud programmeerimise olemust. Komponent on klass; komponendiklassid moodustavad hierarhia, kus saab eristada perekondi ja mooduleid. Komponendi klass on lõdvalt seotud sellega, kuidas see renderdatakse.

Visuaalne “pilt” moodustatakse dünaamiliselt, see ei ole komponendiklassis jäigalt kirjas. FireMonkey pilt või "stiil" laaditakse rakenduse käivitamisel komponenti. Meil on komponendi jaoks mingi funktsionaalne raam ja “nahka” või “vooderdust” saab muuta, aga miks? See on nii, et FireMonkey rakendused näeksid autentsed välja igal platvormil – Windows 7, Windows 8, Mac OS, iOS ja lähitulevikus ka Android. See on midagi, mida VCL-i traditsiooniline monoliitne klassistruktuur pakkuda ei suutnud.

Siin mängib erilist rolli tehnoloogiline lähenemine. Põhimõtteliselt võite võtta VCL teegi ja "toppida selle" WinAPI ja kõigi muude võimalike platvormikõnedega. Seda saab siiski teha väga piiratud komponentide alamhulgaga, kuid VCL sisaldab mitusada komponenti, nii et see lähenemisviis võib VCL-i lihtsalt "tappa". Otsustati mitte puudutada VCL-i, vaid arendada uusi võimalusi uuel platvormil - FireMonkey. Sellel tehnoloogial on isegi teatav tehniline elegants - konkreetse platvormi jaoks projekti kokkupanemise ajal ühendab Delphi IDE vajaliku kompilaatori ja liidese komponendid saavad platvormi stiili.

Kasutaja jaoks on see üks hiireklõps ja sama lähtekood, Delphi jaoks on sellise mitmeplatvormilise teegi loomine arendajate aastatepikkune raske töö.

Kui sai selgeks, et FireMonkey võetakse kasutusele eraldi uue platvormina, tuli valida õige kooseksisteerimise strateegia: Embarcadero ei tahtnud VCL-i kasutajaid kuidagi negatiivselt mõjutada. Seetõttu oleme valinud järgmise plaani: VCL jääb ideoloogiliselt ja arhitektuuriliselt stabiilseks, et tagada kõrgeim võimalik ühilduvus, hõlbustades projektide migreerimist kaasaegsetele versioonidele. FireMonkey arendamine järgib loomulikku ja paralleelset rada, arvestamata VCL-i.

Selle lahenduse nõrk koht on üsna problemaatiline migratsioon VCL-ilt FireMonkeyle sama projekti raames. Kuid uue projekti puhul saab arendaja valida FireMonkey, et tagada nende tulemuseks oleva rakenduse mitmeplatvormiline olemus. Pärast iOS-i toega XE4 väljaandmist saame juba rääkida Delphi selgetest konkurentsieelistest mobiilse arenduse alustamiseks ettevõtte keskkonnas, mida suurendatakse pärast planeeritud Androidi toe rakendamist.

Seetõttu pole VCL-i kui sellise väljatöötamisest ilmne "keeldumine". Uutes versioonides areneb ka Delphi VCL osa. See hõlmab 64-bitist tuge, visuaalsete komponentide stiili kasutuselevõttu, paindlike dünaamiliste ühenduste või sidumise mehhanismi rakendamist ja FireDAC teegi kaasamist VCL-projektides andmebaasidega töötamiseks. Lihtsalt võrreldes FireMonkey tehtud hiiglasliku kvalitatiivse hüppega tundub VCL-i edusammud mõnevõrra puudulikud. Kuid olgu kuidas on, VCL on Delphi lahutamatu osa ja jääb selleks veel paljudeks aastateks. Kuigi platvormide areng ja hetkeseis lauaarvutisüsteemide ja mobiilseadmete OS-i valdkonnas on selline, et tulevik kuulub selgelt FireMonkeyle.

Intervjuus arutasime juba iOS-i toe üle, räägime oma lugejatele ka teiste uusimate tehnoloogiate, näiteks uusima RAD Studio XE4, nagu Windows 8 ja WinRT, 64-bitiste süsteemide, MacOS-i ja nii edasi toest. Kas oskate loetleda, mida saate uuendustest rikutud kaasaegsele programmeerijale veel pakkuda?

Tõenäoliselt pole kaasaegne programmeerija uuendustega "rikutud". Suurte projektide puhul toob igasugune "uuendus" sageli kaasa hiiglasliku töömahu.

Näiteks ootasid kõik kaua, paljud tormasid kohe oma koode uuele platvormile üle kandma. Kuid selgub, et isegi väga professionaalsed meeskonnad pole selleks valmis. 64-bitise koodi koostamine ei tähenda töötamist. “Nooruse patud” hakkasid pinnale kerkima, kasutades näiteks juhiseid, mis eeldasid 4-baidise aadressi suurust. Katsekultuuri puudumine koos tehnoloogilise valmisolekuga seda protsessi lühikese aja jooksul rakendada.

Ja siin - mida suurem on projekt, mõõdetuna näiteks lähtekoodi ridade arvu järgi, seda hoolikamad ja tasakaalustatumad on programmeerijad mitmesuguste uuendustega, alates "nupu" ilmumisest liideses kuni "süntaktilise suhkruni". kompilaatoris.

Üks neist "probleemsetest" saavutustest oli Windows 8 väljaandmine. Isiklikult, arvutikasutajana ja lihtsalt kaasaegse IT-spetsialistina, olen Windows 8-ga väga rahul. Kuid arendajatele, kellele saadeti koormusena hulga Windows 8-ga töötavaid arvuteid koos spetsifikatsioonidega uue OS-i all arendamiseks, tähendab see teatud raskusi.

Püüdsime selle OS-i uue liidese arendustuge pakkuda võimalikult mugavalt ja valutult. Seetõttu on nii VCL-i kui ka FireMonkey jaoks kasutusele võetud spetsiaalsed stiilid ning programmeerija saab kas rakenduse liidese ümber ehitada või luua uue rakenduse, mis on välimuselt eristamatu Windows 8 jaoks mõeldud “natiivsest”. Loomulikult on WinRT kaudu Windows 8 jaoks vaja "natiivset" tuge. Aga siin tulebki mängu eesmärkide prioritiseerimine tänapäevastes tingimustes. Mac OS, iOS, Android lähitulevikus ei võimalda veel rääkida WinRT täielikust toest lähitulevikus.

Embarcadero strateegiline eesmärk on loomulikult mitmeplatvormiline. RAD Studio XE4 väljalaskmine oli võtmetähtsusega, peamiselt selle iOS-i toe tõttu. Olemasolev VCL-i kasutav programmeerija saab iOS-i jaoks arendama hakata mõne tunni pärast. Isegi lihtsa mobiilirakenduse saab hetkega muuta võimsaks projektiks, mis töötab olemasoleva infrastruktuuri raames. Ärge arvake, et see on lihtsalt FireMonkey uus kompilaator ja uus stiil, mis sobib iOS-i liidesega.

See hõlmab uut visuaalset kujundajat, sisseehitatud tuge erinevatele vormiteguritele, andmetele juurdepääsu teeke, sealhulgas uut FireDAC-i, ja LiveBindingsi tehnoloogiat paindlikuks ja dünaamiliseks sidumiseks ettevõtte andmetega. Kõik need uuendused jõuavad kohale korraga – Windowsi, Mac OS-i ja iOS-i jaoks. Mac OS-i operatsioonisüsteem ei arene nii kiiresti, seega pole probleeme, nagu üleminek Windows 7-lt Windows 8-le. Kuid ilmusid Retina ekraanid ja see nõudis erilist tähelepanu. Nüüd sisaldab iga Delphi XE4 loodud MacOS-i rakendus automaatselt kahte stiili - "tavaline" ja "kõrglahutus".

See. samal rakendusel võib olla sama kvaliteetne "native" liides mis tahes Apple'i lauaarvutis.

Embarcadero ei taha arendajaid oma uute uuenduslike väljaannetega "üllata", "hämmastada" ega isegi "lõbustada". Pigem, vastupidi, IT-sfäär on juba täis erinevaid üllatusi: uued seadmed, uued platvormid, uued kasutajad, nende uued vajadused, uued suhtlusstsenaariumid. Lisage sellele uued tarkvaraarendustehnoloogiad ja programmeerijatel ei jää lihtsalt aega uute ja olemasolevate süsteemide loomiseks – nad ei tee muud, kui migreeruvad ühest keskkonnast teise, vanast raamatukogust uude, ühest keelest teise.

Kuid me ei tunnista kõike uue tagasilükkamist. Tahame lihtsalt tagada kõige järjepidevuse – koodi, liidese, projekti, isegi professionaalsed oskused uute platvormide ja seadmete ilmumisel. Võib öelda, et me võitleme uute platvormide osas ebaterve konservatiivsusega arendustööriistade terve konservatiivsuse kaudu. Ärge oodake Embarcaderolt eksootilisi tooteid, mittestandardseid programmeerimiskeeli ega veidraid arendustööriistu.

Meilt leiate alati visuaalset arendust, klassikalisi keeli, “natiivset” koodi ja lasete oma rakenduste sihtplatvormidel, mis on loodud samal tõestatud klassikalisel viisil, olla uued.

TRIppleEffect klass efekti loomiseks, mis rakendab visuaalsete objektide tekstuurile lainelainet.

Lainetuse keskpunkt on kinnistul täpsustatud Keskus. Pulsatsiooni muid aspekte saab atribuutide abil kohandada Amplituud(amplituud), Kuvasuhe, Ja Faas(Faas). Lainetuslainete arvu määrab omadus Sagedus(Sagedus).

Järgmises tabelis on toodud mõju tulemused TRIppleEffect vormile asetatud PNG-fotole (kasutades ). Lainetuse keskpunkt on pildi keskel. Muud omadused TRIppleEffect kasutatakse nende vaikeväärtustega ( Amplituud = 0,1, Kuvasuhe = 1,5, Sagedus = 70, Faas = 0).

Selles õpetuses kasutate FireMonkey rakenduses mõningaid põhilisi pildiefekte.

1. samm: rakendage pildile efekt.

FireMonkeys on pildile pildiefekti rakendamine lihtne protsess. Looge lihtsalt komponent, mis võib sisaldada pilti, ja seejärel rakendage üks pildiefektidest.

    Looge uus FireMonkey rakendus ( Fail> Uus> FireMonkey töölauarakendus> HD FireMonkey rakendus).

    Asetage komponent vormile.

Valige tööriistaribal komponent.

Asetage TI-pilt kujundaja vormile.

    Näete, et komponenti ei paigutata vormikujundaja keskele. Nagu joonisel näidatud, soovite, et pildiala suurus oleks võimalikult suur. Selleks valige kujundusvormil komponent, seejärel muutke atribuute Joonda V alClient objektiinspektoris, et komponendi suurus muutuks vormiala kliendi suuruseks samaks.

    Valige pilt, millele soovite efekti rakendada. Komponent salvestab pildi kinnisvarasse Bitmap. Valige vara Bitmap objekti inspektoris ja kasutades Muuda... pildi valimiseks.

  1. Nüüd saate valida pildile efekti. Valige tööriistade paletist TRIppleEffect.

Nüüd RippleEffect kuvatakse aknas Struktuur.

Efekti rakendamiseks tuleb see defineerida kui mõne teise komponendi alam. Sel juhul, RippleEffect1 tuleb määratleda lapsena Pilt1. Selleks lohistage RippleEffect1 ja asetage see peale Pilt1 struktuuripaneelil.

  1. Nüüd näete seda RippleEffect töötab juba vormikujundajas.

  1. Muuda kinnisvara Sagedus peal 20 .

2. samm: rakendage RippleEffectile animatsiooniefekti.

    Tõstke esile RippleEffect paneelil Struktuur.

    Valige kinnisvara Faas Object Inspectoris ja käivitage käsk Looge uus TFloatAnimation rippmenüüst.

Veendu, et FloatAnimatsioon1 määratletud alamelemendina RippleEffect1.

    Muuda omadusi FloatAnimatsioon1 nagu allpool:

Ja lõpuks lisame sündmuse protseduuri OnMouseMove Et .

Eelmise aasta septembris välja antud Delphi XE2 sisaldab rekordiliselt palju uuendusi.
Delphi XE2 võimaluste lühiülevaated on Habré lehel juba avaldatud. Kuid ilmselgelt on kõige silmatorkavam uuendus FireMonkey platvorm ja siinkohal tahaksin sellele veidi tähelepanu pöörata.
Olen teinud väikese valiku linke materjalidele, mis loodetavasti aitavad teil sellest platvormist enam-vähem adekvaatse ettekujutuse saada. Kuid kõigepealt ütlen neile, kes pole kursis, lühidalt, mis on FireMonkey.
Embarcadero Technologies positsioneerib FireMonkey platvormina rikkalike ärirakenduste loomiseks Windowsi, Maci ja iOS-i jaoks. Pealegi on see platvorm igale OS-ile omane, st. FireMonkey abil loodud rakenduse käivitamisel täiendavaid lisandmooduleid ei kasutata.
FireMonkey lingib otse natiivse (OS-i vaatenurgast) graafikateeki, nagu OpenGL või DirectX. Seega pakutakse välja parim lahendus GPU vaatenurgast.
FireMonkey arhitektuuri tuumaks on võimas klasside raamatukogu (sh visuaalsed komponendid).
Sihtplatvorm valitakse koostamise käigus.
FireMonkey esimene versioon toetas ainult Win32, Win64, MacOSX ja iOS-i, kuid Embarcadero plaanib selle tulevikus portida mitmele teisele platvormile.

Mida peaksite arvestama?

Kuigi FireMonkey platvorm pakub laialdasi tööriistu 3D-rakenduste arendamiseks, ei tohiks seda mängumootoriks pidada. FireMonkey on spetsiaalselt positsioneeritud ärirakenduste arendamise platvormina.
Toode on praegu oma arengu algfaasis. Ja paljud FireMonkey funktsioonid on muutumas, nii kvalitatiivselt kui ka kvantitatiivselt.

Loodan, et allolevad lingid aitavad teil mõista uue platvormi põhifunktsioone.
Ametlik tooteleht Embarcadero veebisaidil (vene keeles)

Ingliskeelsest materjalist tahaksin esile tõsta sarja (inglise keel)

Mida näha?

Mis puutub Delphi uusimasse versiooni, siis toote võimalustele ja sellega töötamisele on pühendatud rohkem videomaterjali kui kunagi varem. Nii ametlikud, Embarcadero kui ka sõltumatud arendajad. YouTube'is on FireMonkey kohta palju videoid, saate lihtsalt otsingut kasutada. Selle materjali rohkuse hulgast tõstan esile Marco Cantu – RAD in Action – sihtlehe kolmest videost koosneva seeria, andes seeläbi oma uurimistööle kasulikkuse.

Selle ajaveebi kontekstis on see projekt huvitav eelkõige seetõttu, et seda rakendatakse FireMonkey's ja see on selle platvormi võimaluste hämmastav demonstratsioon. Ja just eelmisel nädalal ilmus toote avalik beetaversioon. Nii saavad ajaveebi lugejad enda jaoks “tunnetada” midagi tõeliselt keerulist. FireMonkey rakendus.

Paar sõna programmi kohta. Kõigepealt tuleb märkida, et Sphere'i praegune versioon on paigutatud veidi erinevalt. Jah, vahel juhtub...

Uus SphereLive See pole lihtsalt järjekordne sõnumitooja. Esiteks on see tööriist, mis võimaldab teil õppeprotsessi tõhusalt korraldada. See võimaldab pidada kaugloenguid, erakonsultatsioone, individuaaltunde ja muid sarnaseid tegevusi. Samas on see varustatud peaaegu kõige tööks vajalikuga. Alustades ainulaadsest failiedastussüsteemist ja lõpetades võimsaima arvelduse alamsüsteemiga.

Selles etapis on toote kasutamise hinnad üsna taskukohased. Piiratud arvu kuulajate ja vähese ressursside korral saab toodet kasutada tasuta.

Loomulikult kasutab Sphere oma peamist eelist FireMonkey- platvormideülene. Rakendus on praegu saadaval Windowsi ja MacOS-i väljaannetes. Androidi versiooni on oodata igal päeval.

Minu jaoks on SphereLive aga huvitav eelkõige uuendusliku tootena, millel on terve komplekt originaalseid lahendusi. Mõnikord on see lihtsalt tasemel "... vau, kuidas sa seda tegid?" Muide, üks Sphere'i arendajatest osaleb aktiivselt FireMonkey'le pühendatud foorumi aruteludes. See võib iseenesest olla põhjus rakenduse allalaadimiseks ja tehniliste küsimuste arutamiseks otse autoriga. Uskuge mind, on, mida näha ja on midagi õppida.

TListView on üks võtmekomponente mobiilirakenduse liidese loomisel FireMonkey. Seda komponenti pole kõige lihtsam kasutada, see nõuab sageli märkimisväärsel hulgal koodi, kuid annab arendajale märkimisväärse tegevusvabaduse. Muidugi rakendustes saab ka kasutada TListBox, kus kõik on palju lihtsam. Aga TListBox võib olla hea kindla arvu kirjete kuvamiseks, andmeallikatest andmete väljastamiseks, tuleks kindlasti kasutada TListView.

Peamised erinevused TListView ja TListBoxi vahel on järgmised:

  1. TListBoxItem- kontroll, TListViewItem- Ei
  2. IN TListBoxItem saate lisada mis tahes juhtelemente, kasutades vanemat. IN TListViewItem- Ei.
  3. TListViewItem salvestab ainult andmed kuvamiseks
  4. TListViewItem teostab salvestatud andmete renderdamise meetodi kaudu ise Renderda
  5. Tänu tegelikule käsitsi joonistamisele TListVIewItemis saavutatakse kiiruse kasv ja vähene mälukulu (salvestatakse ainult asjakohased andmed)
  6. Oma versiooni loomiseks TListViewItem, tuleb luua oma kaubaklass, juurutada sinna vajalikud andmed (näiteks aeg) ja luua redigeerimisaja jaoks kohapealne redaktor, see registreerida jne.

Ainuüksi suurenenud jõudluse ja vähenenud mälutarbimise fakt on kaalukas argument kasutamise kasuks TListView. Kuid on veel midagi.

Paljudes Android rakendused Pidin jälgima järgmist loendite rakendamist. Kui klõpsate loendi elemendil (üksus, kui jääte valitud terminoloogia juurde), tehakse teatud toiming. Tavaliselt kutsutakse andmete muutmiseks välja uus vorm. Kui aga vajutada ja hoida all (Long Tap), tehakse hoopis teistsugune toiming. Ja need sündmused ei ristu. Teisisõnu, Androidi rakendused suudavad selgelt eristada "pikaat vajutust" ja "tavalist". Veelgi enam, ükski neist sündmustest ei käivitu loendi kerimisel. Hea näide on kirjade loend Yandex Mailis.

Kõigepealt tahan õnnitleda kõiki blogi lugejaid möödunud pühade puhul ja soovida kõike paremat tuleval aastal.

Ilmselgetel asjaoludel ei teinud ma traditsioonilist uusaastaaruannet ega teinud ka aasta plaane. Elu aga ei seisa paigal, töö käib ja Delfi maailmas toimuvad teatud sündmused. Kohustun lähiajal avaldama jõulupühade ajal valiku vahele jäänud “uudiseid Delfi maailmast”. Vahepeal räägin teile uuest ostetud seadmest.

Omadused leiate ametlikult veebisaidilt. Ja subjektiivne mulje on väga meeldiv. Tähelepanuväärne on asjaolu, et seade on sõna otseses mõttes täis tootja patenteeritud tarkvara. Ja müüjad said kingituseks ka muljetavaldava tarkvarakomplekti. Nutitelefon töötab üsna kiiresti ja õigustab täielikult selle maksumust (umbes 200 dollarit). Muide, oma eelmise telefoni GSmart 1362 ostsin umbes sama raha eest 2 aastat tagasi. Aga nagu te ilmselt arvasite, huvitas mind peamiselt see, kuidas need töötavad FireMonkey rakendusi.

Enne taimeri teemalise loo jätkamist kaks uudist.

Esiteks anti välja esimene XE7 värskendus. Traditsiooniliselt on see saadaval registreeritud kasutajatele. Leiate parandatud vigade loendi. Tahtsin näha, kuidas rakendus uuendatud keskkonnas käitub. Õigupoolest ei pidanudki parandusi tegema, kuigi katsetamiseks oli veel ruumi.

Teine uudis. Embarcadero eripakkumised on pikendatud aasta lõpuni:

Noh, nüüd otse postituse teema juurde. Põhimõtteliselt jääb meil üle vaid proovida käivitada Androidile juba loodud rakendus. Selleks kasutame seda, millest eelmistes postitustes kirjutasin. Nimelt uus. Silusin selle rakenduse sisse Nexus 7, lisati vastavalt Android 7-tollise tahvelarvuti kujutis. Kujundust tuli vaid veidi muuta.

Tõenäoliselt ainult laisad inimesed ei kirjutanud oma taimerit. Ja mobiiliplatvormide arenduse toetamise kontekstis võib Delphis taimeri kirjutamise ülesannet üldiselt pidada kultusülesandeks. Nii ma siis mõtlesin, et miks mitte arengu näitena FireMonkey Rakendus ei saa taimerit sõeluda. Androidi jaoks muidugi. Loomulikult on see täpselt minu nägemus ülesandest, millel, kuigi mitte eriti raske, on siiski omad nüansid. Võib-olla on teil kommentaare või ettepanekuid, oleks tore neid kommentaarides arutada. Ma ei ole mobiilirakenduste kirjutamise alal sugugi ekspert, nii et kõik teie kommentaarid on mulle väärtuslikud.

Me töötame välja taimerit, selle termini inglise keeles. See tähendab, et ekraanil kuvatakse valikuketas ja neli nuppu - "Start", "Paus", "Stopp" ja "Tühista". Pöördloendus toimub edasisuunas (st aeg pikeneb). Valik, milles kellaaeg on seatud ja loendus on ingliskeelses terminoloogias, kannab nime Stop Watch, võib-olla proovin seda hiljem rakendada. Rakendus, millega töötame, on funktsionaalsuselt stopperile lähemal.

Delphi XE7 võimaldab meil arendusprotsessi oluliselt lihtsustada tänu sellele, et saame nüüd Win32 jaoks luua ja siluda reaalse rakenduse ning seejärel lihtsalt lisada vajalike mobiilseadmete jaoks vormide esitamise ning vähese kohandusega hankida töötava mobiili rakendus. Kõlab liiga hästi, et tõsi olla? Võib olla. Kuid ma tahan seda väidet testida ülesande rakendamisega.

Mida sagedamini küsitakse minult eravestlustes kolleegidelt, kas sees on võimalik mobiilirakendusi arendada FireMonkey või on see pigem prototüüp kui tootmislahendus?

Ma arvan, et nüüd võin tagada isegi väljamõeldud skeptikud.

Mu rinnasõber ja kolleeg Tagir Yumaguzin rääkis mulle projektist, millest ta ammu osa võttis. Nüüd, kui see projekt on väljalaskeeelses olekus, otsustasime, et see kirjeldus on Delphi kogukonna jaoks huvitav. Sisuliselt on tegemist tõesti suure FM-is ellu viidud projektiga. Me räägime Sphere Live projektist. Sellele projektile pühendatud väike artikkel avaldati hiljuti saidil Habrahabr.ru Aleksei Glyzin, arendusosakonna juhataja, nõustus projektist rohkem rääkima, võttes arvesse minu ajaveebi vaatajaskonda.

A.B.- Aleksei, mis on teie projekt üldiselt?

A.G.: – Idee pole tekkinud korraga ja silmapilkselt. Enne projekti "Sphere" töötas meie meeskond projekti kallal, kus rakendati voogesituse audio/video tehnoloogiaid. Hiljem lõime oma tarkvara, mis suutis edastada multimeediumivooge piiramatule hulgale kasutajatele, sealhulgas tagasisidet. Kuid meil oli vaja lisada arveldusfunktsioon.
Taotlus pidi vastama mitmele nõudele. Esiteks konverentside maksimaalselt lihtsustatud korraldamine või osalejatele edastamine, mille suurust me ennustada ei oska. Teiseks, kõige olulisem on anda oma klientidele võimalus meie rakendusega teenida ning vähendada süsteemi keerukust, eesmärgi saavutamiseks vajalike instrumentide hulka. Kursuste, veebiseminari või lihtsalt konsultatsiooni korraldamise lihtsus.

Väike märkus mälestuseks FireDAC praeguses versioonis Delphi XE6. Kuid kõigepealt paar sõna selle kohta, kust otsida vastuseid seotud küsimustele FireMonkey. Vene keelt kõnelevad kasutajad on siin eelisseisundis.

RAD Studio XE5 maailmaturnee raames toimuvaks Harkovi ürituseks valmistudes puutusin kokku väikese probleemiga. SQLite kasutades FireDAC. Kui Windowsi rakendusega täidetud andmebaas kantakse koos rakendusega üle Android, Kirillitsa stringid andmebaasis ei ole enam loetavad (tähtede asemel kuvatakse küsimärgid). Kui aga täidate andmebaasi otse mobiilseadmes, loetakse vene tähemärke üsna õigesti. Andmed andmebaasist, mis on täidetud kolmanda osapoole rakenduses või sisse Delfi muid andmetele juurdepääsu komponente kasutavaid rakendusi kuvati samuti normaalselt. Kohtumisel lahendust ei leitud ja pidin tsiteerima kuulsat Ukraina jalgpallispetsialisti: "Me mõtleme selle välja!"

Erinevalt eelmisest sain kirjeldatud probleemiga hakkama. Vaikimisi ühenduse loomisel SQLite V FireDAC Kasutatakse ANSI stringi vormingut.

Kui sunnite Unicode'i installima, siis kõik töötab nii nagu peab. Kuid on ka ebameeldiv hetk. Stringivormingu muutmisel peate uuesti looma kõigi andmekogumite väljade loendi ning ühendama uuesti andmete kuvamise ja sisestamise eest vastutavad komponendid. Seetõttu on parem kodeeringu eest kohe hoolt kanda.

Selle minisarja eelmistes osades käsitlesime andmebaasi loomist, selle ülesehitust ja sellega Delphist ühenduse loomist. Selles osas teen ettepaneku mõista tabelitest andmete kuvamist, alustades kõige lihtsamast juhtumist.

Lihtne tabeliandmete redaktor, tavaliselt osa keerulisest rakendusest. Tavaliselt kasutan tabelite redigeerimiseks eraldi vormi. Alustame toidukaupade nimekirjaga. Esiteks peame tabeliandmetele juurdepääsuks looma DataSet. Meie puhul on komponenti täiesti võimalik kasutada TADTabel. Asetame selle DataModule'i ja määrame atribuudi väärtuse Ühendus. Omanditoimetajas Tabelinimi ilmub tabelite loend, millest valime tabeli Tooted. Kui tegite kõik õigesti, saate vara määrata Aktiivne väärtus Tõsi. Parem on komponent kohe ümber nimetada (näiteks ADTProduct). Pärast seda loon tavaliselt andmekogumi jaoks väljade komplekti. Kutsuge välja redaktor (topeltklõpsake komponendil) ja valige kontekstimenüüst käsk Lisa kõik väljad.

Neile, kes pole kursis, selgitan selle operatsiooni olemust. Siin loome eelnevalt määratletud DataSeti väljade komplekti. Kui me seda disainirežiimis käsitsi ei tee, siis põhimõtteliselt midagi halba ei juhtu. RunTime'is luuakse see komplekt automaatselt. Kuid ma eelistan selle siiski käsitsi luua. Sellel on mitu põhjust. Esiteks on väljade kogumit mugavam hallata, kuna saame kujundamisrežiimis ise luua täiendavaid (arvutus- või lookUp) välju. Samuti saame muuta väljade endi omadusi. Ja lisaks saame võimaluse pääseda koodiväljadele juurde komponendi TField nime järgi, mis minu arvates oluliselt lihtsustab koodi kirjutamist.

Nagu VCL-i rakenduse puhul, ühendame komponendi andmekogumiga TDataSource. See komponent loob ühenduse andmekogumi ja visuaalsete juhtelementide vahel. Komponendi atribuut DataSet peab viitama meie andmekogumile (ADTProduct). Allpool pakun fragmenti DFM-failist

objekt ADTPood: TADTable IndexFieldNames = "ID" Ühendus = ADConnection Update Options. UpdateTableName = "Toode" TableName = "Toode" Vasak = 64 Ülemine = 192 objekt ADTPToote ID: TADAutoIncField FieldName = "ID" Origin = "ID" PakkujaFlags = [ pfInWhere, pfInKey] ReadOnly = Tõeline lõppobjekt "TFiittFiel"TFieldName Päritolu = "Pealkiri" Suurus = 50 lõppobjekti dsToode: TDataSource DataSet = ADTPtoote vasak = 120 ülemine = 192 lõpp

Pange tähele ühte huvitavat funktsiooni: DataModule'i vormifail ei salvestata mitte FMX-vormingus, nagu tavaline FireMonkey vorm, vaid DFM-vormingus, nagu VCL-is.

Järgmine samm on andmestiku avamise protseduuri loomine, mille peame programmi käivitamisel RunTime'is välja kutsuma. Loome selle samas DataModule'is. Protseduuri kood on äärmiselt lihtne:

protseduur TDM. ConnectToDB ; startADConnection. Ava(); ADTPtoode. Ava(); lõpp ;

Teeme protseduurikutse DataModule'i sündmuste käitlejasse OnCreate.

Rohkem kui kolm aastat on möödunud ajast, kui CodeGeari divisjon, mis vastutab maailmakuulsate tööriistade, nagu Delphi, C++Builder ja JBuilder, ning Interbase'i andmebaasihaldussüsteemi loomise eest, sai oma tööriistade poolest tuntud Embarcadero Technologies osaks. andmebaasi kujundamise ja haldamise jaoks ning kaks aastat pärast seda, kui arutasime oma ajakirja lehekülgedel, mida oodata Venemaa arendajate seas nii populaarsete tööriistade väljatöötamisel. Palusime Embarcadero Technologiesi arendajasuhete asepresidendil ja peaevangelistil David Intersimonel ning Embarcadero Technologiesi esinduse juhil Kirill Rannevil rääkida, mida on selles valdkonnas viimase kahe aasta jooksul uut tehtud ja mida oodata lähitulevikus Venemaa. Meie kõige pisematele lugejatele anname teada, et see pole esimene intervjuu, mille David ja Kirill ComputerPressile annavad – meie koostöö on kestnud juba teist kümnendit. Ja umbes sama palju aastaid oleme perioodiliselt avaldanud andmebaasihaldustööriistade ülevaateid, milles pööratakse palju tähelepanu Embarcadero toodetele.

Arvutipress: David, teie osakond on olnud Embarcadero osa kolm aastat. Kaks aastat tagasi olite entusiastlik, et saite osaks teie eesmärkidele ja vaimule lähedasest ettevõttest. Kas selle aja jooksul on midagi muutunud? Kas teie ja teie kolleegide entusiasm on endiselt sama?

Jah, ma olen ikka väga entusiastlik. Peamine muutus, mis on toimunud pärast Embarcadero ettevõtte osaks saamist, on see, et Delphi arendusse on palju investeeritud. Suurenenud on arendusvahendite kallal töötavate inimeste arv ning kasvanud on tehnoloogiate hulk, mida saame arendada või vajadusel omandada.

RAD Studio XE 2 väljalase, mida kavatseme Moskvas demonstreerida, on selle tohutute võimaluste ja suure hulga toetatud platvormidega toote suurim väljalase alates Delphi esimesest versioonist, mis loodi Windowsi 16-bitise versiooni jaoks ja mis oli uuenduslik toode, mis ühendas komponendipõhise lähenemise ja kompileerimise masinkoodiks. Nüüd toetame arendust mitte ainult Windowsile, vaid ka Macintoshile, rääkimata veebiarendusest ja mobiiliseadmete rakenduste loomisest ning need rakendused erinevatele platvormidele võivad olla ühe koodiga.

Uus arendusplatvorm FireMonkey on koostöös Embarcadero ja hiljuti omandatud UlanUde-põhise Venemaa ettevõtte KSDev vahel, kes toodab vektorgraafika komponente, DirectX-i ja OpenGL-i, graafikaefektide tehnoloogiaid ning Delphi komponente, mis kasutavad PixelShader 2.0-ga GPU-d. Ostsime aasta tagasi ettevõtte KSDev (vt ksdev.ru) ja alustasime koostööd mitme platvormi arendustööriista loomiseks, sealhulgas platvorm FireMonkey rakenduste arendamiseks koos komponentidega Delphi ja C++Buider jaoks rakenduste kasutajaliideste, andmebaasi loomiseks. integreerimine , graafika töötlemine GPU abil ja integreerimine operatsioonisüsteemiga.

FireMonkey abil saate luua rakenduse, mis töötab CPU-s ja GPU-s koos, ning seejärel kasutada selle Windowsi, Mac OS-i või iOS-i jaoks kompileerimiseks erinevaid kompilaatoreid ja käitusaegseid teeke (RTL). Selle asemel, et õppida programmeerima erinevate graafikateekidega, õppida erinevate platvormide API-sid, millel on erinevad koordinaatsüsteemid ja erinevad võimalused, saavad Delphit ja C++Builderit kasutavad arendajad kasutada sama komponendipõhist lähenemist, vorme visuaalselt redigeerides ja andmebaasidega ühenduse loomiseks. komponendi liigutamine hiirega. See on põhimõtteliselt uus viis erinevatel platvormidel töötavate rakenduste loomiseks ja see on tulevik. Kui soovite oma rakendusele lisada tuge teistele operatsioonisüsteemidele ja platvormidele, ei pea te seda uuesti kujundama ja arendama – peate selle lihtsalt uuesti kompileerima.

Loome uusi kompilaatoreid, mis genereerivad omakoodi. Tänapäeval on Delphi kompilaatorid Windowsi 32- ja 64-bitiste versioonide jaoks ning Mac OS 10 32-bitiste versioonide jaoks. Ja me töötame järgmise põlvkonna Delphi ja C++Builderi kompilaatorite kallal, mis võimaldavad meil luua suure jõudlusega masinkoodi nii nendele kui ka teistele platvormidele, nagu Android või Linux, ning säilitada sama kujundus, samad komponendid ja sama kood, kasutades erinevaid kompilaatoreid ja käitusaja teeke.

Nagu näete, on mul entusiasmiks piisavalt põhjust. Ja arendajad, kellega üle maailma kohtun, teavad, et Embarcadero investeerib palju Delphisse ja C++Builderisse, aga ka PHP arendustööriistadesse.

KP: Milliseid edusamme olete kahe ettevõtte tööriistade integreerimisel viimase kahe aasta jooksul saavutanud? Millised on Embarcadero tulevikuplaanid selles vallas?

DI.: Ajal, mil CodeGear sai Embarcadero osaks, olid ettevõttel arendusmeeskonnad Torontos, Monterreys ja Rumeenias, asume ja asume siiani Scotts Valleys ja Venemaal, Peterburis. Embarcaderol olid tööriistad arendajatele ja andmebaaside administraatoritele, CodeGearil olid tööriistad rakenduste arendamiseks, kuid viimased kasutavad ka andmebaase. Ettevõtete ühinemine on kombinatsioon ekspertiisist, teadmistest andmebaaside vallas, koodi optimeerimisest, sh serverikoodist. Ettevõtete koosmõjul loodi ka uus toode AppWave, mis on spetsiaalne tehnoloogia tavalise Windowsi rakenduse muutmiseks millekski väga lihtsalt kasutatavaks (nagu rakendused iPhone'ile või muudele seadmetele). AppWave võimaldab teil rakendust mitte installida, vaid lihtsalt valida see ja käivitada see ettevalmistatud rakenduste salvestusserverist (rakendusest) ning see käivitatakse kasutaja arvutis ilma selle registris ja süsteemi failisüsteemi piirkonnas muudatusi tegemata. Muide, AppWave rakenduse brauser on kirjutatud Delphis. Embarcadero kasutab Dephit enda arendamiseks ja rakenduste arendamiseks.

iPhone'i (iOS) rakendus, mille on loonud
kasutades FireMonkey platvormi

Samuti saate rakenduste loomisel SQL-päringute optimeerimiseks kasutada meie arendustööriistade ja DB optimeerija integratsiooni. Kui edastate SQL-koodi otse DB optimeerijasse, saate selle profiili teha, testida ja optimeeritud versiooni oma arenduskeskkonda tagasi saata. Embarcadero andmebaaside teadmised on ka DataSnapi tehnoloogiat täiustanud. Tänu Toronto arendajatele saime palju teadmisi mitmetasandiliste süsteemide ja andmebaaside arhitektuuri kohta. Nüüd on meil mõlemas ettevõttes ühised teadmised serverikoodi ja salvestatud protseduuride loomisel. Meil on sellised tööriistad nagu RapidSQL ja DB Change Manager, aga ka arenduskeskkonnad, mis lihtsustavad serverikoodi loomist – näiteks Code Insight ja Code Completion tehnoloogiad võimaldasid luua SQL ülevaate ja SQL Completion tehnoloogiaid. Meie ühised lähenemised kliendi- ja serverikoodi loomisele, meie ühine filosoofia, võimaldavad meil anda andmebaasihaldustööriistadele ja rakenduste arendustööriistadele ühiseid jooni.

Kirill Rannev: Tahan lisada midagi olulist. Kaubanduslikust seisukohast on väga oluline, kuidas me oma tööriistu tarnime. Näiteks uus RAD Studio XE 2 Ultimate väljalase sisaldab täielikku DB Power Studio tööriistakomplekti. See on väga võimas tööriistade komplekt, sealhulgas RapidSQL päringu arenduskeskkond, DB Change Manager muudatuste haldamise tööriist ja DB Optimizer päringu optimeerimise tööriist, mis võimaldab teil läbi viia olulise osa arendus- ja juurutamisprotsessist, haldades muudatusi andmemudel, andmebaas, kood ja nii edasi. See on väga hea ja õige tehnoloogiate kombinatsioon.

DI.: Kuid vajadusel saavad arendajad kasutada Subversioni lähtekoodi versioonide loomiseks ja DB Change Manageri metaandmete versioonide loomiseks. Saate kasutada koodiprofiili ja DB optimeerijat serveri koodi optimeerimiseks, RapidSQL-i serverikoodi koostamiseks ja silumiseks ning meie arenduskeskkondi rakenduste koostamiseks ja silumiseks. See tehnoloogiate kombinatsioon RAD Studio XE Ultimate Editionis näitab paralleele andmebaasi ja rakenduste arendusmudelite vahel. Enamik arendajaid, kes loovad ärirakendusi Delphi ja C++Builderiga, töötavad andmebaasidega ja vajavad neid tööriistu ning RAD Studio XE Ultimate Edition on sellistele arendajatele suurepärane kombinatsioon.

KP: Kaasaegne kasutaja pole enam Windowsi platvormi üksi kasutaja. Kasutame mobiilseadmeid, iPhone, iPad, Android platvormil põhinevaid seadmeid. See tähendab, et arendajad peavad hakkama sihtima erinevaid platvorme, suurendamata oluliselt investeeringuid koolitusse – ehk on vaja universaalseid tööriistu. Ilmselgelt on ebareaalne oodata platvormitootjatelt universaalseid tööriistu ja selles küsimuses saame loota vaid sõltumatutele tööriistatootjatele. Kuidas saame Embarcadero peale loota?

DI.: Platvormitoe osas on meil veel palju teha. Täna tutvustame iOS-i platvormi tuge iPhone'ile ja iPadile, seejärel saavad meie tuge Android-platvormil põhinevad nutitelefonid, Windows 7 ja Blackberry. RAD Studio XE 2-s alustasime iOS-i jaoks FireMonkey platvormi loomisega ja seejärel toome FireMonkey teistele platvormidele.

Samas on telefonidele, tahvelarvutitele ja lauaarvutitele mõeldud puutetundliku ekraaniga operatsioonisüsteeme suur hulk ning jätkame nende toe lisamisega. Samuti on olemas hääl, liikumine, biomeetria ja kiirendusmõõturid, seega peame jätkama FireMonkey laiendamist, et kõik arendajad saaksid uusi platvorme ära kasutada. Näiteks Microsoft Kinecti seade oli mõeldud Xbox 360 jaoks ja nüüd on Windowsile vastav SDK (Software Development Kit). Ja meil on juba näiteid, kus me kasutame liikumist rakenduse juhtimiseks samamoodi, nagu tavaliselt kasutatakse hiirt või klaviatuuri.

Kui loote palju keeruka graafikaga rakendusi, loote terve maailma uusi kasutajaliideseid. Kui tegemist on Windowsi operatsioonisüsteemiga, kapseldame selle Windowsi API VCL-i teeki (Visual Component Library – visuaalsete komponentide teek, mis on osa Delphi ja C++Builderi arendustööriistadest. - Märge toim.), mida, muide, saab edasi kasutada. Ja FireMonkeysse kapseldame operatsioonisüsteemi API. Kuid tänapäeval manipuleerime kujundite ja graafikaga palju laiemalt. Animatsiooni ja eriefektide jaoks saate ruumi lisada ka füüsilisi omadusi. Lisaks on tohutul hulgal muid lisavõimalusi kasutajaliideste loomiseks, mida hakkame lähiaastatel juurutama erinevatele platvormidele, mobiil- ja tahvelseadmetele.

Microsoft avaldas hiljuti üksikasjad Windows 8 kohta, mis peaks ilmuma aasta pärast. Toetame neid uuendusi VCL-i teegis ja FireMonkey platvormis. Kuid Delphi on arendustööriist, mis on loodud mitte ainult Windowsi, vaid ka Macintoshi, iPhone'i ja iPadi jaoks. Samuti arendame oma PHP-tooteid, toetame jQuery Mobile'i, kasutame iOS-i API-d mobiilikliendirakenduste arendamiseks ja loome serveripoolseid PHP-rakendusi, kasutades viisardeid ja tööriistu kliendipoolse JavaScripti, HTML-i ja kaskaadlaaditabelite genereerimiseks. Saame luua pakette PHP rakendustest ja klientrakendustest native koodiga iPhone iOS jaoks ning selline klient suhtleb PHP serveriga. Ja ta omakorda suhtleb andmebaasiserveri ja veebiteenustega - kõigega, mida äritegevuseks vaja läheb.

RadPHP XE2 arenduskeskkond. Mobiilse veebirakenduse loomine
jQuery Mobile'i komponentide kasutamine iPhone 3G jaoks

Teisisõnu plaanime laiendada FireMonkey ja VCL-i võimalusi, sealhulgas mobiilsete platvormide tuge.

KP: Kas saaksite meile FireMonkey platvormi kohta rohkem rääkida?

DI.: Nagu ma juba märkisin, jätkub Windowsi jaoks loodud VCL-i teegi arendamine ja täiustamine. Kuid täna, kui soovite tõelist ärirakenduste arendamist, peate need looma erinevatele platvormidele. Selleks on FireMonkey platvorm loodud. See toetab kõrge eraldusvõimega kasutajaliideste, suure jõudlusega 3D-graafika, kõrge kaadrisageduse loomist ja, mis kõige tähtsam, kasutab selleks graafikaprotsessorit.

Selliseid võimalusi saate kasutada teadus-, inseneri- ja ärirakenduste loomisel. Sellised rakendused saavad luua andmebaasidega ühenduse dbExpressi tehnoloogia abil, kasutades siiski arendajatele tuttavaid mittevisuaalseid komponente, nagu ClientDataSet või DataSource, kasutada DataSnapi tehnoloogiat, luua ühenduse mis tahes andmebaasi, SOAP- ja REST-serveritega. Saate luua atraktiivseid juhtnuppe, kastidega nuppe, ebatavalisi tabeleid ja muid liideseelemente nii kahe- kui ka kolmemõõtmelisena. Saate laadida rakendusse valmis 3D-mudeli ja ühendada selle 2D-kujuga, mille abil saate seda pöörata ja vaadata erinevate nurkade alt. Saate luua andmekuubiku või 3D-äridiagrammi ja pöörata seda hiire, klaviatuuri või isegi Kinecti seadme abil või astuda kuubi sisse ja vaadata selle erinevaid pindu seestpoolt. Ja kõike seda saab teha kiire GPU abil. Seejärel saab sama rakenduse kompileerida mõnele teisele platvormile, näiteks Mac OS-ile.

rakendus, mis sisaldab pöörlevat andmekuupi,
asetatakse selle servadele

Või saate luua 3D-kujundi nullist ning kasutada kaameraid ja tulesid, et valgustada ja pöörata kasutajaliidese osi. Vormikujundajal on juba sisseehitatud keskkond, mis toetab kujundamise ajal 3D-kasutajaliidest.

Windowsis saate kõrge eraldusvõimega 2D-graafikaga töötamiseks kasutada Direct2D-teeke ja 3D-graafika jaoks rakendust Direct3D. Mac OS-is kasutatakse Quartz- ja OpenGL-i teeke samadel eesmärkidel. iOS-i jaoks kasutatakse teeke Quartz ja OpenGL ES. Kuid see kõik on arendaja eest varjatud – ta kasutab FireMonkey platvormi, selle koordinaatsüsteemi ja rakenduste programmeerimisliidest, mõtlemata nendele teekidele ning saab koostada sama rakenduse erinevatele platvormidele.

Tuletame meelde, mis on VCL. VCL on Windows API ümber olev komponentide ümbris. Tegeleme ressursside, menüüde, dialoogibokside, värvide, stiilide, Windowsi sõnumitega. Erinevalt VCL-ist säilitab FireMonkey sama sündmuste ja komponentide mudelid, mis võimaldab teil mõelda sündmustele (nt OnClick, OnHasFocus, onMouseDown ja onKeyDown sündmused), kuid tegeleb Macintoshi või iPhone'i sündmustega.

FireMonkey platvormiga on kaasas ka täielik animatsioonisüsteem kasutajaliidese elementide jaoks. See ei ole kindlasti kõikehõlmav Pixari stiilis animatsioonisüsteem, kuid see võimaldab selliseid efekte nagu bitmap animatsioon, kasutajaliidese elementide fookuse esiletõstmine ja vektorgraafika. Arendajale on saadaval üle 50 visuaalse efekti: hägusus, pildi mustvalgeks muutmine, lahustumine, üleminekud, peegeldus, varjude loomine – kõikvõimalikud tänapäevastes graafikaprotsessorites saadaolevad efektid, mida leidub nüüd peaaegu igas arvutis. FireMonkey platvormi kasutades ehitatud rakendus saadab käsud GPU-le, mis teeb ära kogu graafika kuvamise ja kasutajaliidese loomise töö. Sel juhul on keskprotsessor arvutuste ja operatsioonisüsteemi kõnede jaoks vaba. Arendaja saab komponendid ainult õigesti paigutada.

FireMonkey platvormi kõige olulisem asi on kasutajaliidese loomise viis. On olemas vahendid rastergraafika paigutamiseks liidese elementidele, nagu menüüd, nupud ja kerimisribad. FireMonkey's kasutame selleks GPU-toega vektorgraafikat. Programmeerimise seisukohast on tegemist siiski samade juhtelementidega, kuid kogu nende kuvamise töö teostab graafikaprotsessor. Saame rakendada juhtelementidele stiile, muuta rakenduse Mac OS-i või Windowsi rakenduseks, luua oma stiili, rakendada liidese elementidele oma stiile (näiteks muuta nupp ristkülikukujuliseks või ümaraks, muutes selle stiili vormiredaktoris ) - selleks Arenduskeskkonnas on stiiliredaktor. Saate luua oma stiili või muuta juba valmis rakenduse stiili.

FireMonkey platvorm – arendustööriistad
ja toetatud platvormid

Kui mäletate, oli VCL-i teegil piiratud arv juhtelemente - konteinereid (see tähendab, et saate neisse paigutada muid elemente) ja FireMonkey'is on iga juhtelement konteiner. See tähendab, et iga juhtelement võib sisaldada mis tahes muud juhtelementi. Näiteks võivad ripploendi üksused sisaldada pilte, nuppe, redigeerimisvälju ja muid juhtelemente. Samuti saate komponente paigutada kihtidena.

FireMonkey renderdussüsteem on üsna paindlik – saab kasutada Direct2D, Direct3D ja OpenGL teeke, saates GPU-le käske. VCL-is sama asja saavutamiseks tuli genereerida eraldi ekraaniväline puhver, luua sinna vastavaid graafikateegi funktsioone kutsudes pilt ja see siis vormile kuvada.

FireMonkey toetatud graafiliste efektide näited

Kui teil pole GPU-d, saate siiski rakendada 2D- või 3D-kujundeid ja kasutada FireMonkey juhtelemente. Sel juhul kasutab FireMonkey platvorm GDI+ teeke või muid sarnaseid teeke ning teostab samu efekte ja animatsioone või manipuleerib 3D-objektidega.

FireMonkey teine ​​​​funktsioon on uus süsteem liidese elementide ühendamiseks andmetega, avatud ja paindlik. VCL-is on kahte tüüpi liidese elemente: andmetega seotud ja andmetega mitteseotud (näiteks TDBEdit ja TEdit). FireMonkeys saab iga juhtelementi seostada mis tahes tüüpi andmetega. See võib olla lihtne avaldis, andmekogumi väli, arendaja loodud objektide andmed või meetodikutsete tulemused.

Lisaks saab rakendust luues laadida sellesse valmis 3D mudeli ja seda kasutada – selliseid võimeid on sageli vaja nii äri- kui ka insenerirakendustes. Meil on klient, kes loob rakendusi logistika jaoks. Neil oli Delphi abil ehitatud infosüsteem ja selles rakendus, mis koostas plaani ja kuvas andmeallikatest infot. Hiljuti tegid nad midagi huvitavat – joonistasid AutoCADis täisautomaatse 3D lao ning nende rakendus võimaldab näha, kuidas automatiseeritud tõstuk laos ringi liigub ja kaupa riiulitele paigutab. Ja nad panevad vastavale pildile andmed allikatest.

Näiteid rakendusstiilide muutmisest

KP: Milliseid 3D-mudelite vorminguid praegu toetatakse?

DI.: Selles versioonis toetame mudelite laadimist AutoCADist, Colladast (avatud lähtekoodiga 3D-modelleerimistööriist. - Märge muuda.), Maya, OBJ-vorming, mida toetavad paljud 3D-graafika müüjad.

KP: Milliseid muid vorminguid kavatsete lisada?

DI.: Plaanime lisada 3DS (3D Studio MAX), SVG (tavaliselt kasutatakse seda formaati 2D vektorgraafika, aga vahel ka 3D puhul), Google SketchUp. Võib-olla toetame teisi vorminguid.

KP: Kas 3D-mudelite kasutamine FireMonkeyga loodud rakendustes nõuab vastava 3D-modelleerimistööriista litsentsi?

DI.: Ei, see ei nõua seda. Kõik, mida me teeme, on mudelifaili lugemine. Me impordime mudelit, kuid mitte ekspordime (kuigi loomulikult võite kirjutada rakenduse, mis salvestab mudeli teie vormingus). Me ei pretendeeri 3D-modelleerimistööriistade tootjana – selleks saad kasutada AutoCADi, 3D Studio Maxi, Maya või mõnda muud 3D-modelleerimisvahendit ning importida loodud mudeleid meie rakendustesse.

KP: Kui tõhusad on FireMonkeyga loodud rakendused kaasaegsetel riistvaraplatvormidel?

DI.: Tootlikkus on üsna kõrge. Näiteks kolme sfääri ja kolme tulega 3D-kujundi renderdamist MacBook Pro puhul saab renderdada kiirusega 100 kaadrit sekundis. Või võib see ulatuda 600-ni - see sõltub sellest, mida me täpselt teeme. Jällegi sõltub kõik GPU võimsusest.

KP: Kas see tähendab, et saate FireMonkey abil kaasaegseid mänge luua?

DI.: Me ei positsioneeri oma arendustööriistu mängude tööriistadena. Kaasaegsete GPU-de suure jõudlusega eeliseid kasutades saate aga FireMonkey abil mänge luua – need on ju loodud Direct3D või OpenGL-i abil.

KP: Millist tööd te praegu teete žestide tuvastamise ja muude uudsete asjade toetamise vallas? Kas selline tugi on saadaval?

DI.: Meil pole selles versioonis veel liigutuste tuge. Liigutuste juhtelemendid lisatakse FireMonkey tulevasse väljalasesse, kuid seni saate kasutada operatsioonisüsteemi sisseehitatud liigutuste tuge.

Mihhail Filippenko, Fast Reports, Inc. direktor.

K.R.: Oleme juba öelnud, et FireMonkey tehnoloogial on Venemaa juured - selle alused loodi meie riigis ja seejärel liitusid Embarcaderoga nii tehnoloogia ise kui ka selle arendajad. Üldiselt on rõõmustav näha venekeelse komponendi kasvu RAD Studios ja Delphis. See hõlmab meie arenduskeskuse tegevust Peterburis ja sõltumatute Venemaa arendajate panust. Näiteks Rad Studio XE2 sisaldab FastReport aruannete generaatorit - tuntud üle maailma ja väga populaarne meie riigis. Ta on pärit Rostovist Doni ääres.

KP: Tahaksin rääkida koostajatest. Millist kompilaatorit kasutatakse iOS-i rakenduste loomisel?

DI.: Meil ei ole iPhone'i või iPadi jaoks oma Delphi kompilaatorit – me pole veel välja töötanud kompilaatoreid nendes seadmetes kasutatavate ARM-protsessorite jaoks. iOS-i jaoks kasutame ajutiselt Free Pascali kompilaatorit ja käitusaja teeki. Kuid me töötame järgmise põlvkonna kompilaatoritega, sealhulgas AWP-protsessorite jaoks. Kuid Windowsi ja Mac OS-i jaoks on olemas kompilaatorid, kuna mõlemad riistvaraplatvormid põhinevad Inteli protsessoritel.

KP: Mida on viimase kahe aasta jooksul koostajate loomise vallas tehtud?

DI.: Meil on 32- ja 64-bitised Delphi kompilaatorid Windowsi ja Mac OS-i jaoks. Ja me töötame uue põlvkonna Delphi ja C++ kompilaatorite kallal. Need on veel pooleli, kuid kui need on tehtud, on meil Delphi kompilaatorid ARM-protsessorite, Androidi platvormide, Linuxi ja kõige muu jaoks. Ja meil on 64-bitised C++ kompilaatorid Windowsi ja muude platvormide jaoks, mis ühilduvad ISO poolt äsja vastu võetud uusima C++ keelestandardiga.

KP: Mis toimub Embarcadero arendustööriistade pilvandmetöötluse toega tänapäeval?

DI.: RAD Studio XE 2-s toetame rakenduste teisaldamist Microsoft Azure'i või Amazon EC2 pilve, kasutades Platform Assistantit. Samuti on meil serverikomponendid pilvesalvestuse jaoks Azure'i ja Amazon S3 jaoks tabelite, binaarandmete ja sõnumijärjekordade salvestamiseks. RAD Studio XE eelmises versioonis toetasime ka rakenduste juurutamist Amazon EC2-le, kuid see ei toetanud salvestusruumi.

Pilvandmetöötluse tugi rakenduses RAD Studio XE 2

KP: Kaks aastat tagasi rääkisite uuest All-Accessi lahendusest. Kui populaarne see oli? Millised on selle eelised süsteemiintegraatoritele ja arendajatele?

DI.: All-Access lahendus ja AppWave pilvetööriist on laialdaselt kasutusel üle maailma. Need on loodud meie enda ja kolmandate osapoolte rakenduste kasutamise hõlbustamiseks. See on sisuliselt lahendus litsentside ja rakenduste kasutamise haldamiseks ning on mugav suurtele ettevõtetele. Väiksemad ettevõtted, kellel ei ole rakenduste haldamise eest vastutavate inimeste meeskondi, saavad panna rakenduse hoidlasse, valida andmebaasist kasutajanimesid ja teha need rakendused kättesaadavaks, ilma et peaksid meeles pidama, kus on litsentsivõti või kui palju litsentse on. All-Access ja AppWave'i brauser on loodud nii versioonide loomiseks kui ka juurdepääsu juhtimiseks.

K.R.: Turg on nii mitmekesine ja kasutajad nii erinevad, et kõiki vajadusi ühe lahendusega katta on võimatu. Seetõttu püüdleme mitmekesiste pakendilahenduste poole. Oleme teinud palju tööd litsentsimise, litsentside haldamise ja toote installimise meetodite ühtlustamiseks. See lahenduste sari hõlmab litsentsi- ja varustamise haldustööriistu mitte ainult Embarcadero toodete, vaid ka kõigi muude toodete jaoks, sealhulgas ettevõttesisesed arendused.

Töö pakendite arendamise tööriistade kallal tõhusateks kasutajatele mõeldud komplektideks on endiselt käimas. Meil on All-Access – superkomplekt, mis ühendab kõik Embarcadero tooted. Kui klient ostab All-Access Platinumi, saab ta kõik Embarcaderos leiduvad tööriistad. Kuid mõnikord osutub see komplekt üleliigseks; näiteks andmebaasispetsialistide jaoks oleme teinud veel kaks komplekti - DB Power Studio Developer Edition ja DB Power Studio DBA Edition. Nende erinevus seisneb selles, et arendajale pakume RapidSQL-i - serverikoodi arendamise tööriista ja administraatorile on sisse ehitatud DArtizan - andmebaasi haldustööriist, laiem toode kui RapidSQL. Professionaalidele on meil järgmised All-Access komplektid: komplekt, mis sisaldab kõiki tooteid, DB Power Studio arendajatele, DB Power Studio administraatoritele, ER Studio Enterprise Edition arhitektidele ja kõigile, kes on seotud modelleerimisega. Rakenduste arendamiseks ja administraatoriteks on kombinatsioonid. Delphi on arendaja tööriist ja SQL-i arendus- ja optimeerimistööriistade lisamine on väga mõttekas. Lõpuks on DB Change Manager loogiline tööriist andmebaasides nende elutsükli jooksul toimuvate muudatuste keerukuse haldamiseks.

Seega on All-Access suure erinevate tootekomplektide perekonna juht.

KP: Kui see pole saladus, kes kasutab Venemaal All-Accessi?

K.R.: Meil on kliente, kes ostsid Delphi baasil All-Accessi. Paljud neist ehitavad keerukaid klient-serversüsteeme SQL Serveri ja Oracle'iga ning neile meeldisid kohe meie platvormidevahelised andmebaasitööriistad. Meil on klientfirma, kes on Delphit esimesest versioonist saati kasutanud ja aasta tagasi läksid nad Delphi kasutamiselt üle All-Access komplektile. Kaks tööriista, mida kõik selle ettevõtte arendajad kindlasti kasutavad, on Delphi ja DArtisan. Ja on kliente, kes tulid All-Accessi andmebaasi poolelt. Nende põhiülesanne on andmebaaside haldamine, kuid mõnikord arendavad nad ka rakendusi. All-Accessi kasutavate klientide hulka kuuluvad meediaettevõtted, inseneriettevõtted ja muud tööstusharud.

Eraldi tahaksin keskenduda väikeettevõtetele. Väga sageli teeb väikestes meeskondades kõike arendaja ja selline ettevõte ostab vahel ühe-kahe arendaja jaoks suuri All-Access tootekomplekte. Suurtes meeskondades ei soovita arendajal täita ka näiteks andmebaasihalduri rolli, seega on väikesed tootekomplektid seal tavaliselt populaarsed, kuid väikestes ettevõtetes on selline kohustuste kombinatsioon igati aktsepteeritav.

Delphi Architect on tugevalt turustatud toode, mis sisaldab modelleerimis- ja programmeerimistööriistu. Müüdud eksemplaride arv on siiski väiksem kui Delphi Enterprise'i versioonil, kuid see on ka suur. Tahan märkida, et 2010. aastal osutusime müügimahult parimaks riigiks, vaatamata sellele, et kõik riigid kogesid kriisi. Seda kasvu ei seostatud mitte niivõrd majanduslike teguritega, vaid sellega, et 2009. aasta lõpus välja antud RAD Studio XE versioon osutus väga populaarseks. Ja praegu ootame edasist müügikasvu.

Oleme astunud veel ühe mõistliku sammu, mis on Venemaal ülipopulaarne. Meie toodete erinevate versioonide legaliseerimise aste on erinev: mida kõrgem versioon, seda legaliseeritum see on, sest varem tarkvara nii aktiivselt ei ostetud. Alates RAD Studio XE-st hõlmab litsents versioone 2010, 2009, 2007 ja isegi laialdaselt kasutatavat toodet Delphi 7.

Täna seisavad arendajad silmitsi tõsiasjaga, et neil on toetatud nii uusi projekte kui ka projekte. Suur hulk projekte on üle viidud Delphi varasematest versioonidest versioonile 7 ja jäävad sellesse versiooni, töötades jätkuvalt suhteliselt väikeste ressurssidega. Keegi ei teisalda neid uuematesse versioonidesse, kuid neid hoitakse elujõulises olekus. Ja nüüd lubame väikese raha eest (vähem kui Delphi 7 litsentsi hind) hankida nii RAD Studio XE kui ka Delphi 7 – ehk legaliseerime arendaja nii uute projektide elluviimiseks kui ka tugiprojektide jaoks.

KP: Kuidas hindate Embarcadero kogukonna hetkeseisu?

DI.: See kogukond on suur ja väga nõudlik. Neil on kõike kohe vaja – nad on arendajad. Kuid mõnikord kulub palju aega, et midagi õigesti teha.

Paar aastat tagasi võtsime Windowsi komponentarhitektuuri ja panime selle Linuxi lauaarvutitele. Nüüd näeme, et see ei olnud õige otsus. Õige lahendus on rakendusplatvormi loomine. Isegi erinevatel platvormidel olevatel rakendustel on menüüd, aknad, graafika, juurdepääs võrgule ja juurdepääs seadmetele. Erinevatel platvormidel võivad lõimede haldamiseks või erandite käsitlemiseks olla erinevad mudelid, kuid me näeme rakenduse koodis samu prooviplokke. Meie ülesanne on teha arendajatele lihtsamaks ärirakenduste loomine ja nende kompileerimine nendele platvormidele, millel neid kasutada on mõeldud, olenemata sellest, kuidas on üles ehitatud vastavate protsessorite käsustik ja millised on nende platvormide muud omadused. Ja FireMonkey on täpselt see, mida vajate selle probleemi lahendamiseks.

KP: Kui ettevõte loob uue seadme ja soovib, et seda FireMonkey toetataks, kas see on võimalik?

DI.: Uue põlvkonna kompilaatoritega, millel on platvormist sõltumatu esiosa ja platvormist sõltuv taust, on see täiesti võimalik. Vahepeal loome iga operatsioonisüsteemi jaoks nullist kompilaatori ja käitusaja teegi.

Iga uus moodne seade on tavaliselt varustatud graafilise kasutajaliidesega (paljudel on kahetuumaline protsessor ja GPU) ja standardsed SDK-d arendajatele. See muudab FireMonkey's seadmetoe loomise lihtsamaks. Kui uuel seadmel on teegid ainult kahemõõtmelise graafika jaoks, nagu Quartz, saame sellist seadet FireMonkey's toetada, kuid selleks kulub umbes mitu kuud. Palju oleneb aga platvormist: kõik platvormid ei toeta kõiki funktsioone, näiteks iOS-il pole menüüsid ja dialoogibokse ning selliste rakenduste vormidele vastavaid komponente paigutada ei saa.

KP: Kas partneritega töötamise poliitikas on midagi muutunud? Mida tehakse teie toodete kasutajate osakaalu suurendamiseks? Mida Venemaal tehakse?

DI.: Meie partnerite ökosüsteem on lai – meie toodetest ei leidu sadade tööriistade ja komponentide tootjaid ning meil on tehnoloogiapartnerlusprogramm. Seetõttu on arendajatele saadaval lai valik komponente, tehnoloogiaid ja tööriistu. Ja lahendused, mida nad oma klientidele loovad, on paremad kui siis, kui nad kasutaksid ainult meie tooteid. Ja müügiks on meil esindused paljudes riikides, edasimüüjad ja turustajad.

K.R.: Meie jaoks ei ole oluline partnerite arv, vaid iga konkreetse partneri töö kvaliteet. Praegu tahame keskenduda tihedale koostööle olemasolevate partneritega, kuigi partnerite hulk on endiselt avatud. Meil on palju partnereid ja me peame neid tehnoloogia osas aitama. Teeme koostööd arendajatega ja nad teavad, mida tahavad, ja teavad, mis turul on saadaval, ning partnerite võimalused peavad sellega kattuma.

Meil on äripartnerid, kes on Embarcaderosse kui ärivaldkonda tõsiselt investeerinud – nad on koolitanud spetsialiste, meie tooteid turustavad, pühendunud töötajad, kes vastutavad selle liini eest ja jälgivad meie toodetega toimuvat, hinnakirja, turundust. Loomulikult on nad meie toodete müügis edukamad kui ettevõtted, kes meie tooteid aeg-ajalt müüvad.

KP: David, Kirill, tänan teid väga huvitava intervjuu eest. Lubage mul meie väljaande ja meie lugejate nimel soovida teie ettevõttele edu teie suurepäraste tööriistade loomisel, mida arendajad nii väga vajavad!

Natalia Elmanova küsimused