Delphi, FiremonKey, All-Access and other pleasant surprises. FiremonKey. Start. Prehistory. Impressions in the large nesting of the components occur incredible things: the application stokels in a wide variety of places, focus is lost, hangs

What is FireMonkey?


FiremonKey (FMX) - framework for cross-platform development as for desktop systems (Windows, Mac OS + in the near future it is planned to support server part on Linux) and mobile (iOS and Android) using the Delphi / C ++ language.

Features:

  • unified code base for all platforms;

  • any controllers (visual component) may be a container (parent) for other components;

  • the presence of a very advanced relative location (20 types) of components on the form;

  • LiveBinding allows you to connect any data types or information to any user interface or graphic objects;

  • the presence of styles of form / components;

  • Multi-Device Preview allows you to configure a visual representation for each of the platforms;

  • FireUI Live Preview - Displays the view of the application on real-time real-time devices.

Capabilities:

  • using the native API of each of the platforms, also the ability to call third-party native libraries;

  • interaction with all sensors (GPS, Accelerometer, Compass, Bluetooth (including LE) and others);

  • support PUSH notifications, IoT;

  • support for asynchronous HTTP requests;

  • most database support (MSSQL, MySQL, Oracle, PostgreSQL, Mongodb, etc.);

  • working with CLOUD SERVICE (Amazon, Azure);

  • support Android Service.

Cons (currently):

  • lack of support for customization of native classes;

  • the implementation of specific things is either impossible (widgets, expansion (iOS), etc.) or a bell dance is needed (Background Service, Broadcast Message, etc.);

  • customization Splash Screen (initial screen) to put it mildly no;

  • FMX controls use their own rendering (visualization, drawing), which is purely visually similar to native;

  • the use of native controls is associated with large television;

  • with a large nesting of the components, incredible things happen: the application stars in a wide variety of places, focus is lost, it hangs, etc.;

  • information debugging application on mobile platforms zero;

  • the description of the errors on mobile platforms is reduced to useless "ERROR 0x00000x";

  • compilation time wishes to be the best for medium and large projects;

  • need to use a file to bring to mind mobile applications for each platform;

  • there is no support for Intel ATOM architecture;

  • inadequate price compared to competitors.

Pros:

  • very active development recently both the product and community, support for new and new technologies;

  • the presence of a huge number of free and commercial components;

  • the speed of the application is very close to the native;

  • very advanced visual editor and environment as a whole, availability of styles;

  • the ability to test the application on Win, and only then deploy on devices, which is very accelerating the development;

  • changing the mode / platform with light hand moving;

  • PASERVER provides easy interaction with MacOS when developing Apple OS;

  • support 3D graphics out of the box.

In conclusion, I want to say that FiremonKey over the past couple of years has grown in a professional tool for cross-platform development business applications and not only. Many drawbacks are gradually solved and with each release, the product becomes more and more modern and self-sufficient, also disappears the existing skepticism to the Delphi language itself associated with many years of stagnation. Writing new projects on FiremonKey is "safe" and promising.

More than three years have passed since the Codegear division, which is responsible for creating world-famous tools such as Delphi, C ++ Builder and JBuilder, as well as InterBase DBMS, has become part of Embarcadero Technologies, known for its tools for designing and administering databases. And two years - since we discussed on the pages of our magazine, what to expect in the field of tools, so popular with Russian developers. What's new in this area over the past two years and what to wait in the near future, we asked to tell David Insessonon, the Vice-President for Relations with Developers and the Chief Evangelist of Embarcadero Technologies, and Kirill Rannev, head of Representative Office Embarcadero Technologies in Russia. For the youngest readers, let's notify that this is not the first interview that David and Kirill give computer, - our cooperation has been continuing for the second decade. And about the same years, we periodically publish reviews for managing databases, which pays great attention to Embarcadero products.

ComputerPress: David, your division is part of Embarcadero for three years. Two years ago, you were full of enthusiasm about the fact that it became part of the company close to you by goals and spirit. Did something changed during this time? Are you experiencing your colleagues former enthusiasm?

Yes, I am still full of enthusiasm. The main change that occurred from the moment we became part of Embarcadero, is what many investments have been done in the development of Delphi. The number of employees working on the means of development increased, the number of technologies that we can develop or, if necessary, acquire it.

Release Rad Studio XE 2, which we plan to demonstrate in Moscow is the largest release of this product with huge features and a large number of supported platforms from the time of the first version of Delphi, created by another 16-bit version of Windows and the former innovative product that connected the component Approach and compilation in machine code. Now we support the development not only for Windows, but also for Macintosh, not to mention webbout and creating applications for mobile devices, and these applications for different platforms may have a single code.

The new development platform - FiremonKey is the joint work of Embarcadero and the newly acquired Russian company KSDEV from Ulande, component manufacturers for vector graphics, DirectX and OpenGL, technology creation technologies and Delphi components that use a graphics processor with Pixelshader 2.0. We purchased KSDEV (see ksdev.ru) a year ago and began working together to create a multi-platform development tool, including a platform for developing FireMonkey applications with components for Delphi and C ++ Buider to create a user interface of applications, integration with databases , graphics processing using graphic processor and integration with the operating system.

With the help of FiremonKey, you can create an application, when executing the central and graphics processors, work together with different compilers and execution time libraries (RUN-Time Libraries, RTL) can be compiled for Windows, Mac OS or iOS. Instead of studying programming using various graphic libraries, study the APIs of different platforms that have different coordinate systems and different capabilities, developers using Delphi and C ++ Builder can apply the same component approach, visually editing forms and connecting to databases by moving the mouse component. It is fundamentally new way Creating applications running on different platforms and for it the future. If you want to add support for other operating systems and platforms to your application, it will not be necessary to re-design and develop it - it will simply recompile it.

We create new compilers generating machine code (Native Code). Today there are Delphi compilers for 32- and 64-bit versions of Windows, 32-bit versions of Mac OS 10. And we work on the next-generation Delphi and C ++ Builder compilers, which will allow you to create a high-performance machine code for both listed and other platforms, such as Android or Linux, and save the same Design, the same components, the same code due to the use of different compilers and execution time libraries.

As you can see, I have enough reasons for enthusiasm. And the developers with whom I meet around the world know that Embarcadero invests a lot of funds in Delphi and C ++ Builder, as well as in the development tools for PHP.

KP: What success in the field of integration of tools of two companies did you manage to achieve over the past two years? What are the plans of Embarcadero for the future in this area?

DI.: At the time when the Codegear division was part of Embarcadero, this company had a team of developers in Toronto, Monterrey and Romania, we were still in Scottswall and in Russia, in St. Petersburg. Embarcadero had tools for developers and database administrators, CodeGear - application development tools, but the latter also use databases. Companies - this is a union of expertise, knowledge in databases, code optimization, including server. The company's association also led to the creation of a new AppWave product - special technology to turn the usual Windows application into something very easy to use (like applications for iPhone or other devices). AppWave allows you to not install the application, but simply select it and run from the Prepared Application Servers (APP), and it will be performed on a user computer without making changes to its registry and system area file System. By the way, AppWave Application Browser is written in Delphi. Embarcadero uses Dephi for its own developments and our expertise in application development.

Application for iPhone (iOS) created
Using the FireMonkey Platform

You can also apply the integration of our development tools and DB Optimizer to optimize SQL queries when creating applications. By sending SQL code directly to DB Optimizer, you can profile it, test and return it back to the development environment of its optimized version. Embarcadero examination in databases also allowed to improve DataSnap technology. Thanks to the developers from Toronto, we received a lot of knowledge about the architecture of multi-part systems and databases. Now we have a joint expertise in creating a server code and stored procedures in both companies. We have such tools such as Rapidsql and DB Change Manager, as well as the development environment that simplifies the creation of the server code, for example, Code Insight and Code Completion technology allowed you to create SQL Insight and SQL COMPLTION technologies. Our general approaches to create client and server codes, our common philosophy allows you to give common features Tools for managing databases and application development tools.

Kirill Rannev: I want to add a curious important. From a commercial point of view, it is very important how we deliver our tools. For example, the new issue of RAD Studio XE 2 Ultimate includes full set DB Power Studio tools. This is a very powerful set of tools, including RapidSQL query development environment, DB Change Manager, and DB Optimizer DB Optimization Tool, allow you to implement an important part of the development and deployment process, managing changes in the data model, database, code, etc. This is a very good and proper combination of technology.

DI.: But, if necessary, developers can apply Subversion to control the source code versions and DB Change Manager to control the versions of metadata. You can use code profiling and DB Optimizer to optimize the server code, RapidsQL to create and debug server code and our development environments to create and debug applications. This combination of technologies in the RAD Studio XE Ultimate Edition demonstrates parallels between database and applications development models. Most developers creating business applications using Delphi and C ++ Builder work with databases and need these tools, and RAD Studio XE Ultimate Edition is an excellent combination for such developers.

KP: Modern user is no longer a user of the Windows platform only. We use mobile devices, iPhone, iPad, devices based on Android platform. This means that developers must begin to focus on various platforms without a significant increase in training investment - that is, universal tools are needed. Obviously, to expect the emergence of universal tools from platform manufacturers is unrealistic, and in this matter we can only count on independent tool manufacturers. What can we count on Embarcadero?

DI.: We still have much to be done in the field of supporting platforms. Today we present support for the IOS platform for iPhone and iPad, then our support will receive smartphones based on the Android platform, Windows 7 and BlackBerry. In Rad Studio XE 2, we started with the creation of the FireMonkey Platform for IOS, and then transfer FiremonKey to other platforms.

At the same time, there are a large number of operating systems with support for touch screens (Touch Screen) for phones, tablet computers and devices, desktop computersAnd we will continue to add support for them. In addition, there are voice control systems, movement, biometric systems, accelerometers, so we must continue to expand FiremonKey so that all developers can take advantage of new platforms. For example, the Microsoft Kinect device was intended for Xbox 360, and now there is an appropriate SDK (Software Development Kit) and for Windows. And we already have examples in which we use the application to manage the application approximately, just as the mouse or keyboard usually apply.

When you create applications with lots of complex graphics, you generate a whole world of new user interfaces. If we are dealing with the Windows operating system, we encapsulate it applied program interface Windows APIs in the VCL library (Visual Component Library - a library of visual components, which is an integral part of the Delphi and C ++ Builder development tools. - Approx. ed.), which, by the way, can be applied further. And in FiremonKey, we encapsulate API operating system. But today we manipulate the forms and graphics much more widely. You can also add the physical properties of space for animation and special effects. In addition, there is a huge number of other additional possibilities for creating user interfaces that we are going to implement in the next few years for different platforms, mobile and tablet devices.

Microsoft recently published detailed information About Windows 8, which should come out in a year. We will support these innovations in the VCL library and in the FiremonKey Platform. But Delphi is a development tool, designed not only for Windows, but also for Macintosh, iPhone and iPad. We also develop our PHP products, support Jquery Mobile, use iOS application program interface to develop mobile client applications and create server PHP applications using wizards and tools to generate client JavaScript and HTML codes and cascading style sheets. We can create packages from PHP applications and client applications with Native code for iPhone ios.At the same time, such a client will communicate with the PHP server. And the one, in turn, will communicate with the database server and with the websleges - with everything you need for business.

RADPHP XE2 development environment. Creating a mobile web application
Using JQuery Mobile Components for iPhone 3G

In other words, we plan to expand the capabilities of FireMonkey and VCL, including in the area of \u200b\u200bsupporting mobile platforms.

KP: Could you tell us more about the FireMonkey Platform?

DI.: As I noted, the VCL library created for Windows will continue to develop and improve. But today, if you want to realize business applications, you must create them for different platforms. For this purpose, the FiremonKey platform is intended. It supports the creation of high-resolution user interfaces, high-performance three-dimensional graphics, high frame shift and, importantly, uses a graphics processor for this.

You can apply similar features when creating scientific, engineering and business applications. Such applications can be connected to databases using DBExpress technology, still using familiar developers to developers, such as ClientDataSet or DataSource, apply DataSnap technology, connect to any databases, SOAP and REST servers. You can create attractive controls, buttons with boxes, unusual tables and other interface elements, and in two- and three-dimensional versions. You can download the finished three-dimensional model to the application and connect it with a two-dimensional form in which it can be rotated and treated from different sides. You can create a cube with a data or a three-dimensional business diagram and rotate them with the help of a mouse, keyboard or even Kinect devices, but you can enter the cube inside and look at different surfaces from the inside. And all this can be done using a graphics processor at high speed. Then the same application can be compiled for another platform, for example for Mac OS.

An application containing a rotating cube with data
placed on his faces

And you can create a three-dimensional form from scratch and use cameras and light sources and illuminate and rotate part of the user interface. The forms designer already built into the environment to support the three-dimensional user interface directly during development.

In Windows to work with two-dimensional high-resolution graphics, you can apply Direct2D libraries, and for three-dimensional graphics - Direct3D. Mac OS for the same goals used QUARTZ and OpenGL libraries. For iOS, Quartz and OpenGL ES libraries are used. But all this is hidden from the developer - it uses the FiremonKey platform, its coordinate system and an application program interface, without thinking about these libraries, and can compile the same application for different platforms.

Recall what VCL is. VCL is a component wrapper around Windows API. We are dealing with resources, menus, dialog boxes, colors, styles, windows messages. Being, unlike VCL, a multi-platform "wrapper", FiremonKey saves the same event and component model, allowing you to think in terms of events (for example, onClick events, onHaSFocus, OnMouseDown and OnKeydown), but are processed by Macintosh or iPhone events.

The FireMonkey Platform also comes with the full animation of the user interface elements. This, of course, is not a comprehensive PIXAR type animation system, but it allows you to apply such effects as animation raster images, Focus illumination at the user interface element and work with vector graphics. The developer is available more than 50 visual effects: Blur, transformation of the image into black, dissolution, transitions, reflection, creating shadows - all types of effects available in modern graphics processors that are now practically in any computer. An application created using the FireMonkey Platform sends commands to a graphical processor that performs all the work on displaying graphics and creating a user interface. In this case, the central processor is free for calculations and appeals to the operating system. The developer also remains only to place the components.

The most fundamental FireMonkey platform is a way that it builds a user interface. There are means of accommodation raster graphics On the interface elements, such as menus, buttons and scroll strips. In FiremonKey, we use vector graphics for this purpose using a graphics processor. From the programming item, these are all the same controls, but the performance of the display is performed by the graphics processor. We can apply styles to control elements, make an application similar to the Mac OS application or for Windows, create your own style, apply your styles to interface elements (for example, make a button rectangular or round by changing its style in the form editor) - for this In the development environment, there is editor styles. You can create your own style, and you can change the style of the ready-made application.

FireMonKey Platform - Development Tools
and supported platforms

If you remember, the VCL library had a limited number of controls - containers (that is, allowing other elements to be placed in them), and in FiremonKey, each control is a container. This means that each control can contain any other control. For example, inside the elements of the drop-down list can be images, buttons, edit fields and other controls. And you can also place components by layers.

FireMonkey Rendering System is quite flexible - it can use the Direct2D, Direct3D and OpenGL libraries, sending commands to a graphic processor. To achieve the same in VCL, it was necessary to generate a separate buffer outside the screen, create an image in it, causing the corresponding functions of graphic libraries, and then display it on the form.

Examples of graphic effects supported by FiremonKey

If you do not have a graphics processor - you can still use two or three-dimensional forms and use FiremonKey controls. In this case, the FireMonkey platform will use the GDI + libraries or other similar libraries and carry out the same effects and animation or manipulate three-dimensional objects.

Another feature of FiremonKey - new system binding interface elements with data, open and flexible. VCL contains two types of interface elements: data connected with data and not connected with data (for example, tdbedit and tedit). In FiremonKey, each control can be associated with data, with any type. It can be just an expression, a field from a dataset, data from the objects created by the developer or the results of a call to the methods.

In addition, when creating an application, you can download the finished three-dimensional model to it and use it - such possibilities are often required in business applications, and in applications for engineering calculations. We have a client who creates applications for logistics. They had an information system built using Delphi, and in it - an application that painted the plan and displayed information from data sources. Recently, they made something interesting - drew a fully automated three-dimensional warehouse in AutoCAD, and their application allows you to see how the automatic loader moves in a warehouse and puts the goods on the shelves. And they lay out data from sources to the corresponding image.

Examples of application styles

KP: What formats of three-dimensional models are now supported?

DI.: In this release, we support the download of models from AutoCAD, COLLADA (open source three-dimensional modeling tool. - Approx. Red.), Maya, OBJ format, which is supported by many manufacturers of three-dimensional graphics.

KP: What other formats are planned to add?

DI.: We plan to add 3DS formats (3D Studio MAX), SVG (usually this format is used for two-dimensional vector graphics, but sometimes for three-dimensional), Google Sketchup. Perhaps we will support other formats.

KP: Does the use of three-dimensional models in applications created using FireMonKey, licenses for the appropriate tool of three-dimensional modeling?

DI.: No, it does not require. All we do is read the file with the model. We import a model, but do not export it (although, of course, you can write an application that will retain the model in your own format). We do not apply for being a manufacturer of three-dimensional modeling tools - for this you can use AutoCAD, 3D Studio Max, Maya, or any other three-dimensional modeling tool, and in our applications to import created models.

KP: How productory applications created using FiremonKey are on modern hardware platforms?

DI.: Performance is quite high. For example, the rendering of a three-dimensional shape with three spheres and three lighting sources on MacBook Pro. It can be inspired at 100 frames per second. Or can reach 600 - it depends on what we do. Again, it all depends on the power of the graphics processor.

KP: Does this mean that with FiremonKey, you can create games that meet modern requirements?

DI.: We do not position our development tools as a tool for games. However, using high performance of modern graphics processors, you can create both games with FiremonKey - after all, they create them using Direct3D or OpenGL.

KP: What works do you now have in the area of \u200b\u200bsupporting the recognition of gestures and other new-fashioned things? Is such support available?

DI.: We have no support for gestures in this release. Gesture management will be added in one of the future FiremonKey releases, but for now you can use the support for gestures built into the operating system.

Mikhail Filippenko, Director of Fast Reports, Inc.

K.R: We have already said that FiremonKey technology has Russian roots - its foundations were created in our country, and then the technology itself, and its developers joined Embarcadero. In general, it is gratifying to see the growth of the Russian component as part of Rad Studio and Delphi. This is the activities of our development center in St. Petersburg, and the contribution of independent Russian developers. For example, the RAD STUDIO XE2 included a FastReport report generator - known worldwide and very popular in our country. He comes from Rostov-on-Don.

KP: I would like to talk about the compilers. What kind of compiler is used when creating iOS applications?

DI.: For iPhone or iPad, we do not have your own Delphi compiler - we have not yet developed compilers for ARM processors used in these devices. For iOS, we temporarily use the compiler and the FREE PASCAL execution time library. But we work on the next generation of compilers, including for ARM processors. But for Windows and Mac OS there are compilers, since both hardware platforms are based on Intel processors.

KP: What was done in the field of creating compilers in the last two years?

DI.: We have 32- and 64-bit Delphi compilers for Windows and Mac OS. And we work on the new generation of Delphi and C ++ compilers. Work on them is still going on, but when it is completed, we will have Delphi compilers for ARM processors, Android platforms, Linux and everything. And we will have 64-bit C ++ compilers for WINDOWS and other platforms compatible with the latest standard C ++ language, just adopted by ISO.

KP: What is happening with the support of "cloud" computing in the development of Embarcadero?

DI.: In Rad Studio XE 2, we support the transfer of applications to the "Cloud" Microsoft Azure or Amazon EC2 using the Platform Assistant tool. And we have server components for Cloud Storage for Azure and Amazon S3 to store tables, binary data, message queues. IN previous version RAD Studio XE We also supported the deployment of applications in Amazon EC2, but there was no storage support in it.

Support for "cloud" calculations in RAD Studio XE 2

KP: Two years ago, you talked about the new solving All-Access. How demanded it turned out to be? What are its advantages for system integrators and developers?

DI.: In the world, the All-Access solution and the AppWave cloud tool apply very widely. They are intended to simplify the use of applications of both our company and other manufacturers. In fact, this is a solution for managing licenses and application applications, and it is convenient for large companies. Small firms in which there are no special groups of employees responsible for managing applications can put an application in the repository, select user names from the database and ensure the use of these applications without having to remember where license key And how many licenses are available. All-Access and Browser AppWave are designed to manage both version and access control.

K.R: The market is so diverse, and users are so different that it is impossible to cover all needs with one solution. Therefore, we strive for a variety of "packaging" solutions. We have done a lot of work to unify licensing methods, license management and product installation. This solution line includes license management and access controls not only for Embarcadero products, but also for any other products, including internal companies.

Work on the configuration of development tools to effective kits for users is still continuing. We have All-Access - Superset, which combines all Embarcadero products. If the customer acquires the All-Access Platinum version, it receives all the tools that in Embarcadero. But sometimes this set is excessive, for example, for examples of databases, we made two other sets - DB Power Studio Developer Edition and DB Power Studio DBA Edition. The difference between them is that for the developer we offer rapidsql - the server code development tool, and the administrator is built in DBArtIZAN - the database administration tool, a wider product than rapidsql. For specialists we have the following All-Access sets: a set that includes all products, DB Power Studio for developers, DB Power Studio for administrators, ER Studio Enterprise Edition for architects and all who are engaged in modeling. There are combinations for developing applications and for administrators. Delphi is a means for the developer, and it is very reasonable to add SQL development tools and optimization tools. Finally, DB Change Manager is a completely logical tool in order to manage the complexity of those changes that occur with databases during their life cycle.

Thus, All-Access is the head of a large family of various sets of products.

KP: If it's not a secret, who in Russia apply All-Access?

K.R: We have customers who bought All-Access, pushing out from Delphi. Many of them create complex client-server systems with SQL Server and Oracle, and immediately liked our cross-platform toolkit for databases. We have a client company that works with Delphi, starting with the first version, and a year ago she switched using Delphi. To the All-Access set. Two tools that are guaranteed to use all developers in this company is Delphi and Dbartisan. And there are customers who came to All-Access from databases. Their main task is to administer databases, but sometimes they are engaged in developing applications. Among customers using All-Access, media companies, engineering enterprises and representatives of other industries.

Separately I would like to stay on small companies. Very often in small teams, the developer does everything, and such a company sometimes buys large All-Access product sets for one or two developers. In large teams, it is not encouraged to make the developer to perform, for example, also the role of the database administrator, therefore small product kits are usually popular there, and in small companies such a combination of responsibilities is permissible.

Delphi Architect is an active product that includes the means of modeling and programming. The number of its sold copies is true, less than the version of Delphi Enterprise, but it is also great. I note that in 2010 we turned out to be best country In terms of sales, despite the fact that all countries have survived the crisis. This growth was connected not so much with economic factors as with the fact that the version of Rad Studio Xe released at the end of 2009 turned out to be very popular. And while we expect further sales growth.

We made another reasonable step, extremely popular in Russia. The degree of legalization of various versions of our products is different: the higher the version, the more it is legalized, because previously the software is not so actively bought. Starting from the RAD Studio XE version, the license applies to version 2010, 2009, 2007 and even on Delphi 7 - a wide prevalence product.

Today, developers are faced with the fact that they have new projects, and projects in the state of support. A large number of projects was translated from early versions Delphi on version 7 and remains as part of this version, continuing to work on relatively small resources. No one translates them to newer versions, but they are supported in a viable state. And now we allow for little money (smaller than the license price Delphi 7) get both RAD Studio XE, and Delphi 7 - that is, we will legalize the developer and to implement new projects and for support projects.

KP: How do you evaluate the current state of the Embarcadero community?

DI.: This community is great and very demanding. They need everything and immediately - they are the same developers. But sometimes to make something right, you need a lot of time.

A few years ago, we took the component architecture of Windows and put it in Linux desktops. Now we see that it was not the right decision. The correct solution is to create a platform for applications. Applications Even for different platforms have menus, windows, graphics, network access and access to devices. In various platforms there may be different models of flow control or exception handling, but in the application code we see the same TY blocks. Our work is to simplify developers creating business applications and compiling them for those platforms on which they are supposed to be used, regardless of how the system of instructions of the respective processors and what other features of these platforms are arranged. And FiremonKey is exactly what is needed to solve this problem.

KP: If the company creates a new device and wants to have its support in FiremonKey, will it be possible?

DI.: With the compilers of a new generation, which will be independent of the Front-End platform and the Back-End platform-dependent, it will be quite possible. In the meantime, for each operating system, we create a compiler and the execution time library from scratch.

Any modern new device, as a rule, has a graphic user interface (Many of them have a dual-core processor and a graphics processor) and standard SDK for developers. All this simplifies the creation of a device support in FiremonKey. If a new device will have only libraries for Quartz two-dimensional graphics, we will be able to support FiremonKey and such a device, but this will require approximately several months. Nevertheless, much depends on the platform: not all platforms support all the possibilities, for example, in iOS no menu and dialog boxes And you will not be able to place the appropriate components on the forms of such applications.

KP: Was something in politics work with partners? What is being done in order for the share of users of your products increased? What is carried out in Russia?

DI.: Our partner ecosystem wide - exist hundreds of manufacturers of instruments and components that are not in our products, and we have a technological partnership program. Therefore, developers have a wide range of components, technologies and tools. And solutions that they create for their customers turn out to be better than if only our products were used. And for sales, we have offices in many countries, resellers and distributors.

K.R: It is not important to us the number of partners, but the quality of the work of each particular partner. Now we want to focus on close cooperation with existing partners, although the pool of partners remains open. We have a lot of partners, and we have to help them in terms of technology. We work with developers, and they know what they want, and know what is available on the market, and the possibilities of partners should comply with this.

We have business partners who have seriously invested in Embarcadero as in the direction of business - they have trained specialists, marketing of our products, dedicated staff responsible for this direction and tracking, which is happening with our products, price list, marketing. Naturally, they are more successful in terms of sales of our products than companies that implement our products from the case.

KP: David, Kirill, thank you very much for an interesting interview. Allow, on behalf of our publication and our readers, wish your company further success in creating your amazing tools, so fit developers!

Questions asked Natalia ELMANOV

It has already passed enough time since the term FiremonKey has become more or less familiar if, not for all developers, then at least those who use Delphi. During this time, books on FiremonKey appeared, FiremonKey articles, records about FiremonKey in numerous blogs. Read all this is very interesting. But no theory will not replace the practice. And I, like many of the earlier, appeared itching to try something to write with the use of FiremonKey.

At the same time, however, a problem arose. For some reason, I decided that you just need to implement any not very complex working draft.

To explain why it turned out to be a problem for me, it will be necessary to write some (and I want to write, lyric) retreat. Excursions in my past, as a developer. Calculate some of the looks for programming with Delphi.

I must say that using Delphi I started on Windows 3.1, that is, from the first version. And since the same time I studied VCL. He studied in the original, so to speak. I looked, addressed, traced the sources. Again and again.

It is known that different time The set of components supplied with Delphi included the components of third-party developers who had to fill the gaps in the VCL, and which probably passed some quality control before turning on. Some of these components continue to be supplied and now. Take the same indy. I do not want to offend anyone, it is a purely personal opinion that also treats me as a developer of components: no set was so deeply thought out and so efficiently implemented as a huge and varied VCL. No, I do not pretend to truth in the ultimate instance, and, of course, in the VCL itself, many mistakes, solutions that cause misunderstanding, cause a rejection and with whom I want to disagree. But I always had the impression of some single style. There is a VCL, in my opinion, a beautiful and durable rod that supports the entire design of Delphi, and around which the software infrastructure is also built, and the developer community itself. It is thanks to a large VCL, again, in my opinion, rumors about the death of Delphi still remain rumors. And when the supply of VCL included the components of third-party developers, it was noticeable in rhizable, they differed.

But now comes, and I hear that VCL is a technology that is outdated. Technology that should be left in the past. Developers follow all their new projects to implement on FiremonKey, and about old ... it would be nice to translate them to new rails. Firemonkey everywhere and always. And I hear it from different sources. And pretty persistently. No, nobody kills VCL. He stays with us. But he is now not number one. He must become a dubler. At least, so I understand what the product is mentioned.

In principle, I understand this alignment. Course for multiplatform, and, more importantly, on cross-platform. After all, what is VCL? Visual Component Library. Library of visual components. You can not agree with this. For example, I always considered many non-physical components, and not components, but just classes, an integral part of VCL, but a huge number of third-party classes and components - a continuation, VCL extension. Well, it does not work with me to consider the heirs tdataaset-not part of the VCL. Although, for example, the term DBExpress Library says that it is, as it were, not VCL. Apparently, Embarcadero really shares the monolithic, from my point of view, VCL, for some individual libraries. No, of course, not quite separate, but, nevertheless. And if you take such a point of view, FiremonKey is called to replace the VCL visual part (how should I call the full library of classes and components, maybe Borland Component Library?).

What are the visual components included in the library built around? Around low-level, basic elements provided by the operating system. Window descriptors, fonts, window themselves, input elements, messages, device contexts, and much more - it is not the concept of a library supplied with Delphi, but the concepts of the operating system. Yes, it is, Windows. And if you want to build a cross-platform library, then it is logical to abandon the infrastructure that the operating system is offered performing the program written using the library.

That is what are trying to do with FiremonKey. Trying to create an infrastructure based on basic mechanisms supported in various operating systems capable of replacing that service that offers the operating systems themselves.

Many remember an attempt to docross-platform not only library, but also Delphi himself. Parallel Delphi 6 came out the Kylix product and the CLX library. All this was done in order to be designed for Linux. However, there are many Linux many basic concepts In terms of graphic window interface, which Windows is. The window interface for Linux is generally not a native phenomenon. This is an optional application. And I had to write some synthetic library. With it, it was possible to write a program for both Windows, and for Linux. However, I still remember that feeling not disappointing, no, rather, an irritating inconvenience, which has experienced when I tried to use the analogues of the visual components from the CLX. I was missing a lot. The fact that I used to do without thinking when developing using VCL, it turned out to be difficult, completely different, or simply impossible, using CLX.

Approximately I also felt when going with a BDE to DBExpress. Old, familiar since Field Test-A BDE (Borland then used it in Quattro Pro for windows And in Paradox for Windows, and he wore the name Odapi, and then IDAPI, and was headed above, in my opinion, Microsoft ODBC) was declared outdated technology that should give a place in the new projects of the new library. I was not enough for something in DBExpress at first, especially knowledge.

At the same time, I do not want to scold or criticize the library listed above or the solutions that led to their appearance. It is only about my impressions, sometimes first impressions.

Now, probably, it becomes a little clear why the solution to write using the FiremonKey small working draft, brought some problems. For many years, during the development of designs, projects and projects, a certain stereotype is formed, a pattern of what and how to do. And in my case I had to face the fact that the template should be changed. Because it is impossible to transfer everything to what is used to, using VCL, in a project under construction on FiremonKey.

At the start of the project, I experienced some sense of deja. Namely, the feeling of inconvenience. For example, there are no many properties in the usual entry elements. Receivers who are firmly entered into practices based on tricks related to knowledge of some features of the operating system are not held in a new context. Not to mention the fact that some components have changed radically.

Well, even an important nuance. What projects usually have to do at work if it (work) is not related to the writing of compilers, modeling systems, or something else high? I think that for the majority is the development of something related to the use of databases. And something highly, too, can also use the services provided by the DBMS.

Here I was expected by another ambush. For some reason, when you come across in practice with the fact that FiremonKey does not contain elements focused on working with data stored in the database, are not quite ready (to put it mildly). Although I read more about this many times and know (theoretically) than to use. Speech about Live Bindings.

I do not want to get involved in a dispute about whether there should be real cool programmers to use DB-Aware components, or should not. In practice, starting a new project, I was before the fact: it is necessary to get used to new visual components and to a new method for extracting data for Display, edit and ultimately saving. What, again, is not bad, and not good. Just for me it turned out this way.

I want to complete the post about the first impressions. The queue stories about what and how it was overcome when working on a project.

Delphi Xe2 in September of the past contains a record number of innovations.
Brief reviews of the features of Delphi Xe2 have already been published on Habré. But, obviously, the FireMonkey Platform was the most bright innovation, and here I would like to pay a little attention to her.
I made a small selection of references to materials that, as I hope, will help you draw up a more or less adequate idea of \u200b\u200bthis platform. But before, for those who do not know, I will briefly tell you what Firemonkey is.
Embarcadero Technologies positions FiremonKey as a platform for creating full-featured business applications for Windows, Mac and IOS. In this case, this platform is native for each of the OS, i.e. When the application created by FiremonKey is not used by any additional add-ons.
FiremonKey is attached directly to the native (from the OS) graphic library, such as OpenGL or DirectX. Thus, it is proposed the best solution from the GPU point of view.
The kernel of FireMonkey architecture is a powerful class library (including visual components).
The target platform is selected during the compilation process.
The first version of FiremonKey supports only Win32, Win64, MacOSX and IOS, in the future, Embarcadero plans to port it into several other platforms.

What should I consider?

Despite the fact that the FireMonkey Platform provides an extensive toolkit for the development of 3D applications, it cannot be considered as a gaming engine. FiremonKey is positioned precisely as a platform for developing business applications.
Now the product is in the initial stage of its evolution. And many functionality FiremonKey undergo changes as high-quality and quantitative.

I hope that the references below will help to deal with the main possibilities of the new platform.
Official Product Page on Embarcadero (Rus.)

Among the English-language material I would like to highlight the series (eng.)

What to see?

As for the latest version of Delphi, the video material devoted to the possibilities of the product and techniques to work with it is more than ever. Both official, from Embarcadero and independent developers. YouTube has a lot of video about FiremonKey, you can simply use the search. Among this, the abundance of the material will allocate a series of three rollers from Marco Kant - RAD in Action Landing Page. Thus, giving your research vector utility.

You, probably, know that Embarcadero is actively promoting its new vision of creating a cross-platform guy - FiremonKey ( they are called the framework, but for its current state it sounds too cool). In RuNet, one competition is announced after another, webinars are held, and let the quality of the latter leaves much to be desired, but the activity pleases. Now, actually, to the topic. As part of the last competition, it was proposed to develop any application for learning. And yesterday there was another work for the authorship of Evgenia Chmel ( i do not know, this surname is inclined or not). In contrast to those seen earlier, simple "monofuous", an attempt was made to pull a monkey for all limbs: stylization, 3D, shader effects ( about GPU ACCELATED Graphics love Embarcadero evangelists :))). Let's see what happened from it. For those who did not watch the webinars will make a small retreat. On one of the webinars, the Embarcadero evangelist, Vsevolod Leonov told the shifter history about how he had a "computer to overload, specifically, rigidly" (this is a quote), due to the fact that Silverlight SDK and Windows Phone 7 emulator "not worked" ( This is a quote) on his computer. They did not like the video adapter or settings of the graphics processor. But applications designed using Firemokey continues to Vsevolod, absolutely not demanding of hardware. Let's see how he lied to us. With an impartial witness, we will have Process Explorer V15.05 from Mark Rusinovich. So, I download the app Eugene and launch ( the screenshots of the Eugene application do not cite, they are by reference to his work. Pay attention to the blurring of fonts).

Run the application. We look at consumption:

Immodestly, but you can forgive the "advanced technology". Go to the "Lessons" section and choose the "lesson 5". The preparation of the scene begins. This process is long ( i took a little more than a minute, on four-singer Phenom II with a frequency of 3.3GHz), be patient. The scene is built. We look at consumption:

The monkey fell back well. Very well. Now try moving the mouse over the buttons of answer options. The feeling that the GUI reacts well oh-oh is very sluggish, isn't it? See the CPU Schedule ( i mean that you have to try it yourself, on your computer) - At these moments, its load is approaching 100% ( i had ~ 21.5% for a four-rigorous processor, which is equivalently 86% for single-core). But someone told us about GPU Accelerated Graphics. Okay, go on. We answer all the questions of the lesson. Watch consumption:

The eyes did not get round? Now look, for comparison, how much is 3D-shooting Farcry with an active gameplay ( the level is called the factory, if anyone, suddenly, is interesting) Started in full screen mode 1440x900:

Make conclusions yourself.