mga bahagi ng firemonkey. Delphi, FireMonkey, All-Access at iba pang magagandang sorpresa. Mga bagay na dapat isaalang-alang

Ang FireMonkey ay ang pangunahing teknolohiya ng "bagong Delphi". Mangyaring sabihin sa amin ang tungkol sa mga layunin, kakayahan at teknikal na aspeto ng panimulang bagong library na ito. Sa paglipas ng panahon, sa pagbabalik-tanaw, gaano kahirap at katuwiran ang iyong pagtanggi na palawakin pa ang napakasikat na VCL?

Napili ito bilang pangunahing direksyon para sa pagpapaunlad ng teknolohiya ng Delphi upang makamit ang isang tiyak na layunin - pag-unlad ng multi-platform mula sa isang kapaligiran, batay sa iisang source code base, nang hindi nangangailangan ng radikal na muling pagsasanay ng mga developer. Sa loob ng balangkas ng ngayon ay klasiko at sobrang sikat na VCL, ito ay imposible na ang koneksyon nito sa WinAPI ay masyadong malapit, maaaring sabihin ng isa, "sa genetic level."

Ang mga bahagi ng VCL ay walang "abstract" na layer sa pagitan ng functional level sa mga tuntunin ng interface at ang mga mekanismo para sa pagpapakita ng mga ito. Antas ng pag-andar— kung paano ito kumikilos bilang isang kontrol, kung anong mga kaganapan ang reaksyon nito, kung anong uri ng pakikipag-ugnayan ng user ang ibinibigay nito. Display— pagtawag sa mga pamamaraan ng visualization na nakatuon sa platform bilang isang tiyak na imahe na nabuo ng mga raster object at vector primitives. Una nang ipinatupad ng FireMonkey ang prinsipyo ng mahigpit na paghahati ng kontrol sa dalawang bahagi: "behavioral" at "visual".


Vsevolod Leonov, Embarcadero Technologies

Ang una sa pangkalahatan ay uulitin hindi kahit ang mga pangunahing kaalaman ng VCL, ngunit ang kakanyahan ng object-oriented na programming. Ang isang bahagi ay isang klase; Ang klase ng isang bahagi ay maluwag na nauugnay sa kung paano ito nai-render.

Ang visual na "larawan" ay nabuo nang pabago-bago; Ang imahe o "estilo" sa FireMonkey ay na-load sa bahagi kapag nagsimula ang application. Mayroon kaming ilang uri ng functional frame para sa bahagi, at ang "balat" o "cladding" ay maaaring mabago, ngunit bakit? Ito ay upang ang mga application ng FireMonkey ay magmukhang tunay sa anumang platform - Windows 7, Windows 8, Mac OS, iOS at, sa malapit na hinaharap, Android. Ito ay isang bagay na hindi maibigay ng tradisyonal na monolitikong istruktura ng klase ng VCL.

Dito, ang teknolohikal na diskarte ay gumaganap ng isang espesyal na papel. Sa prinsipyo, maaari mong kunin ang library ng VCL at "palaman ito" gamit ang WinAPI at lahat ng iba pang posibleng tawag sa platform. Magagawa pa rin ito sa isang napakalimitadong subset ng mga bahagi, ngunit ang VCL ay naglalaman ng ilang daang bahagi, kaya ang pamamaraang ito ay maaaring "patayin" lamang ang VCL. Napagpasyahan na huwag hawakan ang VCL, ngunit upang bumuo ng mga bagong kakayahan sa isang bagong platform - FireMonkey. Ang teknolohiyang ito ay may isang tiyak na teknikal na kagandahan - sa oras ng pag-assemble ng proyekto para sa isang partikular na platform, ang Delphi IDE ay nag-uugnay sa kinakailangang compiler, at ang mga bahagi ng interface ay tumatanggap ng isang istilo ng platform.

Para sa gumagamit, ito ay isang pag-click ng mouse at ang parehong source code para sa Delphi, ito ay maraming taon ng pagsusumikap ng mga developer upang lumikha ng tulad ng isang multi-platform na library.

Nang maging malinaw na ang FireMonkey ay ipapakilala bilang isang hiwalay na bagong platform, ang tamang diskarte sa magkakasamang buhay ay kailangang piliin: Hindi nais ni Embarcadero na negatibong maapektuhan ang mga user ng VCL sa anumang paraan. Samakatuwid, pinili namin ang sumusunod na plano: Ang VCL ay nananatiling ideologically at architecturally stable upang matiyak ang pinakamataas na posibleng compatibility, na ginagawang mas madali ang paglipat ng mga proyekto sa mga modernong bersyon. Ang pagbuo ng FireMonkey ay susundan ng natural at parallel na landas, nang walang pagsasaalang-alang sa VCL.

Ang mahinang punto ng solusyon na ito ay ang medyo may problemang paglipat mula sa VCL patungo sa FireMonkey sa loob ng parehong proyekto. Ngunit para sa isang bagong proyekto, maaaring piliin ng developer ang FireMonkey para matiyak ang multi-platform na katangian ng kanilang resultang application. Pagkatapos ng pagpapalabas ng XE4 na may suporta sa iOS, maaari na nating pag-usapan ang malinaw na mapagkumpitensyang mga bentahe ng Delphi para sa pagsisimula ng mobile development sa isang corporate environment, na tataas pagkatapos ng pagpapatupad ng nakaplanong suporta sa Android.

Samakatuwid, walang malinaw na "pagtanggi" mula sa pagbuo ng VCL bilang tulad. Sa mga bagong bersyon, bubuo din ang bahagi ng VCL ng Delphi. Kabilang dito ang 64-bit na suporta, ang pagpapakilala ng pag-istilo para sa mga visual na bahagi, ang pagpapatupad ng isang mekanismo para sa nababaluktot na mga dynamic na koneksyon o "binding," at ang pagsasama ng FireDAC library para sa pagtatrabaho sa mga database sa mga proyekto ng VCL. Kaya lang, kumpara sa higanteng qualitative leap na ginawa ng FireMonkey, ang pag-unlad sa VCL ay tila walang kinang. Ngunit, anuman ang mangyari, ang VCL ay isang mahalagang bahagi ng Delphi at mananatili ito sa maraming taon na darating. Bagama't ang ebolusyon ng mga platform at ang kasalukuyang kalagayan sa larangan ng OS para sa mga desktop system at mga mobile device ay tulad na ang hinaharap ay malinaw na pag-aari ng FireMonkey.

Sa panayam na napag-usapan na natin ang suporta sa iOS, sabihin natin sa aming mga mambabasa ang tungkol sa suporta para sa iba pang pinakabagong teknolohiya mula sa pinakabagong RAD Studio XE4, halimbawa, tulad ng Windows 8 at WinRT, 64-bit system, MacOS at iba pa. Maaari mo bang ilista kung ano pa ang maaari mong ialok sa modernong programmer na pinalayaw ng mga inobasyon?

Malamang, ang isang modernong programmer ay hindi "nasira" ng mga pagbabago. Para sa malalaking proyekto, ang anumang "makabagong ideya" ay kadalasang nagreresulta sa napakalaking dami ng trabaho.

Halimbawa, ang lahat ay naghintay ng mahabang panahon, marami ang agad na nagmadali upang ilipat ang kanilang mga code sa bagong platform. Ngunit lumalabas na kahit na ang napaka-propesyonal na mga koponan ay hindi handa para dito. Ang pag-compile ng 64-bit code ay hindi nangangahulugang gumagana. Ang "mga kasalanan ng kabataan" ay nagsimulang lumitaw, halimbawa, ang paggamit ng mga tagubilin na ipinapalagay na 4-byte ang laki ng address. Kakulangan ng kultura ng pagsubok, kasama ng teknolohikal na hindi kahandaan na ipatupad ang prosesong ito sa maikling panahon.

At dito - kung mas malaki ang proyekto, sinusukat, sabihin, sa bilang ng mga linya ng source code, mas maingat at balanseng mga programmer ang may iba't ibang uri ng mga pagbabago mula sa hitsura ng isang "button" sa interface hanggang sa "syntactic sugar" sa compiler.

Ang isa sa mga "problemadong" tagumpay na ito ay ang paglabas ng Windows 8. Sa personal, bilang isang gumagamit ng PC at isang modernong espesyalista sa IT, natutuwa ako sa Windows 8. Ngunit para sa mga developer na pinadalhan ng isang batch ng mga computer na nagpapatakbo ng Windows 8 na may mga pagtutukoy para sa pagbuo sa ilalim ng bagong OS bilang isang load, nangangahulugan ito ng ilang mga paghihirap.

Sinubukan naming magbigay ng suporta sa pag-unlad para sa bagong interface ng OS na ito nang kumportable at walang sakit hangga't maaari. Samakatuwid, ang mga espesyal na istilo ay ipinakilala para sa parehong VCL at FireMonkey, at ang programmer ay maaaring muling buuin ang interface ng application o lumikha ng isang bagong application na hindi makikilala mula sa "katutubong" isa para sa Windows 8 sa hitsura. Siyempre, may pangangailangan para sa "katutubong" suporta para sa Windows 8 sa pamamagitan ng WinRT. Ngunit dito pumapasok ang pag-prioritize ng mga layunin sa modernong mga kondisyon. Ang Mac OS, iOS, Android sa malapit na hinaharap ay hindi pa nagpapahintulot sa amin na pag-usapan ang tungkol sa buong suporta para sa WinRT sa malapit na hinaharap.

Ang madiskarteng layunin ni Embarcadero, siyempre, ay multi-platform. Ang paglabas ng RAD Studio XE4 ay susi, pangunahin dahil sa suporta nito para sa iOS. Ang isang umiiral nang programmer na gumagamit ng VCL ay maaaring magsimulang bumuo para sa iOS sa loob ng ilang oras. Kahit na ang isang simpleng mobile application ay maaaring agad na mabago sa isang malakas na proyekto na gumagana sa loob ng umiiral na imprastraktura. Huwag isipin na ito ay isang bagong compiler lamang para sa FireMonkey at isang bagong istilo upang tumugma sa interface ng iOS.

Kabilang dito ang isang bagong visual designer, built-in na suporta para sa iba't ibang form factor, data access library, kabilang ang bagong FireDAC, at LiveBindings na teknolohiya para sa flexible at dynamic na pag-link sa corporate data. Ang lahat ng mga pagbabagong ito ay dumating nang sabay-sabay - para sa Windows, Mac OS, at iOS. Ang operating system ng Mac OS ay hindi masyadong mabilis na umuunlad, kaya walang mga problema tulad ng paglipat mula sa Windows 7 patungo sa Windows 8. Ngunit lumitaw ang mga Retina display, at nangangailangan ito ng espesyal na atensyon. Ngayon ang anumang MacOS application na nilikha sa Delphi XE4 ay awtomatikong may kasamang dalawang estilo - "normal" at "high definition".

yun. ang parehong application ay maaaring magkaroon ng parehong mataas na kalidad na "katutubong" interface sa anumang Apple desktop computer.

Ayaw ng Embarcadero na "sorpresa," "paghanga," o kahit na "aliwin" ang mga developer sa mga bagong makabagong release nito. Sa halip, sa kabaligtaran, ang IT sphere ay puno na ng iba't ibang sorpresa: mga bagong device, mga bagong platform, mga bagong user, ang kanilang mga bagong pangangailangan, mga bagong senaryo ng pakikipag-ugnayan. Magdagdag ng mga bagong teknolohiya sa pagpapaunlad ng software dito, at ang mga programmer ay hindi magkakaroon ng oras upang lumikha ng mga bagong system at mga umiiral na - ang gagawin lang nila ay lumipat mula sa isang kapaligiran patungo sa isa pa, mula sa isang lumang library patungo sa isang bago, mula sa isang wika patungo sa isa pa.

Ngunit hindi namin ipinapahayag ang pagtanggi sa lahat ng bago. Gusto lang naming matiyak ang pagpapatuloy ng lahat - code, interface, proyekto, kahit na mga propesyonal na kasanayan kapag may mga bagong platform at device na lumitaw. Maaari mong sabihin na nilalabanan namin ang hindi malusog na konserbatismo tungkol sa mga bagong platform sa pamamagitan ng malusog na konserbatismo sa mga tool sa pag-unlad. Huwag asahan ang mga kakaibang produkto, hindi karaniwang programming language, o kakaibang development tool mula sa Embarcadero.

Sa amin ay palagi kang makakahanap ng visual development, mga klasikal na wika, "katutubong" code, at hayaan ang mga target na platform para sa iyong mga application, na nilikha sa parehong napatunayang klasikal na paraan, na maging bago.

TRippleEffect class para sa paglikha ng isang epekto na naglalapat ng wave ripples sa texture ng mga visual na bagay.

Ang gitna ng ripple ay tinukoy sa property Gitna. Maaaring i-customize ang iba pang aspeto ng ripple gamit ang mga katangian Amplitude (Amplitude), AspectRatio , At Phase (Phase). Ang bilang ng mga ripple wave ay tinutukoy ng property Dalas

(Dalas). Ang sumusunod na talahanayan ay nagpapakita ng mga resulta ng impluwensya TRippleEffect Ang sumusunod na talahanayan ay nagpapakita ng mga resulta ng impluwensya sa isang larawang PNG na inilagay sa form (gamit ang ). Ang gitna ng ripple ay nasa gitna ng imahe. Iba pang mga ari-arian ay ginagamit kasama ang kanilang mga default na halaga ( = 0,1, (Amplitude), = 1,5, Amplitude = 70, , At = 0).

Dalas

Sa tutorial na ito ay gagamit ka ng ilang pangunahing epekto ng imahe sa application na FireMonkey.

Hakbang 1: Ilapat ang epekto sa larawan.

    Sa FireMonkey, ang paglalapat ng epekto ng imahe sa isang imahe ay isang simpleng proseso. Lumikha lamang ng isang bahagi na maaaring maglaman ng isang imahe at pagkatapos ay ilapat ang isa sa mga epekto ng imahe. Gumawa ng bagong FireMonkey application ().

    File> Bago> FireMonkey Desktop Application> HD FireMonkey Application

Ilagay ang bahagi sa form.

Piliin ang bahagi sa toolbar.

    Ilagay ang TImage sa form sa designer. Maaari mong makita na ang bahagi ay hindi magkasya sa gitna ng taga-disenyo ng form. Tulad ng ipinapakita sa figure, gusto mong ang laki ng lugar ng larawan ay maging kasing laki hangga't maaari. Upang gawin ito, piliin ang bahagi sa form ng disenyo, pagkatapos ay baguhin ang mga katangian I-align V alClient

    sa Object Inspector upang ang laki ng bahagi ay maging kapareho ng laki ng kliyente ng lugar ng form. Piliin ang larawan kung saan mo gustong ilapat ang epekto. Iniimbak ng component ang larawan sa property Bitmap . Pumili ng ari-arian Bitmap sa object inspector, at gamit I-edit...

  1. para pumili ng larawan. TRippleEffect.

Ngayon ay maaari kang pumili ng isang epekto para sa larawan. Mula sa palette ng Tools, piliin Ngayon RippleEffect ipinapakita sa bintana.

Istruktura Upang maglapat ng epekto, dapat itong tukuyin bilang isang anak ng isa pang bahagi. Sa kasong ito, RippleEffect1 dapat tukuyin bilang isang bata Larawan1 Upang maglapat ng epekto, dapat itong tukuyin bilang isang anak ng isa pang bahagi. Sa kasong ito,. Upang gawin ito, i-drag dapat tukuyin bilang isang bata at ilagay ito sa

  1. sa panel ng istraktura. Ngayon Ngayon ay makikita mo na

  1. gumagana na sa Form Designer. (Phase). Ang bilang ng mga ripple wave ay tinutukoy ng property Baguhin ang ari-arian 20 .

sa

    Hakbang 2: Ilapat ang animation effect sa RippleEffect. Ngayon I-highlight sa panel.

    Istruktura , At Pumili ng property sa Object Inspector at patakbuhin ang command Lumikha ng Bagong TFloatAnimation

mula sa drop down na menu. Siguraduhin mo FloatAnimation1 Upang maglapat ng epekto, dapat itong tukuyin bilang isang anak ng isa pang bahagi. Sa kasong ito,.

    tinukoy bilang isang elemento ng bata Siguraduhin mo Baguhin ang mga katangian

At sa wakas, magdagdag tayo ng isang pamamaraan ng kaganapan OnMouseMove Upang .

Inilabas noong Setyembre noong nakaraang taon, naglalaman ang Delphi XE2 ng record na bilang ng mga inobasyon.
Ang mga maikling pangkalahatang-ideya ng mga kakayahan ng Delphi XE2 ay nai-publish na sa Habré. Ngunit, malinaw naman, ang pinakakapansin-pansing pagbabago ay ang FireMonkey platform, at dito nais kong bigyang pansin ito ng kaunti.
Gumawa ako ng isang maliit na seleksyon ng mga link sa mga materyales na, umaasa ako, ay makakatulong sa iyo na makakuha ng higit pa o hindi gaanong sapat na ideya ng platform na ito. Ngunit una, para sa mga hindi pa nakakaalam, sasabihin ko sa inyo kung ano ang FireMonkey.
Inilalagay ng Embarcadero Technologies ang FireMonkey bilang isang platform para sa paglikha ng mga rich application ng negosyo para sa Windows, Mac at iOS. Bukod dito, ang platform na ito ay katutubong sa bawat OS, i.e. Kapag nagpapatakbo ng isang application na nilikha gamit ang FireMonkey, walang karagdagang mga add-on ang ginagamit.
Direktang nagli-link ang FireMonkey sa isang native (mula sa pananaw ng OS) graphics library gaya ng OpenGL o DirectX. Kaya, ang pinakamahusay na solusyon mula sa isang punto ng GPU ay iminungkahi.
Ang pangunahing bahagi ng arkitektura ng FireMonkey ay isang malakas na library ng mga klase (kabilang ang mga visual na bahagi).
Ang target na platform ay pinili sa panahon ng proseso ng compilation.
Sinusuportahan lamang ng unang bersyon ng FireMonkey ang Win32, Win64, MacOSX at iOS, ngunit plano ni Embarcadero na i-port ito sa ilang iba pang mga platform sa hinaharap.

Ano ang dapat mong isaalang-alang?

Bagama't ang platform ng FireMonkey ay nagbibigay ng malawak na tool para sa pagbuo ng mga 3D na application, hindi ito dapat ituring na isang game engine. Ang FireMonkey ay partikular na nakaposisyon bilang isang platform para sa pagbuo ng mga application ng negosyo.
Ang produkto ay kasalukuyang nasa mga unang yugto ng ebolusyon nito. At marami sa mga feature ng FireMonkey ang sumasailalim sa mga pagbabago, parehong qualitative at quantitative.

Umaasa ako na ang mga link sa ibaba ay makakatulong sa iyo na maunawaan ang mga pangunahing tampok ng bagong platform.
Opisyal na pahina ng produkto sa website ng Embarcadero (Russian)

Kabilang sa mga materyal sa wikang Ingles na nais kong i-highlight ang serye (Ingles)

Ano ang makikita?

Tulad ng para sa pinakabagong bersyon ng Delphi, mayroong higit pang materyal na video na nakatuon sa mga kakayahan ng produkto at kung paano gamitin ito kaysa dati. Parehong opisyal, mula sa Embarcadero, at mula sa mga independiyenteng developer. Mayroong maraming mga video tungkol sa FireMonkey sa YouTube, maaari mo lamang gamitin ang paghahanap. Kabilang sa kasaganaan ng materyal na ito, iha-highlight ko ang isang serye ng tatlong video mula sa Marco Cantu - RAD in Action landing page, kaya nagbibigay sa aking pananaliksik ng isang vector ng pagiging kapaki-pakinabang.

Sa konteksto ng blog na ito, ang proyektong ito ay pangunahing kawili-wili dahil ito ay ipinatupad sa FireMonkey at isang kamangha-manghang pagpapakita ng mga kakayahan ng platform na ito. At noong nakaraang linggo, isang pampublikong beta ng produkto ang inilabas. Sa ganitong paraan, ang mga mambabasa ng blog ay maaaring "makaramdam" ng isang bagay na talagang kumplikado para sa kanilang sarili. FireMonkey aplikasyon.

Ilang salita tungkol sa programa. Una sa lahat, dapat tandaan na ang kasalukuyang bersyon ng Sphere ay medyo naiiba ang posisyon. Oo, minsan nangyayari ito ...

Bago SphereLive Ito ay hindi lamang isa pang mensahero. Una sa lahat, ito ay isang tool na nagbibigay-daan sa iyo upang epektibong ayusin ang proseso ng edukasyon. Nagbibigay-daan ito para sa mga malalayong lektura, pribadong konsultasyon, indibidwal na mga aralin at iba pang katulad na aktibidad. Kasabay nito, nilagyan ito ng halos lahat ng kailangan para sa trabaho. Nagsisimula sa isang natatanging sistema ng paglilipat ng file at nagtatapos sa pinakamakapangyarihang subsystem ng pagsingil.

Sa yugtong ito, ang mga presyo para sa paggamit ng produkto ay medyo abot-kaya. Napapailalim sa isang limitadong bilang ng mga tagapakinig at isang maliit na halaga ng mga mapagkukunan, ang produkto ay maaaring gamitin nang libre.

Naturally, ginagamit ng Sphere ang pangunahing bentahe nito FireMonkey– cross-platform. Ang application ay kasalukuyang magagamit sa mga edisyon ng Windows at MacOS. Ang bersyon ng Android ay inaasahan anumang araw ngayon.

Gayunpaman, para sa akin, ang SphereLive ay kawili-wili, una sa lahat, bilang isang makabagong produkto na may isang buong hanay ng mga orihinal na solusyon. Minsan nasa level lang ito ng "... wow, paano mo nagawa iyon?" Sa pamamagitan ng paraan, ang isa sa mga developer ng Sphere ay aktibong nakikilahok sa mga talakayan sa forum na nakatuon sa FireMonkey. Ito mismo ay maaaring isang dahilan upang i-download ang application at talakayin ang mga teknikal na isyu nang direkta sa may-akda. Maniwala ka sa akin, mayroong isang bagay na makikita at isang bagay na matututunan.

TListView ay isa sa mga pangunahing bahagi para sa pagbuo ng isang mobile application interface sa FireMonkey. Ang bahaging ito ay hindi ang pinakamadaling gamitin; madalas itong nangangailangan ng malaking halaga ng code, ngunit nagbibigay ito sa developer ng makabuluhang kalayaan sa pagkilos. Siyempre, sa mga application ay maaari mo ring gamitin TListBox, kung saan ang lahat ay mas simple. Pero TListBox maaaring mabuti para sa pagpapakita ng isang nakapirming bilang ng mga tala, para sa pag-output ng data mula sa mga pinagmumulan ng data, dapat mong gamitin TListView.

Ang mga pangunahing pagkakaiba sa pagitan ng TListView at TListBox ay:

  1. TListBoxItem- kontrol, TListViewItem- Hindi
  2. SA TListBoxItem maaari kang magdagdag ng anumang mga kontrol gamit ang Magulang. SA TListVIewItem- Hindi.
  3. TListVIewItem nag-iimbak lamang ng data para ipakita
  4. TListVIewItem nagsasagawa ng pag-render ng nakaimbak na data mismo sa pamamagitan ng pamamaraan I-render
  5. Dahil sa aktwal na manu-manong pagguhit sa TListVIewItem, isang pagtaas sa bilis at mababang pagkonsumo ng memorya ay nakakamit (nag-iimbak lamang ng may-katuturang data)
  6. Upang lumikha ng iyong sariling bersyon TListViewItem, kailangan mong lumikha ng iyong sariling klase ng item, ipatupad ang kinakailangang data dito (halimbawa, oras) at lumikha ng in-place na editor para sa oras ng pag-edit, irehistro ito, atbp.

Ang katotohanan lamang ng pagtaas ng pagganap at pagbawas ng pagkonsumo ng memorya ay isang nakakahimok na argumento na pabor sa paggamit TListView. Pero may iba pa.

Sa marami Android mga application na kailangan kong obserbahan ang sumusunod na pagpapatupad ng mga listahan. Kapag nag-click ka sa isang elemento ng listahan (Item, kung mananatili ka sa napiling terminolohiya), isang partikular na aksyon ang gagawin. Karaniwan ang isang bagong form ay tinatawag upang i-edit ang data. Ngunit kapag pinindot mo nang matagal ang (Long Tap), isang ganap na kakaibang pagkilos ang gagawin. At ang mga kaganapang ito ay hindi nagsasalubong. Sa madaling salita, malinaw na nakikilala ng mga Android application ang pagitan ng isang "pagpindot nang matagal" at isang "normal". Bukod dito, wala sa mga kaganapang ito ang naputok kapag nag-i-scroll sa listahan. Ang isang magandang halimbawa ay isang listahan ng mga titik sa Yandex Mail.

Una sa lahat, nais kong batiin ang lahat ng mga mambabasa ng blog sa mga nakaraang bakasyon at hilingin sa kanila ang lahat ng pinakamahusay sa darating na taon.

Dahil sa maliwanag na mga pangyayari, hindi ako gumawa ng tradisyonal na ulat ng Bagong Taon, at hindi rin ako gumawa ng anumang mga plano para sa taon. Gayunpaman, ang buhay ay hindi tumitigil, ang trabaho ay nangyayari, at ang ilang mga kaganapan ay nangyayari sa mundo ng Delphi. Nangako akong mag-publish ng seleksyon ng mga napalampas na "balita mula sa mundo ng Delphi" sa mga pista opisyal ng Pasko sa malapit na hinaharap. Pansamantala, sasabihin ko sa iyo ang tungkol sa bagong device na binili ko.

Maaari mong mahanap ang mga katangian sa opisyal na website. At ang subjective na impression ay napaka-kaaya-aya. Kapansin-pansin ang katotohanan na ang aparato ay literal na puno ng pagmamay-ari na software mula sa tagagawa. At ang mga nagbebenta ay nakatanggap din ng isang kahanga-hangang hanay ng software bilang regalo. Ang smartphone ay medyo mabilis sa pagpapatakbo at ganap na binibigyang-katwiran ang gastos nito (mga $200). Siyanga pala, binili ko ang dati kong teleponong GSmart 1362 sa halos parehong pera 2 taon na ang nakakaraan. Ngunit, tulad ng malamang na nahulaan mo, ang pangunahing interes para sa akin ay kung paano sila gagana FireMonkey mga aplikasyon.

Bago ituloy ang kwento tungkol sa timer, dalawang balita.

Una, ang unang pag-update ng XE7 ay inilabas. Ayon sa tradisyon, magagamit ito sa mga rehistradong gumagamit. Makakahanap ka ng listahan ng mga naayos na bug. Nais kong makita kung paano kumilos ang application sa na-update na kapaligiran. Sa totoo lang, walang mga pagwawasto ang kailangang gawin, bagama't mayroon pa ring puwang para sa eksperimento.

Pangalawang balita. Ang mga espesyal na alok ng Embarcadero ay pinalawig hanggang sa katapusan ng taon:

Well, ngayon direkta sa paksa ng post. Karaniwan, ang natitira lang para sa amin ay subukang ilunsad ang nalikha nang application para sa Android. Upang gawin ito, ginagamit namin ang isinulat ko tungkol sa mga nakaraang post. Namely bago. Na-debug ko ang application na ito sa Nexus 7, naaayon ay nagdagdag ng representasyon ng Android 7″ Tablet. Ang disenyo ay kinailangang i-tweak lamang ng kaunti.

Malamang mga tamad lang ang hindi nagsulat ng sarili nilang timer. At sa konteksto ng pagsuporta sa pag-unlad para sa mga mobile platform, ang gawain ng pagsulat ng timer sa Delphi sa pangkalahatan ay maaaring ituring na isang gawain ng kulto. Kaya naisip ko, bakit hindi bilang isang halimbawa ng pag-unlad FireMonkey Hindi ma-parse ng application ang timer. Para sa Android, siyempre. Siyempre, ito ang magiging eksaktong pananaw ko sa gawain, na, kahit na hindi partikular na mahirap, ay mayroon pa ring sariling mga nuances. Marahil ay mayroon kang anumang mga komento o mungkahi, ito ay magiging mahusay na pag-usapan ang mga ito sa mga komento. Hindi ako isang dalubhasa sa larangan ng pagsusulat ng mga mobile application, kaya ang anumang komento na maaaring mayroon ka ay magiging mahalaga sa akin.

Kami ay bubuo ng isang timer, sa Ingles na pag-unawa sa terminong ito. Iyon ay, ang screen ay magpapakita ng isang dial at apat na mga pindutan - "Start", "Pause", "Stop" at "Cancel". Ang countdown ay nasa direksyong pasulong (ibig sabihin, tataas ang oras). Ang opsyon kung saan nakatakda ang oras at ang countdown ay nasa terminolohiya sa Ingles ay tinatawag na Stop Watch, baka susubukan kong ipatupad ito mamaya. Ang application na aming gagawin ay mas malapit sa functionality sa isang stopwatch.

Ang Delphi XE7 ay nagbibigay-daan sa amin na makabuluhang pasimplehin ang proseso ng pag-unlad, dahil sa katotohanan na maaari na kaming lumikha at mag-debug ng isang tunay na aplikasyon para sa Win32, at pagkatapos ay magdagdag lamang ng mga pagsusumite ng form para sa mga kinakailangang mobile device at, na may kaunting pagsasaayos, makakuha ng gumaganang mobile aplikasyon. Masyadong maganda para maging totoo? Siguro. Ngunit gusto kong subukan ang pahayag na ito sa pamamagitan ng pagpapatupad ng gawain.

Mas madalas akong tanungin sa aking mga kasamahan sa mga pribadong pag-uusap kung posible na bumuo ng mga mobile application sa FireMonkey o ito ba ay isang prototype sa halip na isang solusyon sa produksyon?

Sa tingin ko, ngayon masisiguro ko na kahit ang mga out-and-out skeptics.

Sinabi sa akin ng aking kaibigan sa dibdib at kasamahan na si Tagir Yumaguzin ang tungkol sa proyektong nakilahok niya noon pa man. Ngayon, kapag ang proyektong ito ay nasa pre-release na estado, napagpasyahan namin na ang paglalarawang ito ay magiging kawili-wili para sa komunidad ng Delphi. Sa esensya, ito ay talagang malaking proyekto na ipinatupad sa FM. Pinag-uusapan natin ang tungkol sa proyekto ng Sphere Live. Ang isang maliit na artikulo na nakatuon sa proyektong iyon ay nai-publish kamakailan sa Habrahabr.ru Alexey Glyzin, pinuno ng '' development department ay sumang-ayon na magsabi ng higit pa tungkol sa proyekto na isinasaalang-alang ang madla ng aking blog.

A.B.– Alexey, sa pangkalahatan, ano ang iyong proyekto?

A.G.: – Ang ideya ay hindi lumitaw nang sabay-sabay at kaagad. Bago ang proyektong 'Sphere', ang aming koponan ay nagtatrabaho sa proyekto kung saan ipinatupad ang mga teknolohiyang audio/video ng stream. Nang maglaon ay gumawa kami ng sarili naming software na nakapaghatid ng mga multimedia stream sa walang limitasyong dami ng mga user kasama ang feedback. Ngunit kailangan naming may kasamang feature sa pagsingil.
Ang aplikasyon ay kailangang sumunod sa ilang mga kinakailangan. Una, ang pinakamaraming pinasimple na organisasyon ng mga kumperensya o paghahatid sa mga kalahok kung saan ang halaga ay hindi namin mahulaan. Pangalawa, ang pinakamahalaga, ay bigyan ang aming mga kliyente ng pagkakataon na kumita gamit ang aming aplikasyon at upang mabawasan ang pagiging kumplikado ng system, ang dami ng mga instrumento na kailangang gamitin upang maabot ang layunin. Ang kadalian ng organisasyon ng mga kurso, webinar o isang konsultasyon lamang.

Isang maliit na tala para sa memorya tungkol sa FireDAC sa kasalukuyang bersyon Delphi XE6. Ngunit una, ilang mga salita tungkol sa kung saan hahanapin ang mga sagot sa mga tanong tungkol sa FireMonkey. Ang mga user na nagsasalita ng Russian ay nasa isang magandang posisyon dito.

Habang naghahanda para sa kaganapan sa Kharkov bilang bahagi ng RAD Studio XE5 World Tour, nakatagpo ako ng isang maliit na problema sa pakikipagtulungan sa SQLite sa pamamagitan ng paggamit FireDAC. Kung ang database na napunan sa isang Windows application ay ililipat kasama ang application sa Android, Ang mga Cyrillic string sa database ay hindi na nababasa (ang mga tandang pananong ay ipinapakita sa halip na mga titik). Gayunpaman, kung punan mo ang database nang direkta sa isang mobile device, ang mga character na Ruso ay nabasa nang tama. Ang data mula sa isang database na napunan sa isang third-party na application, o sa Delphi ang mga application na gumagamit ng iba pang bahagi ng pag-access ng data ay normal ding ipinakita. Nabigo ang pagpupulong na makahanap ng solusyon, at kinailangan kong banggitin ang isang sikat na Ukrainian na espesyalista sa football: "Alamin natin ito!"

Hindi tulad ng huli, nagawa kong harapin ang inilarawang problema. Bilang default kapag kumokonekta sa SQLite I-align FireDAC ANSI string format ay ginagamit.

Kung pipilitin mong mai-install ang Unicode, gagana ang lahat ayon sa nararapat. Ngunit mayroon ding hindi kanais-nais na sandali. Sa pamamagitan ng pagpapalit ng format ng string, kakailanganin mong muling likhain ang listahan ng mga field sa lahat ng set ng data, pati na rin muling ikonekta ang mga bahagi na responsable sa pagpapakita at pagpasok ng data. Samakatuwid, mas mahusay na alagaan kaagad ang pag-encode.

Sa mga nakaraang bahagi ng mini-series na ito, tinalakay namin ang paglikha ng isang database, istraktura nito at pagkonekta dito mula sa Delphi. Sa bahaging ito, ipinapanukala kong maunawaan ang pagpapakita ng data mula sa mga talahanayan, simula sa pinakasimpleng kaso.

Isang simpleng editor ng data ng talahanayan, karaniwang bahagi ng isang kumplikadong application. Karaniwan akong gumagamit ng isang hiwalay na form upang i-edit ang mga talahanayan. Magsimula tayo sa listahan ng grocery. Una sa lahat, kailangan nating lumikha ng DataSet upang ma-access ang data ng talahanayan. Sa aming kaso, medyo posible na gamitin ang bahagi TADTable. Ilagay natin ito sa DataModule at tukuyin ang halaga ng property Koneksyon. Sa editor ng ari-arian TableName lalabas ang isang listahan ng mga talahanayan kung saan pipili kami ng isang talahanayan Mga produkto. Kung ginawa mo nang tama ang lahat, maaari mong italaga ang property Aktibo halaga Tama. Mas mainam na agad na palitan ang pangalan ng sangkap (halimbawa, ADTProduct). Pagkatapos nito, karaniwang gumagawa ako ng set ng mga field para sa DataSet. Tawagan ang editor ng field (i-double-click ang bahagi) at piliin ang Magdagdag ng Lahat ng Mga Patlang mula sa menu ng konteksto.

Para sa mga hindi pa nakakaalam, ipapaliwanag ko ang kakanyahan ng operasyong ito. Dito kami lumikha ng isang paunang natukoy na hanay ng mga field ng DataSet. Kung hindi namin gagawin ito nang manu-mano sa mode ng disenyo, kung gayon, sa prinsipyo, walang masamang mangyayari. Sa RunTime ang set na ito ay awtomatikong malilikha. Ngunit mas gusto ko pa ring gawin ito nang manu-mano. Mayroong ilang mga dahilan para dito. Una, mas maginhawang pamahalaan ang isang hanay ng mga patlang, dahil maaari tayong lumikha ng mga karagdagang (kinakalkula o lookUp) na mga patlang sa ating sarili sa mode ng disenyo. Maaari rin nating baguhin ang mga katangian ng mga patlang mismo. At bilang karagdagan, nakakakuha kami ng pagkakataon na ma-access ang mga patlang sa code sa pamamagitan ng pangalan ng bahagi ng TField, na, sa palagay ko, ay lubos na nagpapadali sa pagsulat ng code.

Tulad ng kaso ng VCL application, ikokonekta namin ang bahagi sa set ng data TDataSource. Ang bahaging ito ay magbibigay ng koneksyon sa pagitan ng set ng data at ng mga visual na kontrol. Ang DataSet property ng component ay dapat sumangguni sa aming data set (ADTProduct). Sa ibaba ay nagbibigay ako ng isang fragment ng DFM file

object ADTProduct: TADTable IndexFieldNames = "ID" Connection = ADConnection UpdateOptions. UpdateTableName = "Product" TableName = "Product" Kaliwa = 64 Top = 192 object ADTProductID: TADAutoIncField FieldName = "ID" Origin = "ID" ProviderFlags = [ pfInWhere, pfInKey] ReadOnly = True end object ADTProductTitle: TStrmeFieldTitle: TStrmeFieldTitle Pinagmulan = "Pamagat" Sukat = 50 end object dsProduct: TDataSource DataSet = ADTProduct Kaliwa = 120 Top = 192 dulo

Pakitandaan ang isang kawili-wiling feature: ang DataModule form file ay hindi naka-save sa FMX format, tulad ng isang regular na FireMonkey form, ngunit sa DFM na format, tulad ng sa VCL.

Ang susunod na hakbang ay upang lumikha ng isang pamamaraan para sa pagbubukas ng isang set ng data, na kakailanganin naming tawagan sa RunTime kapag nagsimula ang programa. Gawin natin ito sa parehong DataModule. Ang code ng pamamaraan ay napaka-simple:

pamamaraan TDM. ConnectToDB ;

simulanADConnection. Buksan();

Mahigit tatlong taon na ang lumipas mula noong naging bahagi ng Embarcadero Technologies ang dibisyon ng CodeGear, na may pananagutan sa paglikha ng mga sikat na tool tulad ng Delphi, C++Builder at JBuilder, pati na rin ang Interbase database management system, na kilala sa mga tool nito. para sa disenyo at pangangasiwa ng database , at dalawang taon mula noong tinalakay namin sa mga pahina ng aming magazine kung ano ang aasahan sa pagbuo ng mga tool na napakapopular sa mga developer ng Russia. Hiniling namin kay David Intersimone, vice president ng developer relations at punong ebanghelista sa Embarcadero Technologies, at Kirill Rannev, pinuno ng tanggapan ng kinatawan ng Embarcadero Technologies, na pag-usapan kung ano ang bagong nagawa sa lugar na ito sa nakalipas na dalawang taon at kung ano ang aasahan sa sa malapit na hinaharap ng Russia. Para sa aming mga pinakabatang mambabasa, ipapaalam namin sa inyo na hindi ito ang unang panayam na ibinigay nina David at Kirill sa ComputerPress - ang aming pakikipagtulungan ay nagpapatuloy sa ikalawang dekada. At sa halos parehong bilang ng mga taon, pana-panahon kaming nag-publish ng mga review ng mga tool sa pamamahala ng database, kung saan binibigyang pansin ang mga produkto ng Embarcadero.

ComputerPress: David, ang iyong dibisyon ay naging bahagi ng Embarcadero sa loob ng tatlong taon. Dalawang taon na ang nakalipas, naging masigasig ka tungkol sa pagiging bahagi ng isang kumpanyang malapit sa iyong mga layunin at espiritu. May nagbago ba sa panahong ito? Ikaw ba at ang iyong mga kasamahan ay may parehong sigasig pa rin?

Oo, masigasig pa rin ako. Ang pangunahing pagbabago na naganap mula nang maging bahagi tayo ng kumpanyang Embarcadero ay ang malaking pamumuhunan na ginawa sa pagpapaunlad ng Delphi. Ang bilang ng mga taong nagtatrabaho sa mga tool sa pag-unlad ay tumaas, at ang bilang ng mga teknolohiya na maaari nating gawin o, kung kinakailangan, makuha, ay tumaas.

Ang paglabas ng RAD Studio XE 2, na pinaplano naming ipakita sa Moscow, ay ang pinakamalaking paglabas ng produktong ito na may napakalaking kakayahan at malaking bilang ng mga sinusuportahang platform mula noong unang bersyon ng Delphi, na nilikha para sa 16-bit na bersyon ng Windows at na isang makabagong produkto na pinagsama ang component approach at compilation sa machine code. Ngayon ay sinusuportahan namin ang pag-unlad hindi lamang para sa Windows, kundi pati na rin para sa Macintosh, hindi sa pagbanggit ng web development at paglikha ng mga application para sa mga mobile device, at ang mga application na ito para sa iba't ibang mga platform ay maaaring magkaroon ng isang solong code.

Ang bagong platform ng pag-unlad, ang FireMonkey, ay isang pakikipagtulungan sa pagitan ng Embarcadero at ng kamakailang nakuhang UlanUde-based na Russian firm na KSDev, isang tagagawa ng mga bahagi ng vector graphics, DirectX at OpenGL, mga teknolohiya ng graphics effect, at mga bahagi ng Delphi gamit ang isang GPU na may PixelShader 2.0. Nakuha namin ang kumpanyang KSDev (tingnan ang ksdev.ru) isang taon na ang nakalipas at nagsimulang magtulungan upang lumikha ng isang multi-platform development tool, kabilang ang isang platform para sa pagbuo ng mga application ng FireMonkey na may mga bahagi para sa Delphi at C++ Buider para sa paglikha ng mga interface ng gumagamit ng application, database. integration , pagpoproseso ng graphics gamit ang GPU at integration sa operating system.

Gamit ang FireMonkey, maaari kang lumikha ng isang application na tumatakbo sa CPU at GPU nang magkasama, at pagkatapos ay gumamit ng iba't ibang compiler at Run-time Libraries (RTLs) upang i-compile ito para sa Windows, Mac OS, o iOS. Sa halip na matutong magprograma gamit ang iba't ibang graphics library, pag-aaral ng mga API ng iba't ibang platform na may iba't ibang coordinate system at iba't ibang kakayahan, ang mga developer na gumagamit ng Delphi at C++Builder ay maaaring gumamit ng parehong component-based na diskarte, visually editing forms at pagkonekta sa mga database sa pamamagitan ng paglipat ang sangkap na may mouse. Ito ay isang panimula na bagong paraan ng paglikha ng mga application na tumatakbo sa iba't ibang mga platform, at ito ang hinaharap. Kung gusto mong magdagdag ng suporta para sa iba pang operating system at platform sa iyong application, hindi mo na kailangang idisenyo at i-develop itong muli - kailangan mo lang itong i-compile.

Gumagawa kami ng mga bagong compiler na bumubuo ng native code. Ngayon ay may mga Delphi compiler para sa 32- at 64-bit na bersyon ng Windows, 32-bit na bersyon ng Mac OS 10. At nagtatrabaho kami sa susunod na henerasyon ng Delphi at C++ Builder compiler, na magbibigay-daan sa amin na lumikha ng mataas na pagganap machine code para sa mga ito at sa iba pang mga platform gaya ng Android o Linux, at pinapanatili ang parehong disenyo, ang parehong mga bahagi, ang parehong code sa pamamagitan ng paggamit ng iba't ibang compiler at runtime library.

Tulad ng nakikita mo, mayroon akong sapat na mga dahilan para sa sigasig. At alam ng mga developer na nakakasalamuha ko sa buong mundo na si Embarcadero ay namumuhunan nang malaki sa Delphi at C++ Builder, pati na rin sa mga tool sa pag-develop ng PHP.

KP: Anong mga tagumpay ang nakamit mo sa pagsasama-sama ng mga tool ng dalawang kumpanya sa nakalipas na dalawang taon? Ano ang mga plano ni Embarcadero para sa hinaharap sa lugar na ito?

DI.: Noong panahong naging bahagi ng Embarcadero ang CodeGear, ang kumpanya ay may mga development team sa Toronto, Monterrey at Romania, kami ay nasa Scotts Valley at nasa Russia pa rin, sa St. Petersburg. Ang Embarcadero ay may mga tool para sa mga developer at database administrator, ang CodeGear ay may mga tool para sa pagbuo ng application, ngunit ang huli ay gumagamit din ng mga database. Ang pagsasama ng mga kumpanya ay isang kumbinasyon ng kadalubhasaan, kaalaman sa larangan ng mga database, pag-optimize ng code, kabilang ang server code. Ang kumbinasyon ng mga kumpanya ay humantong din sa paglikha ng isang bagong produkto, AppWave, isang espesyal na teknolohiya para sa paggawa ng isang regular na Windows application sa isang bagay na napakadaling gamitin (tulad ng mga application para sa iPhone o iba pang mga device). Pinapayagan ka ng AppWave na huwag mag-install ng isang application, ngunit piliin lamang ito at ilunsad ito mula sa inihandang application storage server (app), at ito ay isasagawa sa computer ng user nang hindi gumagawa ng mga pagbabago sa registry at system file system area nito. Sa pamamagitan ng paraan, ang AppWave application browser ay nakasulat sa Delphi. Ginagamit ng Embarcadero ang Dephi para sa sarili nitong pag-unlad at ang aming kadalubhasaan sa pagbuo ng application.

iPhone (iOS) application na ginawa ni
gamit ang platform ng FireMonkey

Maaari mo ring gamitin ang pagsasama-sama ng aming mga tool sa pag-unlad at DB Optimizer upang i-optimize ang mga query sa SQL kapag lumilikha ng mga application. Sa pamamagitan ng direktang pagpasa ng SQL code sa DB Optimizer, maaari mo itong i-profile, subukan ito, at ibalik ang isang na-optimize na bersyon pabalik sa iyong development environment. Ang kadalubhasaan sa database ng Embarcadero ay nagpabuti rin ng teknolohiya ng DataSnap. Salamat sa mga developer mula sa Toronto, nakakuha kami ng maraming kaalaman tungkol sa arkitektura ng mga multi-tier system at database. Mayroon na kaming magkasanib na kadalubhasaan sa paglikha ng server code at mga stored procedure sa parehong kumpanya. Mayroon kaming mga tool tulad ng RapidSQL at DB Change Manager, pati na rin ang mga development environment na nagpapasimple sa paggawa ng server code - halimbawa, ang Code Insight at Code Completion na teknolohiya ay nagpagana sa paglikha ng SQL insight at SQL Completion na teknolohiya. Ang aming karaniwang diskarte sa paglikha ng client at server code, ang aming karaniwang pilosopiya, ay nagpapahintulot sa amin na magbigay ng mga karaniwang tampok sa mga tool sa pamamahala ng database at mga tool sa pagbuo ng application.

Kirill Rannev: May importante akong gustong idagdag. Mula sa isang komersyal na pananaw, kung paano namin ihahatid ang aming mga tool ay napakahalaga. Halimbawa, kasama sa bagong release ng RAD Studio XE 2 Ultimate ang buong toolset ng DB Power Studio. Ito ay isang napakalakas na hanay ng mga tool, kabilang ang RapidSQL query development environment, ang DB Change Manager change management tool, at ang DB Optimizer query optimization tool, na nagbibigay-daan sa iyong magsagawa ng mahalagang bahagi ng proseso ng pagbuo at pag-deploy sa pamamagitan ng pamamahala ng mga pagbabago sa ang modelo ng data, database, code, at iba pa. Ito ay isang napakahusay at tamang kumbinasyon ng mga teknolohiya.

DI.: Ngunit kung kinakailangan, maaaring gamitin ng mga developer ang Subversion para sa source code versioning at DB Change Manager para sa metadata versioning. Maaari mong gamitin ang code profiling at DB Optimizer para i-optimize ang server code, RapidSQL para bumuo at mag-debug ng server code, at ang aming development environment para bumuo at mag-debug ng mga application. Ang kumbinasyong ito ng mga teknolohiya sa RAD Studio XE Ultimate Edition ay nagpapakita ng mga parallel sa pagitan ng database at mga modelo ng pagbuo ng application. Karamihan sa mga developer na bumubuo ng mga application ng negosyo gamit ang Delphi at C++ Builder ay gumagana sa mga database at nangangailangan ng mga tool na ito, at ang RAD Studio XE Ultimate Edition ay isang mahusay na kumbinasyon para sa mga naturang developer.

KP: Ang modernong gumagamit ay hindi na gumagamit ng Windows platform lamang. Gumagamit kami ng mga mobile device, iPhone, iPad, mga device batay sa Android platform. Nangangahulugan ito na ang mga developer ay dapat magsimulang mag-target ng iba't ibang mga platform nang walang makabuluhang pagtaas ng pamumuhunan sa pagsasanay - iyon ay, kailangan ng mga unibersal na tool. Malinaw, hindi makatotohanang asahan ang paglitaw ng mga unibersal na tool mula sa mga tagagawa ng platform, at sa bagay na ito maaari lamang tayong umasa sa mga independiyenteng tagagawa ng tool. Paano tayo makakaasa kay Embarcadero?

DI.: Marami pa tayong dapat gawin sa mga tuntunin ng suporta sa platform. Ngayon ay nagpapakilala kami ng suporta para sa iOS platform para sa iPhone at iPad, pagkatapos ay matatanggap ng mga smartphone na batay sa Android platform, Windows 7 at Blackberry ang aming suporta. Sa RAD Studio XE 2, nagsimula kami sa pagbuo ng FireMonkey platform para sa iOS at pagkatapos ay dadalhin ang FireMonkey sa iba pang mga platform.

Kasabay nito, mayroong malaking bilang ng mga operating system na naka-enable sa touch screen para sa mga telepono, tablet at desktop device, at patuloy kaming magdaragdag ng suporta para sa kanila. Mayroon ding boses, galaw, biometrics, accelerometers, kaya dapat nating ipagpatuloy ang pagpapalawak ng FireMonkey upang mapakinabangan ng lahat ng developer ang mga bagong platform. Halimbawa, ang Microsoft Kinect device ay idinisenyo para sa Xbox 360, at ngayon ay may kaukulang SDK (Software Development Kit) para sa Windows. At mayroon na kaming mga halimbawa kung saan ginagamit namin ang paggalaw upang kontrolin ang isang application sa halos parehong paraan na karaniwang ginagamit ang mouse o keyboard.

Kapag lumikha ka ng mga application na may maraming kumplikadong graphics, bumubuo ka ng isang buong mundo ng mga bagong interface ng gumagamit. Kung tayo ay nakikitungo sa Windows operating system, isinasama natin ang Windows API nito sa VCL library (Visual Component Library - isang library ng mga visual na bahagi na bahagi ng mga tool sa pag-develop ng Delphi at C++Builder. - Tandaan ed.), na, sa pamamagitan ng paraan, ay maaaring magamit pa. At sa FireMonkey nilalagay namin ang operating system API. Ngunit ngayon, mas malawak na ang pagmamanipula namin ng mga hugis at graphics. Maaari ka ring magdagdag ng mga pisikal na katangian sa espasyo para sa animation at mga espesyal na epekto. Bilang karagdagan, mayroong isang malaking bilang ng iba pang mga karagdagang kakayahan para sa paglikha ng mga interface ng gumagamit na aming ipapatupad sa susunod na ilang taon para sa iba't ibang mga platform, mobile at tablet device.

Kamakailan ay naglabas ang Microsoft ng mga detalye tungkol sa Windows 8, na ilalabas sa loob ng isang taon. Susuportahan namin ang mga inobasyong ito sa VCL library at sa FireMonkey platform. Ngunit ang Delphi ay isang tool sa pag-unlad na idinisenyo hindi lamang para sa Windows, kundi pati na rin para sa Macintosh, iPhone at iPad. Binubuo din namin ang aming mga produkto ng PHP, sinusuportahan ang jQuery Mobile, ginagamit ang iOS API upang bumuo ng mga mobile client application, at lumikha ng server-side na PHP application gamit ang mga wizard at tool upang bumuo ng client-side na JavaScript, HTML, at cascading style sheet. Maaari kaming lumikha ng mga pakete mula sa mga PHP application at client application na may native code para sa iPhone iOS, at ang naturang kliyente ay makikipag-ugnayan sa PHP server. At siya naman, ay makikipag-usap sa database server at sa mga serbisyo sa web - sa lahat ng kailangan para sa negosyo.

RadPHP XE2 development environment. Paglikha ng isang mobile web application
gamit ang mga bahagi ng jQuery Mobile para sa iPhone 3G

Sa madaling salita, plano naming palawakin ang mga kakayahan ng FireMonkey at VCL, kabilang ang suporta para sa mga mobile platform.

KP: Maaari mo bang sabihin sa amin ang higit pa tungkol sa platform ng FireMonkey?

DI.: Tulad ng nabanggit ko na, ang VCL library na nilikha para sa Windows ay patuloy na bubuo at pagbutihin. Ngunit ngayon, kung gusto mo ng tunay na pagbuo ng application ng negosyo, kailangan mong likhain ang mga ito para sa iba't ibang mga platform. Ito ay kung saan ang FireMonkey platform ay dinisenyo para sa. Sinusuportahan nito ang paglikha ng mga user interface na may mataas na resolution, 3D graphics na may mataas na pagganap, mataas na rate ng frame at, mahalaga, ginagamit ang graphics processor para dito.

Maaari mong gamitin ang gayong mga kakayahan kapag lumilikha ng mga pang-agham, engineering at mga aplikasyon sa negosyo. Ang mga naturang application ay maaaring kumonekta sa mga database gamit ang dbExpress na teknolohiya, gamit pa rin ang mga non-visual na bahagi na pamilyar sa mga developer, gaya ng ClientDataSet o DataSource, gumamit ng DataSnap technology, kumonekta sa anumang database, SOAP at REST server. Maaari kang lumikha ng mga kaakit-akit na kontrol, mga pindutan na may mga kahon, hindi pangkaraniwang mga talahanayan at iba pang mga elemento ng interface, pareho sa dalawa at tatlong dimensyon. Maaari mong i-load ang isang tapos na 3D na modelo sa app at ikonekta ito sa isang 2D na hugis kung saan maaari mo itong paikutin at tingnan mula sa iba't ibang anggulo. Maaari kang gumawa ng data cube o 3D business chart at i-rotate ito gamit ang iyong mouse, keyboard, o kahit isang Kinect device, o maaari kang pumasok sa loob ng cube at tingnan ang iba't ibang surface nito mula sa loob. At lahat ng ito ay maaaring gawin gamit ang isang high-speed GPU. Ang parehong application ay maaaring i-compile para sa isa pang platform, tulad ng Mac OS.

Isang application na naglalaman ng umiikot na data cube,
nakalagay sa gilid nito

O maaari kang lumikha ng isang 3D na hugis mula sa simula at gumamit ng mga camera at ilaw upang sindihan at paikutin ang mga bahagi ng user interface. Ang taga-disenyo ng form ay mayroon nang built-in na kapaligiran upang suportahan ang isang 3D user interface sa panahon ng disenyo.

Sa Windows, maaari mong gamitin ang mga aklatan ng Direct2D upang gumana sa mga high-resolution na 2D graphics, at Direct3D para sa 3D graphics. Sa Mac OS, ang mga aklatan ng Quartz at OpenGL ay ginagamit para sa parehong mga layunin. Para sa iOS, ginagamit ang mga aklatan ng Quartz at OpenGL ES. Ngunit ang lahat ng ito ay nakatago mula sa developer - ginagamit niya ang FireMonkey platform, ang coordinate system nito at application programming interface, nang hindi iniisip ang mga library na ito, at maaaring mag-compile ng parehong application para sa iba't ibang mga platform.

Tandaan natin kung ano ang VCL. Ang VCL ay isang component wrapper sa paligid ng Windows API. Nakikitungo kami sa mga mapagkukunan, menu, dialog box, kulay, estilo, mga mensahe sa Windows. Bilang isang multi-platform na wrapper, hindi tulad ng VCL, pinapanatili ng FireMonkey ang parehong mga modelo ng kaganapan at bahagi, na nagbibigay-daan sa iyong mag-isip ayon sa mga kaganapan (halimbawa, OnClick, OnHasFocus, onMouseDown, at onKeyDown na mga kaganapan), ngunit pinangangasiwaan ang mga kaganapan sa Macintosh o iPhone.

Ang platform ng FireMonkey ay mayroon ding kumpletong sistema ng animation para sa mga elemento ng user interface. Ito ay tiyak na hindi isang komprehensibong Pixar-style na animation system, ngunit ito ay nagbibigay-daan para sa mga epekto tulad ng bitmap animation, UI element focus highlight, at vector graphics. Higit sa 50 visual effect ang available sa developer: blur, gawing itim at puti ang imahe, dissolving, transition, reflection, paglikha ng mga anino - lahat ng uri ng effect na available sa mga modernong graphics processor, na ngayon ay matatagpuan sa halos anumang computer. Ang isang application na binuo gamit ang FireMonkey platform ay nagpapadala ng mga utos sa GPU, na ginagawa ang lahat ng gawain ng pagpapakita ng mga graphics at paglikha ng user interface. Sa kasong ito, ang gitnang processor ay libre para sa mga kalkulasyon at mga tawag sa operating system. Mailalagay lang ng developer nang tama ang mga bahagi.

Ang pinakapangunahing bagay tungkol sa platform ng FireMonkey ay ang paraan ng pagbuo nito ng user interface. May mga paraan ng paglalagay ng raster graphics sa mga elemento ng interface tulad ng mga menu, button, at scroll bar. Sa FireMonkey, gumagamit kami ng GPU-powered vector graphics para sa layuning ito. Mula sa pananaw ng programming, pareho pa rin ang mga kontrol na ito, ngunit ginagawa ng graphics processor ang lahat ng gawain ng pagpapakita ng mga ito. Maaari naming ilapat ang mga estilo sa mga kontrol, gawin ang application na mukhang isang application para sa Mac OS o Windows, lumikha ng aming sariling estilo, ilapat ang aming sariling mga estilo sa mga elemento ng interface (halimbawa, gumawa ng isang pindutan na hugis-parihaba o bilog sa pamamagitan ng pagbabago ng estilo nito sa editor ng form. ) - para dito Mayroong isang editor ng estilo sa kapaligiran ng pag-unlad. Maaari kang lumikha ng iyong sariling istilo, o maaari mong baguhin ang istilo ng isang tapos na application.

FireMonkey Platform - Mga Tool sa Pag-develop
at mga suportadong platform

Kung naaalala mo, ang VCL library ay may limitadong bilang ng mga kontrol - mga lalagyan (iyon ay, nagbibigay-daan sa iyong maglagay ng iba pang mga elemento sa mga ito), at sa FireMonkey ang bawat kontrol ay isang lalagyan. Nangangahulugan ito na ang bawat kontrol ay maaaring maglaman ng anumang iba pang kontrol. Halimbawa, ang mga dropdown na item sa listahan ay maaaring maglaman ng mga larawan, button, edit field, at iba pang mga kontrol. Maaari mo ring ilagay ang mga bahagi sa mga layer.

Ang sistema ng pag-render ng FireMonkey ay medyo nababaluktot - maaari nitong gamitin ang mga aklatan ng Direct2D, Direct3D at OpenGL, na nagpapadala ng mga utos sa GPU. Upang makamit ang parehong bagay sa VCL, kailangan mong bumuo ng isang hiwalay na off-screen buffer, lumikha ng isang imahe dito sa pamamagitan ng pagtawag sa naaangkop na mga function ng library ng graphics, at pagkatapos ay ipakita ito sa form.

Mga halimbawa ng mga graphic effect na sinusuportahan ng FireMonkey

Kung wala kang GPU, maaari ka pa ring maglapat ng mga 2D o 3D na hugis at gumamit ng mga kontrol ng FireMonkey. Sa kasong ito, gagamitin ng platform ng FireMonkey ang mga aklatan ng GDI+ o iba pang katulad na mga aklatan at gagawa ng parehong mga epekto at animation o pagmamanipula ng mga 3D na bagay.

Ang isa pang tampok ng FireMonkey ay isang bagong sistema para sa pag-link ng mga elemento ng interface na may data, bukas at nababaluktot. Mayroong dalawang uri ng mga elemento ng interface sa VCL: data-bound at non-data-bound (halimbawa, TDBEdit at TEdit). Sa FireMonkey, ang bawat kontrol ay maaaring iugnay sa data ng anumang uri. Ito ay maaaring isang simpleng expression, isang field mula sa isang dataset, data mula sa mga bagay na ginawa ng developer, o ang mga resulta ng mga method call.

Bilang karagdagan, kapag lumilikha ng isang application, maaari mong i-load ang isang yari na modelong 3D dito at gamitin ito - ang mga naturang kakayahan ay madalas na kinakailangan sa parehong mga aplikasyon ng negosyo at engineering. Mayroon kaming kliyente na gumagawa ng mga aplikasyon para sa logistik. Mayroon silang isang sistema ng impormasyon na binuo gamit ang Delphi, at sa loob nito ay isang application na gumuhit ng isang plano at ipinakita ang impormasyon mula sa mga mapagkukunan ng data. Kamakailan ay gumawa sila ng isang bagay na kawili-wili - gumuhit sila ng isang ganap na automated na 3D warehouse sa AutoCAD, at ang kanilang application ay nagbibigay-daan sa iyo upang makita kung paano gumagalaw ang awtomatikong forklift sa paligid ng bodega at naglalagay ng mga kalakal sa mga istante. At naglalagay sila ng data mula sa mga mapagkukunan sa kaukulang larawan.

Mga halimbawa ng pagbabago ng mga istilo ng aplikasyon

KP: Anong mga format ng modelong 3D ang kasalukuyang sinusuportahan?

DI.: Sa release na ito sinusuportahan namin ang paglo-load ng mga modelo mula sa AutoCAD, Collada (isang open source na 3D modeling tool. - Tandaan i-edit.), Maya, isang OBJ na format na sinusuportahan ng maraming 3D graphics vendor.

KP: Anong iba pang mga format ang pinaplano mong idagdag?

DI.: Plano naming magdagdag ng 3DS (3D Studio MAX), SVG (karaniwang ginagamit ang format na ito para sa 2D vector graphics, ngunit minsan para sa 3D), Google SketchUp. Marahil ay susuportahan namin ang iba pang mga format.

KP: Ang paggamit ba ng mga 3D na modelo sa mga application na binuo gamit ang FireMonkey ay nangangailangan ng lisensya para sa naaangkop na 3D modeling tool?

DI.: Hindi, hindi nito kailangan. Ang ginagawa lang namin ay basahin ang file ng modelo. Ini-import namin ang modelo, ngunit hindi ine-export ito (bagama't, siyempre, maaari kang magsulat ng isang application na nagse-save ng modelo sa iyong sariling format). Hindi kami nagpapanggap na isang tagagawa ng mga tool sa pagmomodelo ng 3D - para dito maaari mong gamitin ang AutoCAD, 3D Studio Max, Maya o anumang iba pang tool sa pagmomodelo ng 3D, at i-import ang mga nilikhang modelo sa aming mga application.

KP: Paano gumaganap ang mga application na binuo gamit ang FireMonkey sa mga modernong platform ng hardware?

DI.: Ang pagiging produktibo ay medyo mataas. Halimbawa, ang pag-render ng 3D na hugis na may tatlong sphere at tatlong ilaw sa isang MacBook Pro ay maaaring i-render sa 100 frame bawat segundo. O maaari itong umabot sa 600 - depende ito sa kung ano ang eksaktong ginagawa natin. Muli, ang lahat ay nakasalalay sa kapangyarihan ng GPU.

KP: Nangangahulugan ba ito na maaari kang lumikha ng mga modernong laro gamit ang FireMonkey?

DI.: Hindi namin inilalagay ang aming mga tool sa pag-unlad bilang mga tool para sa mga laro. Gayunpaman, sinasamantala ang mataas na pagganap ng mga modernong GPU, maaari kang lumikha ng mga laro gamit ang FireMonkey - pagkatapos ng lahat, nilikha ang mga ito gamit ang Direct3D o OpenGL.

KP: Anong gawain ang kasalukuyan mong ginagawa sa larangan ng pagsuporta sa pagkilala sa kilos at iba pang mga bagong bagay? Magagamit ba ang gayong suporta?

DI.: Wala pa kaming suporta sa galaw sa release na ito. Ang mga kontrol sa galaw ay idadagdag sa isang paglabas ng FireMonkey sa hinaharap, ngunit sa ngayon maaari mong gamitin ang suporta sa galaw na binuo sa operating system.

Mikhail Filippenko, direktor ng Fast Reports, Inc.

K.R.: Nasabi na namin na ang teknolohiya ng FireMonkey ay may mga ugat na Ruso - ang mga pundasyon nito ay nilikha sa ating bansa, at pagkatapos ay ang teknolohiya mismo at ang mga developer nito ay sumali sa Embarcadero. Sa pangkalahatan, ito ay kasiya-siyang makita ang paglaki ng Russian component sa RAD Studio at Delphi. Kabilang dito ang mga aktibidad ng aming development center sa St. Petersburg at ang kontribusyon ng mga independiyenteng developer ng Russia. Halimbawa, kasama sa Rad Studio XE2 ang generator ng ulat ng FastReport - kilala sa buong mundo at napakapopular sa ating bansa. Siya ay orihinal na mula sa Rostov-on-Don.

KP: Gusto kong pag-usapan ang tungkol sa mga compiler. Anong uri ng compiler ang ginagamit kapag gumagawa ng mga iOS application?

DI.: Wala kaming sariling Delphi compiler para sa iPhone o iPad—hindi pa kami nakakabuo ng mga compiler para sa mga ARM processor na ginagamit sa mga device na iyon. Para sa iOS, pansamantala naming ginagamit ang Free Pascal compiler at runtime library. Ngunit nagtatrabaho kami sa susunod na henerasyon ng mga compiler, kabilang ang para sa mga processor ng AWP. Ngunit may mga compiler para sa Windows at Mac OS, dahil ang parehong mga platform ng hardware ay batay sa mga processor ng Intel.

KP: Ano ang nagawa sa larangan ng paglikha ng mga compiler sa nakalipas na dalawang taon?

DI.: Mayroon kaming 32- at 64-bit na Delphi compiler para sa Windows at Mac OS. At gumagawa kami ng bagong henerasyon ng Delphi at C++ compiler. Kasalukuyang ginagawa ang mga ito, ngunit kapag tapos na ang mga ito, magkakaroon tayo ng mga Delphi compiler para sa mga ARM processor, Android platform, Linux, at lahat ng nasa pagitan. At magkakaroon kami ng 64-bit C++ compiler para sa Windows at iba pang mga platform, na tugma sa pinakabagong pamantayan ng wikang C++ na pinagtibay ng ISO.

KP: Ano ang nangyayari sa suporta sa cloud computing sa mga tool sa pagpapaunlad ng Embarcadero ngayon?

DI.: Sa RAD Studio XE 2, sinusuportahan namin ang paglipat ng mga application sa Microsoft Azure o Amazon EC2 cloud gamit ang Platform Assistant. At mayroon kaming mga bahagi ng server para sa Cloud Storage para sa Azure at Amazon S3 para sa pag-iimbak ng mga talahanayan, binary data, mga pila ng mensahe. Sa nakaraang bersyon ng RAD Studio XE, sinusuportahan din namin ang pag-deploy ng mga application sa Amazon EC2, ngunit hindi nito sinusuportahan ang storage.

Suporta sa cloud computing sa RAD Studio XE 2

KP: Dalawang taon na ang nakalilipas, napag-usapan mo ang tungkol sa bagong solusyon sa All-Access. Gaano ito sikat? Ano ang mga benepisyo nito para sa mga system integrator at developer?

DI.: Ang All-Access solution at ang AppWave cloud tool ay malawakang ginagamit sa buong mundo. Ang mga ito ay idinisenyo upang gawing mas madaling gamitin ang aming sarili at mga third-party na application. Ito ay mahalagang solusyon para sa pamamahala ng mga lisensya at paggamit ng aplikasyon, at maginhawa para sa malalaking kumpanya. Ang mga maliliit na negosyo na walang nakalaang pangkat ng mga taong responsable sa pamamahala ng mga application ay maaaring maglagay ng isang application sa isang repository, pumili ng mga username mula sa isang database, at gawing available ang mga application na iyon nang hindi kinakailangang tandaan kung nasaan ang susi ng lisensya o kung gaano karaming mga lisensya ang mayroon. Ang All-Access at ang AppWave browser ay idinisenyo upang pamahalaan ang parehong bersyon at kontrol sa pag-access.

K.R.: Ang merkado ay sobrang magkakaibang at ang mga gumagamit ay ibang-iba na imposibleng masakop ang lahat ng mga pangangailangan sa isang solusyon. Iyon ang dahilan kung bakit nagsusumikap kami para sa magkakaibang mga solusyon sa packaging. Marami na kaming ginawa upang pag-isahin ang mga paraan ng paglilisensya, pamamahala ng lisensya at pag-install ng produkto. Kasama sa linyang ito ng mga solusyon ang mga tool sa pamamahala ng lisensya at pagbibigay hindi lamang para sa mga produkto ng Embarcadero, kundi pati na rin para sa anumang iba pang produkto, kabilang ang mga pagpapaunlad ng panloob na kumpanya.

Patuloy pa rin ang paggawa sa mga tool sa pagbuo ng packaging sa mga epektibong kit para sa mga user. Mayroon kaming All-Access - isang superset na pinagsasama ang lahat ng produkto ng Embarcadero. Kung bibili ang isang customer ng All-Access Platinum, matatanggap nila ang lahat ng tool na makikita sa Embarcadero. Ngunit kung minsan ang hanay na ito ay lumalabas na kalabisan, halimbawa, para sa mga espesyalista sa database, gumawa kami ng dalawa pang set - DB Power Studio Developer Edition at DB Power Studio DBA Edition. Ang pagkakaiba sa pagitan nila ay para sa developer na inaalok namin ang RapidSQL - isang tool para sa pagbuo ng server code, at para sa administrator ay mayroong built-in na DBArtizan - isang database administration tool, isang mas malawak na produkto kaysa sa RapidSQL. Para sa mga propesyonal, mayroon kaming mga sumusunod na All-Access suite: isang suite na kinabibilangan ng lahat ng produkto, DB Power Studio para sa mga developer, DB Power Studio para sa mga administrator, ER Studio Enterprise Edition para sa mga arkitekto at sinumang kasangkot sa pagmomodelo. Mayroong mga kumbinasyon para sa pagbuo ng application at para sa mga administrator. Ang Delphi ay isang tool ng developer, at ito ay gumagawa ng maraming kahulugan upang magdagdag ng SQL development at mga tool sa pag-optimize dito. Sa wakas, ang DB Change Manager ay isang lohikal na tool para sa pamamahala sa pagiging kumplikado ng mga pagbabago na nangyayari sa mga database sa panahon ng kanilang ikot ng buhay.

Kaya, ang All-Access ang pinuno ng isang malaking pamilya ng iba't ibang hanay ng produkto.

KP: Kung hindi ito lihim, sino sa Russia ang gumagamit ng All-Access?

K.R.: Mayroon kaming mga customer na bumili ng All-Access batay sa Delphi. Marami sa kanila ang bumuo ng mga kumplikadong client-server system gamit ang SQL Server at Oracle, at agad nilang nagustuhan ang aming cross-platform database tool. Mayroon kaming kumpanya ng kliyente na gumagamit ng Delphi mula noong unang bersyon, at isang taon na ang nakalipas lumipat sila mula sa paggamit ng Delphi patungo sa All-Access suite. Dalawang tool na garantisadong gagamitin ng lahat ng developer sa kumpanyang ito ay ang Delphi at DBArtisan. At may mga customer na dumating sa All-Access mula sa database side. Ang kanilang pangunahing gawain ay ang mangasiwa ng mga database, ngunit minsan din silang bumuo ng mga application. Kasama sa mga kliyenteng gumagamit ng All-Access ang mga kumpanya ng media, mga kumpanya ng engineering at iba pang mga industriya.

Hiwalay, gusto kong tumuon sa maliliit na kumpanya. Kadalasan, sa maliliit na team, ginagawa ng developer ang lahat, at minsan bumibili ang naturang kumpanya ng malalaking All-Access product set para sa isa o dalawang developer. Sa malalaking koponan, hindi hinihikayat ang isang developer na gumanap din, halimbawa, ang papel ng isang database administrator, kaya ang mga maliliit na set ng produkto ay karaniwang popular doon, ngunit sa mga maliliit na kumpanya ang gayong kumbinasyon ng mga responsibilidad ay lubos na katanggap-tanggap.

Ang Delphi Architect ay isang produkto na maraming ibinebenta na may kasamang mga tool sa pagmomodelo at programming. Gayunpaman, ang bilang ng mga kopyang naibenta ay mas mababa kaysa sa bersyon ng Delphi Enterprise, ngunit malaki rin ito. Nais kong tandaan na noong 2010 kami ay naging pinakamahusay na bansa sa mga tuntunin ng dami ng mga benta, sa kabila ng katotohanan na ang lahat ng mga bansa ay nakaranas ng isang krisis. Ang paglago na ito ay nauugnay hindi gaanong sa pang-ekonomiyang mga kadahilanan, ngunit sa katotohanan na ang bersyon ng RAD Studio XE, na inilabas sa pagtatapos ng 2009, ay naging napakapopular. At sa ngayon inaasahan namin ang karagdagang paglago ng mga benta.

Gumawa kami ng isa pang makatwirang hakbang, na napakapopular sa Russia. Ang antas ng legalisasyon ng iba't ibang bersyon ng aming mga produkto ay iba: mas mataas ang bersyon, mas legal ito, dahil dati ang software ay hindi masyadong aktibong binili. Simula sa RAD Studio XE, saklaw ng lisensya ang mga bersyon 2010, 2009, 2007, at maging ang Delphi 7, isang malawakang ginagamit na produkto.

Ngayon, ang mga developer ay nahaharap sa katotohanan na mayroon silang parehong mga bagong proyekto at proyekto sa suporta. Ang isang malaking bilang ng mga proyekto ay inilipat mula sa mga unang bersyon ng Delphi sa bersyon 7 at nananatili sa loob ng bersyong ito, na patuloy na tumatakbo sa medyo maliit na mapagkukunan. Walang naglilipat sa kanila sa mga mas bagong bersyon, ngunit pinananatili ang mga ito sa isang mabubuhay na estado. At ngayon pinapayagan ka naming makuha ang parehong RAD Studio XE at Delphi 7 para sa maliit na pera (mas mababa kaysa sa presyo ng isang lisensya ng Delphi 7) - iyon ay, ginagawa naming legal ang developer para sa pagpapatupad ng mga bagong proyekto at para sa mga proyekto ng suporta.

KP: Paano mo tinatasa ang kasalukuyang kalagayan ng komunidad ng Embarcadero?

DI.: Ang komunidad na ito ay malaki at napaka-demanding. Kailangan nila kaagad ang lahat - sila ay mga developer. Ngunit kung minsan ay nangangailangan ng mahabang panahon upang magawa ang isang bagay na tama.

Ilang taon na ang nakalipas, kinuha namin ang arkitektura ng bahagi ng Windows at inilagay ito sa mga desktop ng Linux. Ngayon nakita natin na hindi ito ang tamang desisyon. Ang tamang solusyon ay ang lumikha ng isang application platform. Ang mga application kahit sa mga platform ay may mga menu, window, graphics, network access, at device access. Maaaring may iba't ibang modelo ang iba't ibang platform para sa pamamahala ng mga thread o paghawak ng mga pagbubukod, ngunit nakikita namin ang parehong mga bloke ng pagsubok sa code ng aplikasyon. Ang aming trabaho ay gawing mas madali para sa mga developer na lumikha ng mga application ng negosyo at i-compile ang mga ito para sa mga platform kung saan nilalayong gamitin ang mga ito, anuman ang pagkakaayos ng set ng pagtuturo ng mga kaukulang processor at kung ano ang iba pang mga tampok ng mga platform na ito. At ang FireMonkey ang eksaktong kailangan mo upang malutas ang problemang ito.

KP: Kung gagawa ang isang kumpanya ng bagong device at gusto itong suportahan sa FireMonkey, posible ba ito?

DI.: Sa bagong henerasyon ng mga compiler, na magkakaroon ng platform-independent na front-end at isang platform-dependent na back-end, ito ay magiging posible. Pansamantala, para sa bawat operating system, lumikha kami ng isang compiler at runtime library mula sa simula.

Anumang modernong bagong device ay karaniwang may kasamang graphical na user interface (marami ang may dual-core na CPU at GPU) at mga karaniwang SDK para sa mga developer. Ginagawa nitong mas madali ang paggawa ng suporta sa device sa FireMonkey. Kung ang bagong device ay may mga library lang para sa dalawang-dimensional na graphics tulad ng Quartz, masusuportahan namin ang naturang device sa FireMonkey, ngunit aabutin ito ng humigit-kumulang ilang buwan. Gayunpaman, marami ang nakasalalay sa platform: hindi lahat ng platform ay sumusuporta sa lahat ng mga tampok, halimbawa, ang iOS ay walang mga menu at dialog box at hindi mo magagawang maglagay ng kaukulang mga bahagi sa mga anyo ng naturang mga application.

KP: May nagbago ba sa patakaran ng pakikipagtulungan sa mga kasosyo? Ano ang ginagawa upang mapataas ang bahagi ng mga gumagamit ng iyong mga produkto? Ano ang ginagawa sa Russia?

DI.: Malawak ang aming partner ecosystem - may daan-daang mga manufacturer ng mga tool at component na hindi matatagpuan sa aming mga produkto, at mayroon kaming isang programa sa pakikipagsosyo sa teknolohiya. Samakatuwid, ang isang malawak na hanay ng mga bahagi, teknolohiya at tool ay magagamit sa mga developer. At ang mga solusyong ginagawa nila para sa kanilang mga kliyente ay mas mahusay kaysa kung ginamit lang nila ang aming mga produkto. At para sa mga benta, mayroon kaming mga opisina sa maraming bansa, reseller at distributor.

K.R.: Ang mahalaga sa amin ay hindi ang bilang ng mga kasosyo, ngunit ang kalidad ng trabaho ng bawat partikular na kasosyo. Sa ngayon, gusto naming tumuon sa pakikipagtulungan nang malapit sa mga kasalukuyang kasosyo, bagama't nananatiling bukas ang grupo ng mga kasosyo. Marami tayong kasosyo, at dapat natin silang tulungan sa mga tuntunin ng teknolohiya. Nakikipagtulungan kami sa mga developer, at alam nila kung ano ang gusto nila, at alam nila kung ano ang available sa market, at dapat tumugma dito ang mga kakayahan ng mga partner.

Mayroon kaming mga kasosyo sa negosyo na seryosong namuhunan sa Embarcadero bilang isang linya ng negosyo - nagsanay sila ng mga espesyalista, nag-market ng aming mga produkto, mga dedikadong empleyado na responsable para sa linyang ito at sinusubaybayan kung ano ang nangyayari sa aming mga produkto, listahan ng presyo, marketing. Naturally, mas matagumpay sila sa mga tuntunin ng pagbebenta ng aming mga produkto kaysa sa mga kumpanyang nagbebenta ng aming mga produkto paminsan-minsan.

KP: David, Kirill, maraming salamat sa kawili-wiling panayam. Hayaan akong, sa ngalan ng aming publikasyon at ng aming mga mambabasa, hilingin ang iyong kumpanya ng higit pang tagumpay sa paglikha ng iyong mga kamangha-manghang tool na kailangan ng mga developer!

Mga tanong na tinanong ni Natalia Elmanova