Firemonkey basitten karmaşığa. FireMonkey nedir? yerel sınıfları özelleştirmeye yönelik destek eksikliği

FireMonkey nedir?


FireMonkey (FMX), hem masaüstü sistemler (Windows, Mac OS + Linux'ta sunucu desteği yakın gelecekte planlanmaktadır) hem de Delphi/C++ dilini kullanan mobil (iOS ve Android) için platformlar arası geliştirmeye yönelik bir çerçevedir.

Özellikler:

  • tüm platformlar için tek kod tabanı;

  • herhangi bir kontrol (görsel bileşen) diğer bileşenler için bir kapsayıcı (üst öğe) olabilir;

  • formda bileşenlerin çok gelişmiş bir göreceli düzenlemesinin (20 tip) varlığı;

  • LiveBinding, her türlü veriyi veya bilgiyi herhangi bir kullanıcı arayüzüne veya grafik nesnesine bağlamanıza olanak tanır;

  • form/bileşen stillerinin varlığı;

  • Çoklu Cihaz Önizleme, her platform için görsel sunumu özelleştirmenize olanak tanır;

  • FireUI Canlı Önizleme - uygulamanın gerçek cihazlardaki görünümünü gerçek zamanlı olarak görüntüler.

Olasılıklar:

  • her platformun yerel API'sinin kullanımının yanı sıra üçüncü taraf yerel kütüphaneleri çağırma yeteneği;

  • tüm sensörlerle etkileşim (GPS, İvme Ölçer, Pusula, Bluetooth (LE dahil) ve diğerleri);

  • anlık bildirimler için destek, IoT;

  • eşzamansız HTTP istekleri için destek;

  • çoğu veritabanı için destek (MsSQL, MySql, Oracle, PostgreSQL, MongoDB, vb.);

  • Bulut Hizmetiyle çalışma (Amazon, Azure);

  • Android Hizmeti desteği.

Eksileri (şu anda):

  • yerel sınıfların özelleştirilmesine yönelik destek eksikliği;

  • belirli şeylerin uygulanması ya imkansızdır (widget'lar, uzantılar (iOS), vb.) ya da tef ile dans gereklidir (arka plan hizmeti, yayın mesajı vb.);

  • Açılış ekranının (başlangıç ​​ekranı) özelleştirilmesi, en hafif tabirle eksiktir;

  • FMX kontrolleri, tamamen görsel olarak yerel olana benzeyen kendi işlemelerini (görselleştirme, çizim) kullanır;

  • yerel kontrollerin kullanımı büyük vücut hareketlerini içerir;

  • çok sayıda bileşen iç içe geçtiğinde inanılmaz şeyler olur: uygulama çeşitli yerlerde çöker, odağı kaybeder, donar vb.;

  • mobil platformlarda bir uygulamanın hata ayıklamasına ilişkin bilgi içeriği sıfırdır;

  • mobil platformlardaki hataların açıklamaları işe yaramaz “Hata 0x00000Х” ile azaltılmıştır;

  • derleme zamanı orta ve büyük projeler için en iyisi olmayı ister;

  • her platform için mobil uygulamaları geliştirmek için bir dosya kullanma ihtiyacı;

  • Intel Atom mimarisi desteği yok;

  • Rakiplere göre yetersiz fiyat.

Artıları:

  • son zamanlarda hem ürünün hem de topluluğun çok aktif gelişimi, giderek daha fazla yeni teknolojinin desteklenmesi;

  • çok sayıda ücretsiz ve ticari bileşenin varlığı;

  • Uygulamanın hızı native hıza çok yakın;

  • genel olarak çok gelişmiş görsel editör ve ortam, stillerin varlığı;

  • bir uygulamayı Win'de test etme ve ancak daha sonra onu cihazlara dağıtma yeteneği; bu, geliştirmeyi büyük ölçüde hızlandırır;

  • tek bir bilek hareketiyle modu/platformu değiştirin;

  • PAServer, Apple OS için geliştirme yaparken MacO'larla kolay etkileşim sağlar;

  • Kutudan çıktığı haliyle 3D grafik desteği.

Sonuç olarak, FireMonkey'in son birkaç yılda iş uygulamalarının ve daha fazlasının platformlar arası geliştirilmesi için profesyonel bir araca dönüştüğünü söylemek istiyorum. Pek çok eksiklik yavaş yavaş çözülüyor ve her sürümde ürün daha modern ve kendi kendine yeterli hale geliyor ve uzun yıllar süren durgunlukla ilişkilendirilen Delphi diline yönelik mevcut şüphecilik de ortadan kalkıyor. FireMonkey'de yeni projeler yazmak "güvenli" ve umut vericidir.

Geçtiğimiz yılın eylül ayında piyasaya sürülen Delphi XE2, rekor sayıda yenilik içeriyor.
Delphi XE2'nin yeteneklerine ilişkin kısa genel bakışlar halihazırda Habré'de yayınlanmıştır. Ancak tabii ki en dikkat çekici yenilik FireMonkey platformu ve burada ona biraz dikkat etmek istiyorum.
Bu platform hakkında az çok yeterli bir fikir edinmenize yardımcı olacağını umduğum materyallere küçük bir bağlantı seçimi yaptım. Ama öncelikle bilmeyenler için FireMonkey'in ne olduğunu kısaca anlatacağım.
Embarcadero Technologies, FireMonkey'i Windows, Mac ve iOS için zengin iş uygulamaları oluşturmaya yönelik bir platform olarak konumlandırıyor. Üstelik bu platform her işletim sistemine özgüdür; FireMonkey kullanılarak oluşturulan bir uygulamayı çalıştırırken hiçbir ek eklenti kullanılmaz.
FireMonkey, OpenGL veya DirectX gibi yerel (işletim sistemi açısından) bir grafik kitaplığına doğrudan bağlanır. Böylece GPU açısından en iyi çözüm önerilmiştir.
FireMonkey mimarisinin özü, güçlü bir sınıf kitaplığıdır (görsel bileşenler dahil).
Hedef platform derleme işlemi sırasında seçilir.
FireMonkey'in ilk sürümü yalnızca Win32, Win64, MacOSX ve iOS'u destekliyordu, ancak Embarcadero onu gelecekte diğer birçok platforma taşımayı planlıyor.

Neleri dikkate almalısınız?

FireMonkey platformu 3D uygulamalar geliştirmek için kapsamlı araçlar sunmasına rağmen bir oyun motoru olarak düşünülmemelidir. FireMonkey, özellikle iş uygulamaları geliştirmeye yönelik bir platform olarak konumlandırılmıştır.
Ürün şu anda gelişiminin ilk aşamalarındadır. Ve birçok işlevsellik FireMonkey hem niteliksel hem de niceliksel değişikliklerden geçiyor.

Aşağıdaki bağlantıların yeni platformun ana özelliklerini anlamanıza yardımcı olacağını umuyorum.
Embarcadero web sitesindeki resmi ürün sayfası (Rusça)

İngilizce materyaller arasında diziyi vurgulamak istiyorum (İngilizce)

Ne görmeli?

İlişkin En son sürüm Delphi'de, ürünün yeteneklerine ve onunla nasıl çalışılacağına dair her zamankinden daha fazla video materyali var. Hem Embarcadero'dan hem de bağımsız geliştiricilerden resmi. YouTube'da FireMonkey ile ilgili pek çok video var, aramayı kullanabilirsiniz. Bu malzeme bolluğu arasında, Marco Cantu - RAD in Action açılış sayfasından üç video serisini öne çıkaracağım, böylece araştırmama bir yararlılık vektörü kazandıracağım.

Muhtemelen Embarcadero'nun platformlar arası bir GUI oluşturma konusundaki yeni vizyonunu aktif olarak desteklediğinin farkındasınızdır - FireMonkey ( buna çerçeve diyorlar ama şu anki haliyle kulağa çok hoş geliyor). RuNet'te birbiri ardına yarışma duyuruluyor, web seminerleri düzenleniyor ve ikincisinin kalitesi arzulanan çok şey bıraksa da etkinlik cesaret verici. Şimdi aslında konuya geçiyoruz. Son yarışmanın bir parçası olarak öğrenmeye yönelik bir tür uygulamanın geliştirilmesi önerildi. Ve dün Evgeniy Chmel'in yazdığı başka bir çalışma ortaya çıktı ( Bu soyadının eğimli olup olmadığını bilmiyorum). Daha önce görülen basit "tek biçimli" olanlardan farklı olarak, burada maymunu tüm uzuvlarından çekmeye çalışıldı: stilizasyon, 3D, gölgelendirici efektleri ( Embarcadero evangelistleri GPU hızlandırmalı grafikler hakkında konuşmayı severler :))). Bakalım bundan ne çıktı. Webinarları izlememiş olanlar için küçük bir inceleme yapacağım. Web seminerlerinden birinde Embarcadero evanjelisti Vsevolod Leonov, Silverlight SDK ve Windows emülatörü Telefon 7 bilgisayarında “çalışmadı” (bu bir alıntıdır) çünkü... Video bağdaştırıcısını veya GPU ayarlarını beğenmediler. Ancak Vsevolod, FireMokey kullanılarak geliştirilen uygulamaların hiç de zorlu olmadığını sürdürüyor. donanım. Bakalım bize nasıl yalan söylemiş. Mark Rusinovich'in Process Explorer v15.05'i tarafsız tanığımız olacak. Öyleyse Evgeniy’in uygulamasını indirin ve başlatın ( Evgeniy’in uygulamasının ekran görüntülerini vermiyorum, çalışmalarının bağlantısında mevcut. Bulanık yazı tiplerine dikkat edin).

Uygulamayı başlattık. Gelelim tüketime:

Utanmazca ama affedebilirsin” ileri teknoloji" “Dersler” bölümüne gidin ve “Ders 5”i seçin. Sahne hazırlıkları başlıyor. Bu süreç uzundur ( 3,3 GHz frekansa sahip dört çekirdekli Phenom II ile bu işlem bir dakikadan biraz fazla sürdü), sabırlı ol. Sahne inşa ediliyor. Gelelim tüketime:

Maymun iyi beslenmişti. Çok iyi. Şimdi farenizi cevap seçeneği düğmelerinin üzerinde hareket ettirmeyi deneyin. GUI çok yavaş tepki veriyor gibi görünüyor, değil mi? CPU kullanım grafiğine bakın ( Yani kendi bilgisayarında denemelisin) – bu anlarda yükü %100'e yaklaşır ( Dört çekirdekli bir işlemci için ~%21,5'im vardı, bu da tek çekirdekli bir işlemci için %86'ya eşdeğerdi). Ancak birisi bize GPU hızlandırmalı grafiklerden bahsetti. Tamam, devam edelim. Derste tüm soruları cevaplıyoruz. Gelelim tüketime:

Gözlerin genişledi mi? Şimdi karşılaştırma için FarCry'nin 3D nişancı oyununun aktif oyun sırasında ne kadar tükettiğine bakın ( İlgilenen varsa seviyenin adı Fabrika'dır) 1440x900 tam ekran modunda çalışıyor:

Kendi sonuçlarınızı çıkarın.

Delphi, C++Builder ve JBuilder gibi dünyaca ünlü araçların yanı sıra Interbase veritabanı yönetim sisteminin oluşturulmasından sorumlu CodeGear bölümünün, araçlarıyla tanınan Embarcadero Technologies'in bir parçası olmasının üzerinden üç yıldan fazla zaman geçti. veritabanı tasarımı ve yönetimi için ve dergimizin sayfalarında bu kadar popüler olan araçların geliştirilmesinde neler beklenebileceğini tartıştığımızdan bu yana iki yıl Rus geliştiriciler. Embarcadero Technologies'in geliştirici ilişkilerinden sorumlu başkan yardımcısı ve baş misyoneri David Intersimone ve Embarcadero Technologies temsilcilik ofisi başkanı Kirill Rannev'den son iki yılda bu alanda yapılan yenilikler ve gelecekte neler beklenebileceği hakkında konuşmalarını istedik. yakın gelecek Rusya. En genç okuyucularımız için, bunun David ve Kirill'in ComputerPress'e verdiği ilk röportaj olmadığını size bildireceğiz; işbirliğimiz ikinci on yıldır devam ediyor. Ve yaklaşık aynı yıllarda, Embarcadero ürünlerine büyük önem verilen veritabanı yönetim araçlarına ilişkin incelemeleri periyodik olarak yayınladık.

Bilgisayar Basın: David, senin bölümün üç yıldır Embarcadero'nun bir parçası. İki yıl önce hedeflerinize ve ruhunuza yakın bir şirketin parçası olmanın heyecanını yaşıyordunuz. Bu süre zarfında değişen bir şey oldu mu? Siz ve meslektaşlarınız hâlâ aynı heyecanı taşıyor musunuz?

Evet hâlâ çok heyecanlıyım. Embarcadero şirketinin bir parçası olduğumuzdan bu yana meydana gelen temel değişiklik, Delphi'nin geliştirilmesine çok fazla yatırım yapılmış olmasıdır. Geliştirme araçları üzerinde çalışan kişi sayısı arttı, geliştirebileceğimiz, gerekirse edinebileceğimiz teknolojilerin sayısı da arttı.

Moskova'da göstermeyi planladığımız RAD Studio XE 2'nin sürümü, Windows'un 16 bit sürümü için oluşturulan Delphi'nin ilk sürümünden bu yana muazzam yeteneklere ve çok sayıda desteklenen platforma sahip bu ürünün en büyük sürümüdür. bileşen yaklaşımını ve derlemeyi makine kodunda birleştiren yenilikçi bir üründü. Artık yalnızca Windows için değil, Macintosh için de geliştirmeyi destekliyoruz; web geliştirme ve uygulamaların oluşturulmasından bahsetmiyorum bile. mobil cihazlar ve farklı platformlara yönelik bu uygulamalar tek bir koda sahip olabilir.

Yeni geliştirme platformu - FireMonkey - Embarcadero ile yakın zamanda satın alınan UlanUde'den satın alınan Rus firması KSDev arasındaki ortak bir çabadır. vektör grafikleri, DirectX ve OpenGL, grafik efektleri oluşturmaya yönelik teknolojiler ve Delphi bileşenleri kullanarak GPU PixelShader 2.0 ile. Bir yıl önce KSDev şirketini satın aldık (bkz. ksdev.ru) işbirlikleri uygulama kullanıcı arayüzü oluşturma, veritabanı entegrasyonu, GPU grafik işleme ve işletim sistemi entegrasyonu için Delphi ve C++Buider bileşenlerine sahip FireMonkey uygulama geliştirme platformunu içeren çok platformlu bir geliştirme aracı oluşturmak.

FireMonkey'i kullanarak, CPU ve GPU üzerinde birlikte çalışan bir uygulama oluşturabilir ve ardından bunu Windows, Mac OS veya iOS için derlemek için farklı derleyiciler ve Çalışma Zamanı Kitaplıkları (RTL'ler) kullanabilirsiniz. Delphi ve C++Builder kullanan geliştiriciler, farklı grafik kitaplıklarını kullanarak programlamayı öğrenmek, farklı koordinat sistemlerine ve farklı yeteneklere sahip farklı platformların API'lerini öğrenmek yerine aynı bileşen tabanlı yaklaşımı kullanabilir, formları görsel olarak düzenleyebilir ve veritabanlarına bağlantı kurabilirler. bileşeni fareyle hareket ettirin. Bu, farklı platformlarda çalışan uygulamalar oluşturmanın temelde yeni bir yoludur ve gelecek budur. Uygulamanıza diğer işletim sistemleri ve platformlar için destek eklemek istiyorsanız, onu yeniden tasarlamanıza ve geliştirmenize gerek yoktur; yalnızca yeniden derlemeniz yeterlidir.

Yerel kod üreten yeni derleyiciler yaratıyoruz. Bugün 32 ve 64 bit için Delphi derleyicileri var Windows sürümleri, Mac OS 10'un 32 bit sürümleri. Hem bu platformlar hem de Android veya Linux gibi diğer platformlar için yüksek performanslı makine kodu oluşturmanıza olanak tanıyacak yeni nesil Delphi ve C++Builder derleyicileri üzerinde çalışıyoruz. farklı derleyiciler ve çalışma zamanı kitaplıkları kullanarak aynı tasarımı, aynı bileşenleri, aynı kodu koruyun.

Gördüğünüz gibi coşku için yeterince nedenim var. Dünyanın dört bir yanından tanıştığım geliştiriciler Embarcadero'nun Delphi ve C++Builder'ın yanı sıra PHP geliştirme araçlarına da büyük yatırım yaptığını biliyor.

: Son iki yılda iki şirketin araçlarını entegre etme konusunda ne gibi başarılar elde ettiniz? Embarcadero'nun bu alanda geleceğe yönelik planları neler?

DI.: CodeGear, Embarcadero'nun bir parçası olduğunda şirketin Toronto, Monterrey ve Romanya'da geliştirme ekipleri vardı; biz Scotts Valley'de ve Rusya'da, St. Petersburg'da bulunuyorduk ve hâlâ da öyleyiz. Embarcadero'nun geliştiriciler ve veritabanı yöneticileri için araçları vardı, CodeGear'ın uygulama geliştirmeye yönelik araçları vardı, ancak ikincisi de veritabanlarını kullanıyor. Şirketlerin birleşmesi, sunucu kodu da dahil olmak üzere veritabanları alanındaki uzmanlık, bilgi, kod optimizasyonunun bir birleşimidir. Şirketlerin birleşmesi ayrıca, normal bir Windows uygulamasını kullanımı çok kolay bir şeye (iPhone veya diğer cihazlar için uygulamalar gibi) dönüştürmek için özel bir teknoloji olan yeni bir ürünün, AppWave'in yaratılmasına da yol açtı. AppWave, bir uygulamayı yüklemenize izin vermez, yalnızca onu seçip hazırlanan uygulama depolama sunucusundan (uygulama) başlatmanıza olanak tanır ve kayıt defterinde ve sistem alanında değişiklik yapmadan kullanıcının bilgisayarında yürütülür. dosya sistemi. Bu arada, AppWave uygulama tarayıcısı Delphi'de yazılmıştır. Embarcadero, Dephi'yi kendi geliştirmesi ve uygulama geliştirme uzmanlığımız için kullanıyor.

tarafından oluşturulan iPhone (iOS) uygulaması
FireMonkey platformunu kullanma

Uygulama oluştururken SQL sorgularını optimize etmek için geliştirme araçlarımızın ve DB Optimizer'ın entegrasyonunu da kullanabilirsiniz. SQL kodunu doğrudan DB Optimizer'a aktararak onun profilini çıkarabilir, test edebilir ve optimize edilmiş bir sürümü geliştirme ortamınıza geri gönderebilirsiniz. Embarcadero'nun veritabanı uzmanlığı DataSnap teknolojisini de geliştirdi. Torontolu geliştiriciler sayesinde çok katmanlı sistemlerin ve veritabanlarının mimarisi hakkında birçok bilgi edindik. Artık her iki şirkette de sunucu kodu ve saklı prosedürler oluşturma konusunda ortak uzmanlığa sahibiz. RapidSQL ve DB Change Manager gibi araçlarımızın yanı sıra sunucu kodunun oluşturulmasını basitleştiren geliştirme ortamlarımız da var; örneğin, Code Insight ve Code Completion teknolojileri, SQL içgörüsü ve SQL Completion teknolojilerinin oluşturulmasını mümkün kıldı. İstemci ve sunucu kodu oluşturmaya yönelik ortak yaklaşımlarımız, ortak felsefemiz, veritabanı yönetim araçlarına ve uygulama geliştirme araçlarına ortak özellikler kazandırmamıza olanak tanır.

Kirill Rannev:Önemli bir şey eklemek istiyorum. Ticari açıdan bakıldığında araçlarımızı nasıl teslim ettiğimiz çok önemlidir. Örneğin, Yeni sürüm RAD Studio XE 2 Ultimate, DB Power Studio araçlarının tamamını içerir. Bu, RapidSQL sorgu geliştirme ortamı, DB Change Manager değişiklik yönetimi aracı ve DB Optimizer sorgu optimizasyon aracını içeren çok güçlü bir araç setidir ve değişiklikleri yöneterek geliştirme ve dağıtım sürecinin önemli bir bölümünü gerçekleştirmenize olanak tanır. veri modeli, veritabanı, kod vb. Bu çok iyi ve doğru bir teknoloji kombinasyonudur.

DI.: Ancak gerekirse geliştiriciler sürüm kontrolü için Subversion'ı kullanabilirler kaynak kodu ve meta veri sürüm oluşturma için DB Change Manager. Sunucu kodunu optimize etmek için kod profili oluşturmayı ve DB Optimizer'ı, sunucu kodunu oluşturmak ve hata ayıklamak için RapidSQL'i ve uygulamalar oluşturmak ve hata ayıklamak için geliştirme ortamlarımızı kullanabilirsiniz. RAD Studio XE Ultimate Edition'daki bu teknoloji kombinasyonu, veritabanı ve uygulama geliştirme modelleri arasındaki paralellikleri göstermektedir. Delphi ve C++Builder ile iş uygulamaları geliştiren çoğu geliştirici, veritabanlarıyla çalışır ve bu araçlara ihtiyaç duyar; RAD Studio XE Ultimate Edition, bu tür geliştiriciler için mükemmel bir kombinasyondur.

: Modern kullanıcı artık yalnızca Windows platformunun kullanıcısı değil. Mobil cihazlar, iPhone, iPad, Android platformuna dayalı cihazlar kullanıyoruz. Bu, geliştiricilerin eğitime yapılan yatırımı önemli ölçüde artırmadan farklı platformları hedeflemeye başlaması gerektiği anlamına gelir; yani evrensel araçlara ihtiyaç vardır. Açıkçası platform üreticilerinden evrensel takımlar beklemek gerçekçi değil ve bu konuda sadece bağımsız takım üreticilerine güvenebiliriz. Embarcadero'ya nasıl güvenebiliriz?

DI.: Platform desteği konusunda hâlâ yapacak çok işimiz var. Bugün iPhone ve iPad için iOS platformu desteğini tanıtıyoruz, ardından Android platformuna dayalı akıllı telefonlar, Windows 7 ve Blackberry desteğimizi alacak. RAD Studio XE 2'de iOS için FireMonkey platformunu oluşturarak başladık ve ardından FireMonkey'i diğer platformlara taşıyacağız.

Aynı zamanda telefonlar için dokunmatik ekranları destekleyen çok sayıda işletim sistemi bulunmaktadır. tablet bilgisayarlar ve masaüstü cihazlar için destek eklemeye devam edeceğiz. Ayrıca ses, hareket, biyometrik sistemler tüm geliştiricilerin yeni platformlardan yararlanabilmesi için FireMonkey'i genişletmeye devam etmeliyiz. Örneğin, Microsoft Kinect cihazı Xbox 360 için tasarlandı ve artık Windows için buna karşılık gelen bir SDK (Yazılım Geliştirme Kiti) var. Zaten normalde fare veya klavyenin kullanıldığı gibi, bir uygulamayı kontrol etmek için hareketi kullandığımız örneklerimiz var.

Çok sayıda karmaşık grafik içeren uygulamalar oluşturduğunuzda, yepyeni kullanıcı arayüzlerinden oluşan bir dünya yaratırsınız. Eğer bir ameliyathaneyle uğraşıyorsak Windows sistemi, uygulamasını özetliyoruz yazılım arayüzü VCL kitaplığında Windows API (Görsel Bileşen Kitaplığı - Delphi ve C++Builder geliştirme araçlarının parçası olan görsel bileşenlerden oluşan bir kitaplık. - Not ed.), bu arada, daha fazla kullanılabilir. Ve FireMonkey'de işletim sistemi API'sini kapsüllüyoruz. Ancak bugün şekilleri ve grafikleri çok daha geniş bir şekilde değiştiriyoruz. Animasyon ve özel efektler için alana fiziksel özellikler de ekleyebilirsiniz. Ayrıca, önümüzdeki birkaç yıl içinde farklı platformlar, mobil ve tablet cihazlar için uygulayacağımız kullanıcı arayüzleri oluşturmaya yönelik çok sayıda başka ek yetenek de mevcut.

Microsoft yakın zamanda duyurdu detaylı bilgi Bir yıl içinde çıkacak olan Windows 8 hakkında. Bu yenilikleri VCL kütüphanesinde ve FireMonkey platformunda destekleyeceğiz. Ancak Delphi yalnızca Windows için değil aynı zamanda Macintosh, iPhone ve iPad için de tasarlanmış bir geliştirme aracıdır. Ayrıca PHP ürünlerimizi geliştiriyoruz, jQuery Mobile'ı destekliyoruz, mobil istemci uygulamaları geliştirmek için iOS API'yi kullanıyoruz ve istemci tarafı JavaScript, HTML ve basamaklı stil sayfaları oluşturmak için sihirbazlar ve araçlar kullanarak sunucu tarafı PHP uygulamaları oluşturuyoruz. PHP uygulamalarından ve istemci uygulamalarından yerel kodla paketler oluşturabiliriz. iPhone iOS'u ve böyle bir müşteri ile iletişim kuracaktır PHP sunucusu. Ve o da veritabanı sunucusuyla ve web hizmetleriyle - iş için gereken her şeyle iletişim kuracak.

RadPHP XE2 geliştirme ortamı. Mobil web uygulaması oluşturma
iPhone 3G için jQuery Mobile bileşenlerini kullanma

Başka bir deyişle FireMonkey ve VCL'nin yeteneklerini, mobil platform desteği de dahil olmak üzere genişletmeyi planlıyoruz.

: Bize FireMonkey platformu hakkında daha fazla bilgi verebilir misiniz?

DI.: Daha önce de belirttiğim gibi Windows için oluşturulan VCL kütüphanesi gelişmeye ve gelişmeye devam edecek. Ancak bugün gerçek iş uygulamaları geliştirmek istiyorsanız bunları farklı platformlar için oluşturmanız gerekiyor. FireMonkey platformu bunun için tasarlandı. Yüksek çözünürlüklü kullanıcı arayüzlerinin, yüksek performanslı 3D grafiklerin, yüksek kare hızlarının oluşturulmasını destekler ve en önemlisi bunun için grafik işlemcisini kullanır.

Bu tür yetenekleri bilimsel, mühendislik ve iş uygulamaları oluştururken kullanabilirsiniz. Bu tür uygulamalar dbExpress teknolojisini kullanarak veritabanlarına bağlanabilir, yine de geliştiricilerin bildiği ClientDataSet veya DataSource gibi görsel olmayan bileşenleri kullanabilir, DataSnap teknolojisini kullanabilir, herhangi bir veritabanına, SOAP ve REST sunucularına bağlanabilir. Hem iki hem de üç boyutlu olarak çekici kontroller, kutulu düğmeler, sıra dışı tablolar ve diğer arayüz öğeleri oluşturabilirsiniz. Tamamlanmış bir 3D modeli uygulamaya yükleyebilir ve onu döndürebileceğiniz ve farklı açılardan görüntüleyebileceğiniz bir 2D şekle bağlayabilirsiniz. Bir veri küpü veya 3 boyutlu iş şeması oluşturup farenizi, klavyenizi ve hatta Kinect cihazınızı kullanarak döndürebilir veya küpün içine adım atıp farklı yüzeylerine içeriden bakabilirsiniz. Ve tüm bunlar yüksek hızlı bir GPU kullanılarak yapılabilir. Aynı uygulama daha sonra Mac OS gibi başka bir platform için derlenebilir.

Dönen bir veri küpü içeren bir uygulama,
kenarlarına yerleştirildi

Veya sıfırdan bir 3 boyutlu şekil oluşturabilir ve kullanıcı arayüzünün bazı kısımlarını aydınlatmak ve döndürmek için kameraları ve ışıkları kullanabilirsiniz. Form tasarımcısı, tasarım sırasında 3B kullanıcı arayüzünü destekleyecek yerleşik bir ortama zaten sahiptir.

İki boyutlu grafiklerle çalışmak için Windows'ta yüksek çözünürlük Direct2D kitaplıklarını kullanabilirsiniz ve 3 boyutlu grafikler- Direct3D. Mac OS'ta Quartz ve OpenGL kütüphaneleri aynı amaçlarla kullanılır. İOS için Quartz ve OpenGL ES kütüphaneleri kullanılır. Ancak tüm bunlar geliştiriciden gizlidir - FireMonkey platformunu, koordinat sistemini ve uygulama programlama arayüzünü bu kütüphaneleri düşünmeden kullanır ve aynı uygulamayı farklı platformlar için derleyebilir.

VCL'nin ne olduğunu hatırlayalım. VCL, Windows API'sinin etrafındaki bir bileşen sarmalayıcıdır. Kaynaklar, menüler, iletişim kutuları, renkler, stiller ve Windows mesajlarıyla ilgileniyoruz. Çok platformlu bir sarmalayıcı olan FireMonkey, VCL'den farklı olarak aynı olay ve bileşen modellerini korur ve olaylar açısından düşünmenize olanak tanır (örneğin, OnClick, OnHasFocus, onMouseDown ve onKeyDown olayları), ancak Macintosh veya iPhone olaylarını yönetir.

FireMonkey platformu ayrıca aşağıdakilerle birlikte gelir: komple sistem kullanıcı arayüzü öğelerinin animasyonu. Kesinlikle kapsamlı bir Pixar tarzı animasyon sistemi değil, ancak bitmap animasyonu, kullanıcı arayüzü öğesi odak vurgulaması ve vektör grafikleri gibi efektlere izin veriyor. Geliştiricinin kullanımına 50'den fazla görsel efekt sunulmaktadır: bulanıklaştırma, görüntüyü siyah beyaza dönüştürme, çözünme, geçişler, yansıma, gölgeler oluşturma - artık hemen hemen her bilgisayarda bulunan modern grafik işlemcilerde mevcut olan tüm efekt türleri. FireMonkey platformu kullanılarak oluşturulan bir uygulama, grafikleri görüntüleme ve kullanıcı arayüzü oluşturma ile ilgili tüm işi yapan GPU'ya komutlar gönderir. burada İşlemci hesaplamalar ve işletim sistemine yapılan çağrılar için ücretsizdir. Geliştirici bileşenleri yalnızca doğru şekilde yerleştirebilir.

FireMonkey platformuyla ilgili en temel şey, kullanıcı arayüzünü oluşturma şeklidir. Konaklama tesisleri var raster grafikler Menüler, düğmeler ve kaydırma çubukları gibi arayüz öğelerinde. FireMonkey'de bu amaçla GPU destekli vektör grafikleri kullanıyoruz. Programlama açısından bakıldığında bunlar hala aynı kontrollerdir ancak bunların görüntülenmesine ilişkin tüm iş grafik işlemci tarafından gerçekleştirilir. Kontrollere stiller uygulayabilir, uygulamanın Mac OS veya Windows için bir uygulama gibi görünmesini sağlayabilir, kendi stilimizi oluşturabilir, arayüz öğelerine kendi stillerimizi uygulayabiliriz (örneğin, form düzenleyicide stilini değiştirerek bir düğmeyi dikdörtgen veya yuvarlak hale getirebiliriz) ) - Bunun için geliştirme ortamında bir stil editörü bulunmaktadır. Kendi stilinizi oluşturabilir veya daha önce tamamlanmış bir uygulamanın stilini değiştirebilirsiniz.

FireMonkey Platformu - Geliştirme Araçları
ve desteklenen platformlar

Hatırlarsanız, VCL kütüphanesinde sınırlı sayıda kontrol vardı - konteynerler (yani bunlara başka öğeler yerleştirmenize izin veriyordu) ve FireMonkey'de her kontrol bir konteynerdir. Bu, her kontrolün başka herhangi bir kontrolü içerebileceği anlamına gelir. Örneğin, açılır liste öğeleri resimler, düğmeler, düzenleme alanları ve diğer kontrolleri içerebilir. Bileşenleri katmanlara da yerleştirebilirsiniz.

FireMonkey oluşturma sistemi oldukça esnektir - Direct2D, Direct3D ve OpenGL kitaplıklarını kullanarak GPU'ya komutlar gönderebilir. Aynı şeyi VCL'de başarmak için ayrı bir ekran dışı arabellek oluşturmanız, uygun grafik kitaplığı işlevlerini çağırarak içinde bir görüntü oluşturmanız ve ardından bunu formda görüntülemeniz gerekiyordu.

FireMonkey tarafından desteklenen grafik efekt örnekleri

GPU'nuz yoksa yine de 2B veya 3B şekiller uygulayabilir ve FireMonkey kontrollerini kullanabilirsiniz. Bu durumda FireMonkey platformu, GDI+ kitaplıklarını veya diğer benzer kitaplıkları kullanacak ve 3 boyutlu nesnelerin aynı efektlerini, animasyonlarını veya manipülasyonunu gerçekleştirecektir.

FireMonkey'in bir diğer özelliği de yeni sistem Arayüz öğelerini verilerle bağlamak, açık ve esnek. VCL'de iki tür arayüz öğesi vardır: veriye bağlı ve veriye bağlı olmayan (örneğin, TDBEdit ve TEdit). FireMonkey'de her kontrol her türden veriyle ilişkilendirilebilir. Bu basit bir ifade, veri kümesinden bir alan, geliştirici tarafından oluşturulan nesnelerden veriler veya yöntem çağrılarının sonuçları olabilir.

Ek olarak, bir uygulama oluştururken hazır bir 3D modeli ona yükleyebilir ve kullanabilirsiniz - bu tür yetenekler genellikle hem iş hem de mühendislik uygulamalarında gereklidir. Lojistik uygulamaları üreten bir müşterimiz var. Onlar vardı Bilgi sistemi Delphi kullanılarak oluşturulmuş ve içinde bir plan çizen ve veri kaynaklarından bilgileri görüntüleyen bir uygulama. Yakın zamanda ilginç bir şey yaptılar; AutoCAD'de tam otomatik bir 3D depo çizdiler ve uygulamaları, otomatik forkliftin depoda nasıl hareket ettiğini ve ürünleri raflara nasıl yerleştirdiğini görmenize olanak tanıyor. Kaynaklardan gelen verileri ilgili görselin üzerine koyuyorlar.

Uygulama stillerini değiştirme örnekleri

:Şu anda hangi 3D model formatları destekleniyor?

DI.: Bu sürümde, AutoCAD ve Collada'dan (açık kaynaklı bir 3D modelleme aracı) modellerin yüklenmesini destekliyoruz. Not düzenlemek.), Maya, birçok 3D grafik satıcısı tarafından desteklenen bir OBJ formatıdır.

: Başka hangi formatları eklemeyi planlıyorsunuz?

DI.: 3DS (3D Studio MAX), SVG (genellikle bu format 2D vektör grafikler için kullanılır, ancak bazen 3D için kullanılır), Google SketchUp'ı eklemeyi planlıyoruz. Belki diğer formatları da destekleyeceğiz.

: FireMonkey ile oluşturulan uygulamalarda 3B modelleri kullanmak, uygun 3B modelleme aracı için lisans gerektirir mi?

DI.: Hayır, bunu gerektirmez. Tek yaptığımız model dosyasını okumak. Modeli içe aktarıyoruz ancak dışa aktarmıyoruz (tabii ki modeli kendi formatınızda kaydeden bir uygulama yazabilirsiniz). 3D modelleme araçları üreticisi olduğumuzu iddia etmiyoruz - bunun için AutoCAD, 3D Studio Max, Maya veya başka herhangi bir 3D modelleme aracını kullanabilir ve oluşturulan modelleri uygulamalarımıza aktarabilirsiniz.

: Modern donanım platformlarında FireMonkey ile oluşturulan uygulamalar ne kadar performanslıdır?

DI.: Verimlilik oldukça yüksektir. Örneğin, üç küre ve üç ışık kaynağına sahip bir 3 boyutlu şeklin oluşturulması Macbook Pro saniyede 100 kare hızında gerçekleştirilebilir. Veya 600'e ulaşabilir - bu tam olarak ne yaptığımıza bağlıdır. Yine, her şey GPU'nun gücüne bağlıdır.

: Bu, FireMonkey'i kullanarak modern oyunlar oluşturabileceğiniz anlamına mı geliyor?

DI.: Geliştirme araçlarımızı oyun araçları olarak konumlandırmıyoruz. Bununla birlikte, modern GPU'ların yüksek performansından yararlanarak FireMonkey'i kullanarak oyunlar oluşturabilirsiniz; sonuçta bunlar Direct3D veya OpenGL kullanılarak oluşturulmuştur.

:Şu anda jest tanıma ve diğer yeni moda şeyleri destekleme alanında hangi çalışmaları yapıyorsunuz? Böyle bir destek mevcut mu?

DI.: Bu sürümde henüz hareket desteğimiz yok. FireMonkey'in gelecekteki bir sürümüne hareket kontrolleri eklenecektir, ancak bu arada işletim sistemindeki yerleşik hareket desteğini kullanabilirsiniz.

Fast Reports, Inc.'in yöneticisi Mikhail Filippenko

K.R.: FireMonkey teknolojisinin Rus köklerine sahip olduğunu söylemiştik - temelleri ülkemizde oluşturuldu ve ardından hem teknolojinin kendisi hem de geliştiricileri Embarcadero'ya katıldı. Genel olarak RAD Studio ve Delphi'de Rusça bileşeninin büyümesini görmek sevindirici. Buna St. Petersburg'daki geliştirme merkezimizin faaliyetleri ve bağımsız Rus geliştiricilerin katkıları da dahildir. Örneğin Rad Studio XE2, tüm dünyada bilinen ve ülkemizde çok popüler olan FastReport rapor oluşturucuyu içerir. Aslen Rostov-on-Don'ludur.

: Derleyicilerden bahsetmek istiyorum. iOS uygulamaları oluşturulurken ne tür bir derleyici kullanılıyor?

DI.: iPhone veya iPad için kendi Delphi derleyicimiz yok; bu cihazlarda kullanılan ARM işlemciler için henüz derleyiciler geliştirmedik. İOS için geçici olarak Free Pascal derleyicisini ve çalışma zamanı kitaplığını kullanıyoruz. Ancak AWP işlemciler de dahil olmak üzere yeni nesil derleyiciler üzerinde çalışıyoruz. Ancak her iki donanım platformu da Intel işlemcileri temel aldığından Windows ve Mac OS için derleyiciler var.

: Son iki yılda derleyici oluşturma alanında neler yapıldı?

DI.: Windows ve Mac OS için 32 ve 64 bit Delphi derleyicilerimiz var. Ve yeni nesil Delphi ve C++ derleyicileri üzerinde çalışıyoruz. Hala geliştirme aşamasındalar ama bittiğinde ARM işlemciler, Android platformları, Linux ve aradaki her şey için Delphi derleyicilerimiz olacak. Ayrıca Windows ve diğer platformlar için ISO tarafından yeni benimsenen en son C++ dil standardıyla uyumlu 64 bit C++ derleyicilerimiz olacak.

: Embarcadero geliştirme araçlarında bulut bilişim desteği konusunda bugün neler oluyor?

DI.: RAD Studio XE 2'de, Platform Asistanını kullanarak uygulamaların Microsoft Azure veya Amazon EC2 bulutuna taşınmasını destekliyoruz. Tabloları, ikili verileri ve mesaj kuyruklarını depolamak için Azure ve Amazon S3 için Cloud Storage'a yönelik sunucu bileşenlerimiz de var. İÇİNDE önceki versiyon RAD Studio XE ile uygulamaların Amazon EC2'ye dağıtılmasını da destekledik, ancak depolama desteği yoktu.

RAD Studio XE 2'de bulut bilişim desteği

:İki yıl önce yeni Tam Erişim çözümünden bahsetmiştiniz. Ne kadar popülerdi? Sistem entegratörleri ve geliştiriciler için faydaları nelerdir?

DI.: Tam Erişim çözümü ve AppWave bulut aracı dünya çapında yaygın olarak kullanılmaktadır. Kendi uygulamalarımızın ve üçüncü taraf uygulamalarımızın kullanımını kolaylaştırmak için tasarlanmıştır. Aslında lisansları ve uygulama kullanımını yönetmek için bir çözümdür ve aşağıdakiler için uygundur: büyük şirketler. Uygulamaları yönetmekten sorumlu özel ekiplere sahip olmayan daha küçük firmalar, uygulamayı bir depoya koyabilir, veritabanından kullanıcı adlarını seçebilir ve bu uygulamaları nerede olduğunu hatırlamaya gerek kalmadan kullanılabilir hale getirebilir. lisans anahtarı ve kaç lisansın mevcut olduğu. Tam Erişim ve AppWave tarayıcısı hem sürüm oluşturmayı hem de erişim kontrolünü yönetmek için tasarlanmıştır.

K.R.: Pazar o kadar çeşitli ve kullanıcılar o kadar farklı ki tüm ihtiyaçların tek bir çözümle karşılanması mümkün değil. Bu nedenle çeşitli ambalaj çözümleri için çabalıyoruz. Lisanslama, lisans yönetimi ve ürün kurulumu yöntemlerini birleştirmek için birçok çalışma yaptık. Bu çözüm serisi, yalnızca Embarcadero ürünleri için değil aynı zamanda şirket içi geliştirmeler de dahil olmak üzere diğer ürünler için de lisans ve provizyon yönetimi araçlarını içerir.

Geliştirme araçlarının kullanıcılar için etkili kitlere dönüştürülmesi konusundaki çalışmalar halen devam etmektedir. Tüm Embarcadero ürünlerini birleştiren bir süper set olan Tam Erişim'e sahibiz. Bir müşteri All-Access Platinum'u satın alırsa Embarcadero'da bulunan tüm araçları alır. Ancak bazen bu setin gereksiz olduğu ortaya çıkıyor; örneğin, veritabanı uzmanları için iki set daha hazırladık: DB Power Studio Developer Edition ve DB Power Studio DBA Edition. Aralarındaki fark, geliştirici için sunucu kodu geliştirmeye yönelik bir araç olan RapidSQL'i sunmamız ve yönetici için RapidSQL'den daha geniş bir ürün olan bir veritabanı yönetim aracı olan yerleşik DBArtizan'ın mevcut olmasıdır. Profesyoneller için şu Tam Erişim paketlerimiz mevcuttur: tüm ürünleri içeren bir paket, geliştiriciler için DB Power Studio, yöneticiler için DB Power Studio, mimarlar ve modellemeyle ilgilenen herkes için ER Studio Enterprise Edition. Uygulama geliştirme ve yöneticiler için kombinasyonlar vardır. Delphi bir geliştirici aracıdır ve buna SQL geliştirme ve optimizasyon araçlarını eklemek çok mantıklıdır. Son olarak DB Change Manager, yaşam döngüleri boyunca veritabanlarında meydana gelen değişikliklerin karmaşıklığını yönetmeye yönelik mantıksal bir araçtır.

Bu nedenle All-Access, farklı ürün setlerinden oluşan geniş bir ailenin başıdır.

: Bu bir sır değilse Rusya'da Tam Erişim'i kim kullanıyor?

K.R.: Delphi tabanlı Tam Erişim satın alan müşterilerimiz var. Birçoğu karmaşık istemci-sunucu sistemleri oluşturuyor. SQL Server ve Oracle, platformlar arası veritabanı araçlarımızı hemen beğendiler. İlk versiyondan bu yana Delphi ile çalışan bir müşteri şirketimiz var ve bir yıl önce Delphi'den geçiş yaptı. Delphi'yi kullanma Tam Erişim setine. Bu şirketteki tüm geliştiricilerin kullanması garanti edilen iki araç Delphi ve DBArtisan'dır. Ve All-Access'e veritabanı tarafından gelen müşteriler var. Ana görevleri veritabanlarını yönetmektir ancak bazen uygulamalar da geliştirirler. Tam Erişim kullanan müşteriler arasında medya şirketleri, mühendislik şirketleri ve diğer sektörler yer almaktadır.

Ayrı olarak küçük şirketlere odaklanmak istiyorum. Çoğu zaman küçük ekiplerde geliştirici her şeyi yapar ve böyle bir şirket bazen bir veya iki geliştirici için büyük Tam Erişim ürün setleri satın alır. Büyük ekiplerde, bir geliştiricinin örneğin bir veritabanı yöneticisi rolünü de üstlenmesi teşvik edilmez, bu nedenle küçük ürün setleri genellikle orada popülerdir, ancak küçük şirketlerde bu tür sorumlulukların bir kombinasyonu oldukça kabul edilebilir.

Delphi Architect, modelleme ve programlama araçlarını içeren, yoğun olarak pazarlanan bir üründür. Satılan kopya sayısı Delphi Enterprise sürümünden daha az ama aynı zamanda da çok fazla. Şunu da belirtmek isterim ki, 2010 yılında tüm ülkelerde kriz yaşanmasına rağmen satış hacmi açısından en iyi ülke olduk. Bu büyüme ekonomik faktörlerden çok, RAD Studio XE'nin 2009 sonunda piyasaya sürülen versiyonunun çok popüler olmasıyla ilişkilendirildi. Şimdilik daha fazla satış artışı bekliyoruz.

Rusya'da son derece popüler olan makul bir adım daha attık. Ürünlerimizin farklı versiyonlarının yasallaştırılma derecesi farklıdır: sürüm ne kadar yüksek olursa o kadar yasallaşır, çünkü daha erken yazılım o kadar aktif olarak satın alınmadı. RAD Studio XE'den başlayarak lisans 2010, 2009, 2007 sürümlerini ve hatta yaygın olarak kullanılan bir ürün olan Delphi 7'yi kapsar.

Günümüzde geliştiriciler hem yeni projelerin hem de destekte olan projelerin olduğu gerçeğiyle karşı karşıyadır. Çok sayıda proje transfer edildi önceki versiyonlar Delphi sürüm 7'ye geçti ve bu sürümde kaldı ve nispeten küçük kaynaklar üzerinde çalışmaya devam etti. Hiç kimse bunları daha yeni sürümlere taşımıyor ancak uygulanabilir bir durumda tutuluyorlar. Ve şimdi hem RAD Studio XE'yi hem de Delphi 7'yi çok az bir ücret karşılığında (Delphi 7 lisansının fiyatından daha düşük) almanıza izin veriyoruz - yani geliştiriciyi hem yeni projelerin uygulanması hem de destek projeleri için yasallaştırıyoruz.

: Embarcadero topluluğunun mevcut durumunu nasıl değerlendiriyorsunuz?

DI.: Bu topluluk büyük ve çok talepkar. Her şeye hemen ihtiyaçları var - onlar geliştiriciler. Ancak bazen bir şeyi doğru yapmak uzun zaman alır.

Birkaç yıl önce Windows bileşen mimarisini alıp Linux masaüstlerine yerleştirdik. Şimdi bunun doğru bir karar olmadığını görüyoruz. Doğru çözüm uygulama platformu oluşturmaktır. Farklı platformlardaki uygulamalarda bile menüler, pencereler, grafikler, ağ erişimi ve cihaz erişimi bulunur. Farklı platformlar olabilir farklı modeller akış kontrolü veya istisna yönetimi, ancak uygulama kodunda aynı try bloklarını görüyoruz. Bizim işimiz, ilgili işlemcilerin talimat setinin nasıl yapılandırıldığına ve bu platformların diğer özelliklerinin ne olduğuna bakılmaksızın, geliştiricilerin iş uygulamaları oluşturmasını ve bunları kullanılması amaçlanan platformlar için derlemesini kolaylaştırmaktır. Ve FireMonkey bu sorunu çözmek için tam da ihtiyacınız olan şey.

: Bir şirket yeni bir cihaz yaratırsa ve onun FireMonkey'de desteklenmesini isterse bu mümkün olacak mı?

DI.: Platformdan bağımsız bir ön uca ve platforma bağlı bir arka uca sahip olacak yeni nesil derleyiciler ile bu oldukça mümkün olacaktır. Bu arada her işletim sistemi için sıfırdan bir derleyici ve çalışma zamanı kütüphanesi oluşturuyoruz.

Herhangi bir modern yeni cihazın kural olarak bir grafiği vardır. Kullanıcı arayüzü(birçoğunun var çift ​​çekirdekli işlemci ve GPU) ve geliştiriciler için standart SDK'lar. Bu, FireMonkey'de cihaz desteği oluşturmayı kolaylaştırır. Yeni cihazın sadece Quartz gibi iki boyutlu grafiklere yönelik kütüphaneleri varsa FireMonkey'de böyle bir cihazı destekleyebileceğiz ancak bu yaklaşık birkaç ay sürecek. Ancak çoğu şey platforma bağlıdır: tüm platformlar tüm özellikleri desteklemez; örneğin, iOS'ta menüler ve iletişim kutuları yoktur ve bu tür uygulamaların formlarına ilgili bileşenleri yerleştiremezsiniz.

: Ortaklarla çalışma politikasında herhangi bir değişiklik oldu mu? Ürünlerinizin kullanıcı payını artırmak için neler yapılıyor? Rusya'da neler yapılıyor?

DI.:İş ortağı ekosistemimiz geniştir; ürünlerimizde bulunmayan yüzlerce araç ve bileşen üreticisi vardır ve bir teknoloji ortaklığı programımız bulunmaktadır. Bu nedenle geliştiricilerin kullanımına çok çeşitli bileşenler, teknolojiler ve araçlar sunulmaktadır. Ve müşterileri için yarattıkları çözümler, yalnızca bizim ürünlerimizi kullanmalarından daha iyi. Satış konusunda ise birçok ülkede ofislerimiz, bayilerimiz ve distribütörlerimiz bulunmaktadır.

K.R.: Bizim için önemli olan ortakların sayısı değil, her bir ortağın yaptığı işin kalitesidir. Şimdilik, ortak havuzu açık kalsa da mevcut ortaklarla yakın çalışmaya odaklanmak istiyoruz. Pek çok ortağımız var ve onlara teknoloji konusunda yardımcı olmalıyız. Geliştiricilerle çalışıyoruz ve onlar ne istediklerini biliyorlar, piyasada nelerin mevcut olduğunu biliyorlar ve ortakların yeteneklerinin buna uygun olması gerekiyor.

Bir iş kolu olarak Embarcadero'ya ciddi yatırım yapan iş ortaklarımız var; uzman yetiştirdiler, ürünlerimizi pazarladılar, bu hattan sorumlu özel çalışanlara sahipler ve ürünlerimizde, fiyat listemizde, pazarlamada olup bitenleri izliyorlar. Doğal olarak ürünlerimizin satışı konusunda ara sıra ürünlerimizi satan firmalara göre daha başarılı oluyorlar.

: David, Kirill, ilginç röportaj için çok teşekkür ederim. Yayınımız ve okuyucularımız adına, şirketinize, geliştiricilerin çok ihtiyaç duyduğu muhteşem araçlarınızı yaratmada daha fazla başarı diliyorum!

Natalia Elmanova tarafından sorulan sorular

FireMonkey "yeni Delphi"nin temel teknolojisidir. Lütfen bize bu temelde yeni kütüphanenin hedeflerini, yeteneklerini ve teknik yönlerini anlatın. Bir süre sonra geriye dönüp baktığınızda, süper popüler VCL'yi daha da geliştirmeyi reddetmeniz ne kadar zor ve haklıydı?

Belirli bir hedefe ulaşmak için Delphi teknolojisinin geliştirilmesinin ana yönü olarak seçildi - geliştiricilerin radikal bir şekilde yeniden eğitilmesine gerek kalmadan, tek bir kaynak kod tabanına dayalı, tek bir ortamdan çoklu platform geliştirme. Artık klasik ve süper popüler olan VCL çerçevesinde bu imkansızdı; WinAPI ile bağlantısının "genetik düzeyde" çok yakın olduğu söylenebilir.

VCL bileşenleri, arayüz açısından işlevsel seviye ile bunları görüntüleme mekanizmaları arasında "soyut" bir katmana sahip değildi. Fonksiyonel seviye— bir kontrol olarak nasıl davrandığı, hangi olaylara tepki verdiği, ne tür bir kullanıcı etkileşimi sağladığı. Görüntülemek— platform odaklı görselleştirme yöntemlerinin, taramalı nesneler ve vektör temel öğeleri tarafından oluşturulan belirli bir görüntü olarak adlandırılması. FireMonkey başlangıçta kontrolü kesin olarak iki bileşene ayırma ilkesini uyguladı: "davranışsal" ve "görsel".


Vsevolod Leonov, Embarcadero Technologies

İlki genellikle VCL'nin temellerini bile değil, nesne yönelimli programlamanın özünü tekrarlayacaktır. Bir bileşen bir sınıftır; bileşen sınıfları, ailelerin ve modüllerin ayırt edilebildiği bir hiyerarşi oluşturur. Bir bileşenin sınıfı, onun nasıl oluşturulduğuyla genel olarak ilişkilidir.

Görsel “resim” dinamik olarak oluşturulur; bileşen sınıfında katı bir şekilde yazılmaz. FireMonkey'deki görüntü veya "stil", uygulama başlatıldığında bileşene yüklenir. Bileşen için bir çeşit işlevsel çerçevemiz var ve "dış kaplama" veya "kaplama" değiştirilebilir, peki neden? Böylece FireMonkey uygulamaları her platformda (Windows 7, Windows 8, Mac OS, iOS ve yakın gelecekte Android) orijinal görünecektir. Bu, VCL'nin geleneksel yekpare sınıf yapısının sağlayamadığı bir şeydir.

Burada teknolojik yaklaşım özel bir rol oynuyor. Prensip olarak, VCL kütüphanesini alıp WinAPI ve diğer tüm olası platform çağrılarıyla "doldurabilirsiniz". Bu hala çok sınırlı bir bileşen alt kümesinde yapılabilir, ancak VCL birkaç yüz bileşen içerir, dolayısıyla bu yaklaşım VCL'yi basitçe "öldürebilir". VCL'ye dokunmamaya, ancak yeni bir platform olan FireMonkey'de yeni yetenekler geliştirmeye karar verildi. Bu teknoloji Hatta belli bir teknik zarafete bile sahiptir - projeyi belirli bir platform için birleştirirken Delphi IDE gerekli derleyiciyi bağlar ve arayüz bileşenleri bir platform stili alır.

Kullanıcı için bu, farenin tek bir tıklaması ve aynı kaynak kodudur; Delphi için ise böylesine çok platformlu bir kitaplık oluşturmak geliştiricilerin uzun yıllar süren sıkı çalışmasıdır.

FireMonkey'in ayrı ve yeni bir platform olarak tanıtılacağı netleştiğinde doğru birlikte yaşama stratejisinin seçilmesi gerekiyordu: Embarcadero, VCL kullanıcılarını hiçbir şekilde olumsuz etkilemek istemiyordu. Bu nedenle şu planı seçtik: VCL, mümkün olan en yüksek uyumluluğu sağlamak için ideolojik ve mimari açıdan istikrarlı kalıyor ve projelerin modern versiyonlara taşınmasını kolaylaştırıyor. FireMonkey'in gelişimi VCL'den bağımsız olarak doğal ve paralel bir yol izleyecektir.

Bu çözümün zayıf noktası, aynı proje içerisinde VCL'den FireMonkey'e geçişin oldukça sorunlu olmasıdır. Ancak yeni bir proje için geliştirici, ortaya çıkan uygulamanın çoklu platformunu sağlamak için FireMonkey'i seçebilir. iOS destekli XE4'ün piyasaya sürülmesinden sonra, başlangıç ​​olarak Delphi'nin parlak rekabet avantajlarından bahsedebiliriz. mobil geliştirme kurumsal ortamda planlanan Android desteğinin uygulanmasından sonra artacak.

Bu nedenle, VCL'nin geliştirilmesinin bu şekilde açık bir "reddi" yoktur. Yeni versiyonlarda Delphi'nin VCL kısmı da gelişiyor. Buna 64 bit desteği, görsel bileşenler için stilin getirilmesi, esnek dinamik bağlantılar veya "bağlama" için bir mekanizmanın uygulanması ve VCL projelerinde veritabanlarıyla çalışmak için FireDAC kitaplığının dahil edilmesi dahildir. FireMonkey'in yaptığı dev niteliksel sıçramayla karşılaştırıldığında, VCL'deki ilerleme biraz sönük görünüyor. Ancak öyle de olsa VCL, Delphi'nin ayrılmaz bir parçasıdır ve uzun yıllar boyunca da öyle kalacaktır. Her ne kadar platformların gelişimi ve işletim sistemi alanındaki mevcut durum masaüstü sistemleri ve mobil cihazlar öyledir ki gelecek kesinlikle FireMonkey'e aittir.

Röportajımızda iOS desteğinden daha önce bahsetmiştik. Okuyucularımıza en son RAD Studio XE4'teki diğer en yeni teknolojilerin (örneğin Windows 8 ve WinRT, 64 bit sistemler, MacOS vb.) desteğinden bahsedelim. Yeniliklerle şımartılan modern programcıya başka neler sunabileceğinizi sıralayabilir misiniz?

Büyük olasılıkla, modern bir programcı yeniliklerden "şımarık" değildir. İçin büyük projeler herhangi bir "yenilik" çoğu zaman devasa miktarda çalışmayla sonuçlanır.

Örneğin, herkes uzun süre bekledi, birçoğu hemen kodlarını tercüme etmeye koştu. yeni platform. Ancak çok profesyonel ekiplerin bile buna hazır olmadığı ortaya çıktı. 64 bit kod derlemek çalışmak anlamına gelmez. Örneğin, 4 baytlık adres boyutunu varsayan talimatlar kullanılarak "gençliğin günahları" su yüzüne çıkmaya başladı. Test kültürünün eksikliği, bu süreci kısa sürede hayata geçirmeye yönelik teknolojik hazırlıksızlıkla birleşiyor.

Ve burada - örneğin kaynak kodu satırlarının sayısıyla ölçülen proje ne kadar büyükse, programcılar arayüzdeki bir "düğmenin" görünümünden "sözdizimsel şekere" kadar çeşitli yenilikler konusunda o kadar dikkatli ve dengelidirler derleyicide.

Bu "sorunlu" başarılardan biri Windows 8'in piyasaya sürülmesiydi. Şahsen, bir PC kullanıcısı ve sadece modern bir BT uzmanı olarak Windows 8'den çok memnunum. Ancak yük olarak yeni işletim sistemi altında geliştirme spesifikasyonlarına sahip Windows 8 çalıştıran bir grup bilgisayar gönderilen geliştiriciler için bu, bazı zorluklar anlamına geliyor.

Bu işletim sisteminin yeni arayüzü için geliştirme desteğini mümkün olduğunca rahat ve ağrısız sağlamaya çalıştık. Bu nedenle, hem VCL hem de FireMonkey için özel stiller tanıtıldı ve programcı uygulama arayüzünü yeniden oluşturabilir veya Windows 8 için "yerel" olandan ayırt edilemeyecek yeni bir uygulama oluşturabilir. dış görünüş. Elbette Windows 8 için WinRT üzerinden “yerel” desteğe ihtiyaç var. Ancak bu, hedeflerin önceliklendirilmesinden etkilenir. modern koşullar. Yakın gelecekte Mac OS, iOS, Android henüz yakın gelecekte WinRT için tam destekten bahsetmemize izin vermiyor.

Embarcadero'nun stratejik hedefi elbette çoklu platformdur. RAD Studio XE4'ün piyasaya sürülmesi, özellikle iOS desteği nedeniyle çok önemliydi. VCL kullanan mevcut bir programcı birkaç saat içinde iOS için geliştirmeye başlayabilir. Hatta basit mobil uygulama anında mevcut altyapıyla çalışan güçlü bir projeye dönüştürülebilir. Kolay olduğunu düşünmeyin yeni derleyici FireMonkey'e ve yeni bir tarz iOS arayüzüyle uyumluluğu sağlamak için.

Buna yeni bir görsel tasarımcı, çeşitli form faktörleri için yerleşik destek, yeni FireDAC dahil veri erişim kitaplıkları ve kurumsal verilerle esnek ve dinamik bağlantı için LiveBindings teknolojisi dahildir. Tüm bu yenilikler Windows, Mac OS ve iOS için aynı anda geliyor. işletim sistemi Mac OS çok hızlı gelişmiyor bu nedenle Windows 7'den Windows 8'e geçiş gibi sorunlar yaşanmıyor. Ama ortaya çıktılar Retina ekranları ve bu özel bir dikkat gerektiriyordu. Artık Delphi XE4'te oluşturulan herhangi bir MacOS uygulaması otomatik olarak iki stil içeriyor: “normal” ve “yüksek tanımlı”.

O. aynı uygulama herhangi bir cihazda aynı yüksek kaliteli "yerel" arayüze sahip olabilir masaüstü bilgisayar Apple'dan.

Embarcadero, yeni yenilikçi sürümleriyle geliştiricileri "şaşırtmak", "şaşırtmak" ve hatta "eğlendirmek" istemiyor. Tam tersine, BT alanı zaten çeşitli sürprizlerle dolu: yeni cihazlar, yeni platformlar, yeni kullanıcılar, onların yeni ihtiyaçları, yeni etkileşim senaryoları. Buna yeni yazılım geliştirme teknolojileri eklediğinizde programcıların yeni sistemler ve mevcut sistemler oluşturmak için zamanları olmayacak - tek yapacakları bir ortamdan diğerine, eski bir kütüphaneden yenisine, bir dilden diğerine geçiş yapmak olacak.

Ancak yeni olan her şeyi reddettiğimizi iddia etmiyoruz. Yeni platformlar ve cihazlar ortaya çıktığında kod, arayüz, proje ve hatta profesyonel beceriler dahil her şeyin sürekliliğini sağlamak istiyoruz. Geliştirme araçlarında sağlıklı muhafazakarlık yoluyla yeni platformlara ilişkin sağlıksız muhafazakarlıkla mücadele ettiğimizi söyleyebilirsiniz. Embarcadero'dan egzotik ürünler, standart dışı programlama dilleri veya tuhaf geliştirme araçları beklemeyin.

Bizimle her zaman görsel geliştirme, klasik diller, “yerel” kod bulacaksınız ve aynı kanıtlanmış klasik yöntemle oluşturulan uygulamalarınız için hedef platformların yeni olmasına izin vereceksiniz.




Tepe