monyet api. Awal

03/06/2013 12:46

Saya sangat menderita karena kurangnya komponen browser di FireMonkey. Proyek Delphi Chromium Embedded yang terkenal memang menyertakan dukungan FMX dalam versi terbaru. Namun terlepas dari kenyataan bahwa cukup banyak waktu telah berlalu, penulis tidak terburu-buru untuk menambahkan dukungan FMX2. Pada akhirnya, saya harus mengambil tindakan sendiri.

Komponen TChromiumFMX dari perakitan resmi bekerja cukup baik di FireMonkey (di XE2), tetapi bahkan tidak dikompilasi di FMX2. Saya harus mencari tahu sedikit cara kerjanya dan memperbaikinya. Untungnya, tidak ada perubahan besar yang diperlukan.

Di FMX2, dua hal yang dibutuhkan komponen telah berubah.

Pertama, TBitmap tidak lagi memiliki properti ScanLine dan StartLine. Akses langsung ke konten TBitmap telah didesain ulang (saya bertanya-tanya mengapa?) dan sekarang tersedia melalui kelas TBitmapData, yang mengembalikan metode TBitmap.Map.

Nah, yang kedua, lebih terkenal - Platform .* tidak lebih, sekarang Anda perlu mendapatkan antarmuka yang diinginkan melalui TplatformServices.GetPlatformService . Semuanya cukup mudah di sini dan tidak ada masalah.

Saya tidak mengujinya dengan kecerdikan tertentu, tetapi komponennya cukup cocok untuk tujuan saya - Anda dapat melihat situs melaluinya. Unduh itu. Namun, mungkin, saya akan mengirimkan suntingan saya kepada penulis, mungkin dia akan menganggap perlu untuk menambahkannya ke versi resmi.

30/07/2012 2:43 pagi

Jason Southwell mengusulkan untuk mengembangkan satu set pembungkus FireMonkey untuk kontrol Windows/OSX asli dan mengumpulkan uang untuk ini. Dia berencana untuk mengumpulkan $ 20.000 untuk memulai.

Idenya jelas. Komponen FireMonkey yang ada dirender menggunakan alat Delphi hampir dari awal, yang, di satu sisi, sebagian besar memastikan lintas platform mereka, tetapi di sisi lain, sebagai hasilnya, kami mendapatkan komponen yang tidak terlihat cukup alami di kedua operasi yang saat ini didukung sistem. Dan ini tidak terlalu buruk - selain penampilan, Anda harus mengembangkan logika komponen-komponen ini secara mandiri. Misalnya, RichEdit cukup rumit, dan mengulangi logikanya di dalam FireMonkey bukanlah tugas yang sepele. Baik VCL dan CLX tidak menciptakan sepeda, tetapi menggunakan sepeda yang sudah jadi.

Dan sekarang kabar buruknya. Semuanya berfungsi saat runtime, tetapi saya tidak menemukan cara untuk menambahkan jenis tab baru saya ke Perancang Item. Dan tampaknya semua kontrol daftar memiliki masalah yang sama: TListBox, TGrid, dll. Pada awalnya, saya sangat menyukai pendekatan implementasinya, tetapi sekarang saya bahkan meragukannya. Pencarian internet mengungkapkan bahwa saya tidak sendirian dengan masalah ini.

Bantuan diam, saya juga tidak menemukan apa pun dalam kode. Benar-benar tidak mungkin? Ini akan sangat mengganggu.

Lebih dari tiga tahun telah berlalu sejak divisi CodeGear yang bertanggung jawab untuk menciptakan alat-alat terkenal di dunia seperti Delphi, C++Builder dan JBuilder, serta Interbase DBMS, menjadi bagian dari Embarcadero Technologies, sebuah perusahaan yang terkenal dengan desain dan administrasi databasenya. alat. , dan dua tahun sejak kami membahas di halaman majalah kami apa yang diharapkan dalam pengembangan alat yang sangat populer di kalangan pengembang Rusia. Kami bertanya kepada David Intersimone, Wakil Presiden untuk Hubungan Pengembang dan Kepala Penginjil Embarcadero Technologies, dan Kirill Rannev, Kepala Kantor Perwakilan Embarcadero Technologies di Rusia. Untuk pembaca termuda kami, kami akan memberi tahu Anda bahwa ini jauh dari wawancara pertama yang diberikan David dan Kirill kepada ComputerPress - kerja sama kami telah berlangsung selama dekade kedua. Dan untuk jumlah tahun yang sama, kami secara berkala menerbitkan ulasan alat manajemen basis data, di mana banyak perhatian diberikan pada produk Embarcadero.

KomputerTekan: David, divisi Anda telah menjadi bagian dari Embarcadero selama tiga tahun sekarang. Dua tahun lalu, Anda sangat antusias dengan fakta bahwa perusahaan itu menjadi bagian dari perusahaan yang dekat dengan Anda dalam tujuan dan semangat. Apakah ada yang berubah selama ini? Apakah Anda dan rekan kerja merasakan antusiasme yang sama?

Ya, saya masih bersemangat. Perubahan utama yang terjadi sejak kami menjadi bagian dari perusahaan Embarcadero adalah adanya banyak investasi dalam pengembangan Delphi. Jumlah karyawan yang bekerja pada alat pengembangan telah meningkat, jumlah teknologi yang dapat kami kembangkan atau, jika perlu, dapatkan telah meningkat.

Rilis RAD Studio XE 2, yang kami rencanakan untuk didemonstrasikan di Moskow, adalah rilis terbesar dari produk ini dengan kemampuan besar dan sejumlah besar platform yang didukung sejak versi pertama Delphi, dibuat untuk Windows 16-bit dan yang sebelumnya inovatif. produk yang menghubungkan pendekatan komponen dan kompilasi ke kode mesin. Sekarang kami mendukung pengembangan tidak hanya untuk Windows tetapi juga untuk Macintosh, belum lagi pengembangan web dan pembuatan aplikasi untuk perangkat seluler, dan aplikasi ini untuk platform yang berbeda dapat memiliki satu kode.

Platform pengembangan baru, FireMonkey, adalah kolaborasi antara Embarcadero dan perusahaan Rusia KSDev yang baru saja diakuisisi di Ulan-Ude, pembuat komponen grafis vektor, DirectX dan OpenGL, teknologi efek grafis, dan komponen Delphi menggunakan GPU dengan PixelShader 2.0. Kami mengakuisisi perusahaan KSDev (lihat ksdev.ru) setahun yang lalu dan mulai bekerja sama untuk membuat alat pengembangan multi-platform yang mencakup platform untuk mengembangkan aplikasi FireMonkey dengan komponen untuk Delphi dan C ++ Buider untuk membuat antarmuka pengguna aplikasi, integrasi dengan database, pemrosesan grafis menggunakan prosesor grafis dan integrasi dengan sistem operasi.

Menggunakan FireMonkey, Anda dapat membuat aplikasi yang menjalankan CPU dan GPU bersama-sama, dan kemudian menggunakan kompiler dan pustaka run-time yang berbeda (Perpustakaan Run-time, RTL) Anda dapat mengompilasinya untuk Windows, Mac OS, atau iOS. Alih-alih mempelajari pemrograman dengan pustaka grafis yang berbeda, mempelajari API dari platform yang berbeda dengan sistem koordinat yang berbeda dan kemampuan yang berbeda, pengembang yang menggunakan Delphi dan C++ Builder dapat menggunakan pendekatan komponen yang sama, mengedit formulir secara visual dan menghubungkan ke database dengan memindahkan komponen dengan mouse. Ini adalah cara baru yang fundamental untuk membuat aplikasi yang berjalan pada platform yang berbeda, dan merupakan masa depan. Jika Anda ingin menambahkan dukungan untuk sistem operasi dan platform lain ke aplikasi Anda, Anda tidak perlu mendesain ulang dan mengembangkannya - cukup dengan mengkompilasi ulang saja.

Kami membuat kompiler baru yang menghasilkan kode asli. Saat ini ada kompiler Delphi untuk Windows versi 32-bit dan 64-bit, Mac OS 10 versi 32-bit. Dan kami sedang mengerjakan kompiler Delphi dan C++ Builder generasi berikutnya yang akan memungkinkan Anda membuat kompiler berkinerja tinggi kode asli untuk platform ini dan lainnya. platform seperti Android atau Linux dan mempertahankan desain yang sama, komponen yang sama, kode yang sama dengan menggunakan kompiler dan pustaka runtime yang berbeda.

Seperti yang Anda lihat, saya punya cukup alasan untuk antusias. Dan para pengembang yang saya temui di seluruh dunia tahu bahwa Embarcadero banyak berinvestasi di Delphi dan C++ Builder serta alat pengembangan PHP.

KP: Kemajuan apa yang telah Anda buat dalam mengintegrasikan alat dari kedua perusahaan selama dua tahun terakhir? Apa rencana Embarcadero untuk masa depan di bidang ini?

DI.: Pada saat divisi CodeGear menjadi bagian dari Embarcadero, perusahaan ini memiliki tim pengembangan di Toronto, Monterrey, dan Rumania, kami berada dan masih berada di Lembah Scotts dan di Rusia, di St. Petersburg. Embarcadero memiliki alat pengembang dan administrator basis data, CodeGear memiliki alat pengembangan aplikasi, tetapi yang terakhir juga menggunakan basis data. Penggabungan perusahaan merupakan kombinasi keahlian, pengetahuan di bidang database, optimasi kode, termasuk kode server. Penggabungan tersebut juga menghasilkan penciptaan produk baru, AppWave, teknologi khusus untuk mengubah aplikasi Windows biasa menjadi sesuatu yang sangat mudah digunakan (seperti aplikasi untuk iPhone atau perangkat lain). AppWave memungkinkan Anda untuk tidak menginstal aplikasi, tetapi cukup memilihnya dan menjalankannya dari server penyimpanan aplikasi (aplikasi) yang disiapkan, sementara itu akan dijalankan di komputer pengguna tanpa membuat perubahan pada registri dan area sistem file. Omong-omong, browser aplikasi AppWave ditulis dalam Delphi. Embarcadero menggunakan Dephi untuk pengembangannya sendiri dan keahlian pengembangan aplikasi kami.

Aplikasi iPhone (iOS) dibuat oleh
menggunakan platform FireMonkey

Anda juga dapat menggunakan integrasi alat pengembangan dan Pengoptimal DB kami untuk mengoptimalkan kueri SQL saat membangun aplikasi. Dengan meneruskan kode SQL langsung ke DB Optimizer, Anda dapat membuat profil, mengujinya, dan mengembalikan versi yang dioptimalkan kembali ke lingkungan pengembangan. Keahlian database Embarcadero juga telah meningkatkan teknologi DataSnap. Terima kasih kepada para pengembang dari Toronto, kami telah memperoleh banyak pengetahuan tentang arsitektur sistem dan basis data multi-tingkat. Kami sekarang memiliki keahlian bersama dalam kode server dan prosedur tersimpan di kedua perusahaan. Kami memiliki alat seperti RapidSQL dan DB Change Manager, dan lingkungan pengembangan yang memudahkan pembuatan kode sisi server, seperti teknologi Wawasan Kode dan Penyelesaian Kode yang memungkinkan pembuatan wawasan SQL dan teknologi Penyelesaian SQL. Pendekatan umum kami untuk membuat kode klien dan server, filosofi umum kami, memungkinkan kami untuk berbagi fitur umum antara alat manajemen basis data dan alat pengembangan aplikasi.

Kirill Rannev: Saya ingin menambahkan sesuatu yang penting. Dari sudut pandang komersial, sangat penting bagaimana kami memberikan alat kami. Misalnya, rilis baru RAD Studio XE 2 Ultimate menyertakan set lengkap alat DB Power Studio. Ini adalah seperangkat alat yang sangat kuat, termasuk lingkungan pembuatan kueri RapidSQL, alat manajemen perubahan DB Change Manager, dan alat pengoptimalan kueri DB Optimizer, yang memungkinkan Anda melakukan bagian penting dari proses pengembangan dan penerapan, mengelola perubahan dalam model data, database, kode, dll. Ini adalah kombinasi teknologi yang sangat baik dan benar.

DI.: Namun, jika diperlukan, pengembang dapat menggunakan Subversion untuk mengelola versi kode sumber dan DB Change Manager untuk mengelola versi metadata. Anda dapat menggunakan pembuatan profil kode dan DB Optimizer untuk mengoptimalkan kode server, RapidSQL untuk membangun dan men-debug kode server, dan lingkungan pengembangan kami untuk membangun dan men-debug aplikasi. Kombinasi teknologi di RAD Studio XE Ultimate Edition ini menunjukkan paralel antara database dan model pengembangan aplikasi. Sebagian besar pengembang yang membangun aplikasi bisnis dengan Delphi dan C++ Builder bekerja dengan database dan membutuhkan alat ini, dan RAD Studio XE Ultimate Edition adalah kombinasi yang bagus untuk pengembang tersebut.

KP: Pengguna modern bukan lagi pengguna platform Windows saja. Kami menggunakan perangkat seluler, iPhone, iPad, perangkat berbasis platform Android. Ini berarti bahwa pengembang harus mulai menargetkan platform yang berbeda tanpa peningkatan investasi yang signifikan dalam pelatihan - yaitu, alat universal diperlukan. Jelas, tidak realistis untuk mengharapkan munculnya alat universal dari produsen platform, dan dalam hal ini kami hanya dapat mengandalkan produsen alat independen. Di mana kita bisa mengandalkan Embarcadero?

DI.: Kami masih memiliki banyak hal yang harus dilakukan di bidang dukungan platform. Hari ini kami memperkenalkan dukungan untuk platform iOS untuk iPhone dan iPad, diikuti dengan dukungan untuk smartphone Android, Windows 7 dan Blackberry. Di RAD Studio XE 2, kami memulai dengan membangun platform FireMonkey untuk iOS dan nantinya akan mem-porting FireMonkey ke platform lain.

Pada saat yang sama, ada sejumlah besar sistem operasi yang mendukung layar sentuh (touch screen), untuk ponsel, tablet dan perangkat, komputer desktop, dan kami akan terus menambahkan dukungan untuk mereka. Selain itu, ada sistem kontrol suara, sistem kontrol gerak, sistem biometrik, akselerometer, jadi kami harus terus memperluas FireMonkey agar semua pengembang dapat memanfaatkan platform baru. Misalnya, perangkat Microsoft Kinect dirancang untuk Xbox 360, dan sekarang ada SDK (Software Development Kit) yang sesuai untuk Windows. Dan kami sudah memiliki contoh di mana kami menggunakan gerakan untuk mengontrol aplikasi dengan cara yang hampir sama seperti biasanya kami menggunakan mouse atau keyboard.

Saat Anda membuat aplikasi dengan banyak grafik kompleks, Anda menghasilkan seluruh dunia antarmuka pengguna baru. Jika kita berurusan dengan sistem operasi Windows, kita enkapsulasi Windows API-nya di perpustakaan VCL (Visual Component Library - perpustakaan komponen visual yang merupakan bagian integral dari alat pengembangan Delphi dan C ++ Builder. - Catatan. ed.), yang, omong-omong, dapat diterapkan lebih lanjut. Dan di FireMonkey, kami merangkum API sistem operasi. Tapi hari ini kita memanipulasi bentuk dan grafik jauh lebih luas. Anda juga dapat menambahkan properti ruang fisik untuk animasi dan efek khusus. Selain itu, ada sejumlah besar fitur tambahan lainnya untuk membuat antarmuka pengguna yang akan kami terapkan dalam beberapa tahun ke depan untuk berbagai platform, perangkat seluler, dan tablet.

Microsoft baru-baru ini merilis rincian tentang Windows 8, yang akan keluar dalam setahun. Kami akan mendukung inovasi ini di perpustakaan VCL dan di platform FireMonkey. Tapi Delphi adalah alat pengembangan yang dirancang tidak hanya untuk Windows, tetapi juga untuk Macintosh, iPhone dan iPad. Kami juga mengembangkan produk PHP kami, mendukung jQuery Mobile, menggunakan iOS API untuk mengembangkan aplikasi klien seluler, dan membuat aplikasi PHP sisi server menggunakan wizard dan alat untuk menghasilkan JavaScript sisi klien, HTML, dan Cascading Style Sheets. Kami dapat mengemas aplikasi PHP dan aplikasi klien asli iPhone iOS, dengan klien berbicara ke server PHP. Dan itu, pada gilirannya, akan berkomunikasi dengan server database dan dengan layanan web - dengan semua yang diperlukan untuk bisnis.

Lingkungan pengembangan RadPHP XE2. Buat aplikasi web seluler
menggunakan komponen jQuery Mobile untuk iPhone 3G

Dengan kata lain, kami berencana untuk memperluas kemampuan FireMonkey dan VCL, termasuk dukungan untuk platform seluler.

KP: Bisakah Anda menguraikan lebih lanjut tentang platform FireMonkey?

DI.: Seperti yang telah saya catat, pustaka VCL yang dibuat untuk Windows akan terus berkembang dan ditingkatkan. Tetapi hari ini, jika Anda ingin benar-benar mengembangkan aplikasi bisnis, Anda harus membuatnya untuk platform yang berbeda. Untuk inilah platform FireMonkey dirancang. Ini mendukung pembuatan antarmuka pengguna resolusi tinggi, grafik 3D berkinerja tinggi, kecepatan bingkai tinggi, dan, yang terpenting, menggunakan GPU untuk ini.

Anda dapat menggunakan fitur ini saat membuat aplikasi ilmiah, teknik, dan bisnis. Aplikasi tersebut dapat terhubung ke database menggunakan teknologi dbExpress, masih menggunakan komponen non-visual yang familiar bagi pengembang, seperti ClientDataSet atau DataSource, menggunakan teknologi DataSnap, terhubung ke database, SOAP dan server REST. Anda dapat membuat kontrol yang menarik, tombol dengan kotak, tabel yang tidak biasa dan elemen antarmuka lainnya, dan dalam dua dan tiga dimensi. Anda dapat memuat model 3D yang sudah jadi ke dalam aplikasi dan menggabungkannya dengan bentuk 2D, yang dapat diputar dan dilihat dari sudut yang berbeda. Anda dapat membuat kubus data atau bagan bisnis 3D dan memutarnya menggunakan mouse, keyboard, atau bahkan perangkat Kinect, atau Anda dapat masuk ke dalam kubus dan melihat permukaannya yang berbeda dari dalam. Dan semua ini dapat dilakukan dengan GPU berkecepatan tinggi. Aplikasi yang sama kemudian dapat dikompilasi untuk platform lain, seperti Mac OS.

Aplikasi yang berisi kubus berputar dengan data,
ditempatkan di tepinya

Atau Anda dapat membuat bentuk 3D dari awal dan menggunakan kamera dan lampu untuk menerangi dan memutar bagian antarmuka pengguna. Perancang formulir sudah memiliki lingkungan bawaan untuk mendukung antarmuka pengguna 3D secara langsung pada waktu desain.

Di Windows, Anda dapat menggunakan pustaka Direct2D untuk grafik 2D resolusi tinggi, dan Direct3D untuk grafik 3D. Mac OS menggunakan perpustakaan Quartz dan OpenGL untuk tujuan yang sama. Untuk iOS, library Quartz dan OpenGL ES digunakan. Tetapi semua ini disembunyikan dari pengembang - ia menggunakan platform FireMonkey, sistem koordinat, dan antarmuka pemrograman aplikasi, tanpa memikirkan pustaka ini, dan dapat mengkompilasi aplikasi yang sama untuk platform yang berbeda.

Mari kita ingat apa itu VCL. VCL adalah komponen "pembungkus" di sekitar Windows API. Kita berurusan dengan sumber daya, menu, kotak dialog, warna, gaya, pesan Windows. Menjadi pembungkus multi-platform tidak seperti VCL, FireMonkey mempertahankan acara dan model komponen yang sama, memungkinkan Anda untuk berpikir dalam hal acara (misalnya, acara OnClick, OnHasFocus, onMouseDown, dan onKeyDown), tetapi menangani acara Macintosh atau iPhone.

Kerangka kerja FireMonkey juga dilengkapi dengan sistem lengkap untuk menganimasikan elemen antarmuka pengguna. Ini tentu saja bukan sistem animasi gaya Pixar yang komprehensif, tetapi memungkinkan Anda untuk menerapkan efek seperti menganimasikan bitmap, menyoroti fokus elemen antarmuka pengguna, dan bekerja dengan grafik vektor. Lebih dari 50 efek visual tersedia untuk pengembang: mengaburkan, mengubah gambar menjadi hitam putih, larut, transisi, refleksi, membuat bayangan - semua jenis efek tersedia di GPU modern yang sekarang ada di hampir semua komputer. Aplikasi yang dibangun menggunakan platform FireMonkey mengirimkan perintah ke GPU, yang melakukan semua pekerjaan menampilkan grafik dan membuat antarmuka pengguna. Pada saat yang sama, prosesor pusat bebas untuk perhitungan dan akses ke sistem operasi. Pengembang hanya perlu menempatkan komponen dengan benar.

Hal paling mendasar tentang platform FireMonkey adalah cara membangun antarmuka pengguna. Terdapat fasilitas untuk menempatkan grafik bitmap pada elemen antarmuka seperti menu, tombol, dan scrollbar. Di FireMonkey, kami menggunakan grafik vektor GPU untuk tujuan ini. Dari sudut pandang pemrograman, ini semua adalah kontrol yang sama, tetapi prosesor grafis melakukan semua pekerjaan untuk menampilkannya. Kita dapat menerapkan gaya ke kontrol, membuat aplikasi terlihat seperti aplikasi untuk Mac OS atau Windows, membuat gaya kita sendiri, menerapkan gaya ke elemen antarmuka (misalnya, membuat tombol persegi panjang atau bulat dengan mengubah gayanya di editor formulir) - untuk ini lingkungan pengembangan memiliki editor gaya. Anda dapat membuat gaya Anda sendiri, atau Anda dapat mengubah gaya aplikasi yang sudah jadi.

Platform FireMonkey - Alat Pengembangan
dan platform yang didukung

Jika Anda ingat, di perpustakaan VCL ada sejumlah kontrol - wadah (yaitu, memungkinkan Anda untuk menempatkan elemen lain di dalamnya), dan di FireMonkey setiap kontrol adalah wadah. Ini berarti bahwa setiap kontrol dapat berisi kontrol lainnya. Misalnya, item daftar turun bawah dapat berisi gambar, tombol, kotak edit, dan kontrol lainnya. Dan Anda juga dapat menempatkan komponen pada lapisan.

Sistem rendering FireMonkey cukup fleksibel - dapat menggunakan pustaka Direct2D, Direct3D, dan OpenGL dengan mengirimkan perintah ke GPU. Untuk mencapai hal yang sama di VCL, perlu untuk membuat buffer off-screen yang terpisah, membuat gambar di dalamnya dengan memanggil fungsi yang sesuai dari perpustakaan grafis, dan kemudian menampilkannya di formulir.

Contoh efek grafis yang didukung oleh FireMonkey

Jika Anda tidak memiliki GPU, Anda masih dapat menerapkan bentuk 2D atau 3D dan menggunakan kontrol FireMonkey. Dalam hal ini, platform FireMonkey akan menggunakan pustaka GDI+ atau pustaka serupa lainnya dan melakukan efek dan animasi atau manipulasi objek 3D yang sama.

Fitur lain dari FireMonkey adalah sistem baru untuk mengikat elemen antarmuka ke data, yang terbuka dan fleksibel. Ada dua jenis elemen antarmuka di VCL: data-bound dan non-data-bound (misalnya, TDBEdit dan TEdit). Di FireMonkey, setiap kontrol dapat dikaitkan dengan data, jenis apa pun. Ini bisa berupa ekspresi, bidang dari kumpulan data, data dari objek yang dibuat pengembang, atau hasil pemanggilan metode.

Selain itu, saat membuat aplikasi, Anda dapat memuat model 3D yang sudah jadi ke dalamnya dan menggunakannya - kemampuan seperti itu sering kali diperlukan baik dalam aplikasi bisnis maupun teknik. Kami memiliki klien yang membuat aplikasi untuk logistik. Mereka memiliki sistem informasi yang dibangun dengan Delphi, dan di dalamnya, sebuah aplikasi yang menggambar rencana dan menampilkan informasi dari sumber data. Mereka baru-baru ini melakukan sesuatu yang menarik - mereka menggambar gudang 3D yang sepenuhnya otomatis di AutoCAD, dan aplikasi mereka memungkinkan Anda untuk melihat bagaimana pemuat otomatis bergerak melalui gudang dan menempatkan barang di rak. Dan mereka meletakkan data dari sumber pada gambar yang sesuai.

Contoh Mengubah Gaya Aplikasi

KP: Format model 3D apa yang saat ini didukung?

DI.: Dalam rilis ini, kami mendukung model pemuatan dari AutoCAD, Collada (alat pemodelan 3D open source. - Catatan. ed.), Maya, format OBJ yang didukung oleh banyak vendor grafis 3D.

KP: Apa format lain yang direncanakan untuk ditambahkan?

DI.: Kami berencana untuk menambahkan 3DS (3D Studio MAX), SVG (biasanya format ini digunakan untuk grafik vektor 2D, tetapi terkadang untuk 3D), Google SketchUp. Kami juga dapat mendukung format lain.

KP: Apakah penggunaan model 3D dalam aplikasi yang dibuat dengan FireMonkey memerlukan lisensi untuk alat pemodelan 3D yang sesuai?

DI.: Tidak. Yang kita lakukan hanyalah membaca file model. Kami mengimpor model tetapi tidak mengekspornya (walaupun tentu saja Anda dapat menulis aplikasi yang menyimpan model dalam format Anda sendiri). Kami tidak mengklaim sebagai produsen alat pemodelan 3D - untuk ini Anda dapat menggunakan AutoCAD, 3D Studio Max, Maya atau alat pemodelan 3D lainnya, dan mengimpor model yang dibuat ke dalam aplikasi kami.

KP: Seberapa berkinerja aplikasi yang dibangun dengan FireMonkey pada platform perangkat keras modern?

DI.: Performanya cukup tinggi. Misalnya, bentuk 3D dengan tiga bola dan tiga lampu dapat dirender pada 100 bingkai per detik di MacBook Pro. Dan itu bisa mencapai 600 - itu tergantung pada apa yang sebenarnya kita lakukan. Sekali lagi, itu semua tergantung pada kekuatan GPU.

KP: Apakah ini berarti bahwa dengan bantuan FireMonkey Anda dapat membuat game yang memenuhi persyaratan modern?

DI.: Kami tidak memposisikan alat pengembangan kami sebagai alat untuk game. Namun, dengan menggunakan GPU modern berperforma tinggi, Anda juga dapat membuat game dengan FireMonkey - lagipula, game tersebut dibuat menggunakan Direct3D atau OpenGL.

KP: Pekerjaan apa yang Anda lakukan sekarang di bidang dukungan untuk pengenalan gerakan dan hal-hal baru lainnya? Apakah dukungan seperti itu tersedia?

DI.: Kami belum memiliki dukungan gerakan dalam rilis ini. Kontrol gerakan akan ditambahkan dalam rilis FireMonkey mendatang, tetapi untuk saat ini, Anda dapat menggunakan dukungan gerakan yang ada di dalam sistem operasi.

Mikhail Filippenko, direktur Fast Reports, Inc.

K.R.: Kami telah mengatakan bahwa teknologi FireMonkey memiliki akar Rusia - fondasinya dibuat di negara kami, dan kemudian teknologi itu sendiri dan pengembangnya bergabung ke Embarcadero. Secara umum, sangat menggembirakan melihat pertumbuhan komponen Rusia di RAD Studio dan Delphi. Ini adalah kegiatan pusat pengembangan kami di St. Petersburg, dan kontribusi pengembang independen Rusia. Misalnya, Rad Studio XE2 menyertakan pembuat laporan FastReport, yang dikenal di seluruh dunia dan sangat populer di negara kita. Dia berasal dari Rostov-on-Don.

KP: Saya ingin berbicara tentang kompiler. Kompiler apa yang digunakan untuk membuat aplikasi iOS?

DI.: Kami tidak memiliki kompiler Delphi sendiri untuk iPhone atau iPad - kami belum mengembangkan kompiler untuk prosesor ARM yang digunakan di perangkat ini. Untuk iOS, untuk sementara kami menggunakan kompiler Free Pascal dan pustaka runtime. Tetapi kami sedang mengerjakan kompiler generasi berikutnya, termasuk untuk prosesor ARM. Tetapi ada kompiler untuk Windows dan Mac OS, karena kedua platform perangkat keras didasarkan pada prosesor Intel.

KP: Dan apa yang telah dilakukan di bidang pengembangan compiler dalam dua tahun terakhir?

DI.: Kami memiliki kompiler Delphi 32 dan 64 bit untuk Windows dan Mac OS. Dan kami sedang mengerjakan kompiler Delphi dan C++ generasi baru. Bekerja pada mereka masih berlangsung, tetapi ketika selesai, kami akan memiliki kompiler Delphi untuk prosesor ARM, platform Android, Linux dan apa pun. Dan kami akan memiliki kompiler C++ 64-bit untuk Windows dan platform lain yang kompatibel dengan standar bahasa C++ terbaru yang baru saja diadopsi oleh ISO.

KP: Apa yang terjadi dengan dukungan komputasi awan di alat pengembangan Embarcadero hari ini?

DI.: Dengan RAD Studio XE 2, kami mendukung migrasi aplikasi ke cloud Microsoft Azure atau Amazon EC2 menggunakan Platform Assistant. Dan kami memiliki komponen server untuk Cloud Storage for Azure dan Amazon S3 untuk menyimpan tabel, data biner, antrian pesan. Di versi RAD Studio XE sebelumnya, kami juga mendukung penerapan aplikasi ke Amazon EC2, tetapi tidak ada dukungan penyimpanan.

Dukungan komputasi awan di RAD Studio XE 2

KP: Dua tahun lalu Anda berbicara tentang solusi All-Access baru. Berapa permintaannya? Apa manfaatnya bagi integrator dan pengembang sistem?

DI.: Solusi All-Access dan alat cloud AppWave banyak digunakan di seluruh dunia. Mereka dirancang untuk memudahkan penggunaan aplikasi perusahaan kami dan pihak ketiga. Sebenarnya, ini adalah solusi untuk mengelola lisensi dan aplikasi, dan nyaman untuk perusahaan besar. Perusahaan kecil yang tidak memiliki tim manajemen aplikasi khusus dapat memasukkan aplikasi ke dalam repositori, memilih nama pengguna dari database, dan memastikan bahwa aplikasi tersebut digunakan tanpa harus mengingat di mana kunci lisensi dan berapa banyak lisensi yang tersedia. All-Access dan browser AppWave dirancang untuk mengelola versi dan kontrol akses.

K.R.: Pasar sangat beragam, dan pengguna sangat berbeda, sehingga tidak mungkin untuk memenuhi semua kebutuhan dengan satu solusi. Oleh karena itu, kami mengupayakan berbagai solusi "pengemasan". Kami telah melakukan banyak pekerjaan untuk menyatukan lisensi, manajemen lisensi, dan pemasangan produk. Rangkaian solusi ini mencakup alat manajemen lisensi dan akses tidak hanya untuk produk Embarcadero, tetapi juga untuk produk lainnya, termasuk pengembangan internal perusahaan.

Pekerjaan menggabungkan alat pengembangan ke dalam kit pengguna yang efektif masih berlangsung. Kami memiliki All-Access - superset yang menggabungkan semua produk Embarcadero. Jika pelanggan membeli versi All-Access Platinum, ia menerima semua alat yang ada di Embarcadero. Tetapi terkadang set ini ternyata berlebihan, misalnya, kami membuat dua set lain untuk spesialis basis data - DB Power Studio Developer Edition dan DB Power Studio DBA Edition. Perbedaan di antara mereka adalah bahwa untuk pengembang kami menawarkan RapidSQL - alat untuk mengembangkan kode server, dan untuk administrator ada DBArtizan bawaan - alat administrasi basis data, produk yang lebih luas daripada RapidSQL. Untuk para profesional, kami memiliki suite All-Access berikut: suite semua produk, DB Power Studio untuk pengembang, DB Power Studio untuk administrator, ER Studio Enterprise Edition untuk arsitek dan siapa pun yang terlibat dalam pemodelan. Ada kombinasi untuk pengembangan aplikasi dan untuk administrator. Delphi adalah alat pengembang, dan sangat masuk akal untuk menambahkan alat pengembangan SQL dan alat pengoptimalan ke dalamnya. Terakhir, DB Change Manager adalah alat yang sangat logis untuk mengelola kompleksitas perubahan yang terjadi pada database selama siklus hidupnya.

Dengan demikian, All-Access adalah kepala keluarga besar set produk yang berbeda.

KP: Kalau bukan rahasia, siapa di Rusia yang menggunakan All-Access?

K.R.: Kami memiliki pelanggan yang membeli All-Access berdasarkan Delphi. Banyak dari mereka sedang membangun sistem klien-server yang kompleks dengan SQL Server dan Oracle, dan mereka langsung menyukai toolkit database lintas platform kami. Kami memiliki perusahaan klien yang telah bekerja dengan Delphi sejak versi pertama dan pindah dari Delphi ke All-Access setahun yang lalu. Dua tools yang dijamin bisa digunakan oleh semua developer di perusahaan ini adalah Delphi dan DBArtisan. Dan ada pelanggan yang datang ke All-Access dari sisi database. Tugas utama mereka adalah mengelola database, tetapi mereka juga kadang-kadang mengembangkan aplikasi. Klien yang menggunakan Akses Lengkap termasuk perusahaan media, pembuat mesin, dan industri lainnya.

Secara terpisah, saya ingin membahas perusahaan kecil. Sangat sering dalam tim kecil, pengembang melakukan segalanya, dan perusahaan semacam itu terkadang membeli paket makanan All-Access besar untuk satu atau dua pengembang. Dalam tim besar, pengembang tidak dianjurkan untuk melakukan peran sebagai administrator basis data, misalnya, jadi paket makanan kecil biasanya populer di sana, dan di perusahaan kecil kombinasi tugas ini cukup dapat diterima.

Delphi Architect adalah produk yang dipasarkan secara besar-besaran yang mencakup alat pemodelan dan pemrograman. Jumlah salinan yang terjual, bagaimanapun, kurang dari versi Delphi Enterprise, tetapi juga besar. Saya perhatikan bahwa pada tahun 2010 kami adalah negara terbaik dalam hal penjualan, terlepas dari kenyataan bahwa semua negara selamat dari krisis. Pertumbuhan ini bukan karena faktor ekonomi, melainkan karena versi RAD Studio XE, yang dirilis pada akhir 2009, ternyata sangat diminati. Dan sementara kami mengharapkan pertumbuhan lebih lanjut dalam penjualan.

Kami telah mengambil langkah lain yang masuk akal, yang sangat dituntut di Rusia. Tingkat legalisasi berbagai versi produk kami berbeda: semakin tinggi versinya, semakin legal, karena sebelumnya perangkat lunak tidak begitu aktif dibeli. Dimulai dengan RAD Studio XE, lisensinya mencakup versi 2010, 2009, 2007, dan bahkan Delphi 7, produk yang banyak digunakan.

Saat ini, pengembang dihadapkan pada kenyataan bahwa mereka memiliki proyek dan proyek baru dalam keadaan mendukung. Sejumlah besar proyek telah dipindahkan dari versi awal Delphi ke versi 7 dan tetap dalam versi ini, terus bekerja pada sumber daya yang relatif kecil. Tidak ada yang memindahkannya ke versi yang lebih baru, tetapi mereka tetap layak. Dan sekarang kami mengizinkan sedikit uang (kurang dari harga lisensi Delphi 7) untuk mendapatkan RAD Studio XE dan Delphi 7 - yaitu, kami melegalkan pengembang baik untuk implementasi proyek baru maupun untuk proyek pendukung.

KP: Bagaimana Anda menilai keadaan komunitas Embarcadero saat ini?

DI.: Komunitas ini besar dan sangat menuntut. Mereka membutuhkan segalanya dan segera - mereka adalah pengembang. Tapi terkadang butuh waktu lama untuk mendapatkan sesuatu yang benar.

Beberapa tahun yang lalu kami mengambil arsitektur komponen Windows dan meletakkannya di desktop Linux. Sekarang kita melihat bahwa itu bukan keputusan yang tepat. Keputusan yang tepat adalah membuat platform untuk aplikasi. Aplikasi bahkan untuk platform yang berbeda memiliki menu, jendela, grafik, akses jaringan dan akses ke perangkat. Platform yang berbeda mungkin memiliki kontrol aliran atau model penanganan pengecualian yang berbeda, tetapi kami melihat blok coba yang sama dalam kode aplikasi. Tugas kami adalah memudahkan pengembang untuk membuat aplikasi bisnis dan mengompilasinya untuk platform yang seharusnya digunakan, terlepas dari bagaimana sistem instruksi dari prosesor yang sesuai diatur dan fitur lain dari platform ini. Dan FireMonkey adalah persis apa yang Anda butuhkan untuk memecahkan masalah ini.

KP: Jika sebuah perusahaan membuat perangkat baru dan ingin memiliki dukungan FireMonkey untuk itu, apakah itu mungkin?

DI.: Dengan compiler generasi baru yang akan memiliki front-end platform-independen dan back-end platform-dependent, ini akan sangat mungkin. Sementara itu, untuk setiap sistem operasi, kami membuat kompiler dan pustaka runtime dari awal.

Setiap perangkat baru yang modern biasanya memiliki antarmuka pengguna grafis (banyak di antaranya memiliki prosesor dual-core dan GPU) dan SDK standar untuk pengembang. Semua ini menyederhanakan pembuatan dukungan perangkat di FireMonkey. Jika perangkat baru hanya memiliki perpustakaan untuk grafik 2D seperti Quartz, kami akan dapat mendukung perangkat tersebut di FireMonkey, tetapi ini akan memakan waktu sekitar beberapa bulan. Namun, banyak tergantung pada platform: tidak semua platform mendukung semua fitur, misalnya, iOS tidak memiliki menu dan kotak dialog, dan Anda tidak akan dapat menempatkan komponen yang sesuai pada formulir aplikasi tersebut.

KP: Apakah ada yang berubah dalam kebijakan bekerja dengan mitra? Apa yang sedang dilakukan untuk meningkatkan pangsa pengguna produk Anda? Apa yang sedang dilakukan di Rusia?

DI.: Ekosistem mitra kami luas - ada ratusan produsen alat dan komponen yang tidak ditemukan dalam produk kami, dan kami memiliki program kemitraan teknologi. Oleh karena itu, berbagai komponen, teknologi, dan alat tersedia untuk pengembang. Dan solusi yang mereka buat untuk pelanggan mereka lebih baik daripada jika hanya produk kami yang digunakan. Dan untuk penjualan, kami memiliki kantor di banyak negara, reseller dan distributor.

K.R.: Yang penting bagi kami bukanlah jumlah mitra, tetapi kualitas kerja masing-masing mitra tertentu. Untuk saat ini, kami ingin fokus bekerja sama dengan mitra yang ada, meskipun kumpulan mitra tetap terbuka. Kami memiliki banyak mitra, dan kami harus membantu mereka dalam hal teknologi. Kami bekerja dengan pengembang, dan mereka tahu apa yang mereka inginkan dan tahu apa yang tersedia di pasar, dan kemampuan mitra harus sesuai dengan ini.

Kami memiliki mitra bisnis yang telah banyak berinvestasi di Embarcadero sebagai lini bisnis - mereka telah melatih spesialis, pemasaran produk kami, karyawan berdedikasi yang bertanggung jawab untuk area ini dan memantau apa yang terjadi dengan produk kami, daftar harga, pemasaran. Secara alami, mereka lebih berhasil dalam hal penjualan produk kami daripada perusahaan yang menjual produk kami berdasarkan kasus per kasus.

KP: David, Kirill, terima kasih banyak atas wawancaranya yang menarik. Atas nama publikasi kami dan pembaca kami, izinkan saya berharap perusahaan Anda terus sukses dalam menciptakan alat luar biasa Anda yang sangat dibutuhkan pengembang!

Pertanyaan yang diajukan oleh Natalia Elmanova

FireMonkey adalah teknologi inti dari "Delphi baru". Tolong beri tahu kami tentang tujuan, kemampuan, dan aspek teknis dari perpustakaan yang pada dasarnya baru ini. Setelah beberapa saat, melihat ke belakang, seberapa keras dan beralasankah penolakan Anda untuk lebih mengembangkan VCL yang sangat populer?

Itu dipilih sebagai arah utama pengembangan teknologi Delphi untuk mencapai tujuan tertentu - pengembangan multi-platform dari satu lingkungan, berdasarkan basis kode sumber tunggal, dan tanpa perlu pelatihan ulang pengembang yang radikal. Dalam kerangka VCL yang sekarang klasik dan sangat populer, ini tidak mungkin, hubungannya dengan WinAPI terlalu dekat, bisa dikatakan, "pada tingkat genetik".

Komponen VCL tidak memiliki lapisan "abstrak" antara tingkat fungsional dalam hal antarmuka dan mekanisme pemetaannya. tingkat fungsional- bagaimana perilakunya sebagai kontrol, peristiwa apa yang bereaksi, interaksi pengguna seperti apa yang disediakannya. Menampilkan- memanggil metode rendering berorientasi platform sebagai semacam gambar yang dibentuk oleh objek raster dan vektor primitif. FireMonkey awalnya menerapkan prinsip membagi kontrol secara ketat menjadi dua komponen: "perilaku" dan "visual".


Vsevolod Leonov, Embarcadero Technologies

Yang pertama secara keseluruhan tidak akan mengulangi bahkan dasar-dasar VCL, tetapi inti dari pemrograman berorientasi objek. Komponen adalah kelas, kelas komponen membentuk hierarki di mana keluarga dan modul dapat dibedakan. Kelas komponen tidak ada hubungannya dengan bagaimana itu dirender.

"Gambar" visual dibentuk secara dinamis, tidak di-hardcode di kelas komponen. Gambar atau "gaya" di FireMonkey dimuat ke dalam komponen saat aplikasi dimulai. Kami memiliki semacam kerangka fungsional untuk komponen, dan "kulit" atau "kelongsong" dapat diubah, tetapi mengapa? Itulah sebabnya aplikasi FireMonkey terlihat otentik pada platform apa pun - Windows 7, Windows 8, Mac OS, iOS dan, dalam waktu dekat, Android. Struktur kelas VCL monolitik tradisional tidak dapat menyediakan ini.

Di sini, pendekatan teknologi memainkan peran khusus. Pada prinsipnya, Anda dapat menggunakan pustaka VCL dan "mengisi" WinAPI dengan semua kemungkinan panggilan platform lainnya. Pada subset komponen yang sangat terbatas, ini masih dapat dilakukan, tetapi VCL berisi beberapa ratus komponen, sehingga pendekatan ini dapat dengan mudah "membunuh" VCL. Diputuskan untuk tidak menyentuh VCL, dan untuk mengembangkan fitur baru di platform baru - FireMonkey. Teknologi ini bahkan memiliki keanggunan teknis tertentu - pada saat merakit proyek untuk platform tertentu, Delphi IDE menghubungkan kompiler yang diperlukan, dan komponen antarmuka menerima gaya platform.

Untuk pengguna, ini adalah satu klik mouse dan kode sumber yang sama, untuk Delphi, bertahun-tahun kerja keras pengembang untuk membuat perpustakaan multi-platform seperti itu.

Ketika menjadi jelas bahwa FireMonkey akan diperkenalkan sebagai platform baru yang terpisah, strategi koeksistensi yang tepat harus dipilih: Embarcadero tidak ingin memberikan dampak negatif kepada pengguna VCL dengan cara apa pun. Oleh karena itu, kami telah memilih rencana berikut: VCL tetap stabil secara ideologis dan arsitektural untuk memastikan kompatibilitas sebesar mungkin, membuatnya lebih mudah untuk memindahkan proyek ke versi modern. Pengembangan FireMonkey akan mengikuti jalur alami dan paralel, tanpa melihat kembali ke VCL.

Titik lemah dari solusi ini adalah migrasi yang agak bermasalah dari VCL ke FireMonkey dalam satu proyek. Namun di sisi lain, untuk proyek baru, pengembang dapat memilih FireMonkey untuk memastikan sifat multi-platform dari aplikasi yang dihasilkannya. Dengan rilis XE4 dengan dukungan iOS, kita sudah dapat berbicara tentang keunggulan kompetitif Delphi yang kuat untuk pengembangan seluler di lingkungan perusahaan, yang akan ditingkatkan setelah implementasi dukungan yang direncanakan untuk Android.

Oleh karena itu, tidak ada "penolakan" eksplisit dari pengembangan VCL. Dalam versi baru, bagian VCL Delphi juga sedang dikembangkan. Ini termasuk dukungan untuk 64-bit, dan pengenalan gaya untuk komponen visual, dan penerapan mekanisme untuk tautan dinamis fleksibel atau "pengikatan", dan penyertaan pustaka FireDAC untuk bekerja dengan basis data dalam proyek VCL. Hanya saja dengan latar belakang lompatan kualitatif raksasa karena FireMonkey, kemajuan dalam VCL terlihat agak tidak terwujud. Tetapi bagaimanapun juga, VCL merupakan bagian integral dari Delphi dan akan tetap demikian selama bertahun-tahun yang akan datang. Meskipun evolusi platform dan keadaan saat ini di bidang OS untuk sistem desktop dan perangkat seluler sedemikian rupa sehingga masa depan jelas dengan FireMonkey.

Kami telah membahas dukungan iOS dalam wawancara, mari beri tahu pembaca kami tentang dukungan RAD Studio XE4 terbaru untuk teknologi terbaru lainnya, seperti Windows 8 dan WinRT, sistem 64-bit, MacOS, dan sebagainya. Bisakah Anda membuat daftar apa lagi yang bisa Anda tawarkan kepada programmer modern yang dimanjakan oleh inovasi?

Kemungkinan besar, programmer modern tidak "dimanjakan" oleh inovasi. Untuk proyek besar, "inovasi" apa pun sering kali berubah menjadi pekerjaan yang sangat besar.

Misalnya, semua orang menunggu lama, banyak yang segera bergegas untuk mentransfer kode mereka ke platform baru. Tetapi ternyata tim yang sangat profesional pun tidak siap untuk ini. Kode 64-bit yang dapat dikompilasi tidak berarti bisa diterapkan. "Dosa masa muda" mulai muncul, seperti menggunakan instruksi dengan asumsi ukuran alamat 4-byte. Kurangnya budaya melakukan tes, ditambah dengan keengganan teknologi untuk menerapkan proses ini dalam waktu singkat.

Dan di sini - semakin besar proyek, diukur, misalnya, dengan jumlah baris kode sumber, semakin hati-hati dan seimbang programmer memperlakukan berbagai jenis inovasi mulai dari tampilan "tombol" di antarmuka hingga "gula sintaksis" dalam kompiler.

Salah satu pencapaian "bermasalah" ini adalah rilis Windows 8. Secara pribadi, sebagai pengguna PC dan hanya spesialis TI modern, saya senang dengan Windows 8. Tetapi untuk pengembang yang dikirimi sekumpulan komputer Windows 8 dengan spesifikasi teknis untuk pengembangan di bawah OS baru sebagai beban, ini berarti kesulitan tertentu.

Kami mencoba memberikan dukungan untuk pengembangan di bawah antarmuka baru OS ini senyaman dan semudah mungkin. Oleh karena itu, gaya khusus telah diperkenalkan untuk VCL dan FireMonkey, dan pemrogram dapat membangun kembali antarmuka aplikasi atau membuat aplikasi baru yang tidak dapat dibedakan dari tampilan "asli" untuk Windows 8. Tentu saja, ada kebutuhan untuk dukungan "asli" untuk Windows 8 melalui WinRT. Tapi di sini prioritas tujuan dalam kondisi modern mempengaruhi. Mac OS, iOS, Android dalam waktu dekat belum memberikan kesempatan untuk berbicara tentang dukungan penuh dari WinRT dalam waktu dekat.

Tujuan strategis Embarcadero, tentu saja, multi-platform. Rilis RAD Studio XE4 adalah yang utama, terutama karena dukungan iOS. Seorang programmer aktif yang menggunakan VCL dapat mulai mengembangkan untuk iOS dalam hitungan jam. Bahkan aplikasi seluler sederhana dapat langsung diubah menjadi proyek hebat yang bekerja dalam infrastruktur yang ada. Jangan berpikir itu hanya kompiler baru untuk FireMonkey dan gaya baru untuk mencocokkan antarmuka iOS.

Ini termasuk desainer visual baru, dukungan bawaan untuk berbagai faktor bentuk, pustaka akses data, termasuk FireDAC baru, dan teknologi LiveBindings untuk pengikatan fleksibel dan dinamis ke data perusahaan. Semua inovasi ini hadir secara serempak - untuk Windows, dan untuk Mac OS, dan untuk iOS. Sistem operasi Mac OS tidak berkembang begitu pesat, sehingga tidak ada masalah seperti transisi dari Windows 7 ke Windows 8. Tetapi tampilan Retina muncul, dan ini membutuhkan perhatian khusus. Sekarang aplikasi MacOS apa pun yang dibuat di Delphi XE4 secara otomatis menyertakan dua gaya - "normal" dan "definisi tinggi".

Itu. aplikasi yang sama dapat memiliki antarmuka "asli" dengan kualitas yang sama di komputer desktop mana pun dari Apple.

Embarcadero tidak ingin "mengejutkan", "memukau" atau bahkan "menghibur" pengembang dengan rilis inovatif barunya. Sebaliknya, lingkungan TI sudah penuh dengan berbagai kejutan: perangkat baru, platform baru, pengguna baru, kebutuhan baru mereka, skenario interaksi baru. Tambahkan teknologi pengembangan perangkat lunak baru ke dalamnya, dan pemrogram tidak akan punya waktu untuk membuat sistem baru dan sistem yang sudah ada - mereka hanya akan melakukan apa untuk bermigrasi dari satu lingkungan ke lingkungan lain, dari perpustakaan lama ke perpustakaan baru, dari satu bahasa ke bahasa lain. lain.

Tetapi kami tidak mengakui penolakan terhadap segala sesuatu yang baru. Kami hanya ingin memastikan kelangsungan segalanya - kode, antarmuka, proyek, bahkan keterampilan profesional saat platform dan perangkat baru muncul. Kita dapat mengatakan bahwa kita memerangi konservatisme yang tidak sehat dalam kaitannya dengan platform baru dengan mengorbankan konservatisme yang sehat dalam alat pengembangan. Jangan berharap produk eksotis, bahasa pemrograman non-standar, dan alat pengembangan aneh dari Embarcadero.

Bersama kami, Anda akan selalu menemukan pengembangan visual, bahasa klasik, kode "asli", dan menjadikan platform target untuk aplikasi Anda yang dibuat dengan cara klasik yang terbukti sama menjadi baru.

Apa itu Monyet Api?


FireMonkey (FMX) merupakan framework untuk pengembangan cross-platform baik untuk sistem desktop (Windows, Mac OS+ dalam waktu dekat direncanakan akan mendukung bagian server di Linux) maupun mobile (iOS dan Android) dengan menggunakan bahasa Delphi/C++ .

Keunikan:

  • basis kode tunggal untuk semua platform;

  • kontrol apa pun (komponen visual) dapat menjadi wadah (induk) untuk komponen lain;

  • adanya susunan relatif yang sangat maju (20 jenis) komponen pada formulir;

  • LiveBinding memungkinkan Anda untuk menghubungkan semua jenis data atau informasi ke antarmuka pengguna atau objek grafis apa pun;

  • kehadiran gaya bentuk/komponen;

  • Pratinjau Multi-Perangkat memungkinkan Anda untuk menyesuaikan presentasi visual untuk setiap platform;

  • FireUI Live Preview - Menampilkan tampilan aplikasi pada perangkat nyata secara real time.

Kemampuan:

  • penggunaan API asli dari masing-masing platform, serta kemampuan untuk memanggil perpustakaan asli pihak ketiga;

  • interaksi dengan semua sensor (GPS, Accelerometer, Kompas, Bluetooth (termasuk LE) dan lainnya);

  • dukungan untuk pemberitahuan push, IoT;

  • dukungan untuk permintaan HTTP asinkron;

  • dukungan untuk sebagian besar database (MsSQL, MySql, Oracle, PostgreSQL, MongoDB, dll.);

  • bekerja dengan Layanan Cloud (Amazon, Azure);

  • dukungan layanan android.

Kontra (saat ini):

  • kurangnya dukungan untuk kustomisasi kelas asli;

  • implementasi hal-hal tertentu tidak mungkin (widget, ekstensi (iOS), dll.) atau tarian dengan rebana diperlukan (layanan latar belakang, pesan siaran, dll.);

  • kustomisasi Splash screen (layar awal) secara halus, tidak;

  • Kontrol FMX menggunakan rendering mereka sendiri (visualisasi, menggambar), yang secara visual mirip dengan asli;

  • penggunaan kontrol asli dikaitkan dengan gerakan tubuh besar;

  • dengan banyak komponen, hal-hal luar biasa terjadi: aplikasi mogok di berbagai tempat, fokus hilang, macet, dll.;

  • konten informasi men-debug aplikasi pada platform seluler adalah nol;

  • deskripsi kesalahan pada platform seluler direduksi menjadi "Kesalahan 0x000000X" yang tidak berguna;

  • waktu kompilasi ingin menjadi yang terbaik untuk proyek menengah dan besar;

  • kebutuhan untuk menggunakan file untuk menyempurnakan aplikasi seluler untuk setiap platform;

  • tidak ada dukungan untuk arsitektur Intel Atom;

  • harga yang tidak memadai dibandingkan dengan pesaing.

Kelebihan:

  • perkembangan terkini yang sangat aktif dari produk dan komunitas, dukungan untuk semakin banyak teknologi baru;

  • kehadiran sejumlah besar komponen gratis dan komersial;

  • kecepatan aplikasi sangat mendekati asli;

  • editor visual yang sangat canggih dan lingkungan secara umum, kehadiran gaya;

  • kemampuan untuk menguji aplikasi di Win, dan baru kemudian menyebarkannya ke perangkat, yang sangat mempercepat pengembangan;

  • ubah mode/platform dengan jentikan pergelangan tangan;

  • PAServer menyediakan interaksi yang mudah dengan MacOs saat mengembangkan untuk Apple OS;

  • dukungan untuk grafis 3D di luar kotak.

Sebagai kesimpulan, saya ingin mengatakan bahwa selama beberapa tahun terakhir, FireMonkey telah berkembang menjadi alat profesional untuk pengembangan aplikasi bisnis lintas platform dan tidak hanya. Banyak kekurangan secara bertahap diselesaikan dan dengan setiap rilis produk menjadi lebih modern dan mandiri, dan skeptisisme yang ada terhadap bahasa Delphi itu sendiri, terkait dengan stagnasi bertahun-tahun, juga menghilang. Menulis proyek baru di FireMonkey adalah "aman" dan menjanjikan.

Cukup waktu telah berlalu sejak istilah FireMonkey telah menjadi lebih atau kurang akrab, jika tidak untuk semua pengembang, maka setidaknya untuk mereka yang menggunakan Delphi. Selama ini, ada buku tentang FireMonkey, artikel tentang FireMonkey, entri tentang FireMonkey di banyak blog. Membaca semua ini sangat menarik. Tapi tidak ada teori yang bisa menggantikan praktik. Dan saya, seperti banyak orang sebelumnya, merasa gatal untuk mencoba menulis sesuatu menggunakan FireMonkey.

Namun, dalam melakukannya, muncul masalah. Untuk beberapa alasan, saya memutuskan bahwa saya hanya perlu mengimplementasikan beberapa proyek kerja yang tidak terlalu rumit.

Untuk menjelaskan mengapa hal ini menjadi masalah bagi saya, diperlukan beberapa penyimpangan (yang ingin ditulis, liris). Perjalanan ke masa lalu saya sebagai pengembang. Jelaskan beberapa pandangan saya tentang pemrograman menggunakan Delphi.

Saya harus mengatakan bahwa saya mulai menggunakan Delphi pada Windows 3.1, yaitu dari versi pertama. Dan sejak itu saya mempelajari VCL. Belajar di aslinya, sehingga untuk berbicara. Ditonton, ditangani, dilacak kode sumbernya. Lagi dan lagi.

Diketahui bahwa pada berbagai waktu set komponen yang dikirimkan bersama Delphi menyertakan komponen pihak ketiga yang seharusnya mengisi celah di VCL, dan yang mungkin melewati semacam kontrol kualitas sebelum disertakan. Beberapa komponen tersebut terus dipasok hingga saat ini. Ambil Indy yang sama. Saya tidak ingin menyinggung siapa pun, ini murni pendapat pribadi saya, yang juga berlaku untuk diri saya sendiri sebagai pengembang komponen: tidak ada satu set pun yang dipikirkan dan diterapkan secara mendalam serta VCL yang besar dan beragam. Tidak, saya tidak berpura-pura menjadi kebenaran tertinggi, dan tentu saja, ada banyak kesalahan dalam VCL itu sendiri, keputusan yang menyebabkan kesalahpahaman, menyebabkan penolakan dan yang ingin tidak disetujui. Tapi saya selalu mendapat kesan gaya tunggal tertentu. Ada di VCL, menurut pendapat saya, inti yang indah dan kuat yang mendukung seluruh desain Delphi, dan di sekitarnya infrastruktur perangkat lunak dan komunitas pengembang itu sendiri dibangun. Terima kasih sebagian besar kepada VCL, sekali lagi menurut saya rumor tentang kematian Delphi masih rumor. Dan ketika komponen pihak ketiga dimasukkan dalam pengiriman VCL, itu langsung terlihat, mereka berbeda.

Tetapi kemudian saatnya tiba dan saya mendengar bahwa VCL adalah teknologi yang sudah ketinggalan zaman. Sebuah teknologi yang harus ditinggalkan di masa lalu. Pengembang harus mengimplementasikan semua proyek baru mereka di FireMonkey, tetapi tentang yang lama ... alangkah baiknya untuk mentransfernya ke rel baru. FireMonkey ada di mana-mana dan selalu. Dan saya mendengarnya dari berbagai sumber. Dan cukup gigih. Tidak, tidak ada yang membunuh VCL. dia tinggal bersama kita. Tapi dia bukan lagi nomor satu. Dia harus menjadi stand-in. Setidaknya begitulah cara saya memahami apa yang dikatakan tentang masa depan produk.

Pada prinsipnya, saya memahami keselarasan ini. Kursus telah diambil untuk multi-platform, dan, yang lebih penting, untuk lintas-platform. Lagi pula, apa itu VCL? Pustaka Komponen Visual. Perpustakaan komponen visual. Anda mungkin tidak setuju dengan ini. Sebagai contoh, saya selalu mempertimbangkan banyak komponen non-visual, dan bukan komponen, tetapi hanya kelas, bagian integral dari VCL, dan sejumlah besar kelas dan komponen pihak ketiga - kelanjutan, perpanjangan dari VCL. Yah, saya tidak bisa menganggap ahli waris TDataset sebagai bukan bagian dari VCL. Meskipun, misalnya, istilah Perpustakaan DBExpress mengatakan bahwa itu, seolah-olah, bukan VCL. Rupanya, Embarcadero benar-benar membagi monolitik, dari sudut pandang saya, VCL menjadi beberapa perpustakaan terpisah. Tidak, tentu saja, tidak sepenuhnya terpisah, tetapi tetap saja. Dan jika Anda mengambil sudut pandang ini, FireMonkey dimaksudkan untuk menggantikan bagian visual dari VCL (bagaimana saya masih harus memanggil perpustakaan kelas dan komponen yang lengkap, mungkin Perpustakaan Komponen Borland?).

Apa saja komponen visual dari perpustakaan yang dibangun? Di sekitar elemen dasar tingkat rendah yang disediakan oleh sistem operasi. Pegangan jendela, font, jendela itu sendiri, elemen input, pesan, konteks perangkat, dan banyak lagi - ini bukan konsep perpustakaan yang disertakan dengan Delphi, tetapi konsep sistem operasi. Ya, benar, Windows. Dan jika Anda ingin membangun perpustakaan lintas platform, maka logis untuk menolak infrastruktur yang ditawarkan oleh sistem operasi yang menjalankan program yang ditulis menggunakan perpustakaan.

Inilah yang coba dilakukan FireMonkey. Mereka mencoba membuat infrastruktur berdasarkan mekanisme yang mendasari yang didukung oleh berbagai sistem operasi yang dapat menggantikan layanan yang ditawarkan oleh sistem operasi itu sendiri.

Banyak yang ingat mencoba membuatlintas platform tidak hanya perpustakaan, tetapi Delphi itu sendiri. Sejajar dengan Delphi 6, produk Kylix dan perpustakaan CLX dirilis. Semua ini dilakukan agar bisa berkembang untuk Linux. Namun, Linux tidak memiliki banyak konsep dasar jendela GUI yang dimiliki Windows. Antarmuka jendela untuk Linux umumnya bukan fenomena asli. Ini adalah aplikasi opsional. Dan saya harus menulis semacam perpustakaan sintetis. Dengan bantuannya, dimungkinkan untuk menulis program untuk Windows dan Linux. Namun, saya masih ingat perasaan itu, bukan frustrasi, melainkan ketidaknyamanan yang mengganggu, yang saya alami ketika mencoba menggunakan analog komponen visual dari CLX. Saya mulai banyak kehilangan. Apa yang biasa saya lakukan tanpa berpikir ketika mengembangkan dengan VCL ternyata sulit, sangat berbeda, atau tidak mungkin dilakukan dengan menggunakan CLX.

Saya merasakan hal yang sama ketika beralih dari BDE ke DBExpress. Lama, akrab dari Uji Lapangan BDE (Borland sudah menggunakannya di Quattro Pro untuk Windows dan Paradox untuk Windows, dan itu disebut ODAPI, dan kemudian IDAPI, dan merupakan potongan di atas, menurut saya, ODBC Microsoft) dinyatakan sebagai teknologi usang, yang seharusnya memberi jalan dalam proyek baru ke perpustakaan baru. Saya selalu kehilangan sesuatu di DBExpress pada awalnya, terutama pengetahuan.

Pada saat yang sama, saya sama sekali tidak ingin memarahi atau mengkritik perpustakaan yang tercantum di atas, atau keputusan yang menyebabkan kemunculan mereka. Ini hanya tentang kesan saya, terkadang kesan pertama.

Sekarang, mungkin, menjadi sedikit lebih jelas mengapa keputusan untuk menulis proyek kerja kecil menggunakan FireMonkey membawa sejumlah masalah. Selama bertahun-tahun, selama pengembangan proyek, proyek dan proyek, stereotip tertentu telah terbentuk, pola tertentu tentang apa dan bagaimana melakukannya. Dan dalam kasus saya, saya harus menghadapi kenyataan bahwa template perlu diubah. Karena Anda tidak dapat mentransfer semua yang biasa Anda gunakan menggunakan VCL ke proyek yang dibangun di FireMonkey.

Pada awal proyek, saya mengalami perasaan deja vu tertentu. Yaitu, perasaan tidak nyaman. Misalnya, elemen input biasa tidak memiliki banyak properti. Trik yang telah menjadi mapan dalam praktik, berdasarkan trik yang terkait dengan pengetahuan tentang beberapa fitur sistem operasi, tidak berfungsi dalam konteks baru. Belum lagi beberapa komponen mengalami perubahan radikal.

Nah, nuansa penting lainnya. Proyek apa yang biasanya harus dilakukan di tempat kerja, jika (pekerjaan) itu tidak terkait dengan penyusun penulisan, sistem pemodelan, atau hal lain yang sangat ilmiah? Saya pikir sebagian besar tentang mengembangkan sesuatu yang melibatkan penggunaan database. Selain itu, sesuatu yang sangat ilmiah juga dapat menggunakan layanan yang disediakan oleh DBMS.

Di sini penyergapan lain menunggu saya. Untuk beberapa alasan, ketika Anda menemukan dalam praktik bahwa FireMonkey tidak mengandung elemen yang berfokus pada bekerja dengan data yang disimpan dalam database, Anda belum cukup siap untuk ini (secara halus). Meskipun saya sudah membaca tentang ini berkali-kali dan Anda tahu (secara teoritis) apa yang harus Anda gunakan. Ini tentang Binding Langsung.

Saya tidak ingin berdebat tentang apakah programmer yang benar-benar keren harus menggunakan komponen db-aware atau tidak.menampilkan, mengedit, dan akhirnya menyimpan. Yang, sekali lagi, tidak buruk atau baik. Itu hanya terjadi seperti itu bagi saya.

Ini menyimpulkan posting kesan pertama saya. Baris berikutnya adalah cerita tentang apa dan bagaimana mereka mengatasi saat mengerjakan proyek.