Firemonkey de la simplu la complex. Delphi, FireMonkey, All-Access și alte surprize plăcute

În contextul acestui blog, acest proiect este în primul rând interesant deoarece este implementat pe FireMonkey și este o demonstrație uimitoare a capacităților acestei platforme. Și chiar săptămâna trecută, a fost lansată o versiune beta publică a produsului. În acest fel, cititorii blogului pot „simți” ceva cu adevărat complex pentru ei înșiși. FireMonkey aplicarea.

Câteva cuvinte despre program. În primul rând, trebuie menționat că versiunea actuală a Sphere este poziționată puțin diferit. Da, uneori se întâmplă...

Nou SphereLive Acesta nu este doar un alt mesager. În primul rând, este un instrument care vă permite să organizați eficient procesul educațional. Permite prelegeri la distanță, consultații private, lecții individuale și alte activități similare. În același timp, este dotat cu aproape tot ce este necesar pentru muncă. Începând cu un sistem unic de transfer de fișiere și terminând cu cel mai puternic subsistem de facturare.

În această etapă, prețurile pentru utilizarea produsului sunt destul de accesibile. Sub rezerva unui număr limitat de ascultători și a unei cantități mici de resurse, produsul poate fi folosit gratuit.

Desigur, Sfera își folosește principalul avantaj FireMonkey– multiplatformă. Aplicația este disponibilă în prezent în edițiile Windows și MacOS. Versiunea Android așteptat în orice zi.

Totuși, pentru mine, SphereLive este interesant, în primul rând, ca produs inovator cu un întreg set de soluții originale. Uneori este doar la nivelul „... wow, cum ai făcut asta?” Apropo, unul dintre dezvoltatorii Sphere participă activ la discuțiile de pe forumul dedicat FireMonkey. Acesta în sine poate fi un motiv pentru a descărca aplicația și a discuta probleme tehnice direct cu autorul. Crede-mă, există ceva de văzut și ceva de învățat.

TListView este una dintre componentele cheie pentru construirea unei interfețe de aplicație mobilă în FireMonkey. Această componentă nu este cel mai ușor de utilizat; adesea necesită o cantitate semnificativă de cod, dar oferă dezvoltatorului o libertate semnificativă de acțiune. Desigur, în aplicații poți folosi și TListBox, unde totul este mult mai simplu. Dar TListBox poate fi bun pentru afișarea unui număr fix de înregistrări, pentru a ieși date din surse de date, ar trebui să utilizați cu siguranță TListView.

Principalele diferențe dintre TListView și TListBox sunt:

  1. TListBoxItem- Control, TListViewItem- Nu
  2. ÎN TListBoxItem puteți adăuga orice comenzi folosind Parent. ÎN TListVIEWItem- Nu.
  3. TListVIEWItem stochează numai date pentru afișare
  4. TListVIEWItem realizează însăși redarea datelor stocate prin metoda Face
  5. Datorită desenului manual real în TListVIewItem, se realizează o creștere a vitezei și un consum redus de memorie (stochând doar datele relevante)
  6. Pentru a crea propria ta versiune TListViewItem, trebuie să vă creați propria clasă de articole, să implementați datele necesare în ea (de exemplu, ora) și să creați un editor la loc pentru editarea timpului, să îl înregistrați etc.

Simplul fapt al performanței crescute și al consumului redus de memorie este un argument convingător în favoarea utilizării TListView. Dar mai este ceva.

In multe Android aplicații a trebuit să observ următoarea implementare a listelor. Când faceți clic pe un element de listă (Articol, dacă rămâneți la terminologia aleasă), se efectuează o anumită acțiune. De obicei, un formular nou este apelat pentru a edita datele. Dar când apăsați și mențineți apăsat (Atingere lungă), se efectuează o acțiune complet diferită. Și aceste evenimente nu se intersectează. Cu alte cuvinte, aplicațiile Android pot distinge clar între o „apăsare lungă” și una „normală”. Mai mult, niciunul dintre aceste evenimente nu se declanșează atunci când derulați lista. Un bun exemplu este o listă de litere în Yandex Mail.

În primul rând, aș dori să felicit toți cititorii blogului pentru sărbătorile trecute și să le urez toate cele bune în anul care vine.

Din cauza unor circumstanțe evidente, nu am făcut un reportaj tradițional de Anul Nou și nici nu am făcut niciun plan pentru anul. Cu toate acestea, viața nu stă pe loc, se lucrează și se petrec anumite evenimente în lumea Delphi. Mă angajez să public în viitorul apropiat o selecție de „știri din lumea Delphi” ratate în timpul sărbătorilor de Crăciun. Între timp, vă voi spune despre noul dispozitiv pe care l-am achiziționat.

Caracteristicile le găsiți pe site-ul oficial. Iar impresia subiectivă este foarte plăcută. De remarcat este faptul că dispozitivul este literalmente plin de software proprietar de la producător. Și vânzătorii au primit cadou și un set impresionant de software. Smartphone-ul funcționează destul de rapid și își justifică pe deplin costul (aproximativ 200 USD). Apropo, mi-am cumpărat telefonul anterior GSmart 1362 la aproximativ aceiași bani în urmă cu 2 ani. Dar, după cum probabil ați ghicit, principalul interes pentru mine a fost modul în care vor funcționa FireMonkey aplicatii.

Înainte de a continua povestea despre cronometru, două știri.

În primul rând, a fost lansată prima actualizare XE7. Prin tradiție, este disponibil pentru utilizatorii înregistrați. Puteți găsi o listă de erori remediate. Am vrut să văd cum se va comporta aplicația în mediul actualizat. De fapt, nu trebuiau făcute corecții, deși mai era loc de experimentare.

A doua veste. Ofertele speciale Embarcadero au fost prelungite până la sfârșitul anului:

Ei bine, acum direct la subiectul postării. În principiu, nu ne rămâne decât să încercăm să lansăm deja creat aceasta aplicație pentru Android. Pentru a face acest lucru, folosim ceea ce am scris în postările anterioare. Si anume noua. Am depanat această aplicație Nexus 7, a adăugat în consecință o reprezentare a tabletei Android 7″. Designul a trebuit să fie modificat doar puțin.

Probabil că doar leneșii nu și-au scris propriul cronometru. Și în contextul sprijinirii dezvoltării pentru platformele mobile, sarcina de a scrie un cronometru în Delphi poate fi, în general, considerată o sarcină de cult. Așa că m-am gândit, de ce nu ca exemplu de dezvoltare FireMonkey Aplicația nu poate analiza cronometrul. Pentru Android, desigur. Desigur, aceasta va fi exact punctul meu de vedere asupra sarcinii, care, deși nu este deosebit de dificilă, are totuși propriile sale nuanțe. Poate aveți comentarii sau sugestii, ar fi grozav să le discutați în comentarii. Nu sunt deloc un expert în scris. aplicatii mobile, așa că orice comentariu pe care îl faci va fi valoros pentru mine.

Vom dezvolta un cronometru, în înțelegerea engleză a acestui termen. Adică, ecranul va afișa un cadran și patru butoane - „Start”, „Pauză”, „Oprire” și „Anulare”. Numărătoarea inversă va fi în direcția înainte (adică timpul va crește). Opțiunea în care se setează ora și numărătoarea inversă este în terminologia engleză se numește Stop Watch, poate voi încerca să o implementez mai târziu. Aplicația la care vom lucra este mai apropiată ca funcționalitate de un cronometru.

Delphi XE7 ne permite să simplificăm semnificativ procesul de dezvoltare datorită faptului că acum putem crea și depana aplicație reală pentru Win32, apoi adăugați pur și simplu vizualizări de formular pentru dispozitivele mobile necesare și, cu puține modificări, obțineți o aplicație mobilă funcțională. Sună prea frumos pentru a fi adevărat? Pot fi. Dar vreau să testez această declarație prin implementarea sarcinii.

Cu cât sunt mai des întrebat colegii mei în conversații private dacă este posibil să dezvolt aplicații mobile FireMonkey sau este mai degrabă un prototip decât o soluție de producție?

Cred că acum îi pot asigura chiar și pe cei sceptici.

Prietenul și colegul meu Tagir Yumaguzin mi-a povestit despre proiectul la care a participat cu mult timp în urmă. Acum, când acest proiect este în starea de pre-lansare, am decis că această descriere va fi interesantă pentru comunitatea Delphi. În esență, acesta este un proiect cu adevărat mare implementat în FM. Vorbim despre proiectul Sphere Live. Un mic articol dedicat acelui proiect a fost publicat recent pe Habrahabr.ru Alexey Glyzin, șeful departamentului de dezvoltare ‘’, a fost de acord să spună mai multe despre proiect luând în considerare publicul blogului meu.

A.B.– Alexey, în general, care este proiectul tău?

A.G.: – Ideea nu a apărut deodată și instantaneu. Înainte de proiectul „Sphere”, echipa noastră a lucrat la proiectul în care au fost implementate tehnologii de stream audio/video. Ulterior am creat propriul nostru software care a fost capabil să livreze fluxuri multimedia unui număr nelimitat de utilizatori, inclusiv feedback. Dar trebuia să includem o funcție de facturare.
Aplicația trebuia să respecte mai multe cerințe. În primul rând, organizarea la maximum simplificată a conferințelor sau transmiterea către participanți a cărei sumă nu putem prevedea. În al doilea rând, cel mai important, este să oferim clienților noștri oportunitatea de a câștiga cu aplicația noastră și de a reduce complexitatea sistemului, cantitatea de instrumente necesare pentru a atinge obiectivul. Ușurința organizării cursurilor, webinarului sau doar a unei consultații.

O mică notă pentru memorie referitoare la FireDAC V Versiune curentăDelphi XE6. Dar mai întâi, câteva cuvinte despre unde să căutați răspunsuri la întrebările referitoare la FireMonkey. Utilizatorii vorbitori de limbă rusă se află aici într-o poziție privilegiată.

În timp ce mă pregăteam pentru evenimentul de la Harkov, ca parte a turneului mondial RAD Studio XE5, am întâmpinat o mică problemă în lucrul cu SQLite prin utilizarea FireDAC. Dacă este completat aplicație Windows transferați baza de date împreună cu aplicația către Android, Șirurile chirilice din baza de date nu mai pot fi citite (în loc de litere sunt afișate semnele de întrebare). Cu toate acestea, dacă completați baza de date direct pe un dispozitiv mobil, caracterele rusești sunt citite destul de corect. Datele din baza de date completate aplicație terță parte, sau în Delphi aplicațiile care utilizează alte componente de acces la date au fost de asemenea afișate normal. Întâlnirea nu a reușit să găsească o soluție și a trebuit să citez un celebru specialist ucrainean în fotbal: „Ne vom da seama!”

Spre deosebire de ultimul, am reușit să rezolv problema descrisă. În mod implicit, când vă conectați la SQLite V FireDAC Este utilizat formatul șir ANSI.

Dacă forțați instalarea Unicode, atunci totul va funcționa așa cum ar trebui. Dar există și un moment neplăcut. Schimbând formatul șirului de caractere, va trebui să recreați lista de câmpuri din toate seturile de date, precum și să reconectați componentele responsabile cu afișarea și introducerea datelor. Prin urmare, este mai bine să aveți grijă de codificare imediat.

În părțile anterioare ale acestei mini-serie, ne-am ocupat de crearea unei baze de date, structura acesteia și conectarea la ea din Delphi. În această parte, îmi propun să înțelegem afișarea datelor din tabele, începând cu cel mai simplu caz.

Un simplu editor de date de tabel, de obicei parte a unei aplicații complexe. De obicei folosesc un formular separat pentru a edita tabele. Să începem cu lista de cumpărături. În primul rând, trebuie să creăm un DataSet pentru a accesa datele din tabel. În cazul nostru, este destul de posibil să folosiți componenta TADTtable. Să-l plasăm în DataModule și să specificăm valoarea proprietății Conexiune. În editorul de proprietăți TableName va apărea o listă de tabele din care selectăm un tabel Produse. Dacă ați făcut totul corect, puteți atribui proprietatea Activ valoare Adevărat. Este mai bine să redenumiți imediat componenta (de exemplu, ADTProduct). După aceasta, de obicei creez un set de câmpuri pentru DataSet. Sunați editorul de câmp ( apasare dubla mouse-ul pe componentă) și în meniul contextual selectați elementul Adăugați toate câmpurile.

Pentru cei care nu sunt la curent, voi explica esența acestei operațiuni. Aici creăm un set predefinit de câmpuri DataSet. Dacă nu facem acest lucru manual în modul design, atunci, în principiu, nu se va întâmpla nimic rău. În RunTime, acest set va fi creat automat. Dar tot prefer să-l creez manual. Există mai multe motive pentru aceasta. În primul rând, este mai convenabil să gestionăm un set de câmpuri, deoarece putem crea noi înșine câmpuri suplimentare (calculate sau de căutare) în modul de proiectare. De asemenea, putem schimba proprietățile câmpurilor în sine. Și în plus, avem posibilitatea de a accesa câmpuri în cod cu numele componentei TField, ceea ce, în opinia mea, simplifică foarte mult scrierea codului.

Ca și în cazul aplicației VCL, vom conecta componenta la setul de date TDataSource. Această componentă va asigura conexiunea între setul de date și controalele vizuale. Proprietatea DataSet a componentei trebuie să facă referire la setul nostru de date (ADTProduct). Mai jos ofer un fragment din fișierul DFM

obiect ADTProduct: TADTable IndexFieldNames = „ID” Conexiune = ADConnection UpdateOptions. UpdateTableName = "Product" TableName = "Product" Stânga = 64 Sus = 192 obiect ADTProductID: TADAutoIncField FieldName = "ID" Origine = "ID" ProviderFlags = [ pfInWhere, pfInKey] ReadOnly = Obiectul final adevărat ADTProduct = „Titul Fișului:”TMeName Origine = „Titlu” Dimensiune = 50 obiect final dsProduct: TDataSource DataSet = ADTProduct Stânga = 120 Sus = 192 final

Vă rugăm să rețineți o caracteristică interesantă: fișierul de formular DataModule nu este salvat în format FMX, ca un formular FireMonkey obișnuit, ci în format DFM, ca în VCL.

Următorul pas este să creăm o procedură pentru deschiderea unui set de date, pe care va trebui să-l apelăm în RunTime când programul pornește. Să-l creăm în același DataModule. Codul procedurii este extrem de simplu:

procedura TDM. ConnectToDB ; beginADConnection. Deschis(); ADTProduct. Deschis(); Sfârşit ;

Vom plasa apelul de procedură în handlerul de evenimente OnCreate pentru DataModule.

Lansat în septembrie anul trecut, Delphi XE2 conține un număr record de inovații.
Scurte prezentari generale ale capabilităților Delphi XE2 au fost deja publicate pe Habré. Dar, evident, cea mai izbitoare inovație este platforma FireMonkey și aici aș vrea să-i acord puțină atenție.
Am făcut o mică selecție de link-uri către materiale care, sper, vă vor ajuta să vă faceți o idee mai mult sau mai puțin adecvată despre această platformă. Dar mai întâi, pentru cei care nu sunt la curent, vă voi spune pe scurt ce este FireMonkey.
Embarcadero Technologies poziționează FireMonkey ca platformă pentru crearea de aplicații de afaceri bogate pentru Windows, Mac și iOS. Mai mult, această platformă este nativă pentru fiecare sistem de operare, adică Când rulați o aplicație creată folosind FireMonkey, nu sunt utilizate suplimente suplimentare.
FireMonkey se leagă direct la o bibliotecă grafică nativă (din perspectiva sistemului de operare), cum ar fi OpenGL sau DirectX. Astfel, se propune cea mai bună soluție din punct de vedere GPU.
Nucleul arhitecturii FireMonkey este o bibliotecă puternică de clase (inclusiv componente vizuale).
Platforma țintă este selectată în timpul procesului de compilare.
Prima versiune de FireMonkey a acceptat doar Win32, Win64, MacOSX și iOS, dar Embarcadero intenționează să o porteze pe alte câteva platforme în viitor.

Ce ar trebui să luați în considerare?

Deși platforma FireMonkey oferă instrumente extinse pentru dezvoltarea aplicațiilor 3D, nu ar trebui să fie considerată un motor de joc. FireMonkey este poziționat în mod special ca o platformă pentru dezvoltarea aplicațiilor de afaceri.
Produsul se află în prezent în fazele inițiale ale evoluției sale. Și multe funcţionalitate FireMonkey suferă modificări, atât calitative, cât și cantitative.

Sper că linkurile de mai jos vă vor ajuta să înțelegeți principalele caracteristici ale noii platforme.
Pagina oficială a produsului pe site-ul web Embarcadero (rusă)

Dintre materialele în limba engleză aș dori să evidențiez seria (engleză)

Ce să vezi?

Cu privire la ultima versiune Delphi, există mai multe materiale video dedicate capabilităților produsului și modului de lucru cu acesta decât oricând. Atât oficial, de la Embarcadero, cât și de la dezvoltatori independenți. Există o mulțime de videoclipuri despre FireMonkey pe YouTube, poți doar să folosești căutarea. Dintre această abundență de material, voi evidenția o serie de trei videoclipuri de la Marco Cantu - landing page RAD in Action, oferind astfel cercetării mele un vector de utilitate.

Ce este FireMonkey?


FireMonkey (FMX) este un cadru pentru dezvoltarea multiplatformă atât pentru sisteme desktop (Windows, Mac OS + suport pentru server pe Linux este planificat în viitorul apropiat), cât și pentru mobil (iOS și Android) folosind limbajul Delphi/C++.

Particularitati:

  • bază de cod unică pentru toate platformele;

  • orice control (componentă vizuală) poate fi un container (părinte) pentru alte componente;

  • prezența unui aranjament relativ foarte avansat (20 de tipuri) de componente pe formular;

  • LiveBinding vă permite să conectați orice tip de date sau informații la orice interfață de utilizator sau obiecte grafice;

  • prezența stilurilor de formă/componentă;

  • Multi-Device Preview vă permite să personalizați prezentarea vizuală pentru fiecare platformă;

  • FireUI Live Preview - afișează aspectul aplicației pe dispozitive reale în timp real.

Posibilitati:

  • utilizarea API-ului nativ al fiecărei platforme, precum și capacitatea de a apela biblioteci native terțe;

  • interacțiunea cu toți senzorii (GPS, Accelerometru, Busolă, Bluetooth (inclusiv LE) și altele);

  • suport pentru notificări push, IoT;

  • suport pentru cereri HTTP asincrone;

  • suport pentru majoritatea bazelor de date (MsSQL, MySql, Oracle, PostgreSQL, MongoDB etc.);

  • lucrul cu Serviciul Cloud (Amazon, Azure);

  • Asistență pentru serviciul Android.

Contra (în prezent):

  • lipsa suportului pentru personalizarea claselor native;

  • implementarea unor lucruri specifice este fie imposibilă (widgeturi, extensii (iOS), etc.), fie este necesar un dans cu o tamburină (serviciu de fundal, mesaj de difuzare etc.);

  • Personalizarea ecranului Splash (ecranul inițial) este, ca să spunem ușor, lipsită;

  • Controalele FMX utilizează propria lor redare (vizualizare, desen), care este pur vizual similară cu cea nativă;

  • utilizarea controalelor native implică mișcări mari ale corpului;

  • când există multă imbricare de componente, se întâmplă lucruri incredibile: aplicația se blochează în diverse locuri, își pierde focalizarea, se blochează etc.;

  • conținutul informațional al depanării unei aplicații pe platformele mobile este zero;

  • descrierile erorilor de pe platformele mobile sunt reduse la inutila „Eroare 0x00000Х”;

  • timpul de compilare vrea să fie cel mai bun pentru proiectele medii și mari;

  • necesitatea de a folosi un fișier pentru a șlefui aplicațiile mobile pentru fiecare platformă;

  • fără suport pentru arhitectura Intel Atom;

  • preț inadecvat în comparație cu concurenții.

Pro:

  • dezvoltare foarte activă atât a produsului, cât și a comunității în ultimul timp, sprijin pentru tot mai multe tehnologii noi;

  • prezența unui număr mare de componente gratuite și comerciale;

  • Viteza aplicației este foarte apropiată de cea nativă;

  • editor vizual foarte avansat și mediu în general, prezența stilurilor;

  • capacitatea de a testa o aplicație pe Win și abia apoi de a o implementa pe dispozitive, ceea ce accelerează foarte mult dezvoltarea;

  • schimbați modul/platforma cu o mișcare a încheieturii mâinii;

  • PAServer oferă o interacțiune ușoară cu MacO-uri atunci când se dezvoltă pentru Apple OS;

  • Suport grafic 3D din cutie.

În concluzie, vreau să spun că, în ultimii doi ani, FireMonkey a devenit un instrument profesional pentru dezvoltarea multiplatformă a aplicațiilor de afaceri și nu numai. Multe neajunsuri sunt rezolvate treptat și cu fiecare lansare produsul devine mai modern și mai autosuficient, iar scepticismul existent față de limbajul Delphi în sine, asociat cu mulți ani de stagnare, dispare și el. Scrierea de noi proiecte în FireMonkey este „sigură” și promițătoare.

Au trecut mai bine de trei ani de când divizia CodeGear, responsabilă pentru crearea instrumentelor de renume mondial precum Delphi, C++Builder și JBuilder, precum și a sistemului de gestionare a bazelor de date Interbase, a devenit parte a Embarcadero Technologies, cunoscută pentru instrumentele sale. pentru proiectarea și administrarea bazei de date și doi ani de când am discutat pe paginile revistei noastre la ce să ne așteptăm în dezvoltarea de instrumente atât de populare cu Dezvoltatorii ruși. I-am rugat pe David Intersimone, vicepreședinte al relațiilor cu dezvoltatorii și evanghelist șef la Embarcadero Technologies, și pe Kirill Rannev, șeful reprezentanței Embarcadero Technologies, să vorbească despre ceea ce s-a făcut în acest domeniu în ultimii doi ani și la ce să ne așteptăm în viitorul apropiat.Rusia. Pentru cei mai tineri cititori ai noștri, vă vom informa că acesta nu este primul interviu pe care David și Kirill îl acordă ComputerPress - cooperarea noastră continuă pentru al doilea deceniu. Și de aproximativ același număr de ani, am publicat periodic recenzii ale instrumentelor de gestionare a bazelor de date, în care se acordă multă atenție produselor Embarcadero.

ComputerPress: David, divizia ta face parte din Embarcadero de trei ani. În urmă cu doi ani, erai entuziasmat de faptul că va deveni parte dintr-o companie aproape de obiectivele și spiritul tău. S-a schimbat ceva în acest timp? Tu și colegii tăi mai aveți același entuziasm?

Da, sunt încă foarte entuziasmat. Principala schimbare care a avut loc de când am devenit parte a companiei Embarcadero este că s-au făcut multe investiții în dezvoltarea Delphi. Numărul de oameni care lucrează la instrumente de dezvoltare a crescut, iar numărul de tehnologii pe care le putem dezvolta sau, dacă este necesar, le dobândim, a crescut.

Lansarea RAD Studio XE 2, pe care intenționăm să o demonstrăm la Moscova, este cea mai mare versiune a acestui produs cu capabilități enorme și o cantitate mare platforme acceptate încă de la prima versiune Delphi, creată pentru Windows pe 16 biți și un produs inovator care a combinat abordarea componentelor și compilarea în codul mașinii. Acum susținem dezvoltarea nu doar pentru Windows, ci și pentru Macintosh, ca să nu mai vorbim de dezvoltarea web și crearea de aplicații pentru dispozitive mobile, iar aceste aplicații pentru diferite platforme pot avea un singur cod.

Noua platformă de dezvoltare, FireMonkey, este o colaborare între Embarcadero și recent achiziționat firma ruseasca KSDev de la UlanUde, un producător de componente pentru grafica vectoriala, DirectX și OpenGL, tehnologii pentru crearea de efecte grafice și Componentele Delphi folosind un GPU cu PixelShader 2.0. Am achiziționat compania KSDev (vezi ksdev.ru) în urmă cu un an și am început să lucrăm împreună pentru a crea un instrument de dezvoltare multiplatformă, inclusiv o platformă pentru dezvoltarea aplicațiilor FireMonkey cu componente pentru Delphi și C++Buider pentru crearea de interfețe de utilizare a aplicației, baze de date integrare, procesare grafică folosind GPU și integrare cu sistemul de operare.

Folosind FireMonkey, puteți crea o aplicație care rulează împreună pe CPU și GPU, apoi puteți utiliza diferite compilatoare și biblioteci de rulare (RTL) pentru a o compila pentru Windows, Mac OS sau iOS. În loc să înveți programarea folosind diverse biblioteci grafice, studiază API-urile diferitelor platforme care au diverse sisteme coordonate și capacități diferite, dezvoltatorii care folosesc Delphi și C++Builder pot folosi aceeași abordare bazată pe componente, editând vizual formulare și conectându-se la baze de date prin mutarea componentei cu mouse-ul. Este fundamental Metoda noua crearea de aplicații care rulează pe diferite platforme este viitorul. Dacă doriți să adăugați suport pentru alte sisteme de operare și platforme la aplicația dvs., nu trebuie să o proiectați și să o dezvoltați din nou - trebuie doar să o recompilați.

Creăm noi compilatoare care generează cod nativ. Astăzi există compilatoare Delphi pentru 32 și 64 de biți versiuni Windows, 32 de biți versiuni Mac OS 10. Și lucrăm la următoarea generație de compilatoare Delphi și C++Builder care vă vor permite să creați cod nativ de înaltă performanță atât pentru acestea, cât și pentru alte platforme precum Android sau Linux și să păstrați același design, același componente, același cod folosind compilatoare și biblioteci de rulare diferite.

După cum puteți vedea, am destule motive de entuziasm. Și dezvoltatorii pe care îi întâlnesc din întreaga lume știu că Embarcadero investește mult în Delphi și C++Builder, precum și în instrumentele de dezvoltare PHP.

KP: Ce succese ați obținut în integrarea instrumentelor celor două companii în ultimii doi ani? Care sunt planurile Embarcadero pentru viitor în acest domeniu?

DI.:În momentul în care CodeGear a devenit parte a Embarcadero, compania avea echipe de dezvoltare în Toronto, Monterrey și România, eram și suntem în continuare localizați în Scotts Valley și în Rusia, la Sankt Petersburg. Embarcadero avea instrumente pentru dezvoltatori și administratorii de baze de date, CodeGear avea instrumente pentru dezvoltarea aplicațiilor, dar aceștia din urmă folosesc și baze de date. Fuziunea companiilor este o combinație de expertiză, cunoștințe în domeniul bazelor de date, optimizare a codului, inclusiv cod server. Combinația de companii a dus și la crearea unui nou produs, AppWave, o tehnologie specială pentru a transforma o aplicație Windows obișnuită în ceva foarte ușor de utilizat (cum ar fi aplicații pentru iPhone sau alte dispozitive). AppWave vă permite să nu instalați o aplicație, ci pur și simplu să o selectați și să o lansați de pe serverul de stocare a aplicației (aplicație) pregătit, iar aceasta va fi executată pe computerul utilizatorului fără a face modificări în registrul și zona de sistem. Sistemul de fișiere. Apropo, browserul aplicației AppWave este scris în Delphi. Embarcadero folosește Dephi pentru propria sa dezvoltare și expertiza noastră în dezvoltarea de aplicații.

Aplicație pentru iPhone (iOS) creată de
folosind platforma FireMonkey

De asemenea, puteți utiliza integrarea instrumentelor noastre de dezvoltare și a DB Optimizer pentru a optimiza interogările SQL atunci când creați aplicații. Prin transmiterea codului SQL direct în DB Optimizer, îl puteți face profil, îl puteți testa și puteți returna o versiune optimizată în mediul dumneavoastră de dezvoltare. Expertiza Embarcadero în bazele de date a îmbunătățit, de asemenea, tehnologia DataSnap. Datorită dezvoltatorilor din Toronto, am acumulat multe cunoștințe despre arhitectura sistemelor și bazelor de date multi-nivel. Acum avem expertiză comună în crearea codului de server și a procedurilor stocate în ambele companii. Avem instrumente precum RapidSQL și DB Change Manager, precum și medii de dezvoltare care simplifică crearea codului de server - de exemplu, tehnologiile Code Insight și Code Completion au permis crearea tehnologiilor SQL Insight și SQL Completion. Abordările noastre comune pentru crearea codului client și server, filozofia noastră comună, ne permit să oferim caracteristici comune instrumentelor de gestionare a bazelor de date și instrumentelor de dezvoltare a aplicațiilor.

Kirill Rannev: Vreau să adaug ceva important. Din punct de vedere comercial, modul în care livrăm instrumentele noastre este foarte important. De exemplu, noua versiune RAD Studio XE 2 Ultimate include setul complet de instrumente DB Power Studio. Acesta este un set foarte puternic de instrumente, inclusiv mediul de dezvoltare a interogărilor RapidSQL, instrumentul de gestionare a modificărilor DB Change Manager și instrumentul de optimizare a interogărilor DB Optimizer, permițându-vă să efectuați o parte importantă a procesului de dezvoltare și implementare prin gestionarea modificărilor la modelul de date, baza de date, codul și așa mai departe. Aceasta este o combinație foarte bună și corectă de tehnologii.

DI.: Dar, dacă este necesar, dezvoltatorii pot folosi Subversion pentru versiunea codului sursă și DB Change Manager pentru versiunea metadatelor. Puteți utiliza profilarea codului și DB Optimizer pentru a optimiza codul serverului, RapidSQL pentru a construi și depana codul serverului și mediile noastre de dezvoltare pentru a construi și depana aplicații. Această combinație de tehnologii în RAD Studio XE Ultima ediție demonstrează paralelele dintre bazele de date și modelele de dezvoltare a aplicațiilor. Majoritatea dezvoltatorilor care construiesc aplicații de afaceri cu Delphi și C++Builder lucrează cu baze de date și au nevoie de aceste instrumente, iar RAD Studio XE Ultimate Edition este o combinație excelentă pentru astfel de dezvoltatori.

KP: Utilizatorul modern nu mai este doar un utilizator al platformei Windows. Aplicam dispozitive mobile, iPhone, iPad, dispozitive bazate pe platforma Android. Aceasta înseamnă că dezvoltatorii trebuie să înceapă să vizeze diferite platforme fără a crește semnificativ investițiile în formare - adică sunt necesare instrumente universale. Evident, este nerealist să ne așteptăm la apariția instrumentelor universale de la producătorii de platforme, iar în această chestiune ne putem baza doar pe producători independenți de scule. Cum putem conta pe Embarcadero?

DI.: Mai avem multe de făcut în ceea ce privește suportul platformei. Astăzi introducem suport pentru platforme iOS pentru iPhone și iPad, apoi smartphone-urile bazate pe platforma Android, Windows 7 și Blackberry vor primi suportul nostru. În RAD Studio XE 2, am început prin a construi platforma FireMonkey pentru iOS și apoi vom aduce FireMonkey pe alte platforme.

În același timp, există un număr mare de sisteme de operare care acceptă ecrane tactile(ecran tactil), pentru telefoane, tableteși dispozitive, computere desktopși vom continua să adăugăm suport pentru ei. În plus, există voce, mișcare, sisteme biometrice, accelerometre, așa că trebuie să continuăm să extindem FireMonkey, astfel încât toți dezvoltatorii să poată profita de noile platforme. De exemplu, dispozitivul Microsoft Kinect a fost proiectat pentru Xbox 360, iar acum există un SDK (Software Development Kit) corespunzător pentru Windows. Și avem deja exemple în care folosim mișcarea pentru a controla o aplicație în același mod în care ar fi folosit în mod normal un mouse sau o tastatură.

Când creați aplicații cu o mulțime de grafică complexă, generați o lume întreagă de noi interfețe de utilizator. Dacă avem de-a face cu o sală de operație sistem Windows, încapsulăm aplicarea acesteia interfata software Windows API în biblioteca VCL (Visual Component Library - o bibliotecă de componente vizuale, care este parte integrantă Instrumente de dezvoltare Delphi și C++Builder. - Notă ed.), care, de altfel, poate fi folosit în continuare. Și în FireMonkey încapsulăm API-ul sistem de operare. Dar astăzi manipulăm formele și grafica mult mai pe scară largă. De asemenea, puteți adăuga proprietăți fizice spațiului pentru animație și efecte speciale. În plus, există o cantitate mare alte caracteristici suplimentare pentru a crea interfețe de utilizator pe care le vom implementa în următorii câțiva ani pentru diferite platforme, dispozitive mobile și tablete.

Microsoft a anunțat recent informatii detaliate despre Windows 8, care urmează să fie lansat peste un an. Vom sprijini aceste inovații în biblioteca VCL și platforma FireMonkey. Dar Delphi este un instrument de dezvoltare conceput nu numai pentru Windows, ci și pentru Macintosh, iPhone și iPad. De asemenea, dezvoltăm produsele noastre PHP, acceptăm jQuery Mobile, folosim API-ul iOS pentru a dezvolta aplicații client mobile și creăm aplicații PHP pe partea de server folosind vrăjitori și instrumente pentru a genera JavaScript, HTML și foi de stil în cascadă. Putem crea pachete din aplicații PHPși aplicații client cu cod nativ pt iPhone iOS, și cu un astfel de client va comunica server PHP. Și el, la rândul său, va comunica cu serverul de baze de date și cu serviciile web - cu tot ceea ce este necesar pentru afaceri.

Mediul de dezvoltare RadPHP XE2. Crearea unei aplicații web pentru mobil
folosind componente jQuery Mobile pentru iPhone 3G

Cu alte cuvinte, intenționăm să extindem capacitățile FireMonkey și VCL, inclusiv suport pentru platformele mobile.

KP: Ne puteți spune mai multe despre platforma FireMonkey?

DI.: După cum am menționat deja, biblioteca VCL creată pentru Windows va continua să se dezvolte și să se îmbunătățească. Dar astăzi, dacă vrei o dezvoltare reală a aplicațiilor de afaceri, trebuie să le creezi pentru diferite platforme. Pentru asta este concepută platforma FireMonkey. Acceptă crearea de interfețe de utilizator de înaltă rezoluție, grafică 3D de înaltă performanță, de mare viteză se modifică cadrul și, cel mai important, folosește procesorul grafic pentru asta.

Puteți utiliza astfel de capabilități atunci când creați aplicații științifice, de inginerie și de afaceri. Astfel de aplicații se pot conecta la baze de date folosind tehnologia dbExpress, utilizând totuși componente non-vizuale familiare dezvoltatorilor, cum ar fi ClientDataSet sau DataSource, folosesc tehnologia DataSnap, se pot conecta la orice bază de date, servere SOAP și REST. Puteți crea comenzi atractive, butoane cu casete, tabele neobișnuite și alte elemente de interfață, atât în ​​două cât și în trei dimensiuni. Puteți încărca un model 3D finit în aplicație și îl puteți conecta la o formă 2D în care îl puteți roti și vizualiza din diferite unghiuri. Puteți crea un cub de date sau o diagramă de afaceri 3D și îl puteți roti folosind mouse-ul, tastatura sau chiar un dispozitiv Kinect, sau puteți păși în interiorul cubului și puteți privi diferitele sale suprafețe din interior. Și toate acestea se pot face folosind un GPU de mare viteză. Aceeași aplicație poate fi apoi compilată pentru o altă platformă, cum ar fi Mac OS.

O aplicație care conține un cub de date rotativ,
asezat pe marginile sale

Sau puteți crea o formă 3D de la zero și puteți utiliza camere și lumini pentru a ilumina și roti părți ale interfeței cu utilizatorul. Designerul de formular are deja un mediu încorporat pentru a suporta o interfață de utilizator 3D în timpul proiectării.

Pe Windows, puteți utiliza bibliotecile Direct2D pentru a lucra cu grafică 2D de înaltă rezoluție și Direct3D pentru grafică 3D. Pe Mac OS, bibliotecile Quartz și OpenGL sunt folosite în aceleași scopuri. Pentru iOS, sunt utilizate bibliotecile Quartz și OpenGL ES. Dar toate acestea sunt ascunse de dezvoltator - el folosește platforma FireMonkey, sistemul de coordonate și interfața de programare a aplicațiilor, fără să se gândească la aceste biblioteci și poate compila aceeași aplicație pentru diferite platforme.

Să ne amintim ce este VCL. VCL este un pachet de componente în jurul API-ului Windows. Ne ocupăm de resurse, meniuri, casete de dialog, culori, stiluri, mesaje Windows. Fiind un wrapper multi-platformă, spre deosebire de VCL, FireMonkey păstrează aceleași modele de evenimente și componente, permițându-vă să gândiți în termeni de evenimente (de exemplu, evenimente OnClick, OnHasFocus, onMouseDown și onKeyDown), dar se ocupă de evenimente Macintosh sau iPhone.

Platforma FireMonkey vine și cu un sistem complet de animație pentru elementele interfeței cu utilizatorul. Cu siguranță nu este un sistem de animație complet în stil Pixar, dar permite efecte precum animația imagini raster, evidențiind focalizarea unui element de interfață cu utilizatorul și lucrând cu grafică vectorială. Mai mult de 50 sunt disponibile dezvoltatorului efecte vizuale: estompare, transformarea imaginii în alb-negru, dizolvare, tranziții, reflexie, crearea de umbre - toate tipurile de efecte disponibile în procesoarele grafice moderne, care se găsesc acum în aproape orice computer. O aplicație construită folosind platforma FireMonkey trimite comenzi către GPU, care face toată munca de afișare a graficelor și crearea interfeței cu utilizatorul. în care CPU gratuit pentru calcule și apeluri către sistemul de operare. Dezvoltatorul poate plasa doar componentele corect.

Cel mai fundamental lucru despre platforma FireMonkey este modul în care construiește interfața cu utilizatorul. Există mijloace de plasare a graficelor raster pe elemente de interfață, cum ar fi meniuri, butoane și bare de defilare. La FireMonkey, folosim grafică vectorială bazată pe GPU în acest scop. Din perspectiva programării, acestea sunt încă aceleași controale, dar toată munca de afișare a acestora este efectuată de procesorul grafic. Putem aplica stiluri la controale, putem face ca aplicația să arate ca o aplicație pentru Mac OS sau Windows, să ne creăm propriul stil, să ne aplicăm propriile stiluri elementelor de interfață (de exemplu, să facem un buton dreptunghiular sau rotund schimbându-i stilul în editorul de formulare). ) - pentru aceasta Există un editor de stil în mediul de dezvoltare. Vă puteți crea propriul stil sau puteți schimba stilul unei aplicații deja terminate.

FireMonkey Platform - Instrumente de dezvoltare
și platforme acceptate

Dacă vă amintiți, biblioteca VCL avea un număr limitat de controale - containere (adică, permițându-vă să plasați alte elemente în ele), iar în FireMonkey fiecare control este un container. Aceasta înseamnă că fiecare control poate conține orice alt control. De exemplu, elementele din lista derulantă pot conține imagini, butoane, câmpuri de editare și alte comenzi. De asemenea, puteți plasa componente în straturi.

Sistemul de randare FireMonkey este destul de flexibil - poate folosi bibliotecile Direct2D, Direct3D și OpenGL, trimițând comenzi către GPU. Pentru a realiza același lucru în VCL, a trebuit să generați un buffer separat în afara ecranului, să creați o imagine în el apelând funcțiile adecvate ale bibliotecii grafice și apoi să o afișați în formular.

Exemple de efecte grafice acceptate de FireMonkey

Dacă nu aveți un GPU, puteți aplica în continuare forme 2D sau 3D și puteți utiliza comenzile FireMonkey. În acest caz, platforma FireMonkey va folosi bibliotecile GDI+ sau alte biblioteci similare și va efectua aceleași efecte și animații sau manipularea obiectelor 3D.

O altă caracteristică a FireMonkey este sistem nou legarea elementelor de interfață cu datele, deschisă și flexibilă. Există două tipuri de elemente de interfață în VCL: legate de date și nelegate de date (de exemplu, TDBEdit și TEdit). În FireMonkey, fiecare control poate fi asociat cu date de orice tip. Aceasta ar putea fi o expresie simplă, un câmp dintr-un set de date, date de la obiecte create de dezvoltator sau rezultatele apelurilor de metodă.

În plus, atunci când creați o aplicație, puteți încărca în ea un model 3D gata făcut și îl puteți utiliza - astfel de capabilități sunt adesea necesare atât în ​​aplicațiile de afaceri, cât și în cele de inginerie. Avem un client care creează aplicații pentru logistică. Ei aveau un sistem informatic construit folosind Delphi, iar în el o aplicație care desenează un plan și afișa informații din surse de date. Au făcut recent ceva interesant - au desenat un depozit 3D complet automatizat în AutoCAD, iar aplicația lor vă permite să vedeți cum se mișcă stivuitorul automat în jurul depozitului și plasează mărfurile pe rafturi. Și au pus datele din surse pe imaginea corespunzătoare.

Exemple de schimbare a stilurilor de aplicație

KP: Ce formate de model 3D sunt acceptate în prezent?

DI.:În această versiune, acceptăm încărcarea modelelor din AutoCAD, Collada (instrument de modelare 3D cu sursa deschisa. - Notă Editați | ×.), Maya, un format OBJ care este acceptat de mulți furnizori de grafică 3D.

KP: Ce alte formate intenționați să adăugați?

DI.: Intenționăm să adăugăm 3DS (3D Studio MAX), SVG (de obicei acest format este folosit pentru grafica vectorială 2D, dar uneori pentru 3D), Google SketchUp. Poate vom suporta alte formate.

KP: Utilizarea modelelor 3D în aplicațiile create cu FireMonkey necesită o licență pentru instrumentul de modelare 3D corespunzător?

DI.: Nu, nu are nevoie. Tot ce facem este să citim fișierul model. Importăm modelul, dar nu îl exportăm (deși, desigur, ai putea scrie o aplicație care salvează modelul în formatul tău). Nu ne pretindem a fi un producător de instrumente de modelare 3D - pentru aceasta puteți utiliza AutoCAD, 3D Studio Max, Maya sau orice alt instrument de modelare 3D și să importați modelele create în aplicațiile noastre.

KP: Cât de performante sunt aplicațiile construite cu FireMonkey pe platformele hardware moderne?

DI.: Productivitatea este destul de mare. De exemplu, redarea unei forme 3D cu trei sfere și trei lumini pe un MacBook Pro poate fi redată la 100 de cadre pe secundă. Sau poate ajunge la 600 - depinde exact ce facem. Din nou, totul depinde de puterea GPU-ului.

KP:Înseamnă asta că poți crea jocuri moderne folosind FireMonkey?

DI.: Nu poziționăm instrumentele noastre de dezvoltare ca instrumente pentru jocuri. Cu toate acestea, folosind performanta ridicata procesoare grafice moderne, puteți crea jocuri folosind FireMonkey - la urma urmei, acestea sunt create folosind Direct3D sau OpenGL.

KP: Ce activitate desfășurați în prezent în domeniul susținerii recunoașterii gesturilor și a altor lucruri noi? Este disponibil un astfel de suport?

DI.: Nu avem încă suport pentru gesturi în această versiune. Controalele prin gesturi vor fi adăugate într-o versiune viitoare a FireMonkey, dar între timp puteți utiliza suportul pentru gesturi încorporat în sistemul de operare.

Mikhail Filippenko, directorul Fast Reports, Inc.

K.R.: Am spus deja că tehnologia FireMonkey are rădăcini rusești - bazele sale au fost create în țara noastră, iar apoi atât tehnologia în sine, cât și dezvoltatorii săi s-au alăturat Embarcadero. În general, este îmbucurător să vedem creșterea componentei rusești în RAD Studio și Delphi. Aceasta include activitățile centrului nostru de dezvoltare din Sankt Petersburg și contribuția dezvoltatorilor ruși independenți. De exemplu, Rad Studio XE2 include generatorul de rapoarte FastReport – cunoscut în întreaga lume și foarte popular în țara noastră. El este originar din Rostov-pe-Don.

KP: Aș vrea să vorbesc despre compilatoare. Ce fel de compilator este folosit la crearea aplicațiilor iOS?

DI.: Nu avem propriul nostru compilator Delphi pentru iPhone sau iPad - nu am dezvoltat încă compilatoare pentru procesoare ARM utilizate în aceste dispozitive. Pentru iOS, folosim temporar compilatorul Free Pascal și biblioteca de rulare. Dar lucrăm la următoarea generație de compilatoare, inclusiv pentru procesoarele AWP. Dar există compilatoare pentru Windows și Mac OS, deoarece ambele platforme hardware se bazează pe procesoare Intel.

KP: Ce s-a făcut în domeniul creării de compilatoare în ultimii doi ani?

DI.: Avem compilatoare Delphi pe 32 și 64 de biți pentru Windows și Mac OS. Și lucrăm la o nouă generație de compilatoare Delphi și C++. Acestea sunt încă o lucrare în curs de desfășurare, dar când vor fi finalizate vom avea compilatoare Delphi pentru procesoarele ARM, Platforme Android, Linux și orice altceva. Și vom avea compilatoare C++ pe 64 de biți pentru Windows și alte platforme, compatibile cu cel mai recent standard de limbaj C++ adoptat tocmai de ISO.

KP: Ce se întâmplă astăzi cu suportul cloud computing în instrumentele de dezvoltare Embarcadero?

DI.:În RAD Studio XE 2, acceptăm mutarea aplicațiilor în cloud Microsoft Azure sau Amazon EC2 utilizând Platform Assistant. Și avem componente de server pentru Cloud Storage pentru Azure și Amazon S3 pentru stocarea de tabele, date binare, cozi de mesaje. În versiunea anterioară a RAD Studio XE, am acceptat și implementarea aplicațiilor pe Amazon EC2, dar nu a acceptat stocarea.

Suport pentru cloud computing în RAD Studio XE 2

KP: Acum doi ani ați vorbit despre noua soluție All-Access. Cât de popular a fost? Care sunt beneficiile sale pentru integratori și dezvoltatori de sisteme?

DI.: Soluția All-Access și instrumentul cloud AppWave sunt utilizate pe scară largă în întreaga lume. Sunt concepute pentru a facilita utilizarea aplicațiilor noastre proprii și ale terților. De fapt, este o soluție pentru gestionarea licențelor și a utilizării aplicațiilor și este convenabilă pentru companii mari. Firmele mai mici care nu au echipe dedicate de oameni responsabili cu gestionarea aplicațiilor pot pune aplicația într-un depozit, pot selecta nume de utilizator din baza de date și pot face aceste aplicații disponibile fără a fi nevoie să-și amintească unde. cheie de licențăși câte licențe sunt disponibile. All-Access și browserul AppWave sunt concepute pentru a gestiona atât versiunea, cât și controlul accesului.

K.R.: Piața este atât de diversă, iar utilizatorii sunt atât de diferiți încât este imposibil să acoperiți toate nevoile cu o singură soluție. De aceea, ne străduim pentru diverse soluții de ambalare. Am terminat buna treaba pentru a unifica metodele de licențiere, gestionarea licențelor și instalarea produselor. Această linie de soluții include instrumente de gestionare a licențelor și a provizionării nu numai pentru produsele Embarcadero, ci și pentru orice alt produs, inclusiv dezvoltările interne ale companiei.

Lucrările la instrumentele de dezvoltare a ambalajelor în truse eficiente pentru utilizatori sunt încă în desfășurare. Avem All-Access - un superset care combină toate produsele Embarcadero. Dacă un client cumpără All-Access Platinum, primește toate instrumentele găsite în Embarcadero. Dar uneori acest set se dovedește a fi redundant; de exemplu, pentru specialiștii în baze de date, am realizat alte două seturi - DB Power Studio Developer Edition și DB Power Studio DBA Edition. Diferența dintre ele este că pentru dezvoltator oferim RapidSQL - un instrument de dezvoltare a codului de server, iar pentru administrator există încorporat DBArtizan - un instrument de administrare a bazelor de date, un produs mai larg decât RapidSQL. Pentru profesioniști, avem următoarele suite All-Access: o suită care include toate produsele, DB Power Studio pentru dezvoltatori, DB Power Studio pentru administratori, ER Studio Enterprise Edition pentru arhitecți și oricine este implicat în modelare. Există combinații pentru dezvoltarea aplicațiilor și pentru administratori. Delphi este un instrument pentru dezvoltatori și are foarte mult sens să adăugați instrumente de dezvoltare și optimizare SQL. În cele din urmă, DB Change Manager este un instrument logic pentru gestionarea complexității modificărilor care apar în bazele de date în timpul ciclului lor de viață.

Astfel, All-Access este capul unei familii numeroase seturi diferite produse.

KP: Dacă nu este un secret, cine în Rusia folosește All-Access?

K.R.: Avem clienți care au cumpărat All-Access bazat pe Delphi. Mulți dintre ei construiesc sisteme client-server complexe cu SQL Server și Oracle și le-au plăcut imediat instrumentele noastre de baze de date multiplatforme. Avem o companie client care folosește Delphi încă de la prima versiune, iar în urmă cu un an au trecut de la utilizarea Delphi la suita All-Access. Două instrumente pe care toți dezvoltatorii de la această companie au garantat să le folosească sunt Delphi și DBArtisan. Și există clienți care au venit la All-Access din partea bazei de date. Sarcina lor principală este de a administra baze de date, dar uneori dezvoltă și aplicații. Clienții care folosesc All-Access includ companii media, companii de inginerie și alte industrii.

Separat, aș dori să mă concentrez pe companiile mici. Foarte des, în echipe mici, dezvoltatorul face totul, iar o astfel de companie cumpără uneori seturi mari de produse All-Access pentru unul sau doi dezvoltatori. În echipele mari, nu este încurajat ca un dezvoltator să îndeplinească și, de exemplu, rolul unui administrator de baze de date, așa că seturile mici de produse sunt de obicei populare acolo, dar în companiile mici o astfel de combinație de responsabilități este destul de acceptabilă.

Delphi Architect este un produs puternic comercializat, care include instrumente de modelare și programare. Numărul de exemplare vândute este, totuși, mai mic decât versiunea Delphi Enterprise, dar este și mare. Aș dori să menționez că în 2010 ne-am dovedit a fi cea mai bună țară în ceea ce privește volumul vânzărilor, în ciuda faptului că toate țările au trecut prin criză. Această creștere a fost asociată nu atât cu factori economici, cât cu faptul că versiunea RAD Studio XE, lansată la sfârșitul anului 2009, s-a dovedit a fi foarte populară. Și deocamdată ne așteptăm la o creștere suplimentară a vânzărilor.

Am făcut un alt pas rezonabil, care este extrem de popular în Rusia. Gradul de legalizare versiuni diferite produsele noastre sunt diferite: cu cât versiunea este mai mare, cu atât este mai legalizată, pentru că mai devreme software nu atât de activ cumpărat. Începând cu RAD Studio XE, licența acoperă versiunile 2010, 2009, 2007 și chiar Delphi 7, un produs utilizat pe scară largă.

Astăzi, dezvoltatorii se confruntă cu faptul că au în sprijin atât proiecte noi, cât și proiecte. Un număr mare de proiecte au fost migrate de la versiunile timpurii ale Delphi la versiunea 7 și rămân în această versiune, continuând să ruleze cu resurse relativ mici. Nimeni nu le mută la versiuni mai noi, dar sunt menținute într-o stare viabilă. Și acum vă permitem să obțineți atât RAD Studio XE, cât și Delphi 7 pentru bani puțini (mai puțin decât prețul unei licențe Delphi 7) - adică legalizăm dezvoltatorul atât pentru implementarea de noi proiecte, cât și pentru proiecte de suport.

KP: Cum evaluezi starea actuală a comunității Embarcadero?

DI.: Această comunitate este mare și foarte pretențioasă. Au nevoie de totul imediat - sunt dezvoltatori. Dar uneori este nevoie de mult timp pentru a face ceva corect.

În urmă cu câțiva ani, am luat arhitectura componentelor Windows și am pus-o pe desktop-uri Linux. Acum vedem că aceasta nu a fost decizia corectă. Soluția potrivită este crearea unei platforme de aplicații. Aplicațiile chiar și pe diferite platforme au meniuri, ferestre, grafică, acces la rețea și acces la dispozitiv. Diferite platforme pot avea modele diferite pentru gestionarea firelor sau gestionarea excepțiilor, dar vedem aceleași blocuri de încercare în codul aplicației. Sarcina noastră este să le facilităm dezvoltatorilor să creeze aplicații de afaceri și să le compilați pentru platformele pe care sunt destinate să fie utilizate, indiferent de modul în care este structurat setul de instrucțiuni al procesoarelor corespunzătoare și care sunt alte caracteristici ale acestor platforme. Și FireMonkey este exact ceea ce aveți nevoie pentru a rezolva această problemă.

KP: Dacă o companie creează un dispozitiv nou și dorește ca acesta să fie acceptat în FireMonkey, va fi posibil acest lucru?

DI.: Cu noua generație de compilatoare, care va avea un front-end independent de platformă și un back-end dependent de platformă, acest lucru va fi destul de posibil. Între timp, pentru fiecare sistem de operare, creăm de la zero un compilator și o bibliotecă runtime.

Orice dispozitiv modern nou are de obicei o interfață grafică cu utilizatorul (multe dintre ele au procesor dual coreși GPU) și SDK-uri standard pentru dezvoltatori. Acest lucru facilitează crearea de suport pentru dispozitive în FireMonkey. Dacă noul dispozitiv are doar biblioteci pentru grafică bidimensională precum Quartz, vom putea suporta un astfel de dispozitiv în FireMonkey, dar acest lucru va dura aproximativ câteva luni. Totuși, multe depind de platformă: nu toate platformele acceptă toate caracteristicile, de exemplu, iOS nu are meniuri și casete de dialogși nu veți putea plasa componentele corespunzătoare pe formularele unor astfel de aplicații.

KP: S-a schimbat ceva în politica de lucru cu partenerii? Ce se face pentru a crește ponderea utilizatorilor produselor dvs.? Ce se face în Rusia?

DI.: Ecosistemul nostru de parteneri este larg - există sute de producători de instrumente și componente care nu se regăsesc în produsele noastre și avem un program de parteneriat tehnologic. Prin urmare, o gamă largă de componente, tehnologii și instrumente sunt disponibile pentru dezvoltatori. Iar soluțiile pe care le creează pentru clienții lor sunt mai bune decât dacă ar folosi doar produsele noastre. Iar pentru vânzări avem birouri în multe țări, revânzători și distribuitori.

K.R.: Ceea ce este important pentru noi nu este numărul de parteneri, ci calitatea muncii fiecărui partener specific. Deocamdată, dorim să ne concentrăm pe colaborarea strânsă cu partenerii existenți, deși grupul de parteneri rămâne deschis. Avem mulți parteneri și trebuie să-i ajutăm din punct de vedere tehnologic. Lucrăm cu dezvoltatori și ei știu ce vor și știu ce este disponibil pe piață, iar capacitățile partenerilor trebuie să se potrivească cu asta.

Avem parteneri de afaceri care au investit serios în Embarcadero ca linie de afaceri - au specialiști pregătiți, marketingul produselor noastre, angajați dedicați responsabili de această linie și monitorizarea a ceea ce se întâmplă cu produsele noastre, lista de prețuri, marketingul. Desigur, au mai mult succes în ceea ce privește vânzările produselor noastre decât companiile care vând produsele noastre ocazional.

KP: David, Kirill, mulțumesc foarte mult pentru interviul interesant. Permiteți-mi, în numele publicației noastre și al cititorilor noștri, să urez companiei dvs. succes în continuare în crearea instrumentelor uimitoare de care dezvoltatorii au atât de mult nevoie!

Întrebări puse de Natalia Elmanova

TRippleEffect clasă pentru crearea unui efect care aplică ondulații ondulate texturii obiectelor vizuale.

Centrul ondulației este specificat în proprietate Centru. Alte aspecte ale ondulației pot fi personalizate folosind proprietăți Amplitudine(Amplitudine), AspectRatio, Și Fază(Fază). Numărul de unde ondulate este determinat de proprietate Frecvență(Frecvență).

Următorul tabel prezintă rezultatele influenței TRippleEffect pe Fotografie PNG plasat pe formular (folosind ). Centrul ondulației este în mijlocul imaginii. Alte proprietăți TRippleEffect sunt utilizate cu valorile lor implicite ( Amplitudine = 0,1, AspectRatio = 1,5, Frecvență = 70, Fază = 0).

În acest tutorial veți folosi câteva efecte de imagine de bază în aplicația FireMonkey.

Pasul 1: Aplicați efectul imaginii.

În FireMonkey, aplicarea unui efect de imagine unei imagini este un proces simplu. Pur și simplu creați o componentă care poate conține o imagine și apoi aplicați unul dintre efectele imaginii.

    Creați o nouă aplicație FireMonkey ( Fișier> Nou> Aplicație desktop FireMonkey> Aplicație HD FireMonkey).

    Așezați componenta pe formular.

Selectați componenta din bara de instrumente.

Plasați TImage pe formularul din designer.

    Puteți vedea că componenta nu este plasată în centrul designerului de formulare. După cum se arată în figură, doriți ca dimensiunea zonei imaginii să fie cât mai mare posibil. Pentru a face acest lucru, selectați componenta din formularul de proiectare, apoi modificați proprietățile Alinia V alClientîn Object Inspector, astfel încât dimensiunea componentei să devină aceeași cu dimensiunea clientului zonei de formular.

    Selectați imaginea căreia doriți să aplicați efectul. Componenta stochează imaginea în proprietate Bitmap. Selectați proprietatea Bitmapîn inspectorul de obiecte și folosind Editați | ×... pentru a selecta o imagine.

  1. Acum puteți alege un efect pentru imagine. Din paleta Instrumente, selectați TRippleEffect.

Acum Efect de unda afisat in fereastra Structura.

Pentru a aplica un efect, acesta trebuie definit ca un copil al altei componente. În acest caz, RippleEffect1 trebuie definit ca un copil Imagine1. Pentru a face acest lucru, trageți RippleEffect1și pune-l pe Imagine1în panoul de structură.

  1. Acum poți vedea asta Efect de unda funcționează deja pe Form Designer.

  1. Schimbați proprietatea Frecvență pe 20 .

Pasul 2: Aplicați efectul de animație la RippleEffect.

    A evidentia Efect de unda pe panou Structura.

    Selectați o proprietate Fazăîn Object Inspector și rulați comanda Creați o nouă animație TFloat din meniul drop-down.

Asigura-te ca FloatAnimation1 definit ca element copil RippleEffect1.

    Schimbați proprietățile FloatAnimation1 ca mai jos:

Și, în sfârșit, să adăugăm o procedură de eveniment OnMouseMove La .

Acțiune