الإنجيليون يكذبون. تمتص firemonkey

لقد مر وقت كافٍ منذ أن أصبح مصطلح FireMonkey مألوفًا إلى حد ما ، إن لم يكن لجميع المطورين ، فعلى الأقل لأولئك الذين يستخدمون دلفي. خلال هذا الوقت ، كانت هناك كتب عن FireMonkey ، ومقالات عن FireMonkey ، وإدخالات حول FireMonkey في العديد من المدونات. قراءة كل هذا ممتعة للغاية. لكن لا يمكن لأي نظرية أن تحل محل الممارسة. وأنا ، مثل الكثيرين من قبل ، كان لدي حكة لمحاولة كتابة شيء ما باستخدام FireMonkey.

عند القيام بذلك ، ومع ذلك ، نشأت مشكلة. لسبب ما ، قررت أنني بحاجة فقط إلى تنفيذ بعض مشاريع العمل غير المعقدة للغاية.

لشرح سبب تحول ذلك إلى مشكلة بالنسبة لي ، سوف يتطلب الأمر بعض الاستطراد (يريد المرء أن يكتب ، غنائيًا). رحلة إلى ماضي كمطور. اشرح بعض آرائي حول البرمجة باستخدام دلفي.

يجب أن أقول أنني بدأت في استخدام دلفي على Windows 3.1 ، أي من الإصدار الأول. ومنذ ذلك الحين وأنا أدرس VCL. درس في الأصل ، إذا جاز التعبير. تمت مراقبتها ومعالجتها وتتبع رموز المصدر. مرة بعد مرة.

من المعروف أنه في أوقات مختلفة ، تضمنت مجموعة المكونات المشحونة مع دلفي مكونات الطرف الثالث التي كان من المفترض أن تملأ الفجوات في VCL ، والتي ربما خضعت لنوع من مراقبة الجودة قبل تضمينها. يستمر توفير بعض هذه المكونات حتى يومنا هذا. خذ نفس الإندي. لا أريد الإساءة إلى أي شخص ، فهذا رأيي الشخصي البحت ، والذي ينطبق أيضًا على نفسي بصفتي مطورًا للمكونات: لم يتم التفكير في مجموعة واحدة وتنفيذها بعمق بالإضافة إلى مجموعة VCL ضخمة ومتنوعة. لا ، أنا لا أدعي أنني الحقيقة المطلقة ، وبالطبع هناك العديد من الأخطاء في VCL نفسها ، قرارات تسبب سوء الفهم ، تسبب الرفض والتي تريد أن تختلف معها. لكن دائمًا ما كان لدي انطباع أسلوب موحد. يوجد في VCL ، في رأيي ، نواة جميلة وقوية تدعم تصميم دلفي بالكامل ، والتي يتم حولها بناء كل من البنية التحتية للبرامج ومجتمع المطورين نفسه. بفضل جزء كبير من VCL ، مرة أخرى ، في رأيي ، لا تزال الشائعات حول وفاة دلفي شائعات. وعندما تم تضمين مكونات الطرف الثالث في تسليم VCL ، كان ذلك ملحوظًا على الفور ، وكانت مختلفة.

ولكن بعد ذلك تأتي اللحظة وأسمع أن VCL هي تقنية قديمة. تقنية يجب تركها في الماضي. يجب على المطورين تنفيذ جميع مشاريعهم الجديدة على FireMonkey ، ولكن بالنسبة للمشاريع القديمة ... سيكون من الجيد نقلها إلى سكك جديدة. FireMonkey في كل مكان ودائمًا. وأنا أسمعه من مصادر مختلفة. وبإصرار تام. لا ، لا أحد يقتل VCL. يبقى معنا. لكنه لم يعد رقم واحد. يجب أن يكون احتياطيا. على الأقل هذه هي الطريقة التي أفهم بها ما يقال عن مستقبل المنتج.

من حيث المبدأ ، أنا أفهم هذا التوافق. تم أخذ دورة لمنصات متعددة ، والأهم من ذلك ، عبر منصات. بعد كل شيء ، ما هو VCL؟ مكتبة المكونات المرئية. مكتبة المكونات المرئية. قد لا توافق على هذا. على سبيل المثال ، لقد فكرت دائمًا في الكثير من المكونات غير المرئية ، وليس المكونات ، ولكن مجرد فئات ، وجزء لا يتجزأ من VCL ، وعدد كبير من فئات ومكونات الطرف الثالث - استمرار ، امتداد لـ VCL . حسنًا ، لا يمكنني اعتبار ورثة TDataset جزءًا من VCL. على الرغم من أن مصطلح مكتبة DBExpress ، على سبيل المثال ، يشير إلى أنها ، كما كانت ، ليست VCL. على ما يبدو ، يقسم Embarcadero حقًا المتجانسة ، من وجهة نظري ، VCL إلى عدد من المكتبات المنفصلة. لا ، بالطبع ، ليست منفصلة تمامًا ، ولكن مع ذلك. وإذا كنت تأخذ وجهة النظر هذه ، فإن FireMonkey يهدف إلى استبدال الجزء المرئي من VCL (كيف يمكنني استدعاء مكتبة الفئات والمكونات الكاملة ، ربما Borland Component Library؟).

ما هي المكونات المرئية للمكتبة المبنية حولها؟ حول المستوى المنخفض ، العناصر الأساسيةالتي يوفرها نظام التشغيل. مقابض النوافذ ، والخطوط ، والنوافذ نفسها ، وعناصر الإدخال ، والرسائل ، وسياقات الجهاز ، وأكثر من ذلك بكثير - هذه ليست مفاهيم المكتبة التي تأتي مع دلفي ، ولكنها مفاهيم نظام التشغيل. نعم ، هذا صحيح ، Windows. وإذا كنت ترغب في بناء مكتبة عبر الأنظمة الأساسية ، فمن المنطقي رفض البنية التحتية التي يوفرها نظام التشغيل الذي ينفذ البرنامج المكتوب باستخدام المكتبة.

هذا هو بالضبط ما يحاول FireMonkey القيام به. إنهم يحاولون إنشاء بنية تحتية تستند إلى الآليات الأساسية التي تدعمها أنظمة التشغيل المختلفة التي يمكن أن تحل محل الخدمة التي تقدمها أنظمة التشغيل نفسها.

يتذكر الكثيرون أنهم حاولوا القيام بذلكعبر النظام الأساسي ليس فقط المكتبة ، ولكن دلفي نفسها. بالتوازي مع Delphi 6 ، تم إطلاق منتج Kylix ومكتبة CLX. تم كل هذا من أجل التمكن من التطوير لنظام Linux. ومع ذلك ، لا يحتوي Linux على العديد من مفاهيم نوافذ واجهة المستخدم الرسومية الأساسية التي يستخدمها Windows. لا تعد واجهة النافذة لنظام Linux بشكل عام ظاهرة محلية. هذا تطبيق اختياري. وكان علي أن أكتب نوعًا من المكتبات التركيبية. بفضل مساعدتها ، كان من الممكن كتابة برنامج لكل من Windows و Linux. ومع ذلك ، ما زلت أتذكر ذلك الشعور ، ليس بخيبة الأمل ، بدلاً من الإزعاج المزعج ، الذي شعرت به عندما حاولت استخدام نظائر المكونات المرئية من CLX. بدأت أفتقد الكثير. ما اعتدت فعله دون التفكير عند التطوير باستخدام VCL كان صعبًا أو مختلفًا تمامًا أو ببساطة مستحيلًا باستخدام CLX.

شعرت بنفس الشيء عند التحول من BDE إلى DBExpress. قديم ، مألوف من Field Test-a BDE (استخدمه بورلاند بالفعل في Quattro Pro للنوافذوفي Paradox لنظام التشغيل Windows ، وكان يُطلق عليه اسم ODAPI ، ثم IDAPI ، وكان قطعًا أعلاه ، في رأيي ، تم إعلان Microsoft's ODBC) تقنية قديمة ، والتي يجب أن تفسح المجال في مشاريع جديدة لمكتبة جديدة. كنت دائمًا أفتقد شيئًا ما في DBExpress في البداية ، خاصة المعرفة.

في الوقت نفسه ، لا أريد بأي حال تأنيب أو انتقاد المكتبات المذكورة أعلاه ، أو القرارات التي أدت إلى ظهورها. إنه يتعلق فقط بانطباعاتي ، وأحيانًا انطباعاتي الأولى.

الآن ، ربما ، يصبح الأمر أكثر وضوحًا قليلاً لماذا تسبب قرار كتابة مشروع عمل صغير باستخدام FireMonkey في ظهور عدد من المشكلات. لسنوات عديدة ، في تطوير المشاريع والمشاريع والمشاريع ، تم تشكيل صورة نمطية معينة ، قالب معين لما وكيف يتم القيام به. وفي حالتي ، كان علي مواجهة حقيقة أن النموذج يحتاج إلى التغيير. لأنه لا يمكنك نقل كل ما اعتدت عليه في استخدام VCL إلى مشروع مبني على FireMonkey.

في بداية المشروع ، شعرت بشعور معين من deja vu. وهي الشعور بعدم الراحة. على سبيل المثال ، لا تحتوي عناصر الإدخال المعتادة على العديد من الخصائص. الحيل التي أصبحت راسخة في الممارسة ، على أساس الحيل المتعلقة بمعرفة بعض ميزات نظام التشغيل ، لا تعمل في سياق جديد. ناهيك عن أن بعض المكونات قد تغيرت بشكل جذري.

حسنًا ، فارق بسيط آخر مهم. ما نوع المشاريع التي يجب القيام بها عادة في العمل ، إذا كان (العمل) لا يتعلق بكتابة المجمعين ، أو أنظمة النمذجة ، أو أي شيء آخر علمي للغاية؟ أعتقد أن الأمر يتعلق في الغالب بتطوير شيء يتضمن استخدام قواعد البيانات. علاوة على ذلك ، يمكن لشيء علمي للغاية استخدام الخدمات التي يقدمها نظام إدارة قواعد البيانات (DBMS).

هنا انتظرني كمين آخر. لسبب ما ، عندما تصادف عمليًا أن FireMonkey لا يحتوي على عناصر تركز على العمل مع البيانات المخزنة في قاعدة البيانات ، فأنت لست مستعدًا تمامًا لذلك (بعبارة ملطفة). على الرغم من أنني قرأت بالفعل عن هذا عدة مرات وأنت تعرف (نظريًا) ما يجب عليك استخدامه. يتعلق الأمر بـ Live Bindings.

لا أريد الخوض في جدال حول ما إذا كان يجب على المبرمجين الرائعين استخدام مكونات مدركة للديسيبل أم لا. العرض والتعديل والحفظ في النهاية. وهو ، مرة أخرى ، ليس سيئًا ولا جيدًا. لقد حدث بهذه الطريقة بالنسبة لي.

هذا يختتم بعد انطباعاتي الأولى. التالي في السطر قصص حول ماذا وكيف تغلبوا أثناء العمل في المشروع.

لقد مرت أكثر من ثلاث سنوات منذ أن أصبح قسم CodeGear المسؤول عن إنشاء أدوات مشهورة عالميًا مثل Delphi و C ++ Builder و JBuilder ، بالإضافة إلى Interbase DBMS ، جزءًا من Embarcadero Technologies ، وهي شركة معروفة بتصميم قواعد البيانات وإدارتها الأدوات. ، وسنتين منذ أن ناقشنا على صفحات مجلتنا ما يمكن توقعه في تطوير الأدوات التي تحظى بشعبية كبيرة بين المطورين الروس. سألنا David Intersimone ، نائب الرئيس لعلاقات المطورين وكبير المبشرين في Embarcadero Technologies ، وكيريل رانيف ، رئيس المكتب التمثيلي لشركة Embarcadero Technologies في روسيا. بالنسبة لأصغر قرائنا ، سنخبرك أن هذا بعيد كل البعد عن المقابلة الأولى التي قدمها ديفيد وكيريل إلى ComputerPress - استمر تعاوننا خلال العقد الثاني. وعلى مدار نفس العدد تقريبًا من السنوات ، ننشر دوريًا مراجعات لأدوات إدارة قواعد البيانات ، حيث يتم إيلاء الكثير من الاهتمام لمنتجات Embarcadero.

الكمبيوترديفيد ، كان قسمك جزءًا من Embarcadero منذ ثلاث سنوات حتى الآن. قبل عامين ، كنت مليئًا بالحماس بشأن حقيقة أنها أصبحت جزءًا من شركة قريبة منك في الهدف والروح. هل تغير أي شيء خلال هذا الوقت؟ هل تشعر أنت وزملاؤك بنفس الحماس؟

نعم ، ما زلت متحمسًا. التغيير الرئيسي الذي حدث منذ أن أصبحنا جزءًا من شركة Embarcadero هو أنه كان هناك الكثير من الاستثمار في تطوير Delphi. زاد عدد الموظفين الذين يعملون على أدوات التطوير ، وزاد عدد التقنيات التي يمكننا تطويرها أو الحصول عليها ، إذا لزم الأمر.

يعد إصدار RAD Studio XE 2 ، الذي نخطط لعرضه في موسكو ، أكبر إصدار من هذا المنتج بقدرات هائلة وعدد كبير من الأنظمة الأساسية المدعومة منذ الإصدار الأول من Delphi ، الذي تم إنشاؤه لنظام التشغيل Windows 16 بت والإصدار السابق المبتكر المنتج الذي يربط نهج المكون والتجميع برمز الجهاز. الآن نحن ندعم التطوير ليس فقط لنظام التشغيل Windows ولكن أيضًا لنظام التشغيل Macintosh ، ناهيك عن تطوير الويب وإنشاء تطبيقات للأجهزة المحمولة ، ويمكن أن يكون لهذه التطبيقات الخاصة بالمنصات المختلفة رمز واحد.

منصة التطوير الجديدة ، FireMonkey ، هي عبارة عن تعاون بين Embarcadero والشركة الروسية KSDev التي تم الاستحواذ عليها مؤخرًا ومقرها Ulan-Ude ، وهي شركة مصنعة لمكونات رسومات المتجهات و DirectX و OpenGL وتقنيات تأثيرات الرسومات ومكونات دلفي باستخدام GPUمع PixelShader 2.0. استحوذنا على شركة KSDev (انظر ksdev.ru) قبل عام وبدأنا العمل معًا لإنشاء أداة تطوير متعددة المنصات تتضمن نظامًا أساسيًا لتطوير تطبيقات FireMonkey مع مكونات لـ Delphi و C ++ Buider لإنشاء واجهات مستخدم التطبيق ، والتكامل مع قواعد البيانات ومعالجة الرسوميات باستخدام معالج رسومات والتكامل مع نظام التشغيل.

باستخدام FireMonkey ، يمكنك إنشاء تطبيق يقوم بتشغيل وحدة المعالجة المركزية ووحدة معالجة الرسومات معًا ، وبعد ذلك باستخدام برامج التحويل البرمجي المختلفة ومكتبات وقت التشغيل (مكتبات وقت التشغيل ، RTL) يمكنك تجميعها لنظام التشغيل Windows أو Mac OS أو iOS. بدلا من تعلم البرمجة باستخدام مختلف مكتبات الرسومات، ودراسة واجهة برمجة التطبيقات للأنظمة الأساسية المختلفة التي لديها أنظمة مختلفةالإحداثيات والإمكانيات المختلفة ، يمكن للمطورين الذين يستخدمون Delphi و C ++ Builder استخدام نفس نهج المكون ، وتحرير النماذج بصريًا والاتصال بقواعد البيانات عن طريق تحريك المكون باستخدام الماوس. هو في الأساس طريق جديدإنشاء تطبيقات تعمل على منصات مختلفة ، والمستقبل يكمن فيها. إذا كنت ترغب في إضافة دعم لأنظمة التشغيل والأنظمة الأساسية الأخرى إلى تطبيقك ، فلن تحتاج إلى إعادة تصميمه وتطويره - فسيكون ذلك كافيًا فقط لإعادة تجميعه.

نقوم بإنشاء مترجمين جدد يقومون بإنشاء كود أصلي. يوجد اليوم مترجمي دلفي 32 بت و 64 بت إصدارات Windows، 32 بت إصدارات Mac OS 10. ونحن نعمل على الجيل التالي من مترجمي Delphi و C ++ Builder الذي سيسمح لك بإنشاء كود أصلي عالي الأداء لكل من هذه الأنظمة والأنظمة الأساسية الأخرى ، مثل Android أو Linux ، والاحتفاظ بنفس التصميم ، نفس المكونات ، ونفس الكود باستخدام برامج التحويل البرمجي المختلفة ومكتبات وقت التشغيل.

كما ترون ، لدي أسباب كافية للحماس. ويعلم المطورون الذين قابلتهم حول العالم أن Embarcadero تستثمر كثيرًا في Delphi و C ++ Builder بالإضافة إلى أدوات تطوير PHP.

KP:ما هو التقدم الذي أحرزته في دمج أدوات الشركتين على مدار العامين الماضيين؟ ما هي خطط Embarcadero للمستقبل في هذه المنطقة؟

DI:في الوقت الذي أصبح فيه قسم CodeGear جزءًا من Embarcadero ، كان لهذه الشركة فرق تطوير في تورنتو ومونتيري ورومانيا ، وكنا ولا نزال في وادي سكوتس وفي روسيا ، في سانت بطرسبرغ. كان لدى Embarcadero أدوات للمطورين و DBA ، وكان لدى CodeGear أدوات تطوير التطبيقات ، لكن الأخير يستخدم أيضًا قواعد البيانات. اندماج الشركات هو مزيج من الخبرة والمعرفة في مجال قواعد البيانات وتحسين الكود ، بما في ذلك كود الخادم. أدى الاندماج أيضًا إلى إنشاء منتج جديد ، AppWave ، وهي تقنية خاصة لتحويل تطبيق Windows العادي إلى شيء سهل الاستخدام للغاية (مثل تطبيقات iPhone أو الأجهزة الأخرى). يتيح لك AppWave عدم تثبيت تطبيق ، ولكن ببساطة حدده وتشغيله من خادم تخزين التطبيق (التطبيق) المعد ، بينما سيتم تنفيذه على كمبيوتر المستخدم دون إجراء تغييرات على سجله و منطقة النظام نظام الملفات. بالمناسبة ، متصفح تطبيق AppWave مكتوب في دلفي. يستخدم Embarcadero Dephi لتطويره وخبرتنا في تطوير التطبيقات.

تطبيق iPhone (iOS) الذي تم إنشاؤه بواسطة
باستخدام منصة FireMonkey

يمكنك أيضًا استخدام تكامل أدوات التطوير و DB Optimizer لتحسين استعلامات SQL عند إنشاء التطبيقات. من خلال تمرير كود SQL مباشرة إلى DB Optimizer ، يمكنك تشكيله واختباره وإعادة نسخة محسّنة منه إلى بيئة التطوير. عملت خبرة قاعدة بيانات Embarcadero أيضًا على تحسين تقنية DataSnap. بفضل المطورين من تورنتو ، اكتسبنا الكثير من المعرفة حول بنية الأنظمة وقواعد البيانات متعددة المستويات. لدينا الآن خبرة مشتركة في كود الخادم والإجراءات المخزنة في كلا الشركتين. لدينا أدوات مثل RapidSQL و DB Change Manager وبيئات التطوير التي تجعل من السهل إنشاء رمز من جانب الخادم ، مثل تقنيات Code Insight و Code Completion التي جعلت من الممكن إنشاء رؤية SQL وتقنيات إكمال SQL. نهجنا المشترك لإنشاء رمز العميل والخادم ، فلسفتنا المشتركة ، يسمح لنا بمشاركة الميزات المشتركة بين أدوات إدارة قواعد البيانات وأدوات تطوير التطبيقات.

كيريل رانيف:اريد اضافة شيء مهم من وجهة نظر تجارية ، من المهم جدًا كيف نقدم أدواتنا. على سبيل المثال ، يتضمن الإصدار الجديد من 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 الإصدار النهائييوضح أوجه الشبه بين نماذج تطوير قواعد البيانات والتطبيقات. يعمل معظم المطورين الذين يبنون تطبيقات الأعمال باستخدام Delphi و C ++ Builder مع قواعد البيانات ويحتاجون إلى هذه الأدوات ، ويعتبر RAD Studio XE Ultimate Edition مزيجًا رائعًا لهؤلاء المطورين.

KP:لم يعد المستخدم الحديث مستخدمًا لمنصة Windows وحدها. نستخدم الأجهزة المحمولة ، iPhone ، iPad ، الأجهزة القائمة على نظام Android الأساسي. هذا يعني أنه يجب على المطورين البدء في استهداف منصات مختلفة دون زيادة كبيرة في الاستثمار في التدريب - أي أن هناك حاجة إلى أدوات عالمية. من الواضح أنه من غير الواقعي توقع ظهور أدوات عالمية من الشركات المصنعة للمنصات ، وفي هذا الأمر لا يمكننا الاعتماد إلا على الشركات المصنعة للأدوات المستقلة. أين يمكننا الاعتماد على Embarcadero؟

DI:لا يزال لدينا الكثير لنفعله في مجال دعم النظام الأساسي. اليوم نقدم الدعم ل منصات iOSلأجهزة iPhone و iPad ، ستتلقى الهواتف الذكية التي تعمل بنظام Android و Windows 7 و Blackberry دعمنا. في RAD Studio XE 2 ، بدأنا ببناء منصة FireMonkey لنظام iOS وسنقوم لاحقًا بنقل FireMonkey إلى الأنظمة الأساسية الأخرى.

في نفس الوقت ، هناك عدد كبير من أنظمة التشغيل التي تدعم شاشات تعمل باللمس(شاشة تعمل باللمس) ، للهواتف ، أجهزة الكمبيوتر اللوحيةوالأجهزة ، وأجهزة سطح المكتب ، وسنستمر في إضافة الدعم لها. بالإضافة إلى ذلك ، هناك أنظمة التحكم الصوتي وأنظمة التحكم في الحركة وأنظمة المقاييس الحيوية ومقاييس التسارع ، لذلك يجب أن نستمر في توسيع FireMonkey حتى يتمكن جميع المطورين من الاستفادة من المنصات الجديدة. على سبيل المثال ، تم تصميم جهاز Microsoft Kinect لجهاز Xbox 360 ، وهناك الآن SDK (مجموعة تطوير البرامج) لنظام التشغيل Windows. ولدينا بالفعل أمثلة حيث نستخدم الحركة للتحكم في أحد التطبيقات بنفس الطريقة التي نستخدم بها عادةً الماوس أو لوحة المفاتيح.

عندما تنشئ تطبيقات تحتوي على الكثير من الرسومات المعقدة ، فإنك تنشئ عالمًا كاملاً من واجهات المستخدم الجديدة. إذا كنا نتعامل مع نظام التشغيل Windows ، فإننا نقوم بتغليف Windows API الخاص به في مكتبة VCL (مكتبة المكونات المرئية - مكتبة المكونات المرئية التي تعد جزءًا لا يتجزأ من أدوات تطوير Delphi و C ++ Builder. - ملحوظة. إد.) ، والتي ، بالمناسبة ، يمكن تطبيقها بشكل أكبر. وفي FireMonkey ، نقوم بتغليف واجهة برمجة تطبيقات نظام التشغيل. لكننا اليوم نتعامل مع الأشكال والرسومات على نطاق أوسع. يمكنك أيضًا إضافة خصائص مساحة فعلية للرسوم المتحركة والمؤثرات الخاصة. بالإضافة إلى ذلك ، هناك العديد من الآخرين ميزات إضافيةلإنشاء واجهات مستخدم سنقوم بتنفيذها في السنوات القليلة القادمة لأنظمة أساسية مختلفة وأجهزة محمولة وأجهزة لوحية.

أصدرت Microsoft مؤخرًا تفاصيل حول Windows 8 ، والتي من المقرر طرحها في غضون عام. سندعم هذه الابتكارات في مكتبة VCL وفي منصة FireMonkey. لكن Delphi هي أداة تطوير مصممة ليس فقط لنظام التشغيل Windows ، ولكن أيضًا لأجهزة Macintosh و iPhone و iPad. نقوم أيضًا بتطوير منتجاتنا لـ PHP ، ودعم jQuery Mobile ، واستخدام البرامج التطبيقية واجهة iOSلتطوير تطبيقات العميل المحمول وإنشاء تطبيقات PHP من جانب الخادم باستخدام المعالجات والأدوات لإنشاء رموز JavaScript و HTML من جانب العميل وأوراق أنماط متتالية. يمكننا حزم تطبيقات PHP وتطبيقات العميل برمز أصلي لـ آيفون iOS، بينما سيتواصل مثل هذا العميل مع خادم PHP. وهذا بدوره سيتواصل مع خادم قاعدة البيانات ومع خدمات الويب - مع كل ما هو مطلوب للأعمال.

بيئة تطوير RadPHP XE2. قم بإنشاء تطبيق ويب للجوال
باستخدام مكونات jQuery Mobile لـ iPhone 3G

بمعنى آخر ، نخطط لتوسيع قدرات FireMonkey و VCL ، بما في ذلك دعم الأنظمة الأساسية للجوّال.

KP:هل يمكنك توضيح المزيد حول منصة FireMonkey؟

DI:كما أشرت بالفعل ، ستستمر مكتبة 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 أوامر إلى وحدة معالجة الرسومات (GPU) ، والتي تقوم بجميع أعمال عرض الرسومات وبناء واجهة المستخدم. حيث وحدة المعالجة المركزيةمجاني للحسابات والمكالمات لنظام التشغيل. المطور يحتاج فقط لوضع المكونات بشكل صحيح.

أهم شيء في نظام FireMonkey هو الطريقة التي يبني بها واجهة المستخدم. هناك تسهيلات لوضع رسومات نقطية على عناصر الواجهة مثل القوائم والأزرار وأشرطة التمرير. في FireMonkey ، نستخدم رسوميات موجهة GPU لهذا الغرض. من وجهة نظر البرمجة ، هذه كلها نفس عناصر التحكم ، لكن معالج الرسومات يقوم بكافة أعمال عرضها. يمكننا تطبيق الأنماط على عناصر التحكم ، وجعل التطبيق يبدو وكأنه تطبيق لنظام التشغيل Mac OS أو Windows ، وإنشاء أسلوبنا الخاص ، وتطبيق أنماطنا على عناصر الواجهة (على سبيل المثال ، جعل زرًا مستطيلًا أو دائريًا عن طريق تغيير نمطه في محرر النماذج) - لهذا فإن بيئة التطوير لديها محرر أسلوب. يمكنك إنشاء طريقتك الخاصة ، أو يمكنك تغيير نمط تطبيق منتهي بالفعل.

منصة FireMonkey - أدوات التطوير
والمنصات المدعومة

إذا كنت تتذكر ، في مكتبة VCL كان هناك عدد محدود من عناصر التحكم - الحاويات (أي السماح لك بوضع عناصر أخرى فيها) ، وفي FireMonkey ، كل عنصر تحكم عبارة عن حاوية. هذا يعني أن كل عنصر تحكم يمكن أن يحتوي على أي عنصر تحكم آخر. على سبيل المثال ، يمكن أن تحتوي عناصر القائمة المنسدلة على صور وأزرار ومربعات تحرير وعناصر تحكم أخرى. ويمكنك أيضًا وضع المكونات على طبقات.

نظام عرض FireMonkey مرن للغاية - يمكنه استخدام مكتبات Direct2D و Direct3D و OpenGL عن طريق إرسال أوامر إلى وحدة معالجة الرسومات. لتحقيق نفس الشيء في VCL ، كان من الضروري إنشاء مخزن مؤقت منفصل خارج الشاشة ، وإنشاء صورة فيه عن طريق استدعاء وظائف مكتبة الرسومات المناسبة ، ثم عرضها في النموذج.

أمثلة على تأثيرات الرسوم التي يدعمها FireMonkey

إذا لم يكن لديك GPU ، فلا يزال بإمكانك تطبيق الأشكال ثنائية أو ثلاثية الأبعاد واستخدام عناصر تحكم FireMonkey. في هذه الحالة ، ستستخدم منصة FireMonkey مكتبات GDI + أو مكتبات أخرى مماثلة وتؤدي نفس التأثيرات والرسوم المتحركة أو معالجة الكائنات ثلاثية الأبعاد.

ميزة أخرى لبرنامج FireMonkey هي نظام جديدعناصر واجهة ملزمة للبيانات مفتوحة ومرنة. هناك نوعان من عناصر الواجهة في VCL: مرتبطة بالبيانات وغير مرتبطة بالبيانات (على سبيل المثال ، TDBEdit و TEdit). في FireMonkey ، يمكن ربط كل عنصر تحكم بالبيانات من أي نوع. يمكن أن يكون مجرد تعبير أو حقل من مجموعة بيانات أو بيانات من كائنات أنشأها المطور أو نتائج استدعاءات الطريقة.

بالإضافة إلى ذلك ، عند إنشاء تطبيق ، يمكنك تحميل نموذج ثلاثي الأبعاد جاهز فيه واستخدامه - غالبًا ما تكون هذه الإمكانات مطلوبة في كل من تطبيقات الأعمال والهندسة. لدينا عميل يقوم بإنشاء تطبيقات للخدمات اللوجستية. كان لديهم نظام معلومات مبني باستخدام دلفي ، وفيه تطبيق رسم خطة وعرض معلومات من مصادر البيانات. لقد فعلوا مؤخرًا شيئًا مثيرًا للاهتمام - لقد رسموا مستودعًا آليًا ثلاثي الأبعاد بالكامل في AutoCAD ، ويسمح لك تطبيقهم بمعرفة كيفية تحرك اللودر التلقائي عبر المستودع ووضع البضائع على الرفوف. ويضعون البيانات من المصادر على الصورة المقابلة.

أمثلة على تغيير أنماط التطبيق

KP:ما هي تنسيقات النماذج ثلاثية الأبعاد المدعومة حاليًا؟

DI:في هذا الإصدار ، ندعم نماذج التحميل من AutoCAD ، Collada (الأداة 3D النمذجةمفتوح المصدر. - ملحوظة. إد.) ، Maya ، تنسيق OBJ مدعوم من قبل العديد من بائعي الرسومات ثلاثية الأبعاد.

KP:ما هي الأشكال الأخرى المزمع إضافتها؟

DI:نخطط لإضافة 3DS (3D Studio MAX) ، SVG (عادة ما يتم استخدام هذا التنسيق للرسومات المتجهة ثنائية الأبعاد ، ولكن في بعض الأحيان للرسومات ثلاثية الأبعاد) ، Google SketchUp. قد ندعم تنسيقات أخرى أيضًا.

KP:هل يتطلب استخدام النماذج ثلاثية الأبعاد في التطبيقات التي تم إنشاؤها باستخدام FireMonkey ترخيصًا لأداة النمذجة ثلاثية الأبعاد المناسبة؟

DI:لا ، لا. كل ما نقوم به هو قراءة ملف النموذج. نحن نستورد النموذج ولكن لا نصدره (على الرغم من أنه يمكنك بالطبع كتابة تطبيق يحفظ النموذج بالتنسيق الخاص بك). نحن لا ندعي أننا شركة مصنعة لأدوات النمذجة ثلاثية الأبعاد - ولهذا يمكنك استخدام AutoCAD أو 3D Studio Max أو Maya أو أي أداة أخرى للنمذجة ثلاثية الأبعاد ، واستيراد النماذج التي تم إنشاؤها إلى تطبيقاتنا.

KP:ما مدى أداء التطبيقات التي تم إنشاؤها باستخدام FireMonkey على الأنظمة الأساسية للأجهزة الحديثة؟

DI:الأداء مرتفع للغاية. على سبيل المثال ، يمكن عرض شكل ثلاثي الأبعاد بثلاث كرات وثلاثة أضواء بمعدل 100 إطار في الثانية على MacBook Pro. ويمكن أن تصل إلى 600 - يعتمد ذلك على ما نقوم به بالضبط. مرة أخرى ، كل هذا يتوقف على قوة وحدة معالجة الرسومات.

KP:هل هذا يعني أنه بمساعدة FireMonkey يمكنك إنشاء ألعاب تلبي المتطلبات الحديثة؟

DI:نحن لا نضع أدوات التطوير لدينا كأداة للألعاب. ومع ذلك ، باستخدام الأداء العالي لوحدات معالجة الرسومات الحديثة ، يمكنك أيضًا إنشاء ألعاب باستخدام FireMonkey - بعد كل شيء ، يتم إنشاؤها باستخدام Direct3D أو OpenGL.

KP:ما العمل الذي تقوم به الآن في مجال دعم التعرف على الإيماءات والأشياء الجديدة الأخرى؟ هل هذا الدعم متاح؟

DI:ليس لدينا دعم الإيماءات في هذا الإصدار حتى الآن. ستتم إضافة التحكم بالإيماءات في إصدار مستقبلي من FireMonkey ، ولكن في الوقت الحالي ، يمكنك استخدام دعم الإيماءات المدمج في نظام التشغيل.

ميخائيل فيليبينكو ، مدير Fast Reports، Inc.

ك.ر .:لقد قلنا بالفعل أن تقنية FireMonkey لها جذور روسية - فقد تم إنشاء أسسها في بلدنا ، ثم اندمجت التكنولوجيا نفسها ومطوروها في Embarcadero. بشكل عام ، إنه لمن دواعي السرور أن نرى نمو المكون الروسي في RAD Studio و Delphi. هذا هو نشاط مركز التطوير الخاص بنا في سانت بطرسبرغ ، ومساهمة المطورين الروس المستقلين. على سبيل المثال ، يتضمن Rad Studio XE2 منشئ تقرير FastReport ، المعروف في جميع أنحاء العالم ويحظى بشعبية كبيرة في بلدنا. إنه من روستوف أون دون.

KP:أود التحدث عن المجمعين. ما المترجم المستخدم لإنشاء تطبيقات iOS؟

DI:ليس لدينا مترجم Delphi الخاص بنا لجهاز iPhone أو iPad - لم نقم بعد بتطوير برامج التحويل البرمجي لمعالجات ARM المستخدمة في هذه الأجهزة. بالنسبة لنظام iOS ، نستخدم مؤقتًا مترجم Free Pascal ومكتبة وقت التشغيل. لكننا نعمل على الجيل التالي من المجمعين ، بما في ذلك تلك الخاصة بمعالجات ARM. ولكن هناك برامج مجمعة لنظامي التشغيل Windows و Mac OS ، نظرًا لأن كلا النظامين الأساسيين للأجهزة يعتمدان على معالجات Intel.

KP:وماذا تم في مجال تطوير المترجم خلال العامين الماضيين؟

DI:لدينا مترجمين 32 و 64 بت من Delphi لنظامي التشغيل Windows و Mac OS. ونحن نعمل على جيل جديد من مترجمي Delphi و C ++. لا يزال العمل عليها مستمرًا ، ولكن عند اكتماله ، سيكون لدينا مترجمين Delphi لمعالجات ARM ، منصات أندرويدولينكس وأيا كان. وسيكون لدينا برامج التحويل البرمجي لـ C ++ 64 بت لنظام التشغيل Windows والأنظمة الأساسية الأخرى المتوافقة مع أحدث معايير لغة C ++ المعتمدة من قبل ISO.

KP:ما الذي يحدث مع دعم الحوسبة السحابية في أدوات تطوير Embarcadero اليوم؟

DI:باستخدام RAD Studio XE 2 ، ندعم ترحيل التطبيقات إلى سحابة Microsoft Azure أو Amazon EC2 باستخدام Platform Assistant. ولدينا مكونات خادم للتخزين السحابي لـ Azure و Amazon S3 لتخزين الجداول والبيانات الثنائية وقوائم انتظار الرسائل. في إصدار سابقفي RAD Studio XE ، دعمنا أيضًا نشر التطبيقات على Amazon EC2 ، لكنها تفتقر إلى دعم التخزين.

دعم الحوسبة السحابية في RAD Studio XE 2

KP:تحدثت قبل عامين عن حل All-Access الجديد. كم كان الطلب عليه؟ ما هي فوائده ل تكامل النظموالمطورين؟

DI:يتم استخدام حل All-Access والأداة السحابية AppWave على نطاق واسع في جميع أنحاء العالم. وهي مصممة لتسهيل استخدام تطبيقات الشركة والجهات الخارجية. في الواقع ، هذا حل لإدارة التراخيص والتطبيقات ، وهو مناسب للشركات الكبيرة. يمكن للشركات الصغيرة التي ليس لديها فرق مخصصة لإدارة التطبيقات وضع التطبيق في مستودع ، وجلب أسماء المستخدمين من قاعدة بيانات ، والتأكد من استخدام هذه التطبيقات دون الحاجة إلى تذكر المكان مفتاح الترخيصوعدد التراخيص المتاحة. تم تصميم All-Access ومتصفح AppWave لإدارة كل من الإصدار والتحكم في الوصول.

ك.ر .:السوق متنوع للغاية ، والمستخدمون مختلفون جدًا ، بحيث يستحيل تغطية جميع الاحتياجات بحل واحد. لذلك ، نحن نسعى جاهدين لمجموعة متنوعة من حلول "التعبئة والتغليف". لقد قمنا بالكثير من العمل لتوحيد الترخيص وإدارة التراخيص وتثبيت المنتج. يتضمن هذا الخط من الحلول أدوات إدارة الترخيص والوصول ليس فقط لمنتجات Embarcadero ، ولكن أيضًا لأي منتجات أخرى ، بما في ذلك التطورات الداخلية للشركات.

لا يزال عمل تجميع أدوات التطوير في مجموعات مستخدم فعالة مستمرًا. لدينا كل الوصول - مجموعة شاملة تجمع بين جميع منتجات Embarcadero. إذا اشترى العميل إصدار All-Access Platinum ، فسيحصل على جميع الأدوات الموجودة في Embarcadero. ولكن في بعض الأحيان يتبين أن هذه المجموعة زائدة عن الحاجة ، على سبيل المثال ، قمنا بإعداد مجموعتين أخريين لمتخصصي قواعد البيانات - إصدار DB Power Studio Developer و 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؟

ك.ر .:لدينا عملاء اشتروا All-Access بناءً على Delphi. يقوم العديد منهم بإنشاء أنظمة خادم عميل معقدة باستخدام ملفات خادم قاعدة البياناتو Oracle ، وأعجبوا على الفور بمجموعة أدوات قاعدة البيانات عبر الأنظمة الأساسية الخاصة بنا. لدينا شركة عميلة تعمل مع Delphi منذ الإصدار الأول وانتقلت من Delphi إلى All-Access قبل عام. أداتان مضمونة لاستخدامهما من قبل جميع المطورين في هذه الشركة هما Delphi و DBArtisan. وهناك عملاء أتوا إلى All-Access من جانب قاعدة البيانات. وظيفتهم الأساسية هي إدارة قواعد البيانات ، لكنهم يقومون أحيانًا بتطوير التطبيقات. يشمل العملاء الذين يستخدمون All-Access شركات الإعلام وبناة الآلات والصناعات الأخرى.

بشكل منفصل ، أود أن أتطرق إلى الشركات الصغيرة. في كثير من الأحيان في الفرق الصغيرة ، يقوم المطور بكل شيء ، وتشتري مثل هذه الشركة أحيانًا حزم طعام كبيرة لـ All-Access لمطور واحد أو اثنين. في الفرق الكبيرة ، لا يُشجع أن يقوم المطور أيضًا ، على سبيل المثال ، بدور مسؤول قاعدة البيانات ، لذلك عادةً ما تكون حزم الطعام الصغيرة شائعة هناك ، وفي الشركات الصغيرةمثل هذا الجمع من الواجبات مقبول تمامًا.

دلفي أركيتكت هو منتج تم تسويقه بكثافة ويتضمن أدوات النمذجة والبرمجة. ومع ذلك ، فإن عدد النسخ المباعة أقل من إصدارات Delphi Enterprise ، ولكنه كبير أيضًا. ألاحظ أنه في عام 2010 كنا أفضل دولة من حيث المبيعات ، على الرغم من حقيقة أن جميع البلدان نجت من الأزمة. لم يكن هذا النمو بسبب العوامل الاقتصادية بقدر ما يرجع إلى حقيقة أن إصدار RAD Studio XE ، الذي تم إصداره في نهاية عام 2009 ، أصبح مطلوبًا بشدة. وبينما نتوقع مزيدًا من النمو في المبيعات.

لقد اتخذنا خطوة أخرى معقولة ، مطلوبة بشدة في روسيا. درجة التصديق إصدارات مختلفةمن منتجاتنا مختلفة: فكلما زاد الإصدار ، زاد تقنينه ، لأنه في وقت سابق برمجةلا يشترى بنشاط. بدءًا من RAD Studio XE ، يغطي الترخيص الإصدارات 2010 و 2009 و 2007 وحتى Delphi 7 ، وهو منتج يستخدم على نطاق واسع.

اليوم ، يواجه المطورون حقيقة أن لديهم مشاريع ومشاريع جديدة في حالة دعم. تم ترحيل عدد كبير من المشاريع من الإصدارات القديمة من دلفي إلى الإصدار 7 وتبقى ضمن هذا الإصدار ، والاستمرار في العمل على موارد صغيرة نسبيًا. لا أحد ينقلها إلى إصدارات أحدث ، لكنها تظل قابلة للتطبيق. والآن نسمح بمبلغ ضئيل (أقل من سعر ترخيص Delphi 7) للحصول على كل من RAD Studio XE و Delphi 7 - أي أننا نصدق على المطور سواء لتنفيذ المشاريع الجديدة أو لمشاريع الدعم.

KP:كيف تقيم الوضع الحالي لمجتمع Embarcadero؟

DI:هذا المجتمع كبير ومتطلب للغاية. إنهم بحاجة إلى كل شيء وعلى الفور - إنهم مطورون. لكن في بعض الأحيان يستغرق الأمر وقتًا طويلاً للحصول على شيء صحيح.

قبل بضع سنوات ، أخذنا بنية مكونات Windows ووضعناها على أجهزة سطح مكتب Linux. الآن نرى أنه لم يكن القرار الصحيح. القرار الصحيح هو إنشاء منصة للتطبيقات. تحتوي التطبيقات ، حتى على الأنظمة الأساسية المختلفة ، على قوائم ، ونوافذ ، ورسومات ، الوصول إلى الشبكةوالوصول إلى الجهاز. قد تحتوي منصات مختلفة نماذج مختلفةالتحكم في التدفق أو معالجة الاستثناءات ، ولكن في كود التطبيق نرى نفس كتل المحاولة. مهمتنا هي أن نسهل على المطورين إنشاء تطبيقات الأعمال وتجميعها للمنصات التي من المفترض أن يتم استخدامها عليها ، بغض النظر عن كيفية ترتيب نظام التعليمات للمعالجات المقابلة وما هي الميزات الأخرى لهذه الأنظمة الأساسية. و FireMonkey هو بالضبط ما تحتاجه لحل هذه المشكلة.

KP:إذا أنشأت شركة جهازًا جديدًا وأرادت الحصول على دعم FireMonkey له ، فهل يكون ذلك ممكنًا؟

DI:مع الجيل الجديد من المجمعين الذين سيكون لديهم واجهة أمامية مستقلة عن النظام الأساسي ونهاية خلفية تعتمد على النظام الأساسي ، سيكون هذا ممكنًا تمامًا. في غضون ذلك ، لكل نظام تشغيل ، نقوم بإنشاء مترجم ومكتبة وقت التشغيل من البداية.

عادةً ما يحتوي أي جهاز جديد حديث على واجهة مستخدم رسومية (يحتوي العديد منها على معالج ثنائي النواة ووحدة معالجة الرسومات) ومجموعات SDK قياسية للمطورين. كل هذا يبسط إنشاء دعم الجهاز في FireMonkey. إذا كان الجهاز الجديد يحتوي فقط على مكتبات للرسومات ثنائية الأبعاد مثل Quartz ، فسنكون قادرين على دعم مثل هذا الجهاز في FireMonkey ، لكن هذا سيستغرق عدة أشهر تقريبًا. ومع ذلك ، يعتمد الكثير على النظام الأساسي: لا تدعم جميع الأنظمة الأساسية جميع الميزات ، على سبيل المثال ، لا يحتوي iOS على قوائم ومربعات حوار ، ولن تتمكن من وضع المكونات المقابلة في أشكال هذه التطبيقات.

KP:هل تغير أي شيء في سياسة العمل مع الشركاء؟ ما الذي يتم فعله لزيادة حصة مستخدمي منتجاتك؟ ما الذي يحدث في روسيا؟

DI:النظام البيئي الشريك لدينا واسع - هناك المئات من الشركات المصنعة للأدوات والمكونات غير الموجودة في منتجاتنا ، ولدينا برنامج شراكة تكنولوجي. لذلك ، تتوفر مجموعة واسعة من المكونات والتقنيات والأدوات للمطورين. والحلول التي يبتكرونها لعملائهم أفضل مما لو تم استخدام منتجاتنا فقط. وللمبيعات ، لدينا مكاتب في العديد من البلدان ، بائعون وموزعون.

ك.ر .:ما يهمنا ليس عدد الشركاء ، ولكن جودة عمل كل شريك محدد. في الوقت الحالي ، نريد التركيز على العمل بشكل وثيق مع الشركاء الحاليين ، على الرغم من أن مجموعة الشركاء لا تزال مفتوحة. لدينا العديد من الشركاء ، وعلينا مساعدتهم في مجال التكنولوجيا. نحن نعمل مع المطورين ، وهم يعرفون ما يريدون ويعرفون ما هو متاح في السوق ، ويجب أن تتطابق قدرات الشركاء مع ذلك.

لدينا شركاء أعمال استثمروا بكثافة في Embarcadero كخط عمل - لقد قاموا بتدريب المتخصصين وتسويق منتجاتنا والموظفين المتفانين المسؤولين عن هذا المجال ومراقبة ما يحدث مع منتجاتنا وقائمة الأسعار والتسويق. وبطبيعة الحال ، فإنهم أكثر نجاحًا من حيث مبيعات منتجاتنا من الشركات التي تبيع منتجاتنا على أساس كل حالة على حدة.

KP:ديفيد ، كيريل ، شكراً جزيلاً لك على المقابلة الممتعة. بالنيابة عن منشوراتنا وقرائنا ، اسمحوا لي أن أتمنى لشركتك النجاح المستمر في إنشاء أدواتك الرائعة التي يحتاجها المطورون كثيرًا!

تم طرح الأسئلة من قبل ناتاليا Elmanova

في سياق هذه المدونة ، يعد هذا المشروع مثيرًا للاهتمام بشكل أساسي لأنه يتم تنفيذه على FireMonkey وهو عرض رائع لإمكانيات هذه المنصة. وهكذا ، في الأسبوع الماضي فقط ، تم إطلاق الإصدار التجريبي العام للمنتج. وبالتالي ، يمكن لقراء المدونات أن "يشعروا" بما هو معقد حقًا قرد النارطلب.

بضع كلمات عن البرنامج. بادئ ذي بدء ، تجدر الإشارة إلى أن الإصدار الحالي من أسفير يتم وضعه بشكل مختلف قليلاً. نعم ، يحدث ذلك أحيانًا ...

جديد SphereLiveهذا ليس مجرد رسول آخر. بادئ ذي بدء ، إنها أداة تسمح لك بتنظيم العملية التعليمية بشكل فعال. يسمح بإلقاء محاضرات عن بعد واستشارات خاصة ودروس فردية وأحداث أخرى مماثلة. في الوقت نفسه ، فهي مجهزة تقريبًا بكل ما هو ضروري للعمل. بدءاً من نظام فريد لنقل الملفات وانتهاءً بنظام فوترة فرعي قوي.

في هذه المرحلة ، تكون أسعار استخدام المنتج ديمقراطية تمامًا. مع مراعاة عدد محدود من المستمعين وكمية صغيرة من الموارد ، يمكن استخدام المنتج مجانًا.

وبطبيعة الحال ، يستخدم Sphere الميزة الرئيسية قرد النار- عبر منصة. الآن التطبيق متاح في إصدارات Windows و MacOS. نسخة أندرويدمتوقع من يوم لآخر.

ومع ذلك ، بالنسبة لي ، فإن SphereLive مثير للاهتمام ، أولاً وقبل كل شيء ، كمنتج مبتكر مع مجموعة كاملة من الحلول الأصلية. في بعض الأحيان على مستوى "... واو ، كيف فعلت ذلك؟" بالمناسبة ، أحد مطوري Sphere يشارك بنشاط في المناقشات حول منتدى FireMonkey. يمكن أن يكون هذا في حد ذاته مناسبة لتنزيل التطبيق ومناقشته أسئلة فنيةمباشرة مع المؤلف. صدقني ، هناك شيء يجب رؤيته ، هناك شيء لتعلمه.

TListViewأحد المكونات الرئيسية لبناء واجهة تطبيقات الهاتف المحمول في قرد النار. هذا المكون ليس أسهل استخدامًا ، وغالبًا ما يتضمن قدرًا كبيرًا من التعليمات البرمجية ، ولكنه يوفر للمطور حرية كبيرة في العمل. بالطبع ، يمكن أن تستخدم التطبيقات أيضًا TListBoxحيث كل شيء أسهل بكثير. لكن TListBox، ربما يكون مفيدًا لعرض عدد ثابت من السجلات ، لعرض البيانات من مصادر البيانات ، يجب عليك بالتأكيد استخدام TListView.

الاختلافات الرئيسية بين TListView و TListBox هي:

  1. TListBoxItem- يتحكم، TListViewItem- لا
  2. في TListBoxItemيمكنك إضافة أي عناصر تحكم باستخدام الأصل. في العنصر- لا.
  3. العنصريخزن فقط عرض البيانات
  4. العنصريقوم بنفسه بتقديم البيانات المخزنة من خلال الطريقة يجعل
  5. نظرًا للعرض اليدوي الفعلي في TListVIewItem ، يتم تحقيق زيادة في السرعة واستهلاك منخفض للذاكرة (تخزين البيانات الفعلية فقط)
  6. لإنشاء الخاصة بك TListViewItem، تحتاج إلى إنشاء فئة العنصر الخاصة بك ، وتنفيذ البيانات المطلوبة فيه (على سبيل المثال ، الوقت) وإنشاء محرر موضعي لتعديل الوقت وتسجيله وما إلى ذلك.

في حد ذاته ، تعد حقيقة تحسين الأداء وتقليل استهلاك الذاكرة حجة قوية لصالح الاستخدام TListView. لكن هناك أيضًا شيء آخر.

في كثير ذكري المظهرالتطبيقات ، لقد رأيت تنفيذ القوائم التالية. عند النقر فوق عنصر قائمة (عنصر ، إذا التزمت بالمصطلحات المختارة) ، يتم تنفيذ إجراء معين. عادة ما يتم استدعاء نموذج جديد لتحرير البيانات. ولكن عند الضغط مع الاستمرار على (Long Tap) ، يتم تنفيذ إجراء مختلف تمامًا. وهذه الأحداث لا تتقاطع. بمعنى آخر ، يمكن لتطبيقات Android التمييز بوضوح بين "الضغط لفترة طويلة" و "الضغط العادي". علاوة على ذلك ، لا يتم تشغيل أي من هذه الأحداث عند تمرير القائمة. وخير مثال على ذلك هو قائمة الحروف في Yandex Mail.

بادئ ذي بدء ، أود أن أهنئ جميع قراء المدونة في الأعياد الماضية وأتمنى لكم كل التوفيق في العام المقبل.

نظرًا لظروف مفهومة ، لم أقم بإعداد تقرير السنة الجديدة التقليدي ، وكذلك لم أضع أي خطط لهذا العام. ومع ذلك ، فإن الحياة لا تقف مكتوفة الأيدي ، والعمل جار ، وبعض الأحداث تجري في عالم دلفي. أتعهد بنشر مجموعة مختارة من "الأخبار الفائتة من عالم دلفي" خلال عطلة عيد الميلاد في المستقبل القريب. في غضون ذلك ، سأخبرك عن الجهاز الجديد الذي اشتريته.

يمكنك العثور على المواصفات على الموقع الرسمي. والانطباع الشخصي لطيف للغاية. تجدر الإشارة إلى حقيقة أن الجهاز مكتظ حرفيًا ببرنامج احتكاري من الشركة المصنعة. نعم ، ومن البائعين حصلوا على مجموعة رائعة من البرامج كهدية. أثناء التشغيل ، يكون الهاتف الذكي سريعًا بدرجة كافية ويبرر تكلفته بالكامل (حوالي 200 دولار). بالمناسبة ، اشتريت هاتفي السابق GSmart 1362 مقابل نفس المال منذ عامين. ولكن ، كما خمنت على الأرجح ، كان الاهتمام الرئيسي بالنسبة لي هو كيفية استخدام قرد النارالتطبيقات.

قبل متابعة القصة عن الموقت - خبران.

أولاً ، تم إصدار أول تحديث لـ XE7. حسب التقاليد ، فهو متاح للمستخدمين المسجلين. يمكنك العثور على قائمة بالأخطاء الثابتة. أردت أن أرى كيف يتصرف التطبيق في البيئة المحدثة. في الواقع ، لم يكن هناك حاجة لإجراء أي تصحيحات ، على الرغم من بقاء مجال التجارب.

الخبر الثاني. مددت عروض Embarcadero الخاصة حتى نهاية العام:

حسنًا ، الآن مباشرة إلى موضوع المنشور. من حيث المبدأ ، كل ما تبقى لنا هو محاولة إطلاق تم إنشاؤها بالفعل هذا التطبيقتحت Android. لهذا نستخدم ما كتبته في المشاركات السابقة. وهي الجديدة. لقد قمت بتصحيح هذا التطبيق في نيكزس 7وفقًا لذلك ، تمت إضافة عرض Android 7 Tablet. كان لابد من "تعديل" التصميم قليلاً.

ربما فقط الكسالى لم يكتبوا توقيتهم. وفي سياق دعم تطوير الأنظمة الأساسية للجوّال ، يمكن اعتبار مهمة كتابة عداد الوقت في دلفي عمومًا مهمة عبادة. لذلك فكرت ، لماذا لا تكون مثالاً على التنمية قرد النارلا تحلل التطبيقات جهاز ضبط الوقت بالضبط. تحت Android بالطبع. بالطبع ، ستكون هذه بالضبط وجهة نظري للمهمة ، والتي ، على الرغم من أنها ليست صعبة بشكل خاص ، لا تزال لها فروق دقيقة خاصة بها. ربما لديك أي تعليقات أو اقتراحات ، سيكون من الرائع مناقشتها في التعليقات. أنا لست خبيرًا في الكتابة بأي حال من الأحوال. تطبيقات الهاتف الجواللذا فإن أيًا من تعليقاتك ستكون ذات قيمة بالنسبة لي.

سنقوم بتطوير المؤقت بالضبط بالمعنى الإنجليزي لهذا المصطلح. أي أن الشاشة ستعرض قرصًا وأربعة أزرار - "ابدأ" و "إيقاف مؤقت" و "إيقاف" و "إلغاء". سيكون العد التنازلي للأمام (أي أن الوقت سيزيد). يسمى الخيار الذي يتم فيه ضبط الوقت والعد التنازلي في المصطلحات الإنجليزية باسم Stop Watch ، وربما سأحاول تنفيذه لاحقًا. التطبيق الذي سنتعامل معه أقرب في وظائفه إلى ساعة توقيت.

يسمح لنا Delphi XE7 بتبسيط عملية التطوير بشكل كبير ، نظرًا لحقيقة أنه يمكننا الآن إنشاء وتصحيح تطبيق حقيقي لـ Win32 ، ثم ببساطة إضافة طرق عرض للأجهزة المحمولة الضرورية ، مع القليل من التعديل ، الحصول على هاتف محمول يعمل طلب. يبدو جيدا جدا ليكون صحيحا؟ ربما. لكني أريد أيضًا التحقق من هذا البيان من خلال إدراك المهمة.

كلما سألت زملائي في المحادثات الخاصة بشكل متكرر عما إذا كان من الممكن تطوير تطبيقات الجوال في قرد النارأم أنه نموذج أولي وليس حل إنتاجي؟

أعتقد ، الآن يمكنني ضمان حتى المتشككين المتعصبين.

أخبرني صديقي وزميلي في حضن تاغير يوماغوزين عن المشروع الذي شارك فيه منذ فترة طويلة. الآن ، عندما يكون هذا المشروع في حالة ما قبل الإصدار ، قررنا أن هذا الوصف سيكون مثيرًا للاهتمام لمجتمع دلفي. في جوهره ، هذا مشروع كبير حقًا تم تنفيذه في FM. نحن نتحدث عن مشروع Sphere Live. تم نشر مقال صغير مخصص لهذا المشروع مؤخرًا في Habrahabr.ru وافق Alexey Glyzin ، رئيس قسم "التطوير" على إخبار المزيد عن المشروع مع مراعاة جمهور مدونتي.

أ.- أليكسي بشكل عام ما هو مشروعك؟

أ.ج.: - الفكرة لم تظهر دفعة واحدة وفورية. قبل مشروع "Sphere" ، كان فريقنا يعمل في المشروع حيث تم تنفيذ تقنيات البث الصوتي / المرئي. في وقت لاحق ، أنشأنا برنامجنا الخاص الذي كان قادرًا على توصيل تدفقات الوسائط المتعددة إلى عدد غير محدود من المستخدمين بما في ذلك التعليقات. لكننا احتجنا إلى تضمين ميزة الفوترة.
يجب أن يتوافق التطبيق مع العديد من المتطلبات. أولاً ، التنظيم المبسط إلى أقصى حد للمؤتمرات أو الإرسال إلى المشاركين وهو المبلغ الذي لا يمكننا التنبؤ به. ثانيًا ، الأهم ، هو منح عملائنا فرصة لكسب من خلال تطبيقنا وتقليل تعقيد النظام ، كمية الأدوات اللازمة لاستخدامها للوصول إلى الهدف. سهولة تنظيم الدورات أو الندوة عبر الإنترنت أو مجرد استشارة.

جزء صغير من الذاكرة فيما يتعلق FireDACفي الإصدار الحالي دلفي XE6. لكن أولاً ، بضع كلمات حول مكان البحث عن إجابات للأسئلة المتعلقة قرد النار. يتمتع المستخدمون الناطقون بالروسية بموقع متميز هنا.

أثناء التحضير لحدث خاركيف كجزء من جولة RAD Studio XE5 العالمية ، واجهت مشكلة صغيرة في العمل مع سكليتيباستخدام FireDAC. إذا تم نقل قاعدة البيانات المملوءة في تطبيق Windows مع التطبيق إلى ذكري المظهر، لم تعد الأسطر السيريلية في قاعدة البيانات قابلة للقراءة (يتم عرض علامات الاستفهام بدلاً من الأحرف). ومع ذلك ، إذا قمت بملء قاعدة البيانات مباشرة على جهاز محمول ، فستتم قراءة الأحرف الروسية بشكل صحيح تمامًا. تم ملء البيانات من قاعدة البيانات تطبيق طرف ثالثأو في دلفييتم عرض تطبيق يستخدم مكونات الوصول إلى البيانات الأخرى بشكل طبيعي أيضًا. فشل الرالي في إيجاد حل ، وكان علي أن أقتبس أقوال خبير كرة قدم أوكراني معروف: "سنكتشف ذلك!"

على عكس الأخير ، تمكنت من التعامل مع المشكلة الموصوفة. بشكل افتراضي ، عند الاتصال بـ سكليتيالخامس FireDACيتم استخدام تنسيق سلسلة ANSI.

إذا قمت بفرض Unicode ، فسيعمل كل شيء كما ينبغي. لكن هناك أيضًا لحظة غير سارة. بعد تغيير تنسيق الخطوط ، سيتعين عليك إعادة إنشاء قائمة الحقول في جميع مجموعات البيانات ، وكذلك إعادة توصيل المكونات المسؤولة عن عرض البيانات وإدخالها. لذلك ، من الأفضل الاهتمام بالترميز على الفور.

في الأجزاء السابقة من هذه السلسلة المصغرة ، تعاملنا مع إنشاء قاعدة بيانات وهيكلها والاتصال بها من دلفي. في هذا الجزء ، أقترح التعامل مع عرض البيانات من الجداول ، بدءًا من أبسط الحالات.

عادةً ما يكون محرر بيانات الجدول البسيط جزءًا من تطبيق معقد. لتحرير الجداول ، عادة ما أستخدم نموذجًا منفصلاً. لنبدأ بقائمة المنتجات. بادئ ذي بدء ، نحتاج إلى إنشاء DataSet للوصول إلى بيانات الجدول. في حالتنا ، من الممكن تمامًا استخدام المكون TADTable. دعنا نضعها في DataModule ونحدد قيمة الخاصية اتصال. في محرر الملكية اسم الطاولةستظهر قائمة بالجداول نختار منها جدولاً منتجات. إذا فعلت كل شيء بشكل صحيح ، يمكنك تعيين الخاصية نشيطقيمة حقيقية. من الأفضل إعادة تسمية المكون على الفور (على سبيل المثال ، ADTProduct). بعد ذلك ، أقوم عادةً بإنشاء مجموعة من الحقول لمجموعة البيانات. نسمي محرر الحقل (انقر نقرًا مزدوجًا على المكون) وحدد عنصر إضافة جميع الحقول في قائمة السياق.

بالنسبة لأولئك الذين لا يعرفون ، سأشرح جوهر هذه العملية. هنا نقوم بإنشاء مجموعة محددة مسبقًا من حقول DataSet. إذا لم نفعل ذلك يدويًا في وضع التصميم ، فلن يحدث شيء رهيب من حيث المبدأ. في RunTime ، سيتم إنشاء هذه المجموعة تلقائيًا. لكنني ما زلت أفضل إنشائه يدويًا. هناك عدة أسباب لذلك. أولاً ، من الأنسب إدارة مجموعة من الحقول ، لأنه يمكننا إنشاء حقول إضافية (محسوبة أو بحثية) بأنفسنا في وضع التصميم. يمكننا أيضًا تغيير خصائص الحقول نفسها. وإلى جانب ذلك ، نحصل على فرصة للإشارة إلى الحقول في الكود باسم مكون TField ، والذي ، في رأيي ، يبسط كتابة الكود بشكل كبير.

كما هو الحال مع تطبيق VCL ، سنقوم بتوصيل المكون بمجموعة البيانات TDataSource. سيوفر هذا المكون الارتباط بين مجموعة البيانات وعناصر التحكم المرئية. يجب أن تشير خاصية DataSet الخاصة بالمكون إلى مجموعة البيانات الخاصة بنا (ADTProduct). أعطي أدناه جزء من ملف سوق دبي المالي

ADTProduct: TADTable IndexFieldNames = اتصال "ID" = ADConnection UpdateOptions. UpdateTableName = "Product" TableName = "المنتج" يسار = 64 أعلى = 192 كائن ADTProductID: TADAutoIncField FieldName = "ID" Origin = "ID" ProviderFlags = [pfInWhere، pfInKey] ReadOnly = كائن نهاية حقيقي ADTProductTitle: TStringField FieldName = "Title" الأصل = "العنوان" الحجم = 50 نهاية كائن dsProduct: TDataSource DataSet = ADTProduct لليسار = 120 أعلى = 192 نهاية

انتبه إلى إحدى الميزات الغريبة ، وهي أن ملف نموذج DataModule لا يتم حفظه بتنسيق FMX ، مثل نموذج FireMonkey العادي ، ولكن بتنسيق DFM ، كما هو الحال في VCL.

تتمثل الخطوة التالية في إنشاء إجراء لفتح مجموعة بيانات ، والتي سنحتاج إلى الاتصال بها في RunTime عند بدء تشغيل البرنامج. دعونا ننشئه في نفس DataModule. رمز الإجراء بسيط للغاية:

الإجراء TDM. ConnectToDB ؛ ابدأ ADConnection. يفتح()؛ منتج ADT. يفتح()؛ نهاية ؛

سيتم وضع استدعاء الإجراء في معالج الأحداث OnCreate لـ DataModule.

FireMonkey هي التقنية الأساسية لـ "دلفي الجديدة". من فضلك أخبرنا عن الأهداف والقدرات والجوانب التقنية لهذه المكتبة الجديدة بشكل أساسي. بعد فترة ، بالنظر إلى الوراء ، ما مدى صعوبة وتبرير رفضك لمواصلة تطوير VCL الفائق الشعبية؟

تم اختياره باعتباره الاتجاه الرئيسي لتطوير تقنية دلفي لتحقيق هدف محدد - تطوير منصات متعددة من بيئة واحدة ، بناءً على قاعدة شفرة مصدر واحدة ، ودون الحاجة إلى إعادة تدريب جذري للمطورين. في إطار VCL الكلاسيكي والشائع الآن ، كان هذا مستحيلًا ، وكان ارتباطه بـ WinAPI قريبًا جدًا ، يمكن للمرء أن يقول ، "على المستوى الجيني".

لم يكن لمكونات VCL طبقة "مجردة" بين المستوى الوظيفي من حيث الواجهة وآليات تعيينها. المستوى الوظيفي- كيف يتصرف كعنصر تحكم ، وما هي الأحداث التي يتفاعل معها ، ونوع تفاعل المستخدم الذي يوفره. عرض- استدعاء طرق العرض الموجهة نحو النظام الأساسي كنوع من الصور التي تتكون من كائنات نقطية وأوليات متجهية. نفذ FireMonkey مبدئيًا مبدأ التقسيم الصارم لعنصر التحكم إلى مكونين: "سلوكي" و "مرئي".


فسيفولود ليونوف ، إمباركاديرو تكنولوجيز

لن يكرر أول واحد ككل حتى أساسيات VCL ، ولكن جوهر البرمجة الموجهة للكائنات. المكون هو فئة ، وتشكل فئات المكون تسلسلاً هرميًا حيث يمكن تمييز العائلات والوحدات النمطية. لا علاقة لفئة المكون بكيفية تقديمه.

يتم تشكيل "الصورة" المرئية ديناميكيًا ، ولا يتم ترميزها بشكل ثابت في فئة المكون. يتم تحميل صورة أو "نمط" في FireMonkey في أحد المكونات عند بدء تشغيل التطبيق. لدينا نوع من الإطار الوظيفي للمكون ، ويمكن تغيير "الجلد" أو "الكسوة" ، ولكن لماذا؟ هذا هو السبب في أن تطبيقات FireMonkey تبدو أصلية على أي نظام أساسي - Windows 7 و Windows 8 و Mac OS و iOS ، وفي المستقبل القريب ، Android. لا يمكن لبنية فئة VCL المتجانسة التقليدية توفير ذلك.

هنا ، يلعب النهج التكنولوجي دورًا خاصًا. من حيث المبدأ ، يمكنك أن تأخذ مكتبة VCL و WinAPI "حشو" مع جميع استدعاءات النظام الأساسي الممكنة الأخرى. على مجموعة فرعية محدودة جدًا من المكونات ، لا يزال من الممكن القيام بذلك ، لكن VCL يحتوي على عدة مئات من المكونات ، لذلك يمكن لهذا النهج ببساطة "قتل" VCL. تقرر عدم لمس VCL ، وتطوير ميزات جديدة على النظام الأساسي الجديد - FireMonkey. هذه التكنولوجياحتى أنه يتمتع بأناقة تقنية معينة - في وقت إنشاء المشروع لمنصة معينة ، يقوم Delphi IDE بتوصيل المترجم الضروري ، وتتلقى مكونات الواجهة نمط النظام الأساسي.

بالنسبة للمستخدم ، هذه نقرة واحدة على الماوس ونفس شفرة المصدر ، بالنسبة لدلفي ، فقد استغرق الأمر سنوات عديدة من العمل الشاق للمطورين لإنشاء مثل هذه المكتبة متعددة المنصات.

عندما أصبح من الواضح أنه سيتم تقديم FireMonkey كمنصة جديدة منفصلة ، كان لابد من اختيار استراتيجية التعايش الصحيحة: لم ترغب Embarcadero في التأثير سلبًا على مستخدمي VCL بأي شكل من الأشكال. لذلك ، اخترنا الخطة التالية: تظل VCL مستقرة أيديولوجيًا ومعماريًا لضمان أكبر قدر ممكن من التوافق ، مع تسهيل انتقال المشاريع إلى الإصدارات الحديثة. سيتبع تطوير FireMonkey مسارًا طبيعيًا ومتوازيًا ، دون الرجوع إلى VCL.

تتمثل نقطة الضعف في هذا الحل في الترحيل الإشكالي إلى حد ما من VCL إلى FireMonkey داخل مشروع واحد. ولكن من ناحية أخرى ، بالنسبة لمشروع جديد ، يمكن للمطور اختيار FireMonkey لضمان الطبيعة متعددة المنصات لتطبيقه الناتج. مع إصدار XE4 بدعم iOS ، يمكننا بالفعل التحدث عن مزايا دلفي التنافسية المشرقة للبدء بها. تطوير المحمولفي بيئة الشركة ، والتي ستزداد بعد تنفيذ الدعم المخطط لنظام Android.

لذلك ، على هذا النحو ، لا يوجد "رفض" صريح من تطوير VCL. في الإصدارات الجديدة ، يتم أيضًا تطوير جزء VCL من دلفي. يتضمن ذلك دعم 64 بت ، وإدخال تصميم للمكونات المرئية ، وتنفيذ آلية للروابط الديناميكية المرنة أو "الربط" ، وإدراج مكتبة FireDAC للعمل مع قواعد البيانات في مشاريع VCL. إنه فقط على خلفية قفزة نوعية عملاقة بسبب FireMonkey ، يبدو التقدم في VCL غير واضح إلى حد ما. ولكن مهما كان الأمر ، فإن VCL جزء لا يتجزأ من دلفي وسيظل كذلك لسنوات عديدة قادمة. على الرغم من أن تطور الأنظمة الأساسية والوضع الحالي في مجال نظام التشغيل لأنظمة سطح المكتب والأجهزة المحمولة يجعل المستقبل واضحًا مع FireMonkey.

في المقابلة ، ناقشنا بالفعل دعم iOS ، دعنا نخبر قرائنا عن دعم الآخرين أحدث التقنياتمن أحدث RAD Studio XE4 ، مثل Windows 8 و WinRT وأنظمة 64 بت و MacOS وما إلى ذلك. هل يمكنك سرد ما يمكنك تقديمه أيضًا للمبرمج الحديث الذي أفسده الابتكارات؟

على الأرجح ، المبرمج الحديث لا "يفسد" الابتكارات. بالنسبة للمشاريع الكبيرة ، غالبًا ما يتحول أي "ابتكار" إلى قدر هائل من العمل.

على سبيل المثال ، انتظر الجميع وقتًا طويلاً ، واندفع الكثيرون على الفور لنقل أكوادهم إلى منصة جديدة. لكن اتضح أنه حتى الفرق المحترفة للغاية ليست مستعدة لذلك. رمز 64 بت القابل للتجميع لا يعني أنه قابل للتطبيق. بدأت "خطايا الشباب" في الظهور ، مثل استخدام التعليمات بافتراض حجم عنوان 4 بايت. عدم وجود ثقافة إجراء الاختبارات ، مقرونًا بعدم الاستعداد التكنولوجي لتنفيذ هذه العملية في وقت قصير.

وهنا - كلما زاد حجم المشروع ، على سبيل المثال ، من خلال عدد سطور الكود المصدري ، كلما تعامل المبرمجون بعناية وتوازن مع أنواع مختلفة من الابتكارات التي تتراوح من ظهور "زر" في الواجهة إلى "السكر النحوي" في المترجم.

أحد هذه الإنجازات "الإشكالية" كان إصدار Windows 8. شخصيًا ، بصفتي مستخدمًا للكمبيوتر الشخصي ومتخصصًا في تكنولوجيا المعلومات الحديثة ، يسعدني استخدام 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 OS و iOS. نظام التشغيللا يتطور نظام Mac OS بهذه السرعة ، لذلك لا توجد مشاكل مثل الانتقال من Windows 7 إلى Windows 8. لكن ظهرت شاشات عرض شبكية العين ، وهذا يتطلب اهتمامًا خاصًا. الآن أي تطبيق MacOS تم إنشاؤه في Delphi XE4 يتضمن تلقائيًا نمطين - "عادي" و "عالي الدقة".

الذي - التي. يمكن أن يكون للتطبيق نفسه نفس الواجهة "الأصلية" ذات الجودة على أي منها كمبيوتر سطح المكتبمن شركة آبل.

لا تريد Embarcadero "مفاجأة" أو "إبهار" أو حتى "ترفيه" المطورين بإصداراتها المبتكرة الجديدة. بل على العكس من ذلك ، فإن مجال تكنولوجيا المعلومات مليء بالفعل بالعديد من المفاجآت: أجهزة جديدة ، ومنصات جديدة ، ومستخدمون جدد ، واحتياجاتهم الجديدة ، وسيناريوهات تفاعل جديدة. أضف تقنيات تطوير برمجيات جديدة إلى هذا ، ولن يتوفر للمبرمجين الوقت ببساطة لإنشاء أنظمة جديدة وأنظمة موجودة - سوف يفعلون فقط ما يجب عليهم الانتقال من بيئة إلى أخرى ، من مكتبة قديمة إلى أخرى جديدة ، من لغة إلى أخرى آخر.

لكننا لا نعترف برفض كل ما هو جديد. نريد فقط ضمان استمرارية كل شيء - الكود ، والواجهة ، والمشروع ، وحتى المهارات المهنية مع ظهور منصات وأجهزة جديدة. يمكننا القول إننا نحارب نزعة محافظة غير صحية فيما يتعلق بالمنصات الجديدة على حساب المحافظة السليمة في أدوات التطوير. لا تتوقع منتجات غريبة ولغات برمجة غير قياسية وأدوات تطوير غريبة من Embarcadero.

ستجد معنا دائمًا التطوير المرئي ، واللغات الكلاسيكية ، والرمز "الأصلي" ، والسماح للمنصات المستهدفة لتطبيقاتك التي تم إنشاؤها بنفس الطريقة الكلاسيكية التي أثبتت جدواها بأن تكون جديدة.

ما هو قرد النار؟


FireMonkey (FMX) هو إطار عمل للتطوير عبر الأنظمة الأساسية لكل من أنظمة سطح المكتب (Windows و Mac OS + دعم جانب الخادم على Linux في المستقبل القريب) والجوال (iOS و Android) باستخدام لغة Delphi / C ++.

الخصائص:

  • قاعدة رمز واحد لجميع المنصات ؛

  • يمكن أن يكون أي عنصر تحكم (مكون مرئي) حاوية (أصل) لمكونات أخرى ؛

  • وجود ترتيب نسبي متقدم جدًا (20 نوعًا) من المكونات في النموذج ؛

  • يسمح LiveBinding لك بتوصيل أي نوع من البيانات أو المعلومات بأي واجهة مستخدم أو كائنات رسومية ؛

  • وجود أنماط الشكل / المكون ؛

  • يتيح لك Multi-Device Preview تخصيص العرض المرئي لكل من الأنظمة الأساسية ؛

  • FireUI Live Preview - يعرض عرض التطبيق على الأجهزة الحقيقية في الوقت الفعلي.

الاحتمالات:

  • استخدام واجهة برمجة التطبيقات الأصلية لكل نظام أساسي ، بالإضافة إلى القدرة على استدعاء مكتبات أصلية تابعة لجهات خارجية ؛

  • التفاعل مع جميع أجهزة الاستشعار (GPS ، مقياس التسارع ، البوصلة ، Bluetooth (بما في ذلك LE) وغيرها) ؛

  • دعم دفع الإخطارات ، إنترنت الأشياء ؛

  • دعم طلبات HTTP غير المتزامنة ؛

  • دعم معظم قواعد البيانات (MsSQL و MySql و Oracle و PostgreSQL و MongoDB وما إلى ذلك) ؛

  • العمل مع Cloud Service (Amazon ، Azure) ؛

  • دعم خدمة android.

سلبيات (حاليا):

  • نقص الدعم لتخصيص الطبقات الأصلية ؛

  • تنفيذ أشياء محددة أمر مستحيل (أدوات ، ملحقات (iOS) ، إلخ) أو أن الرقص مع الدف أمر ضروري (خدمة الخلفية ، رسالة إذاعية ، إلخ) ؛

  • شاشة سبلاش التخصيص (الشاشة الأولية) بعبارة ملطفة ، لا ؛

  • تستخدم عناصر تحكم FMX طريقة العرض الخاصة بها (التصور والرسم) ، والتي تشبه بصريًا تمامًا اللغة الأصلية ؛

  • يرتبط استخدام عناصر التحكم الأصلية بحركات الجسم الكبيرة ؛

  • مع تداخل كبير للمكونات ، تحدث أشياء لا تصدق: يتعطل التطبيق في أماكن مختلفة ، ويضيع التركيز ، ويتجمد ، وما إلى ذلك ؛

  • محتوى المعلومات الخاص بتصحيح أخطاء تطبيق ما على الأنظمة الأساسية للجوّال هو صفر ؛

  • يتم تقليل أوصاف الأخطاء على المنصات المتنقلة إلى "خطأ 0x00000X" عديم الفائدة ؛

  • يرغب وقت التجميع في أن يكون الأفضل للمشاريع المتوسطة والكبيرة ؛

  • الحاجة إلى استخدام ملف لتحسين تطبيقات الهاتف المحمول لكل منصة ؛

  • لا يوجد دعم لبنية Intel Atom ؛

  • سعر غير مناسب مقارنة بالمنافسين.

الايجابيات:

  • تطوير حديث نشط للغاية لكل من المنتج والمجتمع ، ودعم المزيد والمزيد من التقنيات الجديدة ؛

  • وجود عدد كبير من المكونات المجانية والتجارية ؛

  • سرعة التطبيق قريبة جدًا من السرعة الأصلية ؛

  • محرر بصري متقدم للغاية وبيئة عامة ، وجود الأنماط ؛

  • القدرة على اختبار التطبيق على Win ، وبعد ذلك فقط نشره على الأجهزة ، مما يؤدي إلى تسريع عملية التطوير بشكل كبير ؛

  • تغيير الوضع / النظام الأساسي بنقرة من الرسغ ؛

  • يوفر PAServer تفاعلًا سهلاً مع MacOs عند تطويره لنظام التشغيل Apple OS ؛

  • دعم رسومات ثلاثية الأبعاد من خارج منطقة الجزاء.

في الختام ، أود أن أقول إنه على مدار العامين الماضيين ، نمت FireMonkey لتصبح أداة احترافية لتطوير تطبيقات الأعمال عبر الأنظمة الأساسية وليس فقط. يتم حل العديد من أوجه القصور تدريجياً ومع كل إصدار يصبح المنتج أكثر حداثة واكتفاءً ذاتيًا ، كما تختفي الشكوك الحالية تجاه لغة دلفي نفسها ، المرتبطة بسنوات عديدة من الركود. كتابة مشاريع جديدة على FireMonkey "آمنة" وواعدة.



تحميل...
قمة