firemonkey komponente. FireMonkey. Što čitati i gledati? Multi-Device Preview omogućuje prilagodbu vizualne prezentacije za svaku platformu

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

FireMonkey je temeljna tehnologija "novog Delphija". Recite nam o ciljevima, mogućnostima i tehničkim aspektima ove potpuno nove knjižnice. S vremenom, gledajući unatrag, pokazalo se koliko je teško i opravdano vaše odbijanje. daljnji razvoj super popularan VCL?

Odabran je kao glavni smjer razvoja Delphi tehnologije za postizanje specifičnog cilja - višeplatformski razvoj iz jedinstvenog okruženja, temeljen na jedinstvenoj bazi izvornog koda, bez potrebe za radikalnom prekvalifikacijom programera. U okviru sada već klasičnog i superpopularnog VCL-a to je bilo nemoguće, njegova veza s WinAPI-jem bila je pretijesna, reklo bi se, “na genetskoj razini”.

VCL komponente nisu imale “apstraktni” sloj između funkcionalne razine u smislu sučelja i mehanizama za njihovo prikazivanje. Funkcionalna razina— kako se ponaša kao kontrola, na koje događaje reagira, kakvu interakciju s korisnikom pruža. Prikaz— pozivanje platformski orijentiranih metoda vizualizacije kao određene slike formirane rasterskim objektima i vektorskim primitivima. FireMonkey je u početku implementirao princip striktne podjele kontrole na dvije komponente: “ponašajne” i “vizualne”.


Vsevolod Leonov, Embarcadero Technologies

Prvi općenito neće ponoviti čak ni osnove VCL-a, već bit objektno orijentiranog programiranja. Komponenta je klasa; klase komponenti tvore hijerarhiju u kojoj se mogu razlikovati obitelji i moduli. Klasa komponente labavo je povezana s načinom na koji je prikazana.

Vizualna “slika” se formira dinamički, nije kruto zapisana u klasi komponente. Slika ili "stil" u FireMonkeyu učitava se u komponentu kada se aplikacija pokrene. Imamo neku vrstu funkcionalnog okvira za komponentu, a "koža" ili "oplata" se mogu mijenjati, ali zašto? To je tako da FireMonkey aplikacije izgledaju autentično na bilo kojoj platformi - Windows 7, Windows 8, Mac OS, iOS i, u bliskoj budućnosti, Android. To je nešto što tradicionalna monolitna klasna struktura VCL-a nije mogla pružiti.

Ovdje posebnu ulogu igra tehnološki pristup. U principu, možete uzeti VCL biblioteku i "natrpati" je WinAPI-jem i svim drugim mogućim pozivima platforme. To se još uvijek može učiniti na vrlo ograničenom podskupu komponenti, ali VCL sadrži nekoliko stotina komponenti, tako da bi ovaj pristup mogao jednostavno "ubiti" VCL. Odlučeno je ne dirati VCL, već razvijati nove mogućnosti na novoj platformi - FireMonkey. Ova tehnologija ima čak i određenu tehničku eleganciju - u trenutku sastavljanja projekta za određenu platformu, Delphi IDE povezuje potrebni kompajler, a komponente sučelja dobivaju stil platforme.

Za korisnika, ovo je jedan klik mišem i isti izvorni kod; za Delphi, to je mnogo godina napornog rada programera da stvore takvu višeplatformsku biblioteku.

Kada je postalo jasno da će FireMonkey biti predstavljen kao zasebna nova platforma, trebalo je izabrati pravu strategiju suživota: Embarcadero ni na koji način nije želio negativno utjecati na korisnike VCL-a. Stoga smo odabrali sljedeći plan: VCL ostaje ideološki i arhitektonski stabilan kako bi se osigurala najveća moguća kompatibilnost, što olakšava migraciju projekata na moderne verzije. Razvoj FireMonkeya slijedit će prirodan i paralelan put, bez obzira na VCL.

Slaba točka ovog rješenja je prilično problematična migracija s VCL na FireMonkey unutar istog projekta. Ali za novi projekt, razvojni programer može odabrati FireMonkey kako bi osigurao višeplatformsku prirodu svoje rezultirajuće aplikacije. Nakon izlaska XE4 s podrškom za iOS već se može govoriti o jasnim konkurentskim prednostima Delphija za pokretanje mobilnog razvoja u korporativnom okruženju, koje će se povećati nakon implementacije planirane podrške za Android.

Stoga nema očitog "odbijanja" od razvoja VCL-a kao takvog. U novim verzijama razvija se i VCL dio Delphija. To uključuje 64-bitnu podršku, uvođenje stila za vizualne komponente, implementaciju mehanizma za fleksibilne dinamičke veze ili "vezivanje" i uključivanje FireDAC biblioteke za rad s bazama podataka u VCL projektima. Samo što se, u usporedbi s ogromnim kvalitativnim skokom koji je napravio FireMonkey, napredak u VCL-u čini pomalo slabim. No, kako god bilo, VCL je sastavni dio Delphija i tako će ostati još mnogo godina. Iako je evolucija platformi Trenutna situacija Stanje stvari na području operativnih sustava za desktop sustave i mobilne uređaje je takvo da je FireMonkey očito budućnost.

U intervjuu smo već razgovarali o podršci za iOS, recimo našim čitateljima o podršci drugih najnovije tehnologije iz najnovijeg RAD Studio XE4, na primjer, kao što su Windows 8 i WinRT, 64-bitni sustavi, MacOS i tako dalje. Možete li nabrojati što još možete ponuditi modernom programeru razmaženom inovacijama?

Najvjerojatnije, moderni programer nije "razmažen" inovacijama. Za glavni projekti svaka "inovacija" često rezultira golemom količinom posla.

Na primjer, svi su dugo čekali, mnogi su odmah požurili prenijeti svoje kodove na novu platformu. Ali ispada da čak ni vrlo profesionalni timovi nisu spremni za to. Kompajlirati 64-bitni kod ne znači raditi. “Grijesi mladosti” počeli su izlaziti na površinu, na primjer, korištenjem uputa koje pretpostavljaju veličinu adrese od 4 bajta. Nedostatak kulture testiranja, zajedno s tehnološkom nespremnošću da se ovaj proces provede u kratkom vremenu.

I ovdje - što je veći projekt, mjereno, recimo, brojem linija izvorni kod, to su programeri pažljiviji i uravnoteženiji prema raznim vrstama inovacija u rasponu od pojave "gumba" u sučelju do "sintaktičkog šećera" u kompajleru.

Jedno od tih "problematičnih" postignuća bilo je izdanje Windowsa 8. Osobno, kao korisnik računala i samo moderni informatičar, oduševljen sam Windowsom 8. Ali za programere kojima je kao opterećenje poslana serija računala sa sustavom Windows 8 sa specifikacijama za razvoj pod novim OS-om, to znači određene poteškoće.

Pokušali smo pružiti razvojnu podršku za novo sučelje ovog OS-a što je udobnije i bezbolnije moguće. Stoga su uvedeni posebni stilovi i za VCL i za FireMonkey, a programer može ili ponovno izgraditi sučelje aplikacije ili stvoriti novu aplikaciju koja se neće moći razlikovati od one "izvorne" za Windows 8. izgled. Naravno, postoji potreba za "native" Windows podrška 8 zahvaljujući WinRT-u. No, tu dolazi do izražaja prioritizacija ciljeva u suvremenim uvjetima. Mac OS, iOS, Android u bliskoj budućnosti još nam ne dopuštaju govoriti o punoj podršci za WinRT u bliskoj budućnosti.

Strateški cilj Embarcadera je, naravno, više platforma. Izdanje RAD Studio XE4 bilo je ključno, prvenstveno zbog podrške za iOS. Postojeći programer koji koristi VCL može započeti razvoj za iOS za nekoliko sati. Čak i jednostavna mobilna aplikacija može se trenutno transformirati u moćan projekt koji radi unutar postojeće infrastrukture. Nemojte misliti da je ovo samo novi kompajler za FireMonkey i novi stil koji odgovara iOS sučelju.

To uključuje novi vizualni dizajner, ugrađenu podršku za različite faktore oblika, biblioteke za pristup podacima, uključujući novi FireDAC, i LiveBindings tehnologiju za fleksibilno i dinamično povezivanje s korporativnim podacima. Sve ove inovacije stižu istovremeno - za Windows, Mac OS i iOS. operacijska sala Mac sustav OS se ne razvija tako brzo, tako da nema problema poput prijelaza s Windows 7 na Windows 8. Ali su se pojavili Retina zasloni, a to je zahtijevalo posebnu pozornost. Sada svaka MacOS aplikacija stvorena u Delphi XE4 automatski uključuje dva stila - "normalan" i "visoka definicija".

Da. ista aplikacija može imati isto visokokvalitetno "nativno" sučelje na bilo kojem Apple stolnom računalu.

Embarcadero ne želi "iznenaditi", "zadiviti" ili čak "zabaviti" programere svojim novim inovativnim izdanjima. Dapače, naprotiv, IT sfera već je puna raznih iznenađenja: novi uređaji, nove platforme, novi korisnici, njihove nove potrebe, novi scenariji interakcije. Dodajte tome nove tehnologije za razvoj softvera i programeri jednostavno neće imati vremena za stvaranje novih sustava i postojećih - sve što će učiniti je migrirati iz jednog okruženja u drugo, iz stare knjižnice u novu, iz jednog jezika u drugi.

Ali mi ne ispovijedamo odbacivanje svega novog. Samo želimo osigurati kontinuitet svega - koda, sučelja, projekta, čak i profesionalnih vještina kada se pojave nove platforme i uređaji. Moglo bi se reći da se borimo protiv nezdravog konzervativizma u pogledu novih platformi kroz zdravi konzervativizam u razvojnim alatima. Ne očekujte egzotične proizvode, nestandardne programske jezike ili čudne razvojne alate od Embarcadera.

Kod nas ćete uvijek pronaći vizualni razvoj, klasične jezike, “nativni” kod, a ciljne platforme za vaše aplikacije, kreirane na isti provjereni klasični način, neka budu nove.

U kontekstu ovog bloga, ovaj projekt je prvenstveno zanimljiv jer je implementiran na FireMonkey i nevjerojatna je demonstracija mogućnosti ove platforme. A upravo prošli tjedan objavljena je javna beta verzija proizvoda. Na taj način čitatelji blogova mogu sami "osjetiti" nešto uistinu složeno. FireMonkey primjena.

Nekoliko riječi o programu. Prije svega, treba napomenuti da je trenutna verzija Sphere pozicionirana malo drugačije. Da, ponekad se dogodi...

Novi SphereLive Ovo nije samo još jedan glasnik. Prije svega, to je alat koji vam omogućuje učinkovito organiziranje obrazovnog procesa. Omogućuje predavanja na daljinu, privatne konzultacije, individualnu nastavu i druge slične aktivnosti. Istovremeno je opremljen gotovo svime što je potrebno za rad. Počevši od jedinstvenog sustava za prijenos datoteka do najmoćnijeg podsustava za naplatu.

U ovoj fazi, cijene za korištenje proizvoda su prilično pristupačne. Podložno ograničenom broju slušatelja i maloj količini resursa, proizvod se može koristiti besplatno.

Naravno, Sphere koristi svoju glavnu prednost FireMonkey– više platformi. Aplikacija je trenutno dostupna u Windows i MacOS izdanjima. Android verzija očekuje svakog dana.

Međutim, za mene je SphereLive zanimljiv prije svega kao inovativan proizvod s cijelim nizom originalnih rješenja. Ponekad je samo na razini "... vau, kako si to napravio?" Usput, jedan od programera Spherea aktivno sudjeluje u raspravama na forumu posvećenom FireMonkeyu. To samo po sebi može biti razlog da preuzmete aplikaciju i razgovarate o tehničkim problemima izravno s autorom. Vjerujte, ima se što vidjeti i što naučiti.

TListView jedna je od ključnih komponenti za izgradnju sučelja mobilne aplikacije FireMonkey. Ova komponenta nije najlakša za korištenje; često zahtijeva značajnu količinu koda, ali razvojnom programeru pruža značajnu slobodu djelovanja. Naravno, u aplikacijama koje također možete koristiti TListBox, gdje je sve puno jednostavnije. Ali TListBox može biti dobro za prikaz fiksnog broja zapisa, za izlaz podataka iz izvora podataka, svakako biste trebali koristiti TListView.

Glavne razlike između TListView i TListBox su:

  1. TListBoxItem- kontrolirati, TListViewItem- Ne
  2. U TListBoxItem možete dodati bilo koje kontrole koristeći roditelj. U TListVIewItem- Ne.
  3. TListVIewItem pohranjuje samo podatke za prikaz
  4. TListVIewItem sam izvodi renderiranje pohranjenih podataka kroz metodu Render
  5. Zbog stvarnog ručnog crtanja u TListVIewItem, postiže se povećanje brzine i niska potrošnja memorije (pohranjivanje samo relevantnih podataka)
  6. Za izradu vlastite verzije TListViewItem, morate kreirati vlastitu klasu predmeta, implementirati potrebne podatke u nju (na primjer, vrijeme) i kreirati in-place editor za uređivanje vremena, registrirati ga itd.

Sama činjenica povećanja performansi i smanjene potrošnje memorije uvjerljiv je argument u korist korištenja TListView. Ali postoji nešto više.

U mnogim Android aplikacije Morao sam promatrati sljedeću implementaciju popisa. Kada kliknete na element popisa (Stavka, ako se držite odabrane terminologije), izvršava se određena radnja. Obično se poziva novi obrazac za uređivanje podataka. Ali kada pritisnete i zadržite (Long Tap), izvodi se potpuno druga radnja. I ti se događaji ne presijecaju. Drugim riječima Android aplikacije mogu jasno razlikovati "dugi pritisak" od "običnog". Štoviše, niti jedan od ovih događaja ne pokreće se prilikom pomicanja popisa. Dobar primjer je popis pisama u Yandex Mailu.

Prije svega, svim čitateljima bloga želim čestitati protekle blagdane i poželjeti im sve najbolje u nadolazećoj godini.

Slijedom očiglednih okolnosti, nisam radio tradicionalni novogodišnji izvještaj, niti sam pravio ikakve planove za godinu. Međutim, život ne stoji, radi se i događaju se određeni događaji u svijetu Delphija. Obvezujem se objaviti izbor propuštenih “vijesti iz svijeta Delphija” tijekom božićnih praznika u skoroj budućnosti. U međuvremenu ću vam reći nešto o novom uređaju koji sam kupio.

Karakteristike možete pronaći na službenim stranicama. A subjektivni dojam je vrlo ugodan. Zanimljiva je činjenica da je uređaj doslovno natrpan vlasničkim softverom proizvođača. A prodavači su na dar dobili i impresivan set softvera. Pametni telefon radi prilično brzo i u potpunosti opravdava svoju cijenu (oko 200 USD). Inače, svoj prethodni telefon GSmart 1362 sam kupio za otprilike isti novac prije 2 godine. Ali, kao što vjerojatno pretpostavljate, mene je najviše zanimalo kako će raditi FireMonkey aplikacije.

Prije nastavka priče o timeru, dvije vijesti.

Prvo, objavljeno je prvo ažuriranje XE7. Tradicionalno je dostupan registriranim korisnicima. Možete pronaći popis ispravljenih grešaka. Htio sam vidjeti kako će se aplikacija ponašati u ažuriranom okruženju. Zapravo, nije bilo potrebe za ispravcima, iako je još bilo prostora za eksperimentiranje.

Druga vijest. Embarcadero posebne ponude produljene su do kraja godine:

Pa, sada izravno na temu posta. U principu, sve što nam preostaje je pokušati pokrenuti već stvoreno ovu aplikaciju za Android. Da bismo to učinili, koristimo ono o čemu sam pisao u prethodnim postovima. Naime novo. Otklonio sam pogreške u ovoj aplikaciji na Nexus 7, sukladno tome dodao je prikaz Android 7″ tableta. Dizajn je trebalo samo malo dotjerati.

Vjerojatno samo lijeni ljudi nisu sami napisali tajmer. A u kontekstu podrške razvoju mobilnih platformi, zadatak pisanja mjerača vremena u Delphiju općenito se može smatrati kultnim zadatkom. Pa sam pomislio, zašto ne kao primjer razvoja FireMonkey Aplikacija ne može analizirati mjerač vremena. Za Android, naravno. Naravno, to će biti upravo moje viđenje zadatka koji, iako nije posebno težak, ipak ima svoje nijanse. Možda imate bilo kakvih komentara ili prijedloga, bilo bi sjajno da ih raspravite u komentarima. Nipošto nisam stručnjak za pisanje. mobilne aplikacije, pa će mi svaki vaš komentar biti vrijedan.

Razvijat ćemo mjerač vremena, u engleskom razumijevanju ovog pojma. Odnosno, na zaslonu će se prikazati brojčanik i četiri gumba - "Start", "Pauza", "Stop" i "Odustani". Odbrojavanje će biti u smjeru prema naprijed (tj. vrijeme će se povećati). Opcija u kojoj se postavlja vrijeme i odbrojava se u engleskoj terminologiji zove Stop Watch, možda je pokušam implementirati kasnije. Aplikacija na kojoj ćemo raditi je po funkcionalnosti bliža štoperici.

Delphi XE7 nam omogućuje da značajno pojednostavimo razvojni proces, zbog činjenice da sada možemo kreirati i debugirati stvarnu aplikaciju za Win32, a zatim jednostavno dodati slanje obrazaca za potrebne mobilne uređaje i, uz malu prilagodbu, dobiti mobilni koji radi primjena. Zvuči predobro da bi bilo istinito? Može biti. Ali želim testirati ovu izjavu implementacijom zadatka.

Sve češće me kolege u privatnim razgovorima pitaju je li moguće razvijati mobilne aplikacije FireMonkey ili je to prototip, a ne proizvodno rješenje?

Mislim da sada mogu osigurati čak i krajnje skeptike.

Moj bivši prijatelj i kolega Tagir Yumaguzin pričao mi je o projektu u kojem je sudjelovao davno. Sada, kada je ovaj projekt u stanju prije izdavanja, odlučili smo da će ovaj opis biti zanimljiv Delphi zajednici. U biti, radi se o stvarno velikom projektu koji se provodi u FM-u. Govorimo o projektu Sphere Live. Mali članak posvećen tom projektu nedavno je objavljen na Habrahabr.ru Alexey Glyzin, šef odjela za razvoj ‘’ pristao je ispričati više o projektu uzimajući u obzir publiku mog bloga.

A.B.– Alexey, općenito, koji je vaš projekt?

A.G.: – Ideja se nije pojavila odjednom i odmah. Prije projekta ‘Sphere’ naš tim je radio na projektu gdje su implementirane stream audio/video tehnologije. Kasnije smo izradili vlastiti softver koji je mogao isporučiti multimedijske streamove neograničenom broju korisnika, uključujući povratne informacije. Ali morali smo uključiti značajku naplate.
Aplikacija je morala ispunjavati nekoliko zahtjeva. Prvo, maksimalno pojednostavljena organizacija konferencija ili prijenos do sudionika čiji iznos ne možemo predvidjeti. Drugo, najvažnije, je pružiti našim klijentima priliku da zarade uz našu aplikaciju i smanjiti kompleksnost sustava, količinu instrumenata koje treba koristiti da bi se došlo do cilja. Lakoća organizacije tečajeva, webinara ili samo konzultacija.

Mala napomena za pamćenje FireDAC u trenutnoj verziji Delphi XE6. Ali prvo, nekoliko riječi o tome gdje tražiti odgovore na pitanja u vezi FireMonkey. Korisnici koji govore ruski ovdje su u privilegiranom položaju.

Dok sam se pripremao za događaj u Kharkovu u sklopu RAD Studio XE5 svjetske turneje, naišao sam na mali problem u radu s SQLite pomoću FireDAC. Ako je ispunjeno Windows aplikacija prenijeti bazu podataka zajedno s aplikacijom Android, Ćirilični nizovi u bazi više nisu čitljivi (umjesto slova prikazuju se upitnici). Međutim, ako ispunite bazu podataka izravno na mobilnom uređaju, ruski se znakovi čitaju sasvim ispravno. Podaci iz baze popunjeni aplikacija treće strane, ili u Delphi aplikacije koje koriste druge komponente pristupa podacima također su prikazane normalno. Sastanak nije uspio pronaći rješenje, a ja sam morao citirati poznatog ukrajinskog nogometnog stručnjaka: "Smislit ćemo to!"

Za razliku od prošlog, uspio sam se nositi s opisanim problemom. Prema zadanim postavkama prilikom povezivanja na SQLite V FireDAC Koristi se ANSI format niza.

Ako prisilno instalirate Unicode, onda će sve raditi kako treba. Ali postoji i neugodan trenutak. Promjenom formata stringa morat ćete ponovno izraditi popis polja u svim skupovima podataka, kao i ponovno spojiti komponente odgovorne za prikaz i unos podataka. Stoga je bolje odmah se pobrinuti za kodiranje.

U prethodnim dijelovima ovog mini serijala bavili smo se izradom baze podataka, njenom strukturom i povezivanjem s njom iz Delphija. U ovom dijelu predlažem razumijevanje prikaza podataka iz tablica, počevši od najjednostavnijeg slučaja.

Jednostavan uređivač tabličnih podataka, obično dio složene aplikacije. Obično koristim poseban obrazac za uređivanje tablica. Počnimo s popisom namirnica. Prije svega, moramo stvoriti DataSet za pristup podacima tablice. U našem slučaju, sasvim je moguće koristiti komponentu TADTable. Smjestimo ga u DataModule i odredimo vrijednost svojstva Veza. U uređivaču svojstava TableName pojavit će se popis tablica iz kojih odabiremo tablicu Proizvodi. Ako ste sve učinili ispravno, možete dodijeliti svojstvo Aktivan vrijednost Istina. Bolje je odmah preimenovati komponentu (na primjer, ADTProduct). Nakon toga obično stvaram skup polja za DataSet. Pozovite uređivač polja (dvostruki klik na komponentu) i kontekstni izbornik odaberite stavku Dodaj sva polja.

Za one koji nisu upućeni, objasnit ću suštinu ove operacije. Ovdje stvaramo unaprijed definirani skup DataSet polja. Ako to ne učinimo ručno u načinu dizajna, tada se, u načelu, neće dogoditi ništa loše. U RunTimeu ovaj će se skup automatski stvoriti. Ali ja ga ipak radije kreiram ručno. Nekoliko je razloga za to. Prvo, praktičnije je upravljati skupom polja, jer možemo sami kreirati dodatna (izračunata ili lookUp) polja u načinu dizajna. Također možemo promijeniti svojstva samih polja. Osim toga, dobivamo mogućnost pristupa poljima u kodu pomoću naziva TField komponente, što, po mom mišljenju, uvelike pojednostavljuje pisanje koda.

Kao iu slučaju VCL aplikacije, spojit ćemo komponentu na skup podataka TDataSource. Ova komponenta će omogućiti vezu između skupa podataka i vizualnih kontrola. Svojstvo DataSet komponente mora upućivati ​​na naš skup podataka (ADTProduct). U nastavku donosim fragment DFM datoteke

objekt ADTProduct: TADTable IndexFieldNames = "ID" Veza = ADConnection UpdateOptions. UpdateTableName = "Product" TableName = "Product" Left = 64 Top = 192 object ADTProductID: TADAutoIncField FieldName = "ID" Origin = "ID" ProviderFlags = [ pfInWhere, pfInKey] ReadOnly = Pravi krajnji objekt ADTProductTitle: TStringField FieldName = "Title" Porijeklo = "Naslov" Veličina = 50 krajnji objekt dsProduct: TDataSource DataSet = ADTProizvod Lijevo = 120 Vrh = 192 kraj

Imajte na umu jednu zanimljivu značajku: datoteka obrasca DataModule nije spremljena u FMX formatu, kao obični FireMonkey obrazac, već u DFM formatu, kao u VCL.

Sljedeći korak je kreiranje procedure za otvaranje skupa podataka, koju ćemo morati pozvati u RunTime-u kada se program pokrene. Kreirajmo ga u istom DataModuleu. Kod postupka je vrlo jednostavan:

postupak TDM. ConnectToDB ; započeti AD Connection. Otvoren(); ADTProizvod. Otvoren(); kraj ;

Smjestit ćemo poziv procedure u OnCreate rukovatelj događajima za DataModule.

Vjerojatno znate da Embarcadero aktivno promovira svoju novu viziju stvaranja višeplatformskog GUI-a - FireMonkey ( zovu ga okvirom, ali za trenutno stanje zvuči previše kul). Na RuNetu se najavljuju jedan natječaj za drugim, održavaju se webinari, a iako kvaliteta potonjeg ostavlja mnogo za željeti, aktivnost je ohrabrujuća. Sada, zapravo, na temu. U sklopu prošlog natječaja predložena je izrada neke vrste aplikacije za učenje. A jučer se pojavio još jedan rad čiji je autor Evgeniy Chmel ( Ne znam je li ovo prezime sklono ili ne). Za razliku od onih jednostavnih "jednog oblika" viđenih ranije, ovdje se pokušalo povući majmuna za sve njegove udove: stilizacija, 3D, efekti sjenčanja ( Embarcadero evanđelisti vole govoriti o GPU ubrzanoj grafici :))). Da vidimo što je od toga ispalo. Za one koji nisu gledali webinare napravit ću malu digresiju. Na jednom od webinara, Embarcadero evangelist Vsevolod Leonov ispričao je srceparajuću priču o tome kako je morao "restartati računalo, doslovno, teško" (ovo je citat), zbog činjenice da Silverlight SDK i Windows Phone 7 emulator " nije radio” (ovo je citat) na svom računalu jer Nisu im se svidjeli video adapter ili GPU postavke. No aplikacije razvijene pomoću FireMokeya, nastavlja Vsevolod, nisu nimalo zahtjevne hardver. Da vidimo kako nam je lagao. Process Explorer v15.05 Marka Rusinovicha bit će naš nepristran svjedok. Dakle, preuzmite Evgeniyjevu aplikaciju i pokrenite ( Ne dajem snimke zaslona Evgeniyeve aplikacije, one su dostupne na poveznici na njegov rad. Obratite pažnju na mutne fontove).

Pokrenuo aplikaciju. Pogledajmo potrošnju:

Neskromno, ali može se oprostiti “naprednoj tehnologiji”. Idite na odjeljak "Lekcije" i odaberite "Lekcija 5". Počinje priprema pozornice. Ovaj proces je dug ( Trebalo mi je nešto više od minute, na četverojezgrenom Phenomu II s frekvencijom od 3,3 GHz), budi strpljiv. Pozornica je izgrađena. Pogledajmo potrošnju:

Majmun je bio dobro uhranjen. Vrlo dobro. Sada pokušajte prijeći mišem preko gumba s opcijama odgovora. Čini se da GUI reagira vrlo sporo, zar ne? Pogledajte grafikon korištenja CPU-a ( Mislim, trebali biste sami isprobati, na svom računalu) – u tim trenucima njegovo opterećenje se približava 100% ( Imao sam ~21,5% za četverojezgreni procesor, što je ekvivalentno 86% za jednojezgreni procesor). Ali netko nam je rekao za GPU ubrzanu grafiku. Dobro, idemo dalje. Odgovaramo na sva pitanja u lekciji. Pogledajmo potrošnju:

Jesu li vam oči raširene? Sada pogledajte, za usporedbu, koliko troši 3D pucačina FarCry s aktivnim igranjem ( level se zove Factory, ako koga zanima) radi na cijelom zaslonu 1440x900:

Zaključite sami.

Prošlo je više od tri godine otkako je odjel CodeGear, zaslužan za stvaranje svjetski poznatih alata kao što su Delphi, C++Builder i JBuilder, kao i sustava za upravljanje bazom podataka Interbase, postao dio tvrtke Embarcadero Technologies, poznate po svojim alatima za dizajn i administraciju baze podataka i dvije godine otkako smo na stranicama našeg časopisa raspravljali o tome što očekivati ​​u razvoju alata koji su tako popularni među ruskim programerima. Zamolili smo Davida Intersimonea, potpredsjednika za odnose s programerima i glavnog evangelista u Embarcadero Technologiesu, i Kirilla Ranneva, voditelja predstavništva Embarcadero Technologiesa, da govore o tome što je novo učinjeno na ovom području u protekle dvije godine i što možemo očekivati ​​u bliska budućnost.Rusija. Za naše najmlađe čitatelje obavijestit ćemo vas da ovo nije prvi intervju koji David i Kirill daju za ComputerPress – naša suradnja traje već drugo desetljeće. Otprilike isto toliko godina povremeno objavljujemo recenzije alata za upravljanje bazama podataka, u kojima se velika pažnja posvećuje Embarcadero proizvodima.

ComputerPress: Davide, tvoj odjel je dio Embarcadera već tri godine. Prije dvije godine bili ste entuzijastični da postane dio tvrtke bliske vašim ciljevima i duhu. Je li se nešto promijenilo u ovom vremenu? Imate li vi i vaši kolege još uvijek isti entuzijazam?

Da, još uvijek sam vrlo entuzijastičan. Glavna promjena koja se dogodila otkako smo postali dio tvrtke Embarcadero je da je puno uloženo u razvoj Delphija. Povećao se broj ljudi koji rade na razvojnim alatima, a povećao se i broj tehnologija koje možemo razviti ili po potrebi nabaviti.

Izdanje RAD Studio XE 2, koje planiramo demonstrirati u Moskvi, najveće je izdanje ovog proizvoda s ogromnim mogućnostima i velikim brojem podržanih platformi od prve verzije Delphija, stvorene za 16-bitnu verziju Windowsa i koji je bio inovativan proizvod koji je kombinirao komponentni pristup i kompilaciju u strojni kod. Sada podržavamo razvoj ne samo za Windows, već i za Macintosh, da ne spominjemo web razvoj i izradu aplikacija za mobilne uređaje, a ove aplikacije za različite platforme može imati isti kod.

Nova razvojna platforma, FireMonkey, rezultat je suradnje između Embarcadera i nedavno kupljene ruske tvrtke KSDev sa sjedištem u UlanUdeu, proizvođača komponenti vektorske grafike, DirectX i OpenGL, tehnologija grafičkih efekata i Delphi komponenti koje koriste GPU s PixelShaderom 2.0. Kupili smo tvrtku KSDev (vidi ksdev.ru) prije godinu dana i počeli raditi zajedno na stvaranju višeplatformskog razvojnog alata, uključujući platformu za razvoj FireMonkey aplikacija s komponentama za Delphi i C++Buider za izradu korisničkih sučelja aplikacija, baze podataka integracija , grafička obrada pomoću GPU-a i integracija s operativnim sustavom.

Koristeći FireMonkey, možete stvoriti aplikaciju koja radi na CPU-u i GPU-u zajedno, a zatim upotrijebiti različite kompajlere i biblioteke za vrijeme izvođenja (RTL) da biste je kompilirali za Windows, Mac OS ili iOS. Umjesto učenja programiranja pomoću različitih grafičkih biblioteka, učenja API-ja različitih platformi koje imaju različite koordinatne sustave i različite mogućnosti, programeri koji koriste Delphi i C++Builder mogu koristiti isti pristup temeljen na komponentama, vizualno uređujući obrasce i povezujući se s bazama podataka pomicanje komponente pomoću miša. Ovo je temeljno nov način stvaranja aplikacija koje rade na različitim platformama i to je budućnost. Ako svojoj aplikaciji želite dodati podršku za druge operativne sustave i platforme, ne trebate je ponovno dizajnirati i razvijati - samo je trebate ponovno kompajlirati.

Stvaramo nove prevoditelje koji generiraju izvorni kod. Danas postoje Delphi prevoditelji za 32 i 64 bita Windows verzije, 32-bitne verzije Mac OS-a 10. A mi radimo na sljedećoj generaciji Delphi i C++Builder prevoditelja koji će vam omogućiti stvaranje strojnog koda visokih performansi za ove i druge platforme kao što su Android ili Linux, i zadržati isti dizajn, iste komponente, isti kod korištenjem različitih kompilatora i runtime biblioteka.

Kao što vidite, imam dovoljno razloga za oduševljenje. A programeri koje susrećem diljem svijeta znaju da Embarcadero mnogo ulaže u Delphi i C++Builder, kao i PHP razvojne alate.

KP: Koje ste uspjehe postigli u integraciji alata dviju tvrtki u protekle dvije godine? Kakvi su planovi Embarcadera za budućnost na ovom području?

DI.: U vrijeme kada je CodeGear postao dio Embarcadera, tvrtka je imala razvojne timove u Torontu, Monterreyu i Rumunjskoj, bili smo i još uvijek se nalazimo u Scotts Valleyu iu Rusiji, u St. Embarcadero je imao alate za programere i administratore baza podataka, CodeGear je imao alate za razvoj aplikacija, ali potonji također koriste baze podataka. Spajanje tvrtki kombinacija je stručnosti, znanja iz područja baza podataka, optimizacije koda, uključujući i server kod. Kombinacija tvrtki također je dovela do stvaranja novog proizvoda, AppWave, posebne tehnologije za pretvaranje obične Windows aplikacije u nešto vrlo jednostavno za korištenje (poput aplikacija za iPhone ili druge uređaje). AppWave vam omogućuje da ne instalirate aplikaciju, već je jednostavno odaberete i pokrenete s pripremljenog poslužitelja za pohranu aplikacija (app), a ona će se izvršiti na korisnikovom računalu bez mijenjanja njegovog registra i područja sustava datoteka. Usput, preglednik aplikacija AppWave napisan je u Delphiju. Embarcadero koristi Dephi za vlastiti razvoj i našu stručnost u razvoju aplikacija.

iPhone (iOS) aplikaciju kreirao
koristeći FireMonkey platformu

Također možete koristiti integraciju naših razvojnih alata i DB Optimizer za optimizaciju SQL upita prilikom izrade aplikacija. Prolaskom SQL koda izravno u DB Optimizer, možete ga profilirati, testirati i vratiti optimiziranu verziju natrag u svoje razvojno okruženje. Embarcaderova ekspertiza baze podataka također je poboljšala DataSnap tehnologiju. Zahvaljujući programerima iz Toronta stekli smo mnogo znanja o arhitekturi višeslojnih sustava i baza podataka. Sada imamo zajedničku stručnost u stvaranju poslužiteljskog koda i pohranjenih procedura u obje tvrtke. Imamo alate kao što su RapidSQL i DB Change Manager, kao i razvojna okruženja koja pojednostavljuju kreiranje poslužiteljskog koda - na primjer, tehnologije Code Insight i Code Completion omogućile su stvaranje SQL insight i SQL Completion tehnologija. Naši zajednički pristupi stvaranju kodova klijenta i poslužitelja, naša zajednička filozofija, omogućuju nam stvaranje zajedničke značajke alati za upravljanje bazom podataka i alati za razvoj aplikacija.

Kirill Rannev:Želim dodati nešto važno. S komercijalne točke gledišta, vrlo je važno kako isporučujemo naše alate. Na primjer, novo izdanje RAD Studio XE 2 Ultimate uključuje cijeli set DB Power Studio alati. Ovo je vrlo moćan skup alata, uključujući okruženje za razvoj upita RapidSQL, alat za upravljanje promjenama DB Change Manager i alat za optimizaciju upita DB Optimizer, koji vam omogućuje da izvršite važan dio procesa razvoja i implementacije upravljanjem promjenama u model podataka, baza podataka, kod itd. Ovo je vrlo dobra i ispravna kombinacija tehnologija.

DI.: Ali ako je potrebno, programeri mogu koristiti Subverziju za verziju izvornog koda i DB Change Manager za verziju metapodataka. Možete koristiti profiliranje koda i DB Optimizer za optimizaciju poslužiteljskog koda, RapidSQL za izradu i otklanjanje pogrešaka poslužiteljskog koda, a naša razvojna okruženja za izradu i uklanjanje pogrešaka aplikacija. Ova kombinacija tehnologija u RAD Studio XE Ultimate Edition pokazuje paralele između baze podataka i modela razvoja aplikacija. Većina programera koji grade poslovne aplikacije s Delphijem i C++Builderom rade s bazama podataka i trebaju im ove alate, a RAD Studio XE Ultimate Edition izvrsna je kombinacija za takve programere.

KP: Suvremeni korisnik više nije korisnik samo Windows platforme. Prijavljujemo se Mobilni uredaji, iPhone, iPad, uređaji temeljeni na Android platformi. To znači da programeri moraju početi ciljati na različite platforme bez značajnog povećanja ulaganja u obuku - to jest, potrebni su univerzalni alati. Očito je nerealno očekivati ​​pojavu univerzalnih alata od proizvođača platformi, a po tom pitanju možemo računati samo na neovisne proizvođače alata. Kako možemo računati na Embarcadero?

DI.: Imamo još puno toga za napraviti u smislu podrške za platformu. Danas uvodimo podršku za iOS platformu za iPhone i iPad, zatim će našu podršku dobiti pametni telefoni temeljeni na Android platformi, Windows 7 i Blackberry. U RAD Studio XE 2 započeli smo izgradnjom FireMonkey platforme za iOS, a zatim ćemo FireMonkey prenijeti na druge platforme.

U isto vrijeme, postoji veliki broj operativnih sustava koji podržavaju ekrani osjetljivi na dodir(touchscreen), za telefone, tablet računala i uređaji, desktop računala, a mi ćemo nastaviti dodavati podršku za njih. Tu su i glas, pokret, biometrija, akcelerometri, tako da moramo nastaviti širiti FireMonkey kako bi svi programeri mogli iskoristiti prednosti novih platformi. Na primjer, Microsoft Kinect uređaj dizajniran je za Xbox 360, a sada postoji odgovarajući SDK (Software Development Kit) za Windows. I već imamo primjere u kojima koristimo pokret za kontrolu aplikacije na isti način na koji bi se inače koristili miš ili tipkovnica.

Kada stvarate aplikacije s mnogo složene grafike, stvarate cijeli svijet novih korisničkih sučelja. Ako se radi o Windows operativnom sustavu, njegovu primjenu enkapsuliramo softversko sučelje Windows API u VCL biblioteci (Visual Component Library - biblioteka vizualnih komponenti koja je dio Delphi i C++Builder razvojnih alata. - Bilješka izd.), koji se, usput, može koristiti i dalje. A u FireMonkey smo enkapsulirali API operacijski sustav. Ali danas puno više manipuliramo oblicima i grafikama. Također možete dodati fizička svojstva prostoru za animaciju i specijalne efekte. Osim toga, postoji ogroman broj drugih dodatne mogućnosti kreirati korisnička sučelja koja ćemo implementirati u sljedećih nekoliko godina za različite platforme, mobilne i tablet uređaje.

Microsoft je nedavno objavio detalje o Windows 8, koji bi trebao izaći za godinu dana. Podržat ćemo ove inovacije u VCL biblioteci i FireMonkey platformi. Ali Delphi je razvojni alat dizajniran ne samo za Windows, već i za Macintosh, iPhone i iPad. Također razvijamo naše PHP proizvode, podržavamo jQuery Mobile, koristimo iOS API za razvoj mobilnih klijentskih aplikacija i stvaramo PHP aplikacije na strani poslužitelja pomoću čarobnjaka i alata za generiranje JavaScripta, HTML-a i kaskadnih listova stilova na strani klijenta. Možemo kreirati pakete iz PHP aplikacija i klijentskih aplikacija s izvornim kodom za iPhone iOS, a takav klijent će komunicirati sa PHP poslužitelj. A on će zauzvrat komunicirati s poslužiteljem baze podataka i s web servisima - sa svime što je potrebno za poslovanje.

RadPHP XE2 razvojno okruženje. Izrada mobilne web aplikacije
koristeći jQuery Mobile komponente za iPhone 3G

Drugim riječima, planiramo proširiti mogućnosti FireMonkeya i VCL-a, uključujući podršku za mobilne platforme.

KP: Možete li nam reći nešto više o platformi FireMonkey?

DI.: Kao što sam već primijetio, VCL biblioteka stvorena za Windows nastavit će se razvijati i poboljšavati. Ali danas, ako želite pravi razvoj poslovnih aplikacija, morate ih izraditi za različite platforme. Za to je dizajnirana platforma FireMonkey. Podržava stvaranje korisničkih sučelja visoke rezolucije i visokih performansi 3D grafika, velika brzina mijenja okvir i, što je važno, za to koristi grafički procesor.

Takve mogućnosti možete koristiti pri izradi znanstvenih, inženjerskih i poslovnih aplikacija. Takve aplikacije mogu se povezati s bazama podataka koristeći dbExpress tehnologiju, i dalje koristeći nevizualne komponente poznate programerima, kao što su ClientDataSet ili DataSource, koristiti DataSnap tehnologiju, povezati se s bilo kojom bazom podataka, SOAP i REST poslužiteljima. Možete kreirati atraktivne kontrole, gumbe s okvirima, neobične tablice i druge elemente sučelja, u dvije i tri dimenzije. Možete učitati gotov 3D model u aplikaciju i povezati ga s 2D oblikom u kojem ga možete rotirati i gledati iz različitih kutova. Možete izraditi podatkovnu kocku ili 3D poslovni grafikon i rotirati ih pomoću miša, tipkovnice ili čak Kinect uređaja ili možete ući u kocku i pogledati njezine različite površine iznutra. I sve se to može učiniti pomoću GPU-a velike brzine. Ista se aplikacija zatim može kompajlirati za drugu platformu, kao što je Mac OS.

Aplikacija koja sadrži rotirajuću podatkovnu kocku,
postavljen na njegove rubove

Ili možete stvoriti 3D oblik od nule i koristiti kamere i svjetla za osvjetljavanje i rotiranje dijelova korisničkog sučelja. Dizajner obrazaca već ima ugrađeno okruženje za podršku 3D korisničkom sučelju tijekom dizajna.

U sustavu Windows možete koristiti biblioteke Direct2D za rad s 2D grafikom visoke razlučivosti i Direct3D za 3D grafiku. Na Mac OS-u, Quartz i OpenGL biblioteke koriste se za iste svrhe. Za iOS se koriste biblioteke Quartz i OpenGL ES. Ali sve je to skriveno od programera - on koristi platformu FireMonkey, njen koordinatni sustav i sučelje za programiranje aplikacija, ne razmišljajući o tim bibliotekama, i može sastaviti istu aplikaciju za različite platforme.

Prisjetimo se što je VCL. VCL je omotač komponente oko Windows API-ja. Bavimo se resursima, izbornicima, dijaloškim okvirima, bojama, stilovima, Windows porukama. Budući da je omotač s više platformi, za razliku od VCL-a, FireMonkey zadržava iste modele događaja i komponenti, omogućujući vam da razmišljate u terminima događaja (na primjer, OnClick, OnHasFocus, onMouseDown i onKeyDown događaji), ali rukuje Macintosh ili iPhone događajima.

Platforma FireMonkey također dolazi s kompletnim sustavom animacije za elemente korisničkog sučelja. To svakako nije sveobuhvatan sustav animacije u stilu Pixara, ali dopušta efekte poput animacije rasterske slike, naglašavajući fokus elementa korisničkog sučelja i rad s vektorskom grafikom. Programeru je dostupno više od 50 vizualni efekti: zamućenje, pretvaranje slike u crno-bijelu, otapanje, prijelazi, refleksija, stvaranje sjena - sve vrste efekata dostupnih u modernim grafičkim procesorima, koji se sada nalaze u gotovo svakom računalu. Aplikacija izgrađena pomoću platforme FireMonkey šalje naredbe GPU-u, koji obavlja sav posao prikazivanja grafike i stvaranja korisničkog sučelja. U tom je slučaju središnji procesor slobodan za izračune i pozive operacijskom sustavu. Programer može samo ispravno postaviti komponente.

Najosnovnija stvar kod FireMonkey platforme je način na koji gradi korisničko sučelje. Postoje sredstva za postavljanje rasterske grafike na elemente sučelja kao što su izbornici, gumbi i trake za pomicanje. U FireMonkeyu u tu svrhu koristimo vektorsku grafiku pokretanu GPU-om. Iz programske perspektive, to su još uvijek iste kontrole, ali sav posao njihovog prikazivanja obavlja grafički procesor. Možemo primijeniti stilove na kontrole, učiniti da aplikacija izgleda kao aplikacija za Mac OS ili Windows, stvoriti vlastiti stil, primijeniti vlastite stilove na elemente sučelja (na primjer, napraviti gumb pravokutnim ili okruglim mijenjanjem njegovog stila u uređivaču obrasca ) - za ovo U razvojnom okruženju postoji uređivač stilova. Možete kreirati vlastiti stil ili možete promijeniti stil već gotove aplikacije.

Platforma FireMonkey - Razvojni alati
i podržane platforme

Ako se sjećate, VCL biblioteka je imala ograničen broj kontrola - spremnika (odnosno, dopuštajući vam da u njih smjestite druge elemente), au FireMonkeyu svaka kontrola je spremnik. To znači da svaka kontrola može sadržavati bilo koju drugu kontrolu. Na primjer, stavke padajućeg popisa mogu sadržavati slike, gumbe, polja za uređivanje i druge kontrole. Također možete postaviti komponente u slojeve.

Sustav za renderiranje FireMonkey prilično je fleksibilan - može koristiti biblioteke Direct2D, Direct3D i OpenGL, šaljući naredbe GPU-u. Da biste postigli istu stvar u VCL-u, morali ste generirati zasebni međuspremnik izvan zaslona, ​​stvoriti sliku u njemu pozivanjem odgovarajućih funkcija grafičke biblioteke, a zatim je prikazati na obrascu.

Primjeri grafičkih efekata koje podržava FireMonkey

Ako nemate GPU, još uvijek možete primijeniti 2D ili 3D oblike i koristiti FireMonkey kontrole. U tom će slučaju platforma FireMonkey koristiti GDI+ biblioteke ili druge slične biblioteke i izvoditi iste efekte i animacije ili manipulacije 3D objektima.

Još jedna značajka FireMonkeya je novi sustav povezivanje elemenata sučelja s podacima, otvoreno i fleksibilno. Postoje dvije vrste elemenata sučelja u VCL-u: vezani za podatke i nevezani za podatke (na primjer, TDBEdit i TEdit). U FireMonkeyu se svaka kontrola može povezati s podacima bilo koje vrste. To može biti jednostavan izraz, polje iz skupa podataka, podaci iz objekata koje je stvorio programer ili rezultati poziva metode.

Osim toga, prilikom izrade aplikacije možete u nju učitati gotov 3D model i koristiti ga - takve su mogućnosti često potrebne iu poslovnim aplikacijama i aplikacijama za inženjerski proračuni. Imamo klijenta koji izrađuje aplikacije za logistiku. Imali su Informacijski sistem, izgrađen pomoću Delphija, au njemu - aplikacija koja je crtala plan i prikazivala informacije iz izvora podataka. Nedavno su napravili nešto zanimljivo - u AutoCAD-u su nacrtali potpuno automatizirano 3D skladište, a njihova aplikacija omogućuje da vidite kako se automatizirani viličar kreće po skladištu i slaže robu na police. I stavili su podatke iz izvora na odgovarajuću sliku.

Primjeri mijenjanja stilova primjene

KP: Koji su formati 3D modela trenutno podržani?

DI.: U ovom izdanju podržavamo učitavanje modela iz AutoCAD-a, Collada (alat za 3D modeliranje otvorenog koda. - Bilješka Uredi.), Maya, OBJ format koji podržavaju mnogi dobavljači 3D grafike.

KP: Koje još formate planirate dodati?

DI.: Planiramo dodati 3DS (3D Studio MAX), SVG (obično se ovaj format koristi za 2D vektorsku grafiku, ali ponekad i za 3D), Google SketchUp. Možda ćemo podržati i druge formate.

KP: Je li za korištenje 3D modela u aplikacijama napravljenim s FireMonkeyjem potrebna licenca za odgovarajući alat za 3D modeliranje?

DI.: Ne, to ne zahtijeva. Sve što radimo je čitanje datoteke modela. Uvozimo model, ali ga ne izvozimo (iako, naravno, možete napisati aplikaciju koja sprema model u vaš vlastiti format). Ne predstavljamo se kao proizvođač alata za 3D modeliranje - za to možete koristiti AutoCAD, 3D Studio Max, Maya ili bilo koji drugi alat za 3D modeliranje, te uvesti izrađene modele u naše aplikacije.

KP: Koliko su učinkovite aplikacije napravljene s FireMonkeyem na modernim hardverskim platformama?

DI.: Produktivnost je prilično visoka. Na primjer, iscrtavanje 3D oblika s tri uključene kugle i tri izvora svjetlosti MacBook Pro može se izvesti brzinom od 100 sličica u sekundi. Ili može doći do 600 - ovisi o tome što točno radimo. Opet, sve ovisi o snazi ​​GPU-a.

KP: Znači li to da možete kreirati moderne igre koristeći FireMonkey?

DI.: Ne postavljamo naše razvojne alate kao alate za igre. Međutim, koristeći prednost visokih performansi modernih GPU-a, možete stvarati igre koristeći FireMonkey - na kraju krajeva, one su stvorene pomoću Direct3D ili OpenGL.

KP:Čime se trenutačno bavite u području podržavanja prepoznavanja gesta i drugih novonastalih stvari? Je li takva podrška dostupna?

DI.: U ovom izdanju još nemamo podršku za pokrete. Kontrole gestama bit će dodane u budućem izdanju FireMonkeya, ali u međuvremenu možete koristiti podršku gestama ugrađenu u operativni sustav.

Mikhail Filippenko, direktor tvrtke Fast Reports, Inc.

K.R.: Već smo rekli da FireMonkey tehnologija ima ruske korijene - njeni temelji su stvoreni u našoj zemlji, a zatim su se i sama tehnologija i njeni programeri pridružili Embarcaderu. Općenito, zadovoljstvo je vidjeti rast ruske komponente u RAD Studiju i Delphiju. To uključuje aktivnosti našeg razvojnog centra u St. Petersburgu i doprinos neovisnih ruskih programera. Na primjer, Rad Studio XE2 uključuje generator izvještaja FastReport - poznat u cijelom svijetu i vrlo popularan u našoj zemlji. Porijeklom je iz Rostova na Donu.

KP:Želio bih razgovarati o kompajlerima. Koja se vrsta prevoditelja koristi pri izradi iOS aplikacija?

DI.: Nemamo vlastiti Delphi kompajler za iPhone ili iPad—još nismo razvili kompajlere za ARM procesore koji se koriste u tim uređajima. Za iOS privremeno koristimo kompilator Free Pascal i biblioteku vremena izvođenja. No, radimo na sljedećoj generaciji kompajlera, uključujući AWP procesore. Ali postoje kompajleri za Windows i Mac OS, budući da su obje hardverske platforme temeljene na Intelovim procesorima.

KP:Što je u posljednje dvije godine učinjeno na području izrade kompilatora?

DI.: Imamo 32- i 64-bitne Delphi prevoditelje za Windows i Mac OS. A mi radimo na novoj generaciji Delphi i C++ prevodilaca. Oni su još uvijek u tijeku, ali kada budu dovršeni imat ćemo Delphi kompajlere za ARM procesore, Android platforme, Linux i bilo što drugo. Imat ćemo i 64-bitne C++ kompajlere za Windows i druge platforme, kompatibilne s najnovijim jezičnim standardom C++ koji je upravo usvojio ISO.

KP:Što se danas događa s podrškom za računalstvo u oblaku u Embarcadero razvojnim alatima?

DI.: U RAD Studio XE 2 podržavamo premještanje aplikacija u Microsoft Azure ili Amazon EC2 oblak pomoću Platform Assistant-a. Imamo i poslužiteljske komponente za Cloud Storage za Azure i Amazon S3 za pohranjivanje tablica, binarnih podataka, redova poruka. U prethodna verzija Uz RAD Studio XE, također smo podržali implementaciju aplikacija na Amazon EC2, ali nije imao podršku za pohranu.

Podrška za računalstvo u oblaku u RAD Studio XE 2

KP: Prije dvije godine govorili ste o novom rješenju All-Access. Koliko je bio popularan? Koje su njegove koristi za integratori sustava i programeri?

DI.: All-Access rješenje i AppWave cloud alat naširoko se koriste diljem svijeta. Osmišljeni su kako bi olakšali korištenje vlastitih i aplikacija trećih strana. To je u biti rješenje za upravljanje licencama i korištenjem aplikacija, a pogodno je za velike tvrtke. Manje tvrtke koje nemaju posvećene timove ljudi odgovornih za upravljanje aplikacijama mogu staviti aplikaciju u repozitorij, odabrati korisnička imena iz baze podataka i učiniti te aplikacije dostupnima bez potrebe da se sjećaju gdje. licencni ključ i koliko je licenci dostupno. All-Access i AppWave preglednik dizajnirani su za upravljanje verzijama i kontrolom pristupa.

K.R.: Tržište je toliko raznoliko, a korisnici toliko različiti da je nemoguće pokriti sve potrebe jednim rješenjem. Zato težimo raznolikim rješenjima pakiranja. Puno smo radili na unificiranju metoda licenciranja, upravljanja licencama i instalacije proizvoda. Ova linija rješenja uključuje alate za upravljanje licencama i opskrbom ne samo za Embarcadero proizvode, već i za sve druge proizvode, uključujući interni razvoj tvrtke.

Rad na pakiranju razvojnih alata u učinkovite komplete za korisnike još je u tijeku. Imamo All-Access - superset koji objedinjuje sve Embarcadero proizvode. Ako kupac kupi All-Access Platinum, dobiva sve alate koji se nalaze u Embarcaderu. Ali ponekad se ovaj skup pokaže suvišnim; na primjer, za stručnjake za baze podataka napravili smo dva druga seta - DB Power Studio Developer Edition i DB Power Studio DBA Edition. Razlika između njih je u tome što za programera nudimo RapidSQL - alat za razvoj poslužiteljskog koda, a za administratora je ugrađen DBArtizan - alat za administraciju baze podataka, širi proizvod od RapidSQL-a. Za profesionalce imamo sljedeće All-Access pakete: paket koji uključuje sve proizvode, DB Power Studio za programere, DB Power Studio za administratore, ER Studio Enterprise Edition za arhitekte i sve koji se bave modeliranjem. Postoje kombinacije za razvoj aplikacija i za administratore. Delphi je razvojni alat i ima smisla dodati mu SQL razvojne i optimizacijske alate. Konačno, DB Change Manager je logičan alat za upravljanje složenošću promjena koje se događaju u bazama podataka tijekom njihovog životnog ciklusa.

Stoga je All-Access glava velike obitelji različitih setova proizvoda.

KP: Ako nije tajna, tko u Rusiji koristi All-Access?

K.R.: Imamo klijente koji su kupili All-Access temeljen na Delphiju. Mnogi od njih stvaraju složene sustave klijent-poslužitelj SQL poslužitelj i Oracle, i odmah su im se svidjeli naši alati za baze podataka na više platformi. Imamo tvrtku klijenta koja koristi Delphi od prve verzije, a prije godinu dana prešli su s korištenja Delphija na All-Access paket. Dva alata koja zajamčeno koriste svi programeri u ovoj tvrtki su Delphi i DBArtisan. A tu su i korisnici koji su u All-Access došli sa strane baze podataka. Njihov glavni zadatak je administriranje baza podataka, ali ponekad razvijaju i aplikacije. Klijenti koji koriste All-Access uključuju medijske tvrtke, inženjerske tvrtke i druge industrije.

Zasebno bih se želio usredotočiti na male tvrtke. Vrlo često u malim timovima programer radi sve, a takva tvrtka ponekad kupuje velike All-Access setove proizvoda za jednog ili dva programera. U velikim timovima se ne potiče da programer obavlja i npr. ulogu administratora baze podataka, pa su tamo obično popularni mali setovi proizvoda, no u malim tvrtkama takva je kombinacija odgovornosti sasvim prihvatljiva.

Delphi Architect jako je tržišni proizvod koji uključuje alate za modeliranje i programiranje. Broj prodanih kopija je, doduše, manji od Delphi Enterprise verzije, ali je također velik. Napominjem da smo 2010. godine bili najbolja zemlja po količini prodaje, unatoč tome što su sve zemlje imale krizu. Ovaj rast nije bio povezan toliko s ekonomskim čimbenicima, već s činjenicom da se verzija RAD Studio XE, objavljena krajem 2009., pokazala vrlo popularnom. A za sada očekujemo daljnji rast prodaje.

Poduzeli smo još jedan razuman korak, koji je iznimno popularan u Rusiji. Stupanj legalizacije različite verzije naši proizvodi su različiti: što je viša verzija, to je više legalizirana, jer ranije softver nije tako aktivno kupio. Počevši od RAD Studio XE, licenca pokriva verzije 2010, 2009, 2007, pa čak i Delphi 7, široko korišten proizvod.

Danas su programeri suočeni s činjenicom da imaju i nove projekte i projekte za podršku. Velik broj projekata prenesen je s ranije verzije Delphi na verziju 7 i ostaje unutar ove verzije, nastavljajući raditi na relativno malim resursima. Nitko ih ne prebacuje na novije verzije, ali se održavaju u održivom stanju. A sada vam omogućujemo da dobijete i RAD Studio XE i Delphi 7 za malo novca (manje od cijene licence za Delphi 7) - to jest, legaliziramo programera i za implementaciju novih projekata i za projekte podrške.

KP: Kako ocjenjujete trenutno stanje zajednice Embarcadero?

DI.: Ova zajednica je velika i vrlo zahtjevna. Sve im treba odmah – oni su programeri. Ali ponekad je potrebno mnogo vremena da se nešto učini kako treba.

Prije nekoliko godina preuzeli smo arhitekturu Windows komponenti i stavili je na Linux stolna računala. Sada vidimo da to nije bila prava odluka. Točno rješenje- stvoriti platformu za aplikacije. Aplikacije čak i na različitim platformama imaju izbornike, prozore, grafiku, pristup mreži i pristup uređaju. Različite platforme mogu imati različiti modeli kontrola protoka ili rukovanje iznimkama, ali u kodu aplikacije vidimo iste blokove pokušaja. Naš je posao programerima olakšati izradu poslovnih aplikacija i njihovo kompajliranje za platforme na kojima se namjeravaju koristiti, bez obzira na to kako je strukturiran skup instrukcija odgovarajućih procesora i koje su druge značajke tih platformi. A FireMonkey je upravo ono što trebate da riješite ovaj problem.

KP: Ako tvrtka napravi novi uređaj i želi da ga podržava FireMonkey, hoće li to biti moguće?

DI.: S novom generacijom kompilatora, koji će imati front-end neovisan o platformi i back-end ovisan o platformi, to će biti sasvim moguće. U međuvremenu, za svaki operacijski sustav izrađujemo kompajler i biblioteku vremena izvođenja od nule.

Svaki moderni novi uređaj obično ima grafičko korisničko sučelje (mnogi od njih imaju dvojezgreni procesor i GPU) i standardni SDK-ovi za programere. To olakšava stvaranje podrške za uređaje u FireMonkeyju. Ako novi uređaj ima samo biblioteke za dvodimenzionalnu grafiku kao što je Quartz, moći ćemo podržati takav uređaj u FireMonkeyju, ali to će trajati otprilike nekoliko mjeseci. Međutim, mnogo ovisi o platformi: ne podržavaju sve platforme sve značajke, na primjer, iOS nema izbornike i dijaloške okvire i nećete moći postaviti odgovarajuće komponente na obrasce takvih aplikacija.

KP: Je li se nešto promijenilo u politici rada s partnerima? Što se radi na povećanju udjela korisnika vaših proizvoda? Što se radi u Rusiji?

DI.: Naš partnerski ekosustav je širok - postoje stotine proizvođača alata i komponenti koji se ne nalaze u našim proizvodima, a imamo program tehnološkog partnerstva. Stoga je programerima dostupan širok raspon komponenti, tehnologija i alata. A rješenja koja stvaraju za svoje klijente bolja su nego da koriste samo naše proizvode. A za prodaju imamo urede u mnogim zemljama, preprodavače i distributere.

K.R.: Nije nam bitan broj partnera, već kvaliteta rada svakog pojedinog partnera. Za sada se želimo usredotočiti na blisku suradnju s postojećim partnerima, iako skupina partnera ostaje otvorena. Imamo mnogo partnera i moramo im pomoći u tehnološkom smislu. Radimo s programerima i oni znaju što žele i znaju što je dostupno na tržištu, a sposobnosti partnera moraju biti usklađene s tim.

Imamo poslovne partnere koji su ozbiljno uložili u Embarcadero kao poslovnu liniju - imaju obučene stručnjake koji plasiraju naše proizvode, predane zaposlenike odgovorne za ovu liniju i prate što se događa s našim proizvodima, cjenikom, marketingom. Naravno, uspješniji su u prodaji naših proizvoda od tvrtki koje povremeno prodaju naše proizvode.

KP: Davide, Kirill, hvala vam puno na zanimljivom intervjuu. Dopustite mi da u ime naše publikacije i naših čitatelja poželim vašoj tvrtki daljnji uspjeh u stvaranju vaših nevjerojatnih alata koji su programerima toliko potrebni!

Pitanja postavila Natalia Elmanova

Što je FireMonkey?


FireMonkey (FMX) je okvir za višeplatformski razvoj za stolne sustave (Windows, Mac OS + poslužiteljska podrška na Linuxu planirana je u bliskoj budućnosti) i mobilne (iOS i Android) koristeći Delphi/C++ jezik.

Osobitosti:

  • jedinstvena baza koda za sve platforme;

  • svaka kontrola (vizualna komponenta) može biti spremnik (roditelj) za druge komponente;

  • prisutnost vrlo naprednog relativnog rasporeda (20 vrsta) komponenti na obrascu;

  • LiveBinding vam omogućuje povezivanje bilo koje vrste podataka ili informacija s bilo kojim korisničkim sučeljem ili grafičkim objektima;

  • prisutnost stilova oblika/komponenti;

  • Multi-Device Preview omogućuje prilagodbu vizualne prezentacije za svaku platformu;

  • FireUI Live Preview - prikazuje izgled aplikacije na stvarnim uređajima u stvarnom vremenu.

Mogućnosti:

  • korištenje izvornog API-ja svake platforme, kao i mogućnost pozivanja izvornih knjižnica trećih strana;

  • interakcija sa svim senzorima (GPS, akcelerometar, kompas, Bluetooth (uključujući LE) i drugi);

  • podrška za push obavijesti, IoT;

  • podrška za asinkrone HTTP zahtjeve;

  • podrška za većinu baza podataka (MsSQL, MySql, Oracle, PostgreSQL, MongoDB itd.);

  • rad s Cloud Service (Amazon, Azure);

  • Podrška za Android uslugu.

Nedostaci (trenutno):

  • nedostatak podrške za prilagodbu izvornih klasa;

  • implementacija specifičnih stvari je ili nemoguća (widgeti, ekstenzije (iOS) itd.) ili je potreban ples s tamburicom (pozadinski servis, emitirana poruka itd.);

  • Prilagodba Splash zaslona (početnog zaslona) je, blago rečeno, manjkava;

  • FMX kontrole koriste vlastito renderiranje (vizualizacija, crtež), koje je čisto vizualno slično izvornom;

  • korištenje izvornih kontrola uključuje velike pokrete tijela;

  • kada ima puno gniježđenja komponenti, događaju se nevjerojatne stvari: aplikacija se ruši na raznim mjestima, gubi fokus, smrzava se itd.;

  • informativni sadržaj otklanjanja pogrešaka aplikacije na mobilnim platformama je nula;

  • opisi grešaka na mobilnim platformama svedeni su na beskorisni “Error 0x00000X”;

  • vrijeme kompilacije želi biti najbolje za srednje i velike projekte;

  • potreba za korištenjem datoteke za usavršavanje mobilnih aplikacija za svaku platformu;

  • nema podrške za Intel Atom arhitekturu;

  • neadekvatna cijena u odnosu na konkurenciju.

Prednosti:

  • vrlo aktivan razvoj i proizvoda i zajednice u zadnje vrijeme, podrška za sve više novih tehnologija;

  • prisutnost ogromnog broja besplatnih i komercijalnih komponenti;

  • Brzina aplikacije vrlo je bliska izvornoj;

  • vrlo napredan vizualni uređivač i okruženje općenito, prisutnost stilova;

  • mogućnost testiranja aplikacije na Win-u, a tek potom implementacije na uređaje, što uvelike ubrzava razvoj;

  • promijenite način/platformu jednim pokretom zgloba;

  • PAServer pruža jednostavnu interakciju s MacO-ima pri razvoju za Apple OS;

  • Podrška za 3D grafiku izvan kutije.

Zaključno, želim reći da je u proteklih nekoliko godina FireMonkey izrastao u profesionalni alat za višeplatformski razvoj poslovnih aplikacija i više. Brojni nedostaci postupno se rješavaju i sa svakim izdanjem proizvod postaje sve moderniji i samodostatniji, a nestaje i postojeći skepticizam prema samom jeziku Delphi povezan s višegodišnjom stagnacijom. Pisanje novih projekata u FireMonkeyu je "sigurno" i obećavajuće.



reci prijateljima