Firemonkey від простого до складного. Що таке FireMonkey? відсутність підтримки кастомізації нативних класів

Що таке FireMonkey?


FireMonkey (FMX) - фреймворк для кросплатформової розробки як для настільних систем (Windows, Mac OS + у найближчому майбутньому планується підтримка серверної частини на Linux), так і мобільних (iOS та Android) з використанням мови Delphi/C++.

особливості:

  • єдина кодова база всім платформ;

  • будь-який контрол (візуальний компонент) може бути контейнером (батьком) для інших компонентів;

  • наявність дуже просунутого відносного розташування (20 типів) компонентів на формі;

  • LiveBinding дозволяє підключати будь-які типи даних або інформації до будь-якого інтерфейсу користувача або графічних об'єктів;

  • наявність стилів форми/компонентів;

  • Multi-Device Preview дозволяє налаштувати візуальну виставу для кожної з платформ;

  • FireUI Live Preview - відображення вигляду програми на реальних пристроях у режимі реального часу.

Можливості:

  • використання нативного API кожної з платформ, а також можливість виклику сторонніх рідних бібліотек;

  • взаємодія з усіма датчиками (GPS, Accelerometer, Compass, Bluetooth (включаючи LE) та інші);

  • підтримка push повідомлень, IoT;

  • підтримка асинхронних HTTP запитів;

  • підтримка більшості баз даних (MsSQL, MySql, Oracle, PostgreSQL, MongoDB та ін.);

  • робота з Cloud Service (Amazon, Azure);

  • підтримка Android Service.

Мінуси (на даний момент):

  • відсутність підтримки кастомізації нативних класів;

  • реалізація специфічних речей або неможлива (віджети, розширення (iOS) та ін) або необхідна танець з бубном (background service, broadcast message та ін);

  • кастомізація Splash screen (початковий екран) ніяка;

  • FMX контроли використовують власний рендеринг (візуалізація, малювання), який суто візуально схожий на нативний;

  • використання нативних контролів пов'язане з великими рухами тіла;

  • при великій вкладеності компонентів відбуваються неймовірні речі: додаток фарбується в різних місцях, втрачається фокус, зависає та ін;

  • інформативність налагодження програми на мобільних платформах нульова;

  • опис помилок на мобільних платформах зводяться до марних "Error 0х00000Х";

  • час компіляції бажає бути найкращим для середніх та великих проектів;

  • необхідність використання напилка для доведення до пуття мобільних додатків для кожної платформи;

  • відсутня підтримка Intel Atom архітектури;

  • неадекватна ціна проти конкурентами.

Плюси:

  • дуже активний розвиток останнім часом як продукту, так і співтовариства, підтримка нових і нових технологій;

  • наявність величезної кількості безкоштовних та комерційних компонентів;

  • швидкість роботи програми дуже близька до нативного;

  • дуже просунутий візуальний редактор та середовище загалом, наявність стилів;

  • можливість тестувати додаток на Win, і потім розгортати на пристроях, що дуже прискорює розробку;

  • зміна режиму/платформи легким рухом руки;

  • PAServer забезпечує легку взаємодію з MacOs під час розробки для ОС Apple;

  • підтримка 3D графіки з коробки.

На закінчення хочу сказати, що FireMonkey за останні пару років виріс у професійний інструмент кросплатформової розробки бізнес-додатків і не тільки. Багато недоліків поступово вирішуються і з кожним релізом продукт стає все більш сучасним і самодостатнім, також зникає скептизм до самої мови Delphi, пов'язаний з багаторічним застоєм. Написання нових проектів на FireMonkey є безпечним і перспективним.

Delphi XE2, що вийшла у вересні минулого року, містить рекордну кількість нововведень.
Короткі огляди можливостей Delphi XE2 вже публікувалися на Хабрі. Але, очевидно, найяскравішим нововведенням стала платформа FireMonkey, і тут я хотів би приділити трохи уваги саме їй.
Я зробив невелику добірку посилань на матеріали, які, як я сподіваюся, допоможуть вам скласти більш-менш адекватне уявлення про цю платформу. Але для тих, хто не в курсі, я коротко розповім, що ж таке FireMonkey.
Embarcadero Technologies позиціонує FireMonkey як платформу для створення повнофункціональних бізнес-додатків для Windows, Mac та iOS. У цьому дана платформа є нативною кожної з ОС, тобто. при роботі програми, створеної за допомогою FireMonkey, не використовується жодних додаткових надбудов.
FireMonkey прив'язується безпосередньо до нативної (з погляду ОС) графічної бібліотеки, такої як OpenGL чи DirectX. Таким чином пропонується найкраще рішення з точки зору GPU.
Ядро FireMonkey архітектури є потужною бібліотекою класів (у тому числі візуальних компонентів).
Цільова платформа вибирається у процесі компіляції.
Перша версія FireMonkey підтримує лише Win32, Win64, MacOSX та iOS, у майбутньому Embarcadero планує портувати її на кілька інших платформ.

Що варто враховувати?

Незважаючи на те, що платформа FireMonkey надає великий інструментарій для розробки 3D додатків, її не можна розглядати як ігровий двигун. FireMonkey позиціонується саме як платформа для розробки бізнес-додатків.
Нині продукт перебуває у початковій стадії своєї еволюції. І багато функціональні можливості FireMonkey зазнають змін як якісні, так і кількісні.

Я сподіваюся, що наведені нижче посилання допоможуть розібратися з основними можливостями нової платформи.
Офіційна сторінка продукту на сайті Embarcadero (рус.)

Серед англомовного матеріалу хотілося б виділити серію (англ.)

Що подивитися?

Що стосується останньої версії Delphi, то відеоматеріалу, присвяченого можливостям продукту та прийомам роботи з ним, як ніколи багато. Як офіційного, від Embarcadero, і від незалежних розробників. На YouTube дуже багато відео про FireMonkey, ви можете просто скористатися пошуком. Серед цієї великої кількості матеріалу виокремлю серію з трьох роликів від Марко Канту - таким чином, надавши своїм дослідженням вектор корисності.

Ви, напевно, знаєте, що Embarcadero активно просуває своє нове бачення створення кросплатформенного гуя - FireMonkey ( вони це називають фреймвоком, але для її нинішнього стану це дуже круто звучить). У рунеті анонсується один конкурс за іншим, проводяться вебінари, і нехай якість останніх бажає кращого, але активність радує. Тепер, власне, на тему. В рамках останнього конкурсу було запропоновано розробити якийсь додаток для навчання. І ось учора з'явилася чергова робота за авторством Євгена Чмеля ( не знаю, схиляється це прізвище чи ні). На відміну від бачених раніше, простих "одноформочок", тут була зроблена спроба посмикати мавпу за всі кінцівки: стилізація, 3D, шейдерні ефекти ( про GPU accelerated graphics дуже люблять говорити євангелісти Embarcadero:))). Погляньмо, що з цього вийшло. Для тих, хто не дивився вебінари, зроблю маленький відступ. На одному з вебінарів, євангеліст Embarcadero, Всеволод Леонов розповів щиру історію про те, як йому довелося "комп'ютер перевантажити, конкретно, жорстко" (це цитата), через те, що Silverlight SDK і емулятор Windows Phone 7 “не спрацювали” (це цитата) з його комп'ютері т.к. їм не сподобався відеоадаптер або налаштування графічного процесора. А ось програми розроблені з використанням FireMokey, продовжує Всеволод, абсолютно не вимогливі до апаратного забезпечення. Давайте подивимося, як він брехав. Неупередженим свідком нам буде Process Explorer v15.05 від Марка Русиновича. Отже, качаємо додаток Євгена і запускаємо ( скріншотів програми Євгена не наводжу, вони є за посиланням на його роботу. Зверніть увагу на розмитість шрифтів).

Запустили програму. Дивимося на споживання:

Нескромно, але можна пробачити “ передової технології”. Переходимо до розділу “Уроки” та вибираємо “Урок 5”. Починається підготовка сцени. Процес цей тривалий ( у мене зайняло трохи більше хвилини, на чотириядерному Phenom II із частотою 3.3GHz), запасіться терпінням. Сцена збудована. Дивимося на споживання:

Мавпа добре підкріпилася. Навіть дуже добре. Тепер спробуйте спонукати мишку над кнопками варіантів відповідей. Відчуття, що GUI реагує ну дуже в'януло, чи не так? Дивіться на графік використання CPU ( я маю на увазі, що ви повинні самі це спробувати на своєму комп'ютері) – у ці моменти його завантаження наближається до 100% ( у мене було ~21.5% для чотириядерного процесора, що еквівалентно 86% для одноядерного). Адже нам хтось розповідав про GPU accelerated graphics. Гаразд, йдемо далі. Відповідаємо на усі питання уроку. Дивимося споживання:

Очі не округлилися? Тепер подивіться, для порівняння, скільки споживає 3D-стрілялка FarCry з активним ігровим процесом ( рівень називається Фабрика, якщо кому, раптом, цікаво) запущена в повноекранному режимі 1440x900:

Висновки робіть самі.

Пройшло більше трьох років з того моменту, як підрозділ CodeGear, який відповідає за створення таких всесвітньо відомих інструментів, як Delphi, C++Builder та JBuilder, а також СУБД Interbase, став частиною компанії Embarcadero Technologies, відомої своїми інструментами для проектування та адміністрування баз даних , і два роки - з того часу, як ми обговорювали на сторінках нашого журналу, чого очікувати в галузі розвитку інструментів, настільки популярних у російських розробників. Про те, що нового було зроблено в цій галузі за останні два роки і чого чекати найближчим часом, ми попросили розповісти Девіда Інтерсімоне, віце-президента зі зв'язків з розробниками та головного євангеліста компанії Embarcadero Technologies, і Кирила Раннева, голову представництва Embarcadero Technologies Росії. Для наймолодших наших читачів повідомимо, що це далеко не перше інтерв'ю, яке Девід і Кирило дають Комп'ютерПрес - наша співпраця триває вже другий десяток років. І приблизно стільки ж років ми періодично публікуємо огляди інструментів для управління базами даних, у яких приділяють велику увагу продуктам компанії Embarcadero.

Комп'ютерПрес:Девіде, ваш підрозділ є частиною Embarcadero вже три роки. Два роки тому ви були сповнені ентузіазму з приводу того, що воно стало частиною компанії, близької вам за цілями та духом. Чи змінилося щось за цей час? Чи відчуваєте ви і ваші колеги колишній ентузіазм?

Так, я, як і раніше, сповнений ентузіазму. Головна зміна, що сталася з того моменту, як ми стали частиною компанії Embarcadero, - це те, що було зроблено багато інвестицій у розвиток Delphi. Збільшилася кількість співробітників, які працюють над засобами розробки, зросла кількість технологій, які ми можемо розробляти або, за необхідності, купувати.

Випуск RAD Studio XE 2, який ми плануємо продемонструвати в Москві, - це найбільший випуск даного продукту з величезними можливостями і великою кількістю платформ, що підтримуються, з часів першої версії Delphi, створеної ще для 16-розрядної версії Windows і колишньої інноваційним продуктом, який поєднав компонентний підхід та компіляцію в машинний код. Тепер ми підтримуємо розробку не тільки для Windows, але і для Macintosh, не кажучи вже про веб-розробку та створення програм для мобільних пристроїві ці програми для різних платформ можуть мати єдиний код.

Нова платформа розробки - FireMonkey - це спільна робота компанії Embarcadero та нещодавно придбаної російської фірми KSDev з УланУде, виробника компонентів для векторної графіки, DirectX та OpenGL, технологій створення графічних ефектів та компонентів Delphi, які використовують графічний процесоріз PixelShader 2.0. Ми придбали компанію KSDev рік тому і почали спільні роботиз метою створення багатоплатформного засобу розробки, що включає платформу з метою розробки додатків FireMonkey з компонентами для Delphi і C++Buider для створення інтерфейсу користувачів додатків, інтеграції з базами даних, обробки графіки із застосуванням графічного процесора та інтеграції з операційною системою.

За допомогою FireMonkey можна створити програму, при виконанні якої спільно працюють центральний та графічний процесори, а потім за допомогою різних компіляторів та бібліотек часу виконання (Run-time Libraries, RTL) можна скомпілювати його для Windows, Mac OS або iOS. Замість того щоб вивчати програмування із застосуванням різних графічних бібліотек, вивчати API різних платформ, що мають різні системи координат та різні можливості, розробники, що використовують Delphi та C++Builder, можуть застосовувати один і той же компонентний підхід, візуально редагуючи форми та здійснюючи підключення до баз даних шляхом переміщення компонента мишею. Це принципово новий спосіб створення програм, що виконуються на різних платформах, і за ним майбутнє. Якщо ви захочете додати для вашої програми підтримку інших операційних систем та платформ, не потрібно його заново проектувати та розробляти – достатньо буде просто перекомпілювати його.

Ми створюємо нові компілятори, що генерують машинний код (Native Code). Сьогодні є компілятори Delphi для 32- та 64-розрядних. версій Windows, 32-розрядних версій Mac OS 10. І ми працюємо над компіляторами Delphi та C++Builder наступного покоління, які дозволять створювати високопродуктивний машинний код як для перерахованих, так і для інших платформ, таких як Android або Linux, і зберігати той самий дизайн, ті ж компоненти, той же код за рахунок застосування різних компіляторів і бібліотек часу виконання.

Як бачите, причин для ентузіазму у мене достатньо. І розробники, з якими я зустрічаюся по всьому світу, знають, що Embarcadero вкладає багато коштів у Delphi та C++Builder, а також кошти розробки для PHP.

КП:Яких успіхів у галузі інтеграції інструментів двох компаній ви зуміли досягти за два роки? Які плани компанії Embarcadero на майбутнє у цій галузі?

Д.І.:На момент, коли підрозділ CodeGear став частиною Embarcadero, ця компанія мала команди розробників у Торонто, Монтерреї та Румунії, ми знаходилися і, як і раніше, знаходимося в СкоттсВеллі та Росії, в Санкт-Петербурзі. У Embarcadero були інструменти для розробників та адміністраторів баз даних, у CodeGear – засоби розробки додатків, але останні також використовують бази даних. Об'єднання компаній - це об'єднання експертизи, знань у сфері баз даних, оптимізації коду, зокрема серверного. Об'єднання компаній призвело також до створення нового продукту AppWave - спеціальної технології для перетворення звичайного Windows-програми на щось дуже просте у використанні (на зразок додатків для iPhone або інших пристроїв). AppWave дозволяє не встановлювати додаток, а просто вибирати його і запускати з сервера сховища підготовлених додатків (app), при цьому він буде виконуватися на комп'ютері користувача, не вносячи змін до його реєстру та системної області файлової системи. До речі, браузер програм AppWave написаний на Delphi. Embarcadero використовує Dephi для власних розробок та нашу експертизу в галузі розробки програм.

Додаток для iPhone (iOS), створений
за допомогою платформи FireMonkey

Можна також застосовувати інтеграцію наших засобів розробки та DB Optimizer для оптимізації SQL-запитів під час створення програм. Передаючи SQL-код безпосередньо в DB Optimizer, можна профілювати його, тестувати та повернути назад у середу розробки його оптимізовану версію. Експертиза Embarcadero у сфері баз даних також дозволила покращити технологію DataSnap. Завдяки розробникам з Торонто ми отримали багато знань про архітектуру багатоланкових систем та баз даних. Зараз ми володіємо спільною експертизою в галузі створення серверного коду та процедур, що зберігаються в обох компаніях. У нас є такі інструменти, як RapidSQL і DB Change Manager, а також середовища розробки, які спрощують створення серверного коду, наприклад технології Code Insight і Code Completion дозволили створити технології SQL insight і SQL Completion. Наші спільні підходи до створення клієнтського та серверного кодів, наша загальна філософія дозволяють надавати спільні риси інструментам для управління базами даних та засобам розробки додатків.

Кирило Раннев:Хочу додати дещо важливе. З комерційної точки зору, дуже важливо, як ми поставляємо наші інструменти. Наприклад, новий випуск RAD Studio XE 2 Ultimate включає повний набір інструментів DB Power Studio. Це дуже потужний набір інструментів, що включає середовище розробки запитів RapidSQL, інструмент керування змінами DB Change Manager і засіб оптимізації запитів DB Optimizer, що дозволяють здійснювати важливу частину процесу розробки та розгортання, керуючи змінами моделі даних, бази даних, коді і т.д. Це дуже хороша та правильна комбінація технологій.

Д.І.:Але, якщо потрібно, розробники можуть застосовувати Subversion для керування версіями вихідного кодута DB Change Manager для керування версіями метаданих. Можна використовувати профіль коду та DB Optimizer для оптимізації серверного коду, RapidSQL для створення та налагодження серверного коду та наші середовища розробки для створення та налагодження додатків. Ця комбінація техологій у RAD Studio XE Ultimate Edition демонструє паралелі між моделями розробки баз даних та додатків. Більшість розробників, які створюють бізнес-додатки за допомогою Delphi та C++Builder, працюють з базами даних і потребують цих інструментів, і RAD Studio XE Ultimate Edition - це чудова комбінація для таких розробників.

КП:Сучасний користувач - це вже не користувач лише платформи Windows. Ми використовуємо мобільні пристрої, iPhone, iPad, пристрої на базі платформи Android. Це означає, що розробники повинні почати орієнтуватися на різні платформи без суттєвого збільшення інвестицій у навчання – тобто потрібні універсальні інструменти. Очевидно, що очікувати на появу універсальних інструментів від виробників платформ нереально, і в цьому питанні ми можемо розраховувати тільки на незалежних виробників інструментів. У чому ми можемо розраховувати на компанію Embarcadero?

Д.І.:Нам ще багато потрібно зробити в галузі підтримки платформ. Сьогодні ми надаємо підтримку для платформи iOS для iPhone та iPAD, потім нашу підтримку отримають смартфони на базі платформи Android, Windows 7 та Blackberry. У RAD Studio XE 2 ми розпочали створення платформи FireMonkey для iOS, а потім перенесемо FireMonkey на інші платформи.

У той же час існує велика кількість операційних систем із підтримкою сенсорних екранів (touch screen), для телефонів, планшетних комп'ютерівта пристроїв, настільних комп'ютерів, і ми будемо продовжувати додавати підтримку для них. Крім того, існують системи управління голосом, рухом, біометричні системи, акселерометри, тому ми повинні продовжувати розширювати FireMonkey, щоб усі розробники могли скористатися перевагами нових платформ. Наприклад, пристрій Microsoft Kinect був призначений для Xbox 360, а зараз є відповідний SDK (Software Development Kit) та Windows. І ми вже маємо приклади, в яких ми використовуємо рух для управління додатком приблизно так само, як зазвичай застосовуються миша або клавіатура.

Коли ви створюєте програми з великою кількістю складної графіки, ви генеруєте цілий світ нових інтерфейсів користувача. Якщо ми маємо справу з операційною системою Windows, ми інкапсулюємо її прикладною програмний інтерфейс Windows API у бібліотеці VCL (Visual Component Library - бібліотека візуальних компонентів, що є складовою засобів розробки Delphi та C++Builder. - Прим. ред.), яку, до речі, можна застосовувати й надалі. І в FireMonkey ми інкапсулюємо API операційної системи. Але сьогодні ми маніпулюємо формами та графікою набагато ширше. Можна також додати фізичні властивості простору для анімації та спецефектів. Крім того, існує величезна кількість інших додаткових можливостей зі створення інтерфейсів, які ми збираємося реалізувати в найближчі кілька років для різних платформ, мобільних і планшетних пристроїв.

Компанія Microsoft нещодавно оприлюднила детальну інформаціюпро Windows 8, яка має вийти за рік. Ці нововведення ми будемо підтримувати у бібліотеці VCL та у платформі FireMonkey. Але Delphi – це засіб розробки, призначений не тільки для Windows, але і для Macintosh, iPhone та iPad. Ми також розвиваємо наші продукти для PHP, підтримуємо jQuery Mobile, використовуємо прикладний програмний інтерфейс iOS для розробки мобільних клієнтських додатків та створюємо серверні PHP-додатки, використовуючи майстри та інструменти для генерації клієнтського JavaScript- та HTML-кодів та каскадних таблиць стилів. Ми можемо створювати пакети з додатків PHP і клієнтських програм з native-кодом для iPhone iOS, при цьому такий клієнт буде спілкуватися з сервером PHP. А той, у свою чергу, спілкуватиметься із сервером баз даних та з вебслужбами – з усім, що потрібно для бізнесу.

Середовище розробки RadPHP XE2. Створення мобільного веб-додатку
із застосуванням компонентів jQuery Mobile для iPhone 3G

Іншими словами, ми плануємо розширювати можливості FireMonkey та VCL, у тому числі у сфері підтримки мобільних платформ.

КП:Чи не могли б ви докладніше розповісти про платформу FireMonkey?

Д.І.:Як я вже зазначив, бібліотека VCL, створена для Windows, продовжуватиме розвиватися та вдосконалюватись. Але сьогодні, якщо ви хочете реальної розробки бізнес-додатків, ви повинні створювати їх для різних платформ. Для цього і призначено платформу FireMonkey. Вона підтримує створення інтерфейсів з високою роздільною здатністю, високопродуктивної тривимірною графікою, Висока швидкість зміни кадрів і, що важливо, використовує для цього графічний процесор.

Застосовувати подібні можливості можна при створенні наукових, інженерних та бізнес-додатків. Такі програми можуть підключатися до баз даних за допомогою технології dbExpress, як і раніше використовуючи знайомі розробникам невізуальні компоненти, такі як ClientDataSet або DataSource, застосовувати технологію DataSnap, підключатися до будь-яких баз даних, SOAP- та REST-серверів. Можна створювати привабливі елементи керування, кнопки з боксами, незвичайні таблиці та інші інтерфейсні елементи, причому у дво- та тривимірному варіантах. Можна завантажити додаток готову тривимірну модель і з'єднати її з двовимірною формою, в якій її можна обертати та розглядати з різних боків. Можна створити куб із даними або тривимірну бізнес-діаграму і обертати їх за допомогою миші, клавіатури або навіть пристрою Kinect, а можна увійти всередину куба і подивитися на різні його поверхні зсередини. І все це можна зробити за допомогою графічного процесора із високою швидкістю. Потім цю програму можна скомпілювати для іншої платформи, наприклад для Mac OS.

Додаток, що містить обертовий куб з даними,
розміщеними на його гранях

А можна створити з нуля тривимірну форму та використовувати камери та джерела освітлення та висвітлювати та обертати частини інтерфейсу користувача. У дизайнер форм вже вбудоване середовище для підтримки тривимірного користувача користувача безпосередньо під час розробки.

У Windows для роботи з двовимірною графікою високого дозволуможна використовувати бібліотеки Direct2D, а тривимірної графіки - Direct3D. У Mac OS для тих же цілей використовуються бібліотеки Quartz та OpenGL. Для iOS застосовуються бібліотеки Quartz та OpenGL ES. Але все це приховано від розробника - він використовує платформу FireMonkey, її систему координат і прикладний програмний інтерфейс, не замислюючись про ці бібліотеки, і може компілювати один і той же додаток для різних платформ.

Згадаймо, що таке VCL. VCL - це компонентна обгортка навколо Windows API. Ми маємо справу з ресурсами, меню, діалоговими вікнами, кольорами, стилями, повідомленнями Windows. Будучи, на відміну від VCL, багатоплатформною обгорткою, FireMonkey зберігає ті ж подійну і компонентну моделі, дозволяючи мислити в термінах подій (наприклад, подій OnClick, OnHasFocus, onMouseDown і onKeyDown), але обробляються при цьому події Macintosh або iPhone.

Платформа FireMonkey також поставляється з повною системоюанімації елементів інтерфейсу користувача. Це, звичайно, не всеосяжна система анімації типу Pixar, але вона дозволяє застосовувати такі ефекти, як анімація растрових зображень, підсвічування фокусу у елемента інтерфейсу користувача і робота з векторною графікою. Розробнику доступно понад 50 візуальних ефектів: розмиття, перетворення зображення на чорнобіле, розчинення, переходи, відображення, створення тіней - всі типи ефектів, доступні в сучасних графічних процесорах, які є практично в будь-якому комп'ютері. Додаток, створений із застосуванням платформи FireMonkey, посилає команди графічному процесору, який і виконує всю роботу з відображення графіки та створення інтерфейсу користувача. При цьому центральний процесорвільний для обчислень та звернень до операційної системи. Розробнику залишається лише правильно розміщувати компоненти.

Найбільш фундаментальне в платформі FireMonkey - це спосіб, за допомогою якого вона будує інтерфейс користувача. Є засоби розміщення растрової графікина інтерфейсних елементах, таких як меню, кнопки та смуги прокручування. У FireMonkey ми використовуємо для цього векторну графіку із застосуванням графічного процесора. З позиції програмування це ті самі елементи управління, але всю роботу з їх відображенню здійснює графічний процесор. Ми можемо застосовувати стилі до елементів управління, робити додаток схожим на додаток для Mac OS або для Windows, створювати свій власний стиль, застосовувати свої стилі до інтерфейсних елементів (наприклад, зробити кнопку прямокутною або круглою, змінивши її стиль у редакторі форм) – для цього серед розробки є редактор стилів. Можна створити свій власний стиль, а можна змінити стиль вже готової програми.

Платформа FireMonkey - засоби розробки
та підтримувані платформи

Якщо пам'ятаєте, у бібліотеці VCL була обмежена кількість елементів управління - контейнерів (тобто дозволяють розміщувати в них інші елементи), а FireMonkey кожен елемент управління - це контейнер. Це означає, що кожен елемент керування може містити будь-який інший елемент керування. Наприклад, всередині елементів списку можуть бути зображення, кнопки, поля редагування та інші елементи керування. І ще можна розміщувати компоненти шарами.

Система рендерингу FireMonkey досить гнучка - вона може використовувати бібліотеки Direct2D, Direct3D та OpenGL, надсилаючи команди графічному процесору. Щоб домогтися того ж VCL, потрібно було генерувати окремий буфер поза екраном, створювати зображення в ньому, викликаючи відповідні функції графічних бібліотек, а потім відобразити його на формі.

Приклади графічних ефектів, які підтримує FireMonkey

Якщо ж у вас немає графічного процесора - ви, як і раніше, можете застосовувати дво- або тривимірні форми і використовувати елементи керування FireMonkey. У цьому випадку платформа FireMonkey задіятиме бібліотеки GDI+ або інші подібні бібліотеки та здійснюватиме ті ж ефекти та анімацію або маніпуляцію тривимірними об'єктами.

Ще одна риса FireMonkey - нова системазв'язування інтерфейсних елементів з даними, відкрита та гнучка. У VCL є два типи інтерфейсних елементів: зв'язуються з даними і не зв'язуються з даними (наприклад, TDBEdit і TEdit). У FireMonkey кожен елемент управління може бути пов'язаний з даними, причому будь-якого типу. Це може бути просто вираз, поле з набору даних, дані створених розробником об'єктів або результати виклику методів.

Крім того, при створенні програми можна завантажити в нього готову тривимірну модель і використовувати її - такі можливості часто потрібні і в бізнес-додатках, і додатках для інженерних розрахунків. У нас є клієнт, який створює програми для логістики. У них була інформаційна система, побудована за допомогою Delphi, а в ній - додаток, який малював план та відображав інформацію з джерел даних. Нещодавно вони зробили щось цікаве - намалювали в AutoCAD повністю автоматизований тривимірний склад, і їхнє застосування дозволяє побачити, як автоматичний навантажувач рухається по складу і поміщає товар на полиці. І вони викладають дані із джерел на відповідне зображення.

Приклади зміни стилів програми

КП:Які формати тривимірних моделей зараз підтримуються?

Д.І.:У цьому релізі ми підтримуємо завантаження моделей з AutoCAD, Collada (засіб тривимірного моделювання з відкритим кодом. - Прим. ред.), Maya, формат OBJ, який підтримується багатьма виробниками засобів тривимірної графіки.

КП:А які ще формати планують додати?

Д.І.:Ми плануємо додати формати 3DS (3D Studio MAX), SVG (зазвичай цей формат застосовується для двовимірної векторної графіки, але іноді для тривимірної), Google SketchUp. Можливо, ми підтримуватимемо й інші формати.

КП:Чи потребує використання тривимірних моделей у програмах, створених за допомогою FireMonkey, ліцензії на відповідний засіб тривимірного моделювання?

Д.І.:Ні, не потребує. Все, що ми робимо, це читаємо файл з моделлю. Ми імпортуємо модель, але не експортуємо її (хоча, звичайно, ви можете написати програму, яка збереже модель у вашому власному форматі). Ми не претендуємо на те, щоб бути виробником інструментів тривимірного моделювання - для цього ви можете застосовувати AutoCAD, 3D Studio Max, Maya або будь-який інший засіб тривимірного моделювання, а в наші програми імпортувати створені моделі.

КП:Наскільки продуктивні програми, створені із застосуванням FireMonkey, на сучасних апаратних платформах?

Д.І.:Продуктивність досить висока. Наприклад, рендеринг тривимірної форми з трьома сферами та трьома джерелами освітлення MacBook Proможе здійснюватися зі швидкістю 100 кадрів на секунду. А може досягати і 600 – це залежить від того, що саме ми робимо. Знову ж таки все залежить від потужності графічного процесора.

КП:Чи означає це, що за допомогою FireMonkey можна створювати ігри, які відповідають сучасним вимогам?

Д.І.:Ми не позиціонуємо наші засоби розробки як інструмент для ігор. Тим не менш, використовуючи високу продуктивність сучасних графічних процесорів, за допомогою FireMonkey можна створювати і ігри - адже створюють їх за допомогою Direct3D або OpenGL.

КП:Які роботи ви ведете зараз у сфері підтримки розпізнавання жестів та інших новомодних речей? Чи доступна така підтримка?

Д.І.:У нас поки що немає підтримки жестів у цьому релізі. Керування жестами буде додано в одному з майбутніх релізів FireMonkey, а поки що можна використовувати підтримку жестів, вбудовану в операційну систему.

Михайло Філіпенко, директор компанії Fast Reports, Inc.

К.Р.:Ми вже говорили, що у технології FireMonkey російське коріння - її основи були створені в нашій країні, а потім і сама технологія, і її розробники влилися до складу Embarcadero. Взагалі, втішно бачити зростання російської складової у складі RAD Studio та Delphi. Це діяльність нашого центру розробок у Санкт-Петербурзі, і внесок незалежних російських розробників. Наприклад, до складу Rad Studio XE2 увійшов генератор звітів FastReport - відомий у всьому світі та дуже популярний у нашій країні. Він родом із Ростова-на-Дону.

КП:Хотілося б поговорити про компілятори. Який компілятор використовується для створення програм для iOS?

Д.І.:Для iPhone або iPad у нас немає власного компілятора Delphi – ми поки що не розробляли компілятори для процесорів ARM, які застосовуються у цих пристроях. Для iOS ми тимчасово використовуємо компілятор та бібліотеку часу виконання Free Pascal. Але ми працюємо над наступним поколінням компіляторів, у тому числі для процесорів АРМ. А ось для Windows і Mac OS компілятори є, оскільки обидві апаратні платформи базуються на процесорах Intel.

КП:А що було зроблено в галузі створення компіляторів у останні два роки?

Д.І.:У нас є 32- та 64-розрядні компілятори Delphi для Windows і Mac OS. І ми працюємо над новим поколінням компіляторів Delphi та C++. Робота над ними ще триває, але коли вона буде завершена, у нас будуть компілятори Delphi для процесорів ARM, платформ Android, Linux і всього, що завгодно. І ми матимемо 64-розрядні компілятори C++ для Windоws та інших платформ, сумісні з останнім стандартом мови С++, щойно прийнятим ISO.

КП:Що сьогодні відбувається за допомогою «хмарних» обчислень у засобах розробки Embarcadero?

Д.І.:У RAD Studio XE 2 ми підтримуємо перенесення додатків у «хмару» Microsoft Azure або Amazon EC2 із застосуванням засобу Platform Assistant. І у нас є серверні компоненти для Сloud Storage for Azure та Amazon S3 для зберігання таблиць, двійкових даних, черг повідомлень. У попередньої версії RAD Studio XE ми також підтримували розгортання програм у Amazon EC2, але підтримка сховища в ній була відсутня.

Підтримка «хмарних» обчислень у RAD Studio XE 2

КП:Два роки тому ви розповідали про нове рішення All-Access. Наскільки воно виявилося затребуваним? Які його переваги для системних інтеграторів та розробників?

Д.І.:У світі рішення All-Access та інструмент для «хмари» AppWave застосовуються дуже широко. Вони призначені для спрощення використання програм як нашої компанії, так і інших виробників. Фактично це рішення для управління ліцензіями та застосуванням додатків, і воно зручне для великих компаній. Невеликі ж фірми, в яких немає спеціальних груп співробітників, відповідальних за управління додатками, можуть покласти додаток до репозиторію, вибрати імена користувачів з бази даних та забезпечити використання цих додатків без необхідності згадувати, де ліцензійний ключі скільки ліцензій є. All-Access та браузер AppWave призначені для керування і версійністю, і контролем доступу.

К.Р.:Ринок настільки різноманітний, а користувачі настільки різні, що неможливо одним рішенням охопити всі потреби. Тому ми прагнемо різноманітних «пакувальних» рішень. Ми провели велику роботу з уніфікації способів ліцензування, управління ліцензіями та інсталяції продуктів. Ця лінія рішень включає засоби управління ліцензіями та наданням доступу не тільки для продуктів Embarcadero, але й для будь-яких інших продуктів, включаючи внутрішні розробки компаній.

Робота з комплектації засобів розробки в ефективні набори для користувачів, як і раніше, триває. У нас є All-Access – суперсет, у якому поєднані всі продукти Embarcadero. Якщо замовник отримує версію All-Access Platinum, він отримує всі інструменти, які є в Embarcadero. Але іноді цей набір виявляється надмірним, наприклад для фахівців з баз даних ми зробили два інші набори - DB Power Studio Developer Edition і DB Power Studio DBA Edition. Різниця між ними в тому, що для розробника ми пропонуємо RapidSQL – засіб розробки серверного коду, а для адміністратора туди вбудований DBArtizan – засіб адміністрування баз даних, ширший продукт, ніж RapidSQL. Для фахівців ми маємо наступні набори All-Access: набір, що включає всі продукти, DB Power Studio для розробників, DB Power Studio для адміністраторів, ER Studio Enterprise Edition для архітекторів та всіх, хто зайнятий моделюванням. Існують комбінації для розробки додатків і для адміністраторів. Delphi – це засіб для розробника, і до нього дуже розумно додати засоби SQL-розробки та засоби оптимізації. І нарешті, DB Change Manager - це цілком логічний інструмент для того, щоб керувати складністю змін, які відбуваються з базами даних в ході їх життєвого циклу.

Таким чином, All-Access є головою великого сімейства різноманітних наборів продуктів.

КП:Якщо не секрет, хто в Росії застосовує All-Access?

К.Р.:У нас є замовники, які купили All-Access, відштовхуючись від Delphi. Багато з них створюють складні клієнт-серверні системи з SQL Serverі Oracle, і їм одразу сподобався наш кросплатформовий інструментарій для баз даних. У нас є компанія-клієнт, яка працює з Delphi, починаючи з першої версії, і рік тому вона перейшла з використання Delphiдо набору All-Access. Два інструменти, які гарантовано застосовують у цій компанії всі розробники, - це Delphi та DBArtisan. І є замовники, які прийшли до All-Access із боку баз даних. Їхнє основне завдання - адмініструвати бази даних, але при цьому вони іноді займаються розробкою додатків. Серед клієнтів, які використовують All-Access, – медіакомпанії, машинобудівні підприємства та представники інших галузей.

Окремо хотілося б зупинитись на невеликих компаніях. Дуже часто у маленьких колективах розробник робить все, і така компанія іноді купує великі продуктові набори All-Access для одного-двох розробників. У великих колективах не заохочується, щоб розробник виконував, наприклад, ще й роль адміністратора баз даних, тому зазвичай там популярні невеликі продуктові набори, а в дрібних компаніях таке суміщення обов'язків цілком допустиме.

Delphi Architect - це продукт, що активно продається, що включає засоби моделювання та програмування. Число його проданих копій, щоправда, менше, ніж версії Delphi Enterprise, але воно також велике. Зауважу, що у 2010 році ми виявилися найкращою країною за обсягом продажів, при тому, що всі країни пережили кризу. Це зростання було пов'язане не стільки з економічними факторами, скільки з тим, що версія RAD Studio XE, що вийшла наприкінці 2009 року, виявилася дуже затребуваною. І поки що ми очікуємо подальшого зростання продажів.

Ми зробили ще один розумний крок, вкрай затребуваний у Росії. Ступінь легалізації різних версій наших продуктів різна: що вища версія, то більше вона легалізована, адже раніше програмне забезпеченняне так активно купувалося. Починаючи з версії RAD Studio XE, ліцензія поширюється на версії 2010, 2009, 2007 і навіть на Delphi 7 - продукт широкої поширеності.

Сьогодні розробники стикаються з тим, що вони мають і нові проекти, і проекти в стані підтримки. Велика кількість проектів було переведено з ранніх версій Delphi на версію 7 і залишається у рамках цієї версії, продовжуючи працювати на відносно невеликих ресурсах. Ніхто не перекладає їх на нові версії, але вони підтримуються в життєздатному стані. І зараз ми дозволяємо за невеликі гроші (менші за ціну ліцензії Delphi 7) отримати і RAD Studio XE, і Delphi 7 - тобто ми легалізуємо розробника і для реалізації нових проектів, і для проектів підтримки.

КП:Як ви оцінюєте поточний стан спільноти Embarcadero?

Д.І.:Ця спільнота велика і дуже вимоглива. Їм потрібно все й негайно – вони ж розробники. Але іноді, щоб зробити щось правильно, потрібно багато часу.

Декілька років тому ми брали компонентну архітектуру Windows і поміщали її в десктопи Linux. Тепер ми бачимо, що це було не найвірніше рішення. Правильне рішення – створити платформу для додатків. Програми навіть для різних платформ мають меню, вікна, графіку, мережний доступ та доступ до пристроїв. У різних платформах можуть бути різні моделіуправління потоками або обробки винятків, але в коді програми ми бачимо однакові блоки try. Наша робота – спростити розробникам створення бізнес-додатків та компіляцію їх для тих платформ, на яких передбачається їх використовувати, незалежно від того, як влаштовано систему інструкцій відповідних процесорів та які інші особливості цих платформ. І FireMonkey – це саме те, що потрібно для вирішення цього завдання.

КП:Якщо компанія створить новий пристрій і захоче мати його підтримку в FireMonkey, чи це можливо?

Д.І.:З компіляторами нового покоління, які матимуть незалежний від платформи front-end і залежить від платформи back-end, це буде цілком можливо. Поки що для кожної операційної системи ми створюємо компілятор та бібліотеку часу виконання з нуля.

Будь-який сучасний новий пристрій, як правило, має графічний інтерфейсом користувача(багато з них мають двоядерний процесорі графічний процесор) та стандартними SDK для розробників. Все це полегшує створення підтримки пристрою в FireMonkey. Якщо новий пристрій буде мати лише бібліотеки для двовимірної графіки типу Quartz, ми зможемо здійснити підтримку в FireMonkey і такого пристрою, але для цього потрібно орієнтовно кілька місяців. Тим не менш, багато залежить від платформи: не всі платформи підтримують всі можливості, наприклад в iOS немає меню і діалогових віконі ви не зможете помістити відповідні компоненти на форми таких програм.

КП:Чи змінилося щось у політиці роботи з партнерами? Що робиться для того, щоб частка користувачів ваших продуктів збільшилась? Що здійснюється у Росії?

Д.І.:Наша партнерська екосистема широка – існують сотні виробників інструментів та компонентів, яких немає у наших продуктах, і ми маємо програму технологічного партнерства. Тому розробникам доступний широкий спектр компонентів, технологій та інструментів. І рішення, які вони створюють для своїх клієнтів, виявляються кращими, ніж якби використовувалися тільки наші продукти. А для продажу у нас є офіси у багатьох країнах, реселери та дистриб'ютори.

К.Р.:Нам важлива не кількість партнерів, а якість роботи кожного конкретного партнера. Зараз ми хочемо зосередитись на тісній взаємодії з існуючими партнерами, хоча пул партнерів залишається відкритим. Партнерів у нас багато, і ми маємо допомагати їм у плані технологій. Ми працюємо з розробниками, а вони знають, чого хочуть, і знають, що є на ринку, і можливості партнерів повинні цьому відповідати.

У нас є бізнес-партнери, які серйозно інвестували в Embarcadero як у напрямок бізнесу - у них є навчені фахівці, маркетинг наших продуктів, виділені співробітники, які відповідають за цей напрямок та відстежують, що відбувається з нашими продуктами, прайслистом, маркетингом. Звичайно, вони більш успішні з точки зору продажу наших продуктів, ніж компанії, які реалізують наші продукти іноді.

КП:Девіде, Кириле, дякую вам за цікаве інтерв'ю. Дозвольте від імені нашого видання та наших читачів побажати вашій компанії подальших успіхів у створенні ваших дивовижних інструментів, настільки потрібних розробникам!

Запитувала Наталія Єлманова

FireMonkey - це центральна технологія "нового Delphi". Розкажіть, будь ласка, про цілі, можливості та технічні аспекти пристрою цієї нової бібліотеки. Після закінчення часу, оглядаючись назад, наскільки важким і виправданим виявилася ваша відмова від подальшого розвитку надпопулярної VCL?

Була обрана як магістральний напрямок розвитку технології Delphi для досягнення конкретної мети — мульти-платформної розробки з одного середовища, на основі єдиної бази вихідних кодів, причому без необхідності кардинальної перепідготовки розробників. У рамках класичної і надпопулярної VCL це було неможливо, її зв'язок з WinAPI був занадто тісним, можна сказати, «на генетичному рівні».

Компоненти VCL не мали «абстрактного» прошарку між функціональним рівнем з погляду інтерфейсу та механізмами їх відображення. Функціональний рівень— те, як поводиться як елемент управління, які події реагує, яке взаємодія з користувачем забезпечує. Відображення- Виклик платформно-орієнтованих методів візуалізації як деякого зображення, сформованого растровими об'єктами і векторними примітивами. FireMonkey спочатку реалізовувала принцип суворого поділу елемента управління на дві складові: «поведінкову» та «візуальну».


Всеволод Леонов, Embarcadero Technologies

Перша загалом повторять навіть основи VCL, а суть об'єктно-орієнтованого програмування. Компонент є клас, класи компонентів утворюють ієрархію, де можна виділити сімейства та модулі. Клас компонента слабко пов'язані з тим, як і зображується.

Візуальна картинка формується динамічно, вона не прописана жорстко в класі компонента. Зображення або стиль у FireMonkey завантажується в компонент при запуску програми. Ми маємо якийсь функціональний каркас для компонента, а обшивка або облицювання може бути змінена, але навіщо? Саме для того, щоб програми FireMonkey виглядали автентично на будь-якій платформі — Windows 7, Windows 8, Mac OS, iOS і, в найближчому майбутньому, в Android. Цього традиційна монолітна класова структура VCL забезпечити не могла.

Тут особливу роль відіграє технологічність підходу. Принципово можна взяти бібліотеку VCL і «нафарширувати» WinAPI та іншими можливими платформними викликами. На дуже обмеженому підмножині компонентів це можна зробити, але VCL містить кілька сотень компонентів, тому такий підхід міг би просто «вбити» VCL. Вирішили «не чіпати» VCL, а нові можливості розвивати на новій платформі — FireMonkey. Ця технологіянавіть має певну технічну витонченість - в момент складання проекту під конкретну платформу середовище Delphi IDE підключає потрібний компілятор, а компоненти інтерфейсу отримують платформний стиль.

Для користувача це - одне клацання миші і той же вихідний код, для Delphi, - багаторічна наполеглива праця розробників зі створення подібної мультиплатформної бібліотеки.

Коли стало ясно, що FireMonkey буде введена окремою новою платформою, потрібно було вибрати правильну стратегію співіснування: Embarcadero не хотіла жодним чином вплинути на користувачів VCL. Тому ми вибрали наступний план: VCL залишається ідеологічно та архітектурно стабільним для забезпечення максимально можливої ​​сумісності, полегшуючи міграцію проектів на сучасні версії. Розвиток FireMonkey йтиме природним і паралельним шляхом, без огляду на VCL.

Слабким місцем такого рішення є досить проблематична міграція з VCL FireMonkey в рамках одного проекту. Зате для нового проекту розробник може вибрати FireMonkey для забезпечення мультиплатформенності своєї результуючої програми. Після релізу XE4 з підтримкою iOS ми вже можемо говорити про яскраві конкурентоспроможні переваги Delphi для початку мобільної розробкив корпоративному середовищі, яке буде збільшено після реалізації планованої підтримки Android.

Тому як такої явної «відмови» від розвитку VCL немає. У нових версіях VCL частина Delphi також розвивається. Це і підтримка 64-bit, і введення стилізації для візуальних компонентів, і реалізація механізму гнучких динамічних зв'язків або «байндингу», включення бібліотеки FireDAC для роботи з базами даних у VCL-проектах. Просто на тлі гігантського якісного стрибка за рахунок FireMonkey прогрес у VCL виглядає дещо невиявленим. Але, як би там не було, VCL - невід'ємна частина Delphi і залишиться такою ще довгі роки. Хоча еволюція платформ і сучасний стан справ у галузі ОС для настільних системта мобільних пристроїв такі, що майбутнє однозначно за FireMonkey.

В інтерв'ю ми вже обговорили підтримку iOS, давайте розповімо нашим читачам про підтримку інших новітніх технологій з боку останньої RAD Studio XE4, наприклад, таких як Windows 8 та WinRT, 64-бітових систем, MacOS тощо. Чи можна перерахувати, що ви ще можете запропонувати сучасному розпещеному нововведеннями програмісту?

Швидше за все, сучасний програміст не «розпещений» нововведеннями. Для великих проектівбудь-яке «нововведення» часто обертається гігантським обсягом робіт.

Наприклад, всі довго чекали, багато хто відразу кинувся перекладати свої коди на нову платформу. Але з'ясовується, що навіть професійні команди до цього не готові. Компільований 64-бітний код не означає працездатний. Почали спливати «гріхи молодості», наприклад, використання інструкцій у припущенні про 4-байтний розмір адреси. Відсутність культури проведення тестів, разом з технологічною неготовністю в стислий термін впровадити цей процес.

І тут чим більше проект, що вимірюється, припустимо, кількістю рядків вихідного коду, тим акуратніше і зваженіше ставляться програмісти до різного роду нововведень в діапазоні від зовнішнього вигляду «кнопки» в інтерфейсі до «синтаксичного цукру» в компіляторі.

Одним із таких «проблематичних» досягнень став вихід Windows 8. Особисто у мене, як користувача ПК, і просто сучасного IT-фахівця — Windows 8 викликає захоплення. Але для розробників, яким надіслали партію комп'ютерів під Windows 8 з ТЗ на розробку під нову ОС навантаження, це означає певні складнощі.

Ми постаралися максимально комфортно та безболісно забезпечити підтримку розробки під новий інтерфейс цієї ОС. Тому і для VCL, і для FireMonkey введені спеціальні стилі, а програміст може або перебудувати інтерфейс програми, або створити заново додаток, який буде невідмінним від «рідного» для Windows 8 зовнішньому вигляду. Звичайно, є потреба у «нативній» підтримці Windows 8 за рахунок WinRT. Але тут позначається пріоретизація цілей у сучасних умовах. Mac OS, iOS, Android у найближчих планах не дають поки що можливості говорити про повноцінну підтримку WinRT у найближчому майбутньому.

Стратегічною метою Embarcadero, звісно, ​​є мульти-платформність. Реліз RAD Studio XE4 став ключовим, насамперед через підтримку iOS. Чинний програміст, що використовує VCL, може за лічені години почати розробку під iOS. Навіть просте мобільний додатокможе бути миттєво перетворено на потужний проект, що працює в рамках інфраструктури, що склалася. Не треба думати, що це просто новий компілятордо FireMonkey та новий стильдля забезпечення відповідності інтерфейсу iOS.

Це новий візуальний дизайнер, і вбудована підтримка різних форм-факторів, і бібліотеки доступу до даних, включаючи нову FireDAC, і технологія LiveBindings для гнучкого і динамічного зв'язування з корпоративними даними. Всі ці нововведення надходять синхронно - і для Windows, і для ОС Mac, і для iOS. Операційна система Mac OS розвивається не так швидко, тому таких проблем, як перехід Windows 7 — Windows 8 там немає. Але з'явились дисплеї Retina, і це зажадало окремої уваги. Зараз будь-який MacOS-додаток, створений у Delphi XE4, автоматично включає два стилі — «звичайний» і «високочіткий».

Т.о. один і той же додаток може мати однаково якісний «нативний» інтерфейс на будь-якому настільний комп'ютервід Apple.

Компанія Embarcadero своїми новими інноваційними релізами не хоче здивувати, вразити або навіть розважити розробників. Швидше, навпаки, IT-сфера і так вже сповнена різних сюрпризів: нові пристрої, нові платформи, нові користувачі, нові потреби, нові сценарії взаємодії. Додайте сюди ще й нові технології розробки ПЗ, і програмістам просто не залишиться часу на створення нових систем і на існуючих — вони тільки й робитимуть, що проводитиме міграцію з одного середовища до іншого, зі старої бібліотеки на нову, з однієї мови на іншу.

Але ми й не сповідуємо відмову від усього нового. Ми лише хочемо забезпечити наступність всього — коду, інтерфейсу, проекту, навіть професійних навичок з появою нових платформ та пристроїв. Можна сміливо сказати, що ми боремося з хворим консерватизмом щодо нових платформ рахунок здорового консерватизму у засобах розробки. Не чекайте від Embarcadero екзотичних продуктів, нестандартних мов програмування та дивовижних засобів розробки.

У нас ви завжди знайдете візуальну розробку, класичні мови, «нативний» код, і нехай новими будуть цільові платформи для ваших додатків, створених тим же перевіреним класичним способом.




Top