How we “trained the fire monkey” or our experience with FMX



    Good day, dear Habrausers!

    We are the company "Sphere Systems", and today we open a corporate blog on Habré, in which we want to introduce you to our project "Sphere Live". And, although our project is still in beta testing, we can now confidently say that it took place.

    We plan to share our experience in creating a startup, to talk about successful solutions as well as errors. And, of course, we would like to get a response. We do not claim to be a “success story”, at least for now, nonetheless, sincerely hope that our development experience will be interesting to our readers, and their feedback will be useful to us.

    The first publication is dedicated to our chosen development tool. Perhaps our choice will seem to many, to put it mildly, unobvious. However, the fact remains that we have a really working product. But first, a few words about our product, if only so that in general terms everyone can understand what is at stake.

    The Sphere Live project is a multi-platform video conferencing organization system with an unlimited number of participants in the form of symmetric and asymmetric lectures with an integrated billing system, file sharing and cloud storage functions, as well as protecting user information (correspondence, sent and transferred files, video and audio communication) )

    At the moment, Sphere Live has a single code base for Windows, Mac OS, Android, and iOS (the latter is still under development, as interface optimization is required). A beta version for devices running Windows and an alpha version for Android is now available, we plan to implement support for the rest of the OS during August 2014.

    The biggest merit of our team, we believe that all the algorithms for the transfer, storage, encryption of information are developed independently, without the use of third-party technologies. In other words, we are not dependent on anyone, we only use free codecs for multimedia transmission and several libraries, but at any time we can replace them with other, more optimal for our application. The rest of the Sphere Live application is completely written by us and has a fast and easily scalable architecture with unlimited possibilities in the literal sense of the word.

    Immediately make a reservation that we have nothing to do with Embarcadero and do not receive any monetary rewards from them. Moreover, we use the products of this company on a common basis, i.e. we buy without any discounts. Delphi XE6 (FireMonkey) is our objective, non-imposed choice.

    In this article, we will not describe all the competitive advantages of various development environments, cite Wikipedia articles, and also discuss which “tool” is better. Proponents of this or that decision will always be found. Therefore, we dwell directly on our choice and the arguments in his favor.

    We started with the Delphi XE2 version. What else could we do? We perfectly understood that the application should be implemented with minimal development and maintenance costs, while the project is very large and complex, so it was necessary to use the very language and the tool that is the most studied and has a serious development potential, unlike, for example, from Java. There were no universal tools for development and compilation on the market, they had their own for each OS, they needed to be mastered, and for this to increase the staff of developers and testers, and then manage the process of shifting responsibility for tasks not completed on time.

    As a result, the situation was such that at that time we had no special choice, because only Delphi XE2 met our requirements - a single code, a single environment and a compiler for Windows and Mac OS. To date, Sphere Live code has been translated into Delphi XE6 (FireMonkey). We managed to implement a system that is almost ideal from an architectural point of view, which uses a single code base. Moreover, we managed to achieve similarity of interfaces, although, of course, there are differences.

    Forgive us, Embarcadero, but to say that everything is perfect, we can not, because In earlier versions of the RAD Studio development environment, there were significant flaws and overt bugs. We had to create a lot ourselves and solve problems on our own. Dozens of unique components have been developed. However, we were well aware that sooner or later they would reach the stage of the “right” product, and we would be able to use our already decent experience with Firemonkey.

    In our opinion, most of the difficulties that Delphi programmers (or RAD Studio as a whole) have encountered or are encountering are the almost complete absence of a description of the architecture and mechanisms of Firemonkey. Everything that is available on the Internet either has no practical use, or the information is so stingy that it will not allow you to identify elementary errors (not only yours, but also Embarcadero itself).

    We spent more than a year to understand FMX (Firemonkey). Repeatedly "stepped on the same rake", more than once rewrote some modules that work with GUI, multimedia and others. We often talked about whether it was in vain that we chose the RAD Studio development environment, namely Delphi ?! From time to time, we gave up, as well as those who develop something on Delphi. They waited and thought: “When will the guys from Embarcadero pay attention to the abundance of glitches and bugs in the environment itself and FMX?”. Each time we expected the release of the new version of “XE ...”, figured out what happened, tried and again failed, for us, what this time “didn’t fix it again ...”

    And finally it happened! If not a miracle, then almost expected! Embarcadero has released the next version of RAD Studio XE6.

    We purchased the XE6 version as soon as Embarcadero announced its release, even a week earlier than it was available for sale in Russia (for which special thanks to Sergey Kozhevnikov from the Embarcadero representative office in Russia).

    First of all, we noticed (literally in the first day of working with it):
    - the development environment became much more stable, really began to work almost stably (do not convince us that there is no absolutely stable software, especially with such functionality);
    - The speed of working with the IDE has increased;
    - The speed of compilers for Android has increased significantly;
    - fixed a lot of bugs and errors in the code;
    - significantly increased the speed of the applications themselves, developed for FMX;
    - There are new, very useful functions.
    And much more. We will not list everything, and if anyone becomes interested, we will be happy to share information.

    Based on all of the above, you are likely to have a fairly fair question: "And where is the" fly in the ointment in this barrel of honey? "

    Indeed, Embarcadero does not focus on one very important point. Firemonkey technology, in principle, differs from working with VCL only under Windows. If you say that it is enough to know Object Pascal, then you will be fundamentally wrong. Not so simple. Due to the nature of the work of FMX itself, a programmer who first started writing cross-platform applications will be very difficult. He will often come across completely inexplicable bugs and glitches, attributing everything to Delphi's “curvature”. And partly right, because there are practically no teaching aids and there are not enough examples to work with Delphi.

    Some examples can still be found, but the fact is that the examples of Embarcadero itself and its evangelists we respect are correct, but not complete. In some cases, they simply do not provide for the development of complex applications and only implement the functions that you want to "show"; if you need to create a multifunctional application, they can cause difficulties for developers only because there is no complete description of the mechanisms of FMX operation.

    All of the above applies specifically to the development of applications for various platforms using FMX.

    Yes, FMX still has some problems:
    - it is not as strong as we would like;
    - It is not as saturated with components as VCL.
    However, all this does not mean that using FMX you cannot create good and serious projects.

    Can! And it is necessary!

    We have much more reasons to be “offended” by FMX and Embarcadero than most of you, but we did not give up and in the end came to what we had achieved with long and hard work, and Embarcadero came to what we were all waiting for.
    We hope that all of their subsequent releases of RAD Studio and Firemonkey will be the same, or even better.

    Everyone who will be interested in our development experience in Delphi or the project itself, write in a personal and download our application from the site . We will be happy to answer all your questions.

    Also popular now: