Firemonkey از ساده به پیچیده. FireMonkey چیست؟ عدم پشتیبانی برای سفارشی سازی کلاس های بومی

FireMonkey چیست؟


FireMonkey (FMX) چارچوبی برای توسعه چند پلتفرمی برای هر دو سیستم دسکتاپ (پشتیبانی از Windows، Mac OS + سرور در لینوکس در آینده نزدیک) و موبایل (iOS و Android) با استفاده از زبان دلفی/C++ است.

ویژگی ها:

  • پایه کد واحد برای همه سیستم عامل ها؛

  • هر کنترل (جزء بصری) می تواند یک ظرف (والد) برای اجزای دیگر باشد.

  • وجود یک آرایش نسبی بسیار پیشرفته (20 نوع) از اجزاء بر روی فرم.

  • LiveBinding به شما امکان می دهد هر نوع داده یا اطلاعات را به هر رابط کاربری یا اشیاء گرافیکی متصل کنید.

  • وجود سبک های فرم / جزء؛

  • پیش‌نمایش چند دستگاه به شما امکان می‌دهد نمایش بصری را برای هر پلتفرم سفارشی کنید.

  • FireUI Live Preview - ظاهر برنامه را در دستگاه های واقعی در زمان واقعی نمایش می دهد.

ممکن ها:

  • استفاده از API بومی هر پلتفرم و همچنین امکان فراخوانی کتابخانه های بومی شخص ثالث.

  • تعامل با تمام سنسورها (GPS، شتاب سنج، قطب نما، بلوتوث (از جمله LE) و دیگران).

  • پشتیبانی از اعلان‌های فشار، اینترنت اشیا؛

  • پشتیبانی از درخواست های HTTP ناهمزمان؛

  • پشتیبانی از اکثر پایگاه های داده (MsSQL، MySql، Oracle، PostgreSQL، MongoDB، و غیره)؛

  • کار با Cloud Service (Amazon، Azure)؛

  • پشتیبانی از سرویس Android

معایب (در حال حاضر):

  • عدم پشتیبانی برای سفارشی سازی کلاس های بومی؛

  • اجرای چیزهای خاص یا غیرممکن است (ویجت ها، برنامه های افزودنی (iOS) و غیره) یا رقص با تنبور مورد نیاز است (سرویس پس زمینه، پیام پخش و غیره).

  • سفارشی سازی صفحه Splash (صفحه اولیه) به زبان ساده فاقد است.

  • کنترل‌های FMX از رندر خود (تجسم، ترسیم) استفاده می‌کنند که کاملاً از نظر بصری شبیه به نسخه اصلی است.

  • استفاده از کنترل های بومی شامل حرکات بزرگ بدن است.

  • هنگامی که اجزای زیادی تودرتو هستند، اتفاقات باورنکردنی رخ می دهد: برنامه در مکان های مختلف خراب می شود، تمرکز خود را از دست می دهد، یخ می زند و غیره.

  • محتوای اطلاعات اشکال زدایی یک برنامه در سیستم عامل های تلفن همراه صفر است.

  • توصیف خطاها در سیستم عامل های تلفن همراه به بی فایده "خطای 0x00000X" کاهش می یابد.

  • زمان تدوین می خواهد برای پروژه های متوسط ​​و بزرگ بهترین باشد.

  • نیاز به استفاده از یک فایل برای صیقل دادن برنامه های موبایل برای هر پلتفرم؛

  • عدم پشتیبانی از معماری اتم اینتل؛

  • قیمت نامناسب در مقایسه با رقبا

طرفداران:

  • توسعه بسیار فعال محصول و جامعه اخیراً، پشتیبانی از فناوری های جدید بیشتر و بیشتر.

  • وجود تعداد زیادی مؤلفه رایگان و تجاری؛

  • سرعت برنامه بسیار نزدیک به بومی است.

  • ویرایشگر بصری بسیار پیشرفته و محیط به طور کلی، وجود سبک.

  • توانایی آزمایش یک برنامه در Win و تنها پس از آن استقرار آن بر روی دستگاه ها، که تا حد زیادی سرعت توسعه را افزایش می دهد.

  • تغییر حالت/سکو با تکان دادن مچ؛

  • PAServer تعامل آسان با MacO ها را هنگام توسعه برای سیستم عامل اپل فراهم می کند.

  • پشتیبانی از گرافیک سه بعدی خارج از جعبه

در پایان، می‌خواهم بگویم که طی چند سال گذشته FireMonkey به یک ابزار حرفه‌ای برای توسعه بین پلتفرمی برنامه‌های کاربردی تجاری و موارد دیگر تبدیل شده است. بسیاری از کاستی‌ها به تدریج برطرف می‌شوند و با هر عرضه محصول مدرن‌تر و خودکفاتر می‌شود و تردید موجود نسبت به خود زبان دلفی که با رکود چندین ساله همراه است نیز از بین می‌رود. نوشتن پروژه های جدید در FireMonkey "ایمن" و امیدوارکننده است.

دلفی XE2 که در سپتامبر سال گذشته منتشر شد، دارای رکوردی از نوآوری‌ها است.
مروری کوتاه بر قابلیت‌های دلفی XE2 قبلاً در Habré منتشر شده است. اما بدیهی است که چشمگیرترین نوآوری پلتفرم FireMonkey است و در اینجا مایلم کمی به آن توجه کنم.
من مجموعه کوچکی از پیوندها را به مواد ایجاد کرده ام که امیدوارم به شما کمک کند تا ایده ای کم و بیش کافی از این پلتفرم داشته باشید. اما ابتدا برای کسانی که اطلاعی ندارند، به طور خلاصه به شما می گویم که FireMonkey چیست.
Embarcadero Technologies FireMonkey را به عنوان یک پلت فرم برای ایجاد برنامه های تجاری غنی برای Windows، Mac و iOS قرار می دهد. علاوه بر این، این پلت فرم بومی هر سیستم عامل است، یعنی. هنگام اجرای برنامه ای که با استفاده از FireMonkey ایجاد شده است، از هیچ افزونه اضافی استفاده نمی شود.
FireMonkey مستقیماً به یک کتابخانه گرافیکی بومی (از دیدگاه سیستم عامل) مانند OpenGL یا DirectX پیوند می دهد. بنابراین، بهترین راه حل از نقطه نظر GPU پیشنهاد شده است.
هسته معماری FireMonkey یک کتابخانه قدرتمند از کلاس ها (شامل اجزای بصری) است.
پلتفرم هدف در طول فرآیند تدوین انتخاب می شود.
اولین نسخه FireMonkey تنها از Win32، Win64، MacOSX و iOS پشتیبانی می کرد، اما Embarcadero قصد دارد در آینده آن را به چندین پلتفرم دیگر منتقل کند.

چه چیزی را باید در نظر بگیرید؟

اگرچه پلتفرم FireMonkey ابزارهای گسترده ای برای توسعه برنامه های کاربردی سه بعدی ارائه می دهد، اما نباید آن را یک موتور بازی در نظر گرفت. FireMonkey به طور خاص به عنوان یک پلت فرم برای توسعه برنامه های کاربردی تجاری قرار گرفته است.
این محصول در حال حاضر در مراحل اولیه تکامل خود است. و بسیاری از عملکرد FireMonkey دستخوش تغییرات کیفی و کمی است.

امیدوارم لینک های زیر به شما در درک ویژگی های اصلی پلتفرم جدید کمک کنند.
صفحه رسمی محصول در وب سایت Embarcadero (روسی)

در میان مطالب انگلیسی زبان می خواهم سریال را برجسته کنم (انگلیسی)

چه چیزی را ببینیم؟

مربوط به آخرین نسخهدلفی، مطالب ویدیویی بیشتری نسبت به گذشته به قابلیت های محصول و نحوه کار با آن اختصاص داده شده است. هر دو رسمی، از Embarcadero، و از توسعه دهندگان مستقل. ویدیوهای زیادی در مورد FireMonkey در YouTube وجود دارد، فقط می توانید از جستجو استفاده کنید. در میان این مطالب فراوان، من یک سری از سه ویدیو از صفحه فرود Marco Cantu - RAD in Action را برجسته می‌کنم، بنابراین به تحقیقم بردار مفیدی می‌دهم.

احتمالاً می دانید که Embarcadero به طور فعال دیدگاه جدید خود را برای ایجاد یک رابط کاربری گرافیکی بین پلتفرم - FireMonkey ( آنها آن را یک چارچوب می نامند، اما برای وضعیت فعلی آن بسیار جالب به نظر می رسد). مسابقات یکی پس از دیگری در RuNet اعلام می‌شود، وبینارها برگزار می‌شوند، و اگرچه کیفیت دومی چیزهای زیادی باقی می‌ماند، اما این فعالیت دلگرم‌کننده است. حالا، در واقع، به موضوع. به عنوان بخشی از آخرین مسابقه، پیشنهاد شد که نوعی برنامه کاربردی برای یادگیری ایجاد شود. و دیروز اثر دیگری با نویسنده Evgeniy Chmel ظاهر شد ( نمی دانم این نام خانوادگی متمایل است یا نه). برخلاف نمونه‌های ساده «یک‌شکل» که قبلاً دیده شد، در اینجا تلاش شد تا میمون را با تمام اندام‌هایش بکشند: سبک‌سازی، سه‌بعدی، افکت‌های سایه زن ( تبشیرهای Embarcadero دوست دارند در مورد گرافیک های تسریع شده GPU صحبت کنند :))). بیایید ببینیم چه نتیجه ای از آن حاصل شد. برای کسانی که وبینارها را تماشا نکرده اند، من یک انحراف کوچک انجام می دهم. در یکی از وبینارها، وسوولود لئونوف، مبشر Embarcadero، داستانی دلخراش در مورد چگونگی راه‌اندازی مجدد رایانه به طور خاص به سختی (این یک نقل قول است) به دلیل این واقعیت که Silverlight SDK و شبیه ساز ویندوزتلفن 7 "کار نمی کرد" (این یک نقل قول است) در رایانه او زیرا ... آنها آداپتور ویدئو یا تنظیمات GPU را دوست نداشتند. اما برنامه های توسعه یافته با استفاده از FireMokey، Vsevolod ادامه می دهد، به هیچ وجه خواستار نیستند سخت افزار. ببینیم چطور به ما دروغ گفته. Process Explorer v15.05 از مارک روسینوویچ شاهد بی طرف ما خواهد بود. بنابراین، برنامه Evgeniy را دانلود کنید و راه اندازی کنید ( من تصاویری از برنامه Evgeniy ارائه نمی دهم، آنها در پیوند به کار او در دسترس هستند. به فونت های تار توجه کنید).

اپلیکیشن را راه اندازی کرد. بیایید به مصرف نگاه کنیم:

بی حیا، اما می توانی ببخشی» فن آوری پیشرفته" به بخش "درس ها" بروید و "درس 5" را انتخاب کنید. آماده سازی مرحله آغاز می شود. این روند طولانی است ( در یک Phenom II چهار هسته ای با فرکانس 3.3 گیگاهرتز، کمی بیش از یک دقیقه طول کشید.)، صبور باش. صحنه ساخته شده است. بیایید به مصرف نگاه کنیم:

میمون به خوبی سیر شده بود. خیلی خوب. اکنون سعی کنید ماوس خود را روی دکمه های گزینه پاسخ حرکت دهید. به نظر می رسد که رابط کاربری گرافیکی بسیار کند واکنش نشان می دهد، اینطور نیست؟ به نمودار مصرف CPU نگاه کنید ( منظورم این است که باید خودتان آن را روی کامپیوترتان امتحان کنید) – در این لحظات بار آن به 100% نزدیک می شود ( من 21.5٪ برای یک پردازنده چهار هسته ای داشتم که معادل 86٪ برای یک پردازنده تک هسته ای است.). اما یک نفر در مورد گرافیک شتابدار GPU به ما گفت. باشه بریم جلو ما به تمام سوالات درس پاسخ می دهیم. بیایید به مصرف نگاه کنیم:

چشمات گشاد شده؟ حالا برای مقایسه ببینید تیرانداز سه بعدی FarCry با گیم پلی فعال چقدر مصرف می کند ( سطح Factory نامیده می شود، اگر کسی علاقه مند باشد) در حال اجرا در حالت تمام صفحه 1440x900:

نتیجه گیری خود را انجام دهید.

بیش از سه سال از زمانی که بخش CodeGear مسئول ایجاد ابزارهای مشهور جهانی مانند دلفی، C++Builder و JBuilder و همچنین سیستم مدیریت پایگاه داده Interbase به بخشی از Embarcadero Technologies تبدیل شد که به دلیل ابزارهای خود شناخته شده است. برای طراحی و مدیریت پایگاه داده، و دو سال از زمانی که ما در صفحات مجله خود بحث کردیم که در توسعه ابزارهایی که بسیار محبوب هستند چه انتظاری داریم. توسعه دهندگان روسی. ما از دیوید اینترسیمون، معاون روابط توسعه‌دهنده و مبشر ارشد Embarcadero Technologies، و Kirill Rannev، رئیس دفتر نمایندگی Embarcadero Technologies، خواستیم تا در مورد کارهای جدیدی که در دو سال گذشته در این زمینه انجام شده است و انتظارات در این زمینه صحبت کنند. آینده نزدیک روسیه برای جوانترین خوانندگان ما، به شما اطلاع خواهیم داد که این اولین مصاحبه ای نیست که دیوید و کریل با ComputerPress انجام می دهند - همکاری ما برای دهه دوم ادامه دارد. و برای تقریباً همین تعداد سال، ما به صورت دوره ای بررسی هایی از ابزارهای مدیریت پایگاه داده منتشر می کنیم که در آن توجه زیادی به محصولات Embarcadero شده است.

ComputerPress:دیوید، بخش شما به مدت سه سال بخشی از Embarcadero بوده است. دو سال پیش، شما مشتاق بودید که آن را به بخشی از شرکتی نزدیک به اهداف و روحیه شما تبدیل کنید. آیا در این مدت چیزی تغییر کرده است؟ آیا شما و همکارانتان هنوز هم همان شور و شوق را دارید؟

بله، من هنوز هم بسیار مشتاق هستم. تغییر اصلی که از زمانی که ما بخشی از شرکت Embarcadero شدیم این است که سرمایه گذاری زیادی در توسعه دلفی انجام شده است. تعداد افرادی که روی ابزارهای توسعه کار می کنند افزایش یافته است و تعداد فناوری هایی که می توانیم توسعه دهیم یا در صورت لزوم به دست آوریم افزایش یافته است.

انتشار RAD Studio XE 2 که قصد داریم آن را در مسکو به نمایش بگذاریم، بزرگترین نسخه از این محصول با قابلیت های فوق العاده و تعداد زیادی پلتفرم پشتیبانی شده از زمان اولین نسخه دلفی است که برای نسخه 16 بیتی ویندوز و که محصولی نوآورانه بود که رویکرد مؤلفه و کامپایل را در کد ماشین ترکیب می کرد. اکنون ما از توسعه نه تنها برای ویندوز، بلکه برای مکینتاش نیز پشتیبانی می‌کنیم، به غیر از توسعه وب و ایجاد برنامه‌های کاربردی برای دستگاه های تلفن همراهو این اپلیکیشن ها برای پلتفرم های مختلف می توانند یک کد واحد داشته باشند.

پلتفرم توسعه جدید - FireMonkey - یک تلاش مشترک بین Embarcadero و شرکت روسی KSDev اخیراً خریداری شده از UlanUde است که سازنده قطعات گرافیک های برداری، DirectX و OpenGL، فناوری های جلوه های گرافیکی و اجزای دلفیاستفاده كردن پردازنده گرافیکیبا PixelShader 2.0. ما یک سال پیش شرکت KSDev (به ksdev.ru مراجعه کنید) را خریداری کردیم و شروع کردیم همکاری هابرای ایجاد یک ابزار توسعه چند پلتفرمی که شامل پلت فرم توسعه برنامه FireMonkey با اجزای دلفی و C++Buider برای ایجاد رابط کاربری برنامه، یکپارچه سازی پایگاه داده، پردازش گرافیکی GPU و یکپارچه سازی سیستم عامل است.

با استفاده از FireMonkey، می‌توانید برنامه‌ای ایجاد کنید که روی CPU و GPU با هم اجرا شود و سپس از کامپایلرهای مختلف و کتابخانه‌های زمان اجرا (RTL) برای کامپایل آن برای Windows، Mac OS یا iOS استفاده کنید. توسعه دهندگان با استفاده از دلفی و سی پلاس پلاس به جای یادگیری برنامه نویسی با استفاده از کتابخانه های گرافیکی مختلف، یادگیری API های پلتفرم های مختلف که دارای سیستم مختصات متفاوت و قابلیت های متفاوت هستند، می توانند از رویکرد مبتنی بر کامپوننت یکسان استفاده کنند، به صورت بصری فرم ها را ویرایش کنند و به پایگاه های داده متصل شوند. حرکت مولفه با ماوس این یک روش اساساً جدید برای ایجاد برنامه هایی است که بر روی پلتفرم های مختلف اجرا می شوند و آینده است. اگر می خواهید پشتیبانی از سیستم عامل ها و پلتفرم های دیگر را به برنامه خود اضافه کنید، نیازی به طراحی و توسعه مجدد آن ندارید - فقط کافی است آن را دوباره کامپایل کنید.

ما کامپایلرهای جدیدی ایجاد می کنیم که کد بومی تولید می کنند. امروزه کامپایلرهای دلفی برای 32 و 64 بیت وجود دارد نسخه های ویندوز، نسخه های 32 بیتی Mac OS 10. و ما در حال کار بر روی نسل بعدی کامپایلرهای Delphi و C++Builder هستیم که به شما امکان می دهد کد ماشینی با کارایی بالا را برای این پلتفرم ها و سایر پلتفرم ها مانند اندروید یا لینوکس ایجاد کنید. با استفاده از کامپایلرهای مختلف و کتابخانه های زمان اجرا، طراحی یکسان، اجزای یکسان، کدهای مشابه را حفظ کنید.

همانطور که می بینید، من دلایل کافی برای اشتیاق دارم. و توسعه‌دهندگانی که در سرتاسر جهان ملاقات می‌کنم می‌دانند که Embarcadero سرمایه‌گذاری زیادی روی Delphi و C++Builder و همچنین ابزارهای توسعه PHP دارد.

KP:در دو سال گذشته چه موفقیت هایی در ادغام ابزارهای دو شرکت به دست آورده اید؟ برنامه Embarcadero برای آینده در این زمینه چیست؟

DI.:در زمانی که CodeGear بخشی از Embarcadero شد، این شرکت تیم های توسعه در تورنتو، مونتری و رومانی داشت، ما در Scotts Valley و در روسیه، در سنت پترزبورگ قرار داشتیم و هنوز هم هستیم. Embarcadero ابزارهایی برای توسعه دهندگان و مدیران پایگاه داده داشت، CodeGear ابزارهایی برای توسعه برنامه داشت، اما دومی نیز از پایگاه داده استفاده می کند. ادغام شرکت ها ترکیبی از تخصص، دانش در زمینه بانک های اطلاعاتی، بهینه سازی کد از جمله کد سرور است. ترکیب شرکت ها همچنین منجر به ایجاد یک محصول جدید به نام AppWave شد، یک فناوری ویژه برای تبدیل یک برنامه معمولی ویندوز به چیزی بسیار آسان برای استفاده (مانند برنامه های کاربردی برای آیفون یا دستگاه های دیگر). AppWave به شما این امکان را می دهد که برنامه ای را نصب نکنید، بلکه به سادگی آن را انتخاب کرده و از سرور ذخیره سازی برنامه (برنامه) آماده شده راه اندازی کنید و بدون ایجاد تغییرات در رجیستری و ناحیه سیستم آن، بر روی رایانه کاربر اجرا می شود. سیستم فایل. به هر حال، مرورگر برنامه AppWave در دلفی نوشته شده است. Embarcadero از Dephi برای توسعه خود و تخصص توسعه برنامه ما استفاده می کند.

برنامه آیفون (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، که به شما امکان می دهد بخش مهمی از فرآیند توسعه و استقرار را با مدیریت تغییرات انجام دهید. مدل داده، پایگاه داده، کد، و غیره. این ترکیب بسیار خوب و درستی از فناوری ها است.

DI.:اما، در صورت لزوم، توسعه دهندگان می توانند از Subversion برای کنترل نسخه استفاده کنند کد منبعو DB Change Manager برای نسخه سازی ابرداده. می توانید از پروفایل کد و DB Optimizer برای بهینه سازی کد سرور، RapidSQL برای ساخت و اشکال زدایی کد سرور و محیط های توسعه ما برای ساخت و اشکال زدایی برنامه ها استفاده کنید. این ترکیب از فناوری‌ها در RAD Studio XE Ultimate Edition شباهت‌های بین مدل‌های توسعه پایگاه داده و اپلیکیشن را نشان می‌دهد. اکثر توسعه دهندگانی که با دلفی و C++Builder برنامه های تجاری می سازند با پایگاه داده ها کار می کنند و به این ابزارها نیاز دارند و RAD Studio XE Ultimate Edition ترکیبی عالی برای چنین توسعه دهندگانی است.

KP:کاربر مدرن دیگر به تنهایی کاربر پلتفرم ویندوز نیست. ما از دستگاه های تلفن همراه، آیفون، آی پد، دستگاه های مبتنی بر پلت فرم اندروید استفاده می کنیم. این بدان معنی است که توسعه دهندگان باید بدون افزایش سرمایه گذاری در آموزش، پلتفرم های مختلف را هدف قرار دهند - یعنی ابزارهای جهانی مورد نیاز است. بدیهی است که انتظار ظهور ابزارهای جهانی از تولیدکنندگان پلتفرم غیرواقعی است و در این مورد فقط می‌توان روی سازندگان ابزار مستقل حساب کرد. چگونه می توانیم روی Embarcadero حساب کنیم؟

DI.:از نظر پشتیبانی پلتفرم هنوز کارهای زیادی برای انجام دادن داریم. امروز ما در حال معرفی پشتیبانی از پلتفرم iOS برای آیفون و آیپد هستیم، سپس گوشی های هوشمند مبتنی بر پلتفرم اندروید، ویندوز 7 و بلک بری پشتیبانی ما را دریافت خواهند کرد. در RAD Studio XE 2، ما با ساخت پلتفرم FireMonkey برای iOS شروع کردیم و سپس FireMonkey را به پلتفرم های دیگر خواهیم آورد.

در عین حال، تعداد زیادی سیستم عامل وجود دارد که از صفحه نمایش لمسی برای تلفن ها پشتیبانی می کنند. رایانه های لوحیو دستگاه های دسکتاپ، و ما به افزودن پشتیبانی برای آنها ادامه خواهیم داد. علاوه بر این، صدا، حرکت، سیستم های بیومتریک، شتاب سنج ها، بنابراین ما باید به گسترش FireMonkey ادامه دهیم تا همه توسعه دهندگان بتوانند از پلتفرم های جدید استفاده کنند. به عنوان مثال، دستگاه مایکروسافت کینکت برای ایکس باکس 360 طراحی شده است و اکنون یک SDK (کیت توسعه نرم افزار) مربوط به ویندوز وجود دارد. و ما قبلاً نمونه‌هایی داریم که در آنها از حرکت برای کنترل یک برنامه به همان روشی که معمولاً از ماوس یا صفحه کلید استفاده می‌شود استفاده می‌کنیم.

وقتی برنامه هایی با گرافیک های پیچیده زیاد ایجاد می کنید، دنیای کاملی از رابط های کاربری جدید ایجاد می کنید. اگر با اتاق عمل سر و کار داریم سیستم ویندوز، ما کاربرد آن را کپسوله می کنیم رابط نرم افزاری Windows API در کتابخانه VCL (Visual Component Library - کتابخانه ای از اجزای بصری که بخشی از ابزارهای توسعه دلفی و C++Builder است. - توجه داشته باشید ویرایش) که به هر حال، می توان از آن بیشتر استفاده کرد. و در FireMonkey ما API سیستم عامل را کپسوله می کنیم. اما امروزه ما شکل ها و گرافیک ها را بسیار بیشتر دستکاری می کنیم. همچنین می توانید ویژگی های فیزیکی را برای انیمیشن و جلوه های ویژه به فضا اضافه کنید. علاوه بر این، تعداد زیادی قابلیت اضافی دیگر برای ایجاد رابط کاربری وجود دارد که قرار است در چند سال آینده برای پلتفرم‌های مختلف، دستگاه‌های موبایل و تبلت اجرا کنیم.

مایکروسافت اخیرا اعلام کرده است اطلاعات دقیقدر مورد ویندوز 8 که قرار است یک سال دیگر عرضه شود. ما از این نوآوری ها در کتابخانه VCL و پلت فرم FireMonkey پشتیبانی خواهیم کرد. اما دلفی یک ابزار توسعه است که نه تنها برای ویندوز، بلکه برای مکینتاش، آیفون و آیپد نیز طراحی شده است. ما همچنین محصولات PHP خود را توسعه می‌دهیم، از jQuery Mobile پشتیبانی می‌کنیم، از iOS API برای توسعه برنامه‌های سرویس گیرنده تلفن همراه استفاده می‌کنیم، و برنامه‌های PHP سمت سرور را با استفاده از جادوگران و ابزارهایی برای تولید جاوا اسکریپت، HTML و شیوه نامه‌های آبشاری سمت کلاینت ایجاد می‌کنیم. ما می‌توانیم بسته‌هایی را از برنامه‌های PHP و برنامه‌های کلاینت کد بومی برای iPhone iOS ایجاد کنیم، و چنین کلاینت با آن ارتباط برقرار می‌کند. سرور پی اچ پی. و او به نوبه خود با سرور پایگاه داده و با خدمات وب - با همه چیزهایی که برای تجارت مورد نیاز است - ارتباط برقرار می کند.

محیط توسعه RadPHP XE2. ایجاد یک وب اپلیکیشن موبایل
با استفاده از اجزای jQuery Mobile برای iPhone 3G

به عبارت دیگر، ما قصد داریم قابلیت های FireMonkey و VCL از جمله پشتیبانی از پلتفرم های موبایل را گسترش دهیم.

KP:ممکن است در مورد پلتفرم FireMonkey بیشتر به ما بگویید؟

DI.:همانطور که قبلاً اشاره کردم، کتابخانه VCL ایجاد شده برای ویندوز به توسعه و بهبود ادامه خواهد داد. اما امروزه، اگر می‌خواهید برنامه‌های کاربردی تجاری واقعی را توسعه دهید، باید آنها را برای پلتفرم‌های مختلف ایجاد کنید. این همان چیزی است که پلتفرم FireMonkey برای آن طراحی شده است. از ایجاد رابط های کاربری با وضوح بالا و کارایی بالا پشتیبانی می کند گرافیک سه بعدی، نرخ فریم بالا و مهمتر از آن استفاده از پردازنده گرافیکی برای این کار است.

شما می توانید از چنین قابلیت هایی در هنگام ایجاد برنامه های کاربردی علمی، مهندسی و تجاری استفاده کنید. چنین برنامه‌هایی می‌توانند با استفاده از فناوری dbExpress به پایگاه‌های داده متصل شوند، همچنان با استفاده از مؤلفه‌های غیر بصری آشنا برای توسعه‌دهندگان، مانند ClientDataSet یا DataSource، از فناوری DataSnap استفاده کنند، به هر پایگاه داده، سرورهای SOAP و REST متصل شوند. می‌توانید کنترل‌های جذاب، دکمه‌هایی با جعبه، جداول غیرمعمول و سایر عناصر رابط را در دو و سه بعدی ایجاد کنید. می‌توانید یک مدل سه‌بعدی تمام‌شده را در برنامه بارگذاری کنید و آن را به یک شکل دوبعدی متصل کنید که در آن می‌توانید آن را بچرخانید و از زوایای مختلف مشاهده کنید. می توانید یک مکعب داده یا یک نمودار تجاری سه بعدی ایجاد کنید و آن را با استفاده از ماوس، صفحه کلید یا حتی یک دستگاه کینکت بچرخانید، یا می توانید وارد مکعب شوید و از داخل به سطوح مختلف آن نگاه کنید. و همه اینها را می توان با استفاده از یک پردازنده گرافیکی پرسرعت انجام داد. همان برنامه را می توان سپس برای پلتفرم دیگری مانند سیستم عامل مک کامپایل کرد.

برنامه ای حاوی یک مکعب داده چرخان،
روی لبه های آن قرار می گیرد

یا می توانید از ابتدا یک شکل سه بعدی ایجاد کنید و از دوربین ها و چراغ ها برای روشن کردن و چرخاندن بخش هایی از رابط کاربری استفاده کنید. طراح فرم قبلاً یک محیط داخلی برای پشتیبانی از رابط کاربری سه بعدی در طول طراحی دارد.

در ویندوز برای کار با گرافیک دو بعدی کیفیت بالامی توانید از کتابخانه های Direct2D و برای گرافیک های سه بعدی - Direct3D استفاده کنید. در سیستم عامل مک، کتابخانه های کوارتز و OpenGL برای اهداف مشابهی استفاده می شوند. برای iOS، از کتابخانه های Quartz و OpenGL ES استفاده می شود. اما همه اینها از توسعه دهنده پنهان است - او از پلتفرم FireMonkey، سیستم مختصات آن و رابط برنامه نویسی برنامه استفاده می کند، بدون اینکه به این کتابخانه ها فکر کند و می تواند همان برنامه را برای پلتفرم های مختلف کامپایل کند.

بیایید به یاد بیاوریم که VCL چیست. VCL یک بسته بندی کامپوننت در اطراف API ویندوز است. ما با منابع، منوها، کادرهای محاوره ای، رنگ ها، سبک ها، پیام های ویندوز سروکار داریم. FireMonkey بر خلاف VCL، یک بسته چند پلتفرمی است، همان رویدادها و مدل‌های مؤلفه را حفظ می‌کند، و به شما امکان می‌دهد به رویدادها فکر کنید (به عنوان مثال، رویدادهای OnClick، OnHasFocus، onMouseDown و onKeyDown)، اما رویدادهای Macintosh یا iPhone را مدیریت می‌کند.

پلتفرم FireMonkey نیز همراه است سیستم کاملانیمیشن عناصر رابط کاربری مطمئناً این یک سیستم پویانمایی جامع به سبک Pixar نیست، اما افکت‌هایی مانند انیمیشن بیت مپ، برجسته کردن تمرکز بر روی یک عنصر UI و کار با گرافیک برداری. بیش از 50 جلوه بصری در دسترس توسعه دهنده است: تاری، تبدیل تصویر به سیاه و سفید، حل شدن، انتقال، انعکاس، ایجاد سایه - همه انواع جلوه های موجود در پردازنده های گرافیکی مدرن، که اکنون تقریباً در هر رایانه ای یافت می شوند. برنامه ای که با استفاده از پلتفرم FireMonkey ساخته شده است، دستوراتی را به GPU ارسال می کند، که تمام کارهای نمایش گرافیک و ایجاد رابط کاربری را انجام می دهد. که در آن CPUرایگان برای محاسبات و تماس با سیستم عامل. توسعه دهنده فقط می تواند اجزا را به درستی قرار دهد.

اساسی ترین چیز در مورد پلتفرم FireMonkey نحوه ایجاد رابط کاربری است. امکانات اقامتی وجود دارد گرافیک شطرنجیدر عناصر رابط مانند منوها، دکمه ها و نوارهای پیمایش. در FireMonkey، برای این منظور از گرافیک های برداری مبتنی بر GPU استفاده می کنیم. از منظر برنامه نویسی، اینها هنوز همان کنترل ها هستند، اما تمام کار نمایش آنها توسط پردازنده گرافیکی انجام می شود. می‌توانیم استایل‌ها را روی کنترل‌ها اعمال کنیم، برنامه را شبیه یک برنامه کاربردی برای سیستم‌عامل مک یا ویندوز کنیم، استایل خودمان را ایجاد کنیم، استایل‌های خودمان را روی عناصر رابط اعمال کنیم (مثلاً با تغییر سبک آن در ویرایشگر فرم، یک دکمه مستطیلی یا گرد بسازیم. ) - برای این یک ویرایشگر سبک در محیط توسعه وجود دارد. شما می توانید سبک خود را ایجاد کنید یا می توانید سبک برنامه ای را که قبلاً تمام شده است تغییر دهید.

پلتفرم FireMonkey - ابزارهای توسعه
و پلتفرم های پشتیبانی شده

اگر به خاطر داشته باشید، کتابخانه VCL تعداد محدودی کنترل داشت - کانتینر (یعنی به شما امکان می داد عناصر دیگر را در آنها قرار دهید) و در FireMonkey هر کنترل یک ظرف است. این بدان معنی است که هر کنترل می تواند هر کنترل دیگری را در خود داشته باشد. برای مثال، آیتم های لیست کشویی ممکن است حاوی تصاویر، دکمه ها، فیلدهای ویرایش و سایر کنترل ها باشند. همچنین می توانید اجزا را در لایه ها قرار دهید.

سیستم رندر FireMonkey کاملاً انعطاف‌پذیر است - می‌تواند از کتابخانه‌های Direct2D، Direct3D و OpenGL استفاده کند و دستورات را به GPU ارسال کند. برای رسیدن به همان چیزی در VCL، باید یک بافر خارج از صفحه مجزا تولید می‌کردید، با فراخوانی توابع کتابخانه گرافیکی مناسب، یک تصویر در آن ایجاد می‌کردید و سپس آن را روی فرم نمایش می‌دادید.

نمونه هایی از جلوه های گرافیکی پشتیبانی شده توسط FireMonkey

اگر پردازنده گرافیکی ندارید، همچنان می توانید اشکال دو بعدی یا سه بعدی را اعمال کنید و از کنترل های FireMonkey استفاده کنید. در این حالت، پلتفرم FireMonkey از کتابخانه های +GDI یا سایر کتابخانه های مشابه استفاده می کند و همان افکت ها و انیمیشن ها یا دستکاری اشیاء سه بعدی را انجام می دهد.

یکی دیگر از ویژگی های FireMonkey این است سیستم جدیدپیوند دادن عناصر رابط با داده ها، باز و انعطاف پذیر. دو نوع عنصر واسط در VCL وجود دارد: محدود به داده و غیر محدود به داده (به عنوان مثال، TDBEdit و TEdit). در FireMonkey، هر کنترلی را می توان با هر نوع داده ای مرتبط کرد. این می تواند یک عبارت ساده، یک فیلد از یک مجموعه داده، داده از اشیاء ایجاد شده توسط توسعه دهنده، یا نتایج فراخوانی روش باشد.

علاوه بر این، هنگام ایجاد یک برنامه، می توانید یک مدل سه بعدی آماده را در آن بارگذاری کنید و از آن استفاده کنید - چنین قابلیت هایی اغلب در برنامه های تجاری و مهندسی مورد نیاز است. ما مشتری داریم که برنامه های کاربردی برای تدارکات ایجاد می کند. آنها داشتند سیستم اطلاعات، با استفاده از دلفی ساخته شده است، و در آن - برنامه ای که طرحی را ترسیم می کند و اطلاعات را از منابع داده نمایش می دهد. آنها اخیراً کار جالبی انجام دادند - آنها یک انبار سه بعدی کاملاً خودکار در اتوکد ترسیم کردند و برنامه آنها به شما امکان می دهد ببینید چگونه لیفتراک خودکار در اطراف انبار حرکت می کند و کالاها را در قفسه ها قرار می دهد. و داده های منابع را روی تصویر مربوطه قرار می دهند.

نمونه هایی از تغییر سبک برنامه ها

KP:در حال حاضر چه فرمت های مدل سه بعدی پشتیبانی می شود؟

DI.:در این نسخه از بارگیری مدل‌های اتوکد، کولادا (یک ابزار مدل‌سازی سه بعدی منبع باز) پشتیبانی می‌کنیم. توجه داشته باشید ویرایش کنید.)، مایا، یک فرمت OBJ که توسط بسیاری از فروشندگان گرافیک سه بعدی پشتیبانی می شود.

KP:چه فرمت های دیگری را قصد دارید اضافه کنید؟

DI.:ما قصد داریم 3DS (3D Studio MAX)، SVG (معمولا این فرمت برای گرافیک های برداری 2 بعدی استفاده می شود، اما گاهی اوقات برای 3D)، Google SketchUp را اضافه کنیم. شاید از فرمت های دیگر پشتیبانی کنیم.

KP:آیا استفاده از مدل های سه بعدی در برنامه های ساخته شده با FireMonkey به مجوز ابزار مدل سازی سه بعدی مناسب نیاز دارد؟

DI.:نه، نیازی به آن ندارد. تنها کاری که ما انجام می دهیم خواندن فایل مدل است. ما مدل را وارد می‌کنیم، اما آن را صادر نمی‌کنیم (البته، می‌توانید برنامه‌ای بنویسید که مدل را در قالب خودتان ذخیره کند). ما وانمود نمی کنیم که سازنده ابزارهای مدل سازی سه بعدی هستیم - برای این کار می توانید از AutoCAD، 3D Studio Max، Maya یا هر ابزار مدل سازی سه بعدی دیگری استفاده کنید و مدل های ایجاد شده را به برنامه های ما وارد کنید.

KP:برنامه هایی که با FireMonkey بر روی پلتفرم های سخت افزاری مدرن ساخته شده اند چقدر کارایی دارند؟

DI.:بهره وری بسیار بالا است. به عنوان مثال، رندر کردن یک شکل سه بعدی با سه کره و سه منبع نور روشن مک بوک پرومی تواند با سرعت 100 فریم در ثانیه انجام شود. یا می تواند به 600 برسد - بستگی به این دارد که دقیقاً چه کاری انجام می دهیم. باز هم، همه چیز به قدرت پردازنده گرافیکی بستگی دارد.

KP:آیا این بدان معناست که شما می توانید بازی های مدرن را با استفاده از FireMonkey ایجاد کنید؟

DI.:ما ابزارهای توسعه خود را به عنوان ابزاری برای بازی ها قرار نمی دهیم. با این حال، با بهره گیری از عملکرد بالای پردازنده های گرافیکی مدرن، می توانید بازی هایی را با استفاده از FireMonkey ایجاد کنید - در نهایت، آنها با استفاده از Direct3D یا OpenGL ایجاد می شوند.

KP:در حال حاضر چه کاری در زمینه پشتیبانی از تشخیص ژست و سایر موارد جدید انجام می دهید؟ آیا چنین پشتیبانی در دسترس است؟

DI.:ما هنوز پشتیبانی ژست‌های حرکتی در این نسخه نداریم. در نسخه بعدی FireMonkey، کنترل‌های ژست اضافه خواهند شد، اما در عین حال می‌توانید از پشتیبانی ژست‌های موجود در سیستم عامل استفاده کنید.

میخائیل فیلیپنکو، مدیر Fast Reports, Inc.

K.R.:قبلاً گفتیم که فناوری FireMonkey ریشه روسی دارد - پایه های آن در کشور ما ایجاد شد و سپس هم خود فناوری و هم توسعه دهندگان آن به Embarcadero پیوستند. به طور کلی، دیدن رشد کامپوننت روسی در استودیو RAD و دلفی خوشحال کننده است. این شامل فعالیت های مرکز توسعه ما در سن پترزبورگ و مشارکت توسعه دهندگان مستقل روسی است. به عنوان مثال، Rad Studio XE2 شامل تولید کننده گزارش FastReport - شناخته شده در سراسر جهان و بسیار محبوب در کشور ما است. او اصالتا اهل روستوف-آن-دون است.

KP:من می خواهم در مورد کامپایلرها صحبت کنم. هنگام ایجاد برنامه های iOS از چه نوع کامپایلری استفاده می شود؟

DI.:ما کامپایلر دلفی خود را برای iPhone یا iPad نداریم—ما هنوز کامپایلرهایی برای پردازنده‌های ARM مورد استفاده در آن دستگاه‌ها ایجاد نکرده‌ایم. برای iOS، ما به طور موقت از کامپایلر رایگان پاسکال و کتابخانه زمان اجرا استفاده می کنیم. اما ما روی نسل بعدی کامپایلرها کار می کنیم، از جمله برای پردازنده های AWP. اما کامپایلرهایی برای ویندوز و سیستم عامل مک وجود دارد، زیرا هر دو پلتفرم سخت افزاری مبتنی بر پردازنده های اینتل هستند.

KP:در زمینه ایجاد کامپایلر در دو سال اخیر چه اقداماتی انجام شده است؟

DI.:ما کامپایلرهای دلفی 32 و 64 بیتی برای ویندوز و سیستم عامل مک داریم. و ما روی نسل جدیدی از کامپایلرهای دلفی و سی پلاس پلاس کار می کنیم. آنها هنوز در حال انجام هستند، اما پس از اتمام، ما کامپایلرهای دلفی را برای پردازنده های ARM، پلتفرم های اندروید، لینوکس و هر چیز دیگری خواهیم داشت. و ما کامپایلرهای 64 بیتی C++ را برای ویندوز و سایر پلتفرم ها خواهیم داشت که با آخرین استاندارد زبان C++ که به تازگی توسط ISO پذیرفته شده است، سازگار است.

KP:امروز در مورد پشتیبانی رایانش ابری در ابزارهای توسعه Embarcadero چه می گذرد؟

DI.:در RAD Studio XE 2، ما از انتقال برنامه‌ها به ابر Microsoft Azure یا Amazon EC2 با استفاده از دستیار پلتفرم پشتیبانی می‌کنیم. و ما اجزای سرور برای ذخیره سازی ابری برای Azure و آمازون S3 برای ذخیره جداول، داده های باینری، صف های پیام داریم. که در نسخه پیشینبا RAD Studio XE، ما از استقرار برنامه‌ها در Amazon EC2 نیز پشتیبانی می‌کردیم، اما فاقد پشتیبانی ذخیره‌سازی بود.

پشتیبانی از رایانش ابری در RAD Studio XE 2

KP:دو سال پیش در مورد راه حل جدید All-Access صحبت کردید. چقدر محبوب بود؟ مزایای آن برای یکپارچه سازان و توسعه دهندگان سیستم چیست؟

DI.:راه حل All-Access و ابزار ابری AppWave به طور گسترده در سراسر جهان استفاده می شود. آنها به گونه ای طراحی شده اند که استفاده از برنامه های کاربردی خود و شخص ثالث را آسان تر کنند. در واقع راه حلی برای مدیریت مجوزها و استفاده از اپلیکیشن است و برای آن راحت است شرکت های بزرگ. شرکت‌های کوچک‌تر که تیم‌های اختصاصی از افراد مسئول مدیریت برنامه‌ها را ندارند، می‌توانند برنامه را در یک مخزن قرار دهند، نام‌های کاربری را از پایگاه داده انتخاب کنند، و آن برنامه‌ها را بدون نیاز به یادآوری مکان در دسترس قرار دهند. کلید مجوزو چند مجوز موجود است. All-Access و مرورگر AppWave برای مدیریت نسخه و کنترل دسترسی طراحی شده اند.

K.R.:بازار آنقدر متنوع است و کاربران آنقدر متفاوت هستند که نمی توان با یک راه حل تمام نیازها را پوشش داد. به همین دلیل است که ما برای راه حل های بسته بندی متنوع تلاش می کنیم. ما کارهای زیادی برای یکسان سازی روش های صدور مجوز، مدیریت مجوز و نصب محصول انجام داده ایم. این خط از راه حل ها شامل ابزارهای مدیریت مجوز و تهیه نه تنها برای محصولات Embarcadero، بلکه برای هر محصول دیگر، از جمله پیشرفت های داخلی شرکت است.

کار بر روی ابزارهای توسعه بسته بندی در کیت های موثر برای کاربران هنوز ادامه دارد. ما All-Access داریم - یک مجموعه فوق العاده که همه محصولات Embarcadero را ترکیب می کند. اگر مشتری پلاتین All-Access را خریداری کند، تمام ابزارهای موجود در 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 برای معماران و هر کسی که در مدل‌سازی فعالیت می‌کند. ترکیباتی برای توسعه برنامه و برای مدیران وجود دارد. دلفی یک ابزار توسعه دهنده است و افزودن ابزارهای توسعه و بهینه سازی SQL به آن بسیار منطقی است. در نهایت، DB Change Manager یک ابزار منطقی برای مدیریت پیچیدگی تغییراتی است که در طول چرخه عمر پایگاه داده ها رخ می دهد.

بنابراین، All-Access رئیس یک خانواده بزرگ از مجموعه های مختلف محصولات است.

KP:اگر این یک راز نیست، چه کسی در روسیه از All-Access استفاده می کند؟

K.R.:ما مشتریانی داریم که All-Access را بر اساس دلفی خریده اند. بسیاری از آنها سیستم های پیچیده مشتری-سرور را ایجاد می کنند SQL Serverو اوراکل، و آنها بلافاصله ابزارهای پایگاه داده بین پلتفرمی ما را دوست داشتند. ما یک شرکت مشتری داریم که از نسخه اول با دلفی کار می کند و یک سال پیش از آن جابجا شد با استفاده از دلفیبه مجموعه All-Access. دو ابزاری که همه توسعه دهندگان در این شرکت استفاده از آنها را تضمین می کنند دلفی و DBArtisan هستند. و مشتریانی هستند که از سمت پایگاه داده به All-Access آمده اند. وظیفه اصلی آنها مدیریت پایگاه های داده است، اما گاهی اوقات برنامه های کاربردی را نیز توسعه می دهند. مشتریانی که از All-Access استفاده می کنند شامل شرکت های رسانه ای، شرکت های مهندسی و سایر صنایع هستند.

به طور جداگانه، من می خواهم روی شرکت های کوچک تمرکز کنم. اغلب در تیم‌های کوچک، توسعه‌دهنده همه کارها را انجام می‌دهد، و چنین شرکتی گاهی مجموعه‌های بزرگ محصولات All-Access را برای یک یا دو توسعه‌دهنده خریداری می‌کند. در تیم‌های بزرگ، توسعه‌دهنده تشویق نمی‌شود که مثلاً نقش مدیر پایگاه داده را نیز انجام دهد، بنابراین مجموعه‌های کوچک محصولات معمولاً در آنجا محبوب هستند، اما در شرکت‌های کوچک چنین ترکیبی از مسئولیت‌ها کاملاً قابل قبول است.

معمار دلفی محصولی است که به شدت به بازار عرضه می شود که شامل ابزارهای مدل سازی و برنامه نویسی می شود. تعداد نسخه های فروخته شده، با این حال، کمتر از نسخه دلفی اینترپرایز است، اما همچنین بزرگ است. من می خواهم توجه داشته باشم که در سال 2010 ما از نظر حجم فروش بهترین کشور بودیم، علیرغم اینکه همه کشورها یک بحران را تجربه کردند. این رشد نه چندان با عوامل اقتصادی همراه بود، بلکه با این واقعیت که نسخه RAD Studio XE که در پایان سال 2009 منتشر شد، بسیار محبوب شد. و در حال حاضر ما انتظار رشد بیشتر فروش را داریم.

ما یک قدم معقول دیگر برداشتیم که در روسیه بسیار محبوب است. درجه قانونی شدن نسخه های مختلف محصولات ما متفاوت است: هر چه نسخه بالاتر باشد، قانونی تر است، زیرا زودتر نرم افزارنه چندان فعالانه خریداری شده است. با شروع RAD Studio XE، مجوز نسخه های 2010، 2009، 2007 و حتی دلفی 7، محصولی پرکاربرد را پوشش می دهد.

امروزه توسعه دهندگان با این واقعیت روبرو هستند که هم پروژه های جدید و هم پروژه هایی در حال پشتیبانی دارند. تعداد زیادی از پروژه ها منتقل شده است نسخه های قبلیدلفی به نسخه 7 می رسد و در این نسخه باقی می ماند و به کار بر روی منابع نسبتاً کوچک ادامه می دهد. هیچ کس آنها را به نسخه های جدیدتر منتقل نمی کند، اما آنها در وضعیت قابل قبولی نگهداری می شوند. و اکنون به شما اجازه می دهیم RAD Studio XE و Delphi 7 را با پول کمی (کمتر از قیمت مجوز دلفی 7) دریافت کنید - یعنی ما توسعه دهنده را هم برای اجرای پروژه های جدید و هم برای پروژه های پشتیبانی قانونی می کنیم.

KP:وضعیت فعلی جامعه Embarcadero را چگونه ارزیابی می کنید؟

DI.:این جامعه بزرگ و بسیار خواستار است. آنها فوراً به همه چیز نیاز دارند - آنها توسعه دهندگان هستند. اما گاهی اوقات برای انجام درست کاری زمان زیادی طول می کشد.

چند سال پیش، معماری اجزای ویندوز را گرفتیم و آن را روی دسکتاپ لینوکس قرار دادیم. اکنون می بینیم که این تصمیم درستی نبوده است. راه حل مناسب ایجاد یک پلتفرم اپلیکیشن است. برنامه ها حتی در پلتفرم های مختلف دارای منوها، پنجره ها، گرافیک، دسترسی به شبکه و دسترسی به دستگاه هستند. پلتفرم های مختلف ممکن است داشته باشند مدل های مختلفکنترل جریان یا مدیریت استثنا، اما در کد برنامه همان بلوک های try را می بینیم. کار ما این است که بدون در نظر گرفتن ساختار مجموعه دستورالعمل های پردازنده های مربوطه و سایر ویژگی های این پلتفرم ها، ایجاد برنامه های تجاری و کامپایل آنها را برای پلتفرم هایی که قرار است در آنها استفاده شود را برای توسعه دهندگان آسان کنیم. و FireMonkey دقیقا همان چیزی است که برای حل این مشکل به آن نیاز دارید.

KP:اگر شرکتی دستگاه جدیدی بسازد و بخواهد در FireMonkey پشتیبانی شود، آیا این امکان وجود دارد؟

DI.:با نسل جدید کامپایلرها که دارای یک فرانت اند مستقل از پلتفرم و یک بک اند وابسته به پلتفرم خواهند بود، این امر کاملا امکان پذیر خواهد بود. در این بین برای هر سیستم عامل از ابتدا یک کامپایلر و کتابخانه زمان اجرا ایجاد می کنیم.

هر دستگاه جدید مدرن، به عنوان یک قاعده، دارای گرافیک است رابط کاربری(بسیاری از آنها دارند پردازنده دو هسته ایو GPU) و SDKهای استاندارد برای توسعه دهندگان. این کار ایجاد پشتیبانی دستگاه در FireMonkey را آسان‌تر می‌کند. اگر دستگاه جدید فقط دارای کتابخانه هایی برای گرافیک های دو بعدی مانند Quartz باشد، ما می توانیم از چنین دستگاهی در FireMonkey پشتیبانی کنیم، اما این تقریباً چندین ماه طول می کشد. با این حال، خیلی به پلتفرم بستگی دارد: همه پلتفرم ها از همه ویژگی ها پشتیبانی نمی کنند، به عنوان مثال، iOS منوها و جعبه های محاوره ایو شما نمی توانید اجزای مربوطه را در فرم های این گونه برنامه ها قرار دهید.

KP:آیا چیزی در سیاست کار با شرکا تغییر کرده است؟ برای افزایش سهم کاربران از محصولات شما چه اقداماتی انجام می شود؟ در روسیه چه می شود؟

DI.:اکوسیستم شریک ما گسترده است - صدها سازنده ابزار و اجزای سازنده در محصولات ما یافت نمی شوند، و ما یک برنامه مشارکت فناوری داریم. بنابراین، طیف گسترده ای از اجزا، فناوری ها و ابزارها در دسترس توسعه دهندگان است. و راه‌حل‌هایی که برای مشتریان خود ایجاد می‌کنند بهتر از این است که فقط از محصولات ما استفاده کنند. و برای فروش در بسیاری از کشورها دفاتر، فروشندگان و توزیع کنندگان داریم.

K.R.:آنچه برای ما مهم است تعداد شرکا نیست، بلکه کیفیت کار هر شریک خاص است. در حال حاضر، ما می‌خواهیم روی همکاری نزدیک با شرکای موجود تمرکز کنیم، اگرچه مجموعه شرکا همچنان باز است. ما شرکای زیادی داریم و باید از نظر فناوری به آنها کمک کنیم. ما با توسعه دهندگان کار می کنیم و آنها می دانند که چه چیزی می خواهند، و می دانند چه چیزی در بازار موجود است و توانایی های شرکا باید با آن مطابقت داشته باشد.

ما شرکای تجاری داریم که به طور جدی در Embarcadero به عنوان یک خط تجاری سرمایه گذاری کرده اند - آنها متخصصانی را آموزش داده اند، محصولات ما را بازاریابی می کنند، کارکنان اختصاصی مسئول این خط و نظارت بر آنچه در مورد محصولات، لیست قیمت، بازاریابی ما اتفاق می افتد. طبیعتاً آنها از نظر فروش محصولات ما موفق تر از شرکت هایی هستند که گهگاه محصولات ما را می فروشند.

KP:دیوید، کریل، از مصاحبه جالب شما بسیار متشکرم. به من اجازه دهید، از طرف انتشارات و خوانندگانمان، برای شرکت شما در ایجاد ابزارهای شگفت انگیز شما که توسعه دهندگان بسیار به آن نیاز دارند آرزوی موفقیت بیشتر کنم!

سوالاتی که ناتالیا المانوا پرسیده است

FireMonkey فناوری اصلی "دلفی ​​جدید" است. لطفاً در مورد اهداف، قابلیت ها و جنبه های فنی این کتابخانه کاملاً جدید به ما بگویید. پس از مدتی، با نگاهی به گذشته، امتناع شما از توسعه بیشتر VCL فوق محبوب چقدر دشوار و موجه بود؟

این به عنوان مسیر اصلی توسعه فناوری دلفی برای دستیابی به یک هدف خاص انتخاب شد - توسعه چند پلتفرمی از یک محیط واحد، بر اساس یک پایه کد منبع واحد، بدون نیاز به بازآموزی اساسی توسعه دهندگان. در چارچوب VCL در حال حاضر کلاسیک و فوق محبوب، این غیرممکن بود؛ ارتباط آن با WinAPI بسیار نزدیک بود، شاید بتوان گفت «در سطح ژنتیکی».

اجزای VCL یک لایه "انتزاعی" بین سطح عملکردی از نظر رابط و مکانیسم های نمایش آنها ندارند. سطح عملکردی- چگونه به عنوان یک کنترل رفتار می کند، به چه رویدادهایی واکنش نشان می دهد، چه نوع تعاملی با کاربر ارائه می دهد. نمایش دادن- فراخوانی روش های تجسم مبتنی بر پلت فرم به عنوان یک تصویر خاص که توسط اشیاء شطرنجی و بردارهای اولیه تشکیل شده است. FireMonkey در ابتدا اصل تقسیم دقیق کنترل را به دو بخش اجرا کرد: "رفتاری" و "بصری".


وسوولود لئونوف، Embarcadero Technologies

اولین مورد به طور کلی نه حتی اصول VCL، بلکه ماهیت برنامه نویسی شی گرا را تکرار می کند. یک جزء یک کلاس است؛ کلاس های مؤلفه سلسله مراتبی را تشکیل می دهند که در آن خانواده ها و ماژول ها قابل تشخیص هستند. کلاس یک جزء ارتباط ضعیفی با نحوه ارائه آن دارد.

"تصویر" بصری به صورت پویا شکل می‌گیرد؛ در کلاس جزء به‌طور محکم نوشته نمی‌شود. تصویر یا "سبک" در FireMonkey هنگام شروع برنامه در مؤلفه بارگذاری می شود. ما نوعی قاب کاربردی برای جزء داریم و "پوست" یا "روکش" را می توان تغییر داد، اما چرا؟ به طوری که برنامه های FireMonkey در هر پلتفرمی معتبر به نظر می رسند - ویندوز 7، ویندوز 8، سیستم عامل مک، iOS و در آینده نزدیک، اندروید. این چیزی است که ساختار کلاس یکپارچه سنتی VCL نمی تواند ارائه دهد.

در اینجا رویکرد تکنولوژیک نقش ویژه ای دارد. در اصل، می‌توانید کتابخانه VCL را بردارید و آن را با WinAPI و سایر تماس‌های پلتفرم ممکن «پر کنید». هنوز هم می توان این کار را روی یک زیرمجموعه بسیار محدود از مؤلفه ها انجام داد، اما VCL شامل صدها مؤلفه است، بنابراین این رویکرد به سادگی می تواند VCL را "کشتن" کند. تصمیم گرفته شد که VCL را لمس نکنیم، بلکه قابلیت های جدیدی را در یک پلت فرم جدید - FireMonkey توسعه دهیم. این تکنولوژیحتی از ظرافت فنی خاصی برخوردار است - در زمان مونتاژ پروژه برای یک پلتفرم خاص، IDE دلفی کامپایلر مورد نیاز را به هم متصل می کند و اجزای رابط یک سبک پلت فرم دریافت می کنند.

برای کاربر، این یک کلیک ماوس و همان کد منبع است؛ برای دلفی، سال ها تلاش توسعه دهندگان برای ایجاد چنین کتابخانه چند پلتفرمی است.

وقتی مشخص شد که FireMonkey به عنوان یک پلتفرم جدید مجزا معرفی می‌شود، باید استراتژی مناسبی برای همزیستی انتخاب می‌شد: Embarcadero به هیچ وجه نمی‌خواست بر کاربران VCL تأثیر منفی بگذارد. بنابراین، ما طرح زیر را انتخاب کرده‌ایم: VCL از نظر ایدئولوژیکی و معماری پایدار باقی می‌ماند تا بیشترین سازگاری ممکن را تضمین کند و انتقال پروژه‌ها به نسخه‌های مدرن را آسان‌تر کند. توسعه FireMonkey یک مسیر طبیعی و موازی را بدون توجه به VCL دنبال خواهد کرد.

نقطه ضعف این راه حل، مهاجرت نسبتا مشکل ساز از VCL به FireMonkey در همان پروژه است. اما برای یک پروژه جدید، یک توسعه‌دهنده می‌تواند FireMonkey را انتخاب کند تا از ماهیت چند پلتفرمی برنامه به‌دست‌آمده خود اطمینان حاصل کند. پس از انتشار XE4 با پشتیبانی از iOS، می‌توانیم برای شروع در مورد مزایای رقابتی درخشان دلفی صحبت کنیم. توسعه موبایلدر محیط شرکتی که پس از اجرای پشتیبانی برنامه ریزی شده اندروید افزایش خواهد یافت.

بنابراین، هیچ "امتناع" آشکاری از توسعه VCL وجود ندارد. در نسخه های جدید، قسمت VCL دلفی نیز توسعه می یابد. این شامل پشتیبانی 64 بیتی، معرفی یک ظاهر طراحی برای اجزای بصری، اجرای مکانیزمی برای اتصالات پویا انعطاف پذیر یا "binding"، و گنجاندن کتابخانه FireDAC برای کار با پایگاه های داده در پروژه های VCL است. فقط این است که در مقایسه با جهش کیفی غول‌پیکر FireMonkey، پیشرفت در VCL تا حدودی ضعیف به نظر می‌رسد. اما، همانطور که ممکن است، VCL بخشی جدایی ناپذیر از دلفی است و برای سال‌های آینده نیز به همین شکل باقی خواهد ماند. اگرچه تکامل پلتفرم ها و وضعیت فعلی امور در زمینه سیستم عامل برای سیستم های دسکتاپو دستگاه های تلفن همراه به گونه ای هستند که آینده قطعاً برای FireMonkey است.

در مصاحبه ای که قبلاً در مورد پشتیبانی iOS صحبت کردیم، اجازه دهید به خوانندگان خود در مورد پشتیبانی از جدیدترین فناوری های جدیدترین RAD Studio XE4، به عنوان مثال، مانند Windows 8 و WinRT، سیستم های 64 بیتی، MacOS و غیره بگوییم. آیا می توانید فهرست کنید چه چیز دیگری می توانید به برنامه نویس مدرنی که توسط نوآوری ها خراب شده است ارائه دهید؟

به احتمال زیاد، یک برنامه نویس مدرن با نوآوری ها "فاسد" نمی شود. برای پروژه های بزرگهر "نوآوری" اغلب منجر به حجم عظیمی از کار می شود.

به عنوان مثال، همه مدت زیادی منتظر ماندند، بسیاری بلافاصله برای ترجمه کدهای خود عجله کردند پلت فرم جدید. اما معلوم می شود که حتی تیم های بسیار حرفه ای نیز برای این کار آماده نیستند. کامپایل کردن کد 64 بیتی به معنای کار کردن نیست. برای مثال، با استفاده از دستورالعمل‌هایی که اندازه آدرس 4 بایتی را فرض می‌کردند، «گناهان جوانی» ظاهر شد. فقدان فرهنگ آزمون، همراه با عدم آمادگی فنی برای اجرای این فرآیند در زمان کوتاه.

و در اینجا - هرچه پروژه بزرگتر باشد، مثلاً با تعداد خطوط کد منبع اندازه گیری شود، برنامه نویسان دقیق تر و متعادل تر با انواع مختلف نوآوری از ظاهر یک "دکمه" در رابط گرفته تا "شکر نحوی" هستند. در کامپایلر

یکی از این دستاوردهای "مشکل‌آمیز" انتشار ویندوز 8 بود. من شخصاً به عنوان یک کاربر رایانه شخصی و فقط یک متخصص فناوری اطلاعات مدرن، از ویندوز 8 خوشحالم. اما برای توسعه دهندگانی که دسته ای از رایانه های دارای ویندوز 8 با مشخصات توسعه تحت سیستم عامل جدید به عنوان بار ارسال شده اند، این به معنای مشکلات خاصی است.

ما سعی کردیم پشتیبانی توسعه را برای رابط جدید این سیستم عامل تا حد امکان راحت و بدون دردسر ارائه دهیم. بنابراین، سبک‌های خاصی هم برای VCL و هم برای FireMonkey معرفی شده‌اند و برنامه‌نویس می‌تواند رابط برنامه را بازسازی کند یا یک برنامه جدید ایجاد کند که از برنامه «بومی» برای ویندوز 8 قابل تشخیص نباشد. ظاهر. البته، نیاز به پشتیبانی «بومی» برای ویندوز 8 از طریق WinRT وجود دارد. اما این تحت تأثیر اولویت بندی اهداف در شرایط مدرن. سیستم عامل مک، iOS، اندروید در آینده نزدیک هنوز به ما اجازه نمی دهد در آینده نزدیک در مورد پشتیبانی کامل از WinRT صحبت کنیم.

هدف استراتژیک Embarcadero، البته، چند پلت فرم است. انتشار RAD Studio XE4 در درجه اول به دلیل پشتیبانی آن از iOS کلیدی بود. یک برنامه نویس موجود با استفاده از VCL می تواند در عرض چند ساعت شروع به توسعه برای iOS کند. حتی ساده اپلیکیشن موبایلمی تواند فوراً به یک پروژه قدرتمند که در زیرساخت های موجود عمل می کند تبدیل شود. فکر نکنید کار آسانی است کامپایلر جدیدبه FireMonkey و یک سبک جدیدبرای اطمینان از انطباق با رابط iOS.

این شامل یک طراح بصری جدید، پشتیبانی داخلی برای فاکتورهای مختلف، کتابخانه های دسترسی به داده ها، از جمله FireDAC جدید، و فناوری LiveBindings برای پیوند انعطاف پذیر و پویا با داده های شرکتی است. همه این نوآوری ها به طور همزمان می آیند - برای Windows، Mac OS و iOS. سیستم عاملسیستم عامل مک به سرعت در حال توسعه نیست، بنابراین هیچ مشکلی مانند انتقال از ویندوز 7 به ویندوز 8 وجود ندارد. اما آنها ظاهر شدند نمایش شبکیه چشم، و این نیاز به توجه ویژه داشت. اکنون هر برنامه MacOS ایجاد شده در Delphi XE4 به طور خودکار شامل دو سبک است - "normal" و "high definition".

که همان برنامه می تواند همان رابط کاربری "بومی" با کیفیت بالا را روی هر کدام داشته باشد کامپیوتر رومیزیاز اپل

Embarcadero نمی‌خواهد توسعه‌دهندگان را با نسخه‌های نوآورانه‌اش «غافلگیر»، «متحیر» یا حتی «سرگرم» کند. در عوض، برعکس، حوزه فناوری اطلاعات در حال حاضر پر از شگفتی‌های مختلف است: دستگاه‌های جدید، پلتفرم‌های جدید، کاربران جدید، نیازهای جدید آنها، سناریوهای تعامل جدید. فن‌آوری‌های توسعه نرم‌افزار جدید را به این اضافه کنید، و برنامه‌نویسان به سادگی زمانی برای ایجاد سیستم‌های جدید و سیستم‌های موجود نخواهند داشت - تنها کاری که انجام می‌دهند این است که از یک محیط به محیط دیگر، از یک کتابخانه قدیمی به کتابخانه جدید، از یک زبان به زبان دیگر مهاجرت کنند.

اما ما ادعا نمی کنیم که همه چیز جدید را رد می کنیم. ما فقط می‌خواهیم از تداوم همه چیز اطمینان حاصل کنیم - کد، رابط، پروژه، حتی مهارت‌های حرفه‌ای وقتی پلتفرم‌ها و دستگاه‌های جدید ظاهر می‌شوند. می توان گفت که ما در حال مبارزه با محافظه کاری ناسالم در مورد پلتفرم های جدید از طریق محافظه کاری سالم در ابزارهای توسعه هستیم. از Embarcadero انتظار محصولات عجیب و غریب، زبان های برنامه نویسی غیر استاندارد یا ابزارهای توسعه عجیب و غریب نداشته باشید.

با ما همیشه توسعه بصری، زبان‌های کلاسیک، کدهای «بومی» را خواهید یافت و اجازه می‌دهید پلتفرم‌های هدف برای برنامه‌هایتان که به همان روش کلاسیک اثبات‌شده ایجاد شده‌اند، جدید باشند.




بالا