App Inventor هي بيئة تطوير مرئية لتطبيقات Android. MIT App Inventor - يمكن لأي شخص إنشاء تطبيق جوال Mit app Inventor 2

27.06.2020

أود أن أبدأ بحقيقة أن هناك العديد من المقالات في habrahabr و geektimes حول الإصدار السابق من App Inventor. ها هم:

يفتح معهد ماساتشوستس للتكنولوجيا Google App Inventor في الإصدار التجريبي
App Inventor - إنشاء تطبيقات Android للجميع: الدرس الأول
قراءة ملف XML باستخدام App Inventor

تم تشغيل هذا الإصدار من App Inventor (تجريبي) من عام 2011 إلى عام 2015 ، ولكنه توقف الآن. منذ إصدار 2014 من App Inventor 2 يعمل ، وهو غير متوافق مع الإصدار السابق. حتى عام 2011 ، كان هناك إصدار من Google App Inventor داخل Google Labs
لذا ، فإن App Inventor عبارة عن بيئة تطوير مرئية لتطبيقات Android تتطلب من المستخدم أن يكون لديه الحد الأدنى من المعرفة البرمجية. تبدو هكذا:

تعمل بيئة التطوير هذه مباشرة من المتصفح. لا تحتاج إلى تنزيل أو تثبيت أي شيء. يمكنك إنشاء تطبيقات حتى من جهاز Android اللوحي ، حتى من جهاز Ipad. الشرط الرئيسي للأجهزة هو دقة شاشة جيدة. على سبيل المثال ، سأقدم لقطة شاشة من شاشة دقة FullHD. يمكنك مقارنتها بالشاشة السابقة ، والتي تم إنشاؤها من شاشة عالية الدقة.


يمكن وضع التطبيقات الجاهزة في سوق Play ، على سبيل المثال ، سأعطي حساب مطور ، حيث يتم إنشاء جميع التطبيقات في مخترع التطبيق.
لن أصف مخترع تطبيقات MIT 2 بالتفصيل ، لأنه يختلف عن الإصدار السابق بشكل رئيسي في العديد من التحسينات الصغيرة التي يتم إصدارها في المتوسط ​​مرة كل بضعة أسابيع. بعد قراءة المقالات المذكورة أعلاه ، يمكنك بسهولة إتقان الإصدار الحالي.
في فكونتاكتي يوجد ما يكفي من العيش مجتمع، حيث يشارك المشاركون تجربتهم في استخدام App Inventor مع بعضهم البعض.
الجزء 2. مخترع التطبيقات + مشاريع اردوينو.
في السنوات الأخيرة ، كانت إنترنت الأشياء مزدهرة. تستخدم العديد من المشاريع حول هذا الموضوع اردوينو. تحتاج أحيانًا في مثل هذه المشاريع إلى إنشاء تطبيق android ، وقد تحتاج هنا إلى App Inventor 2. هناك العديد من المقالات حول هذا الموضوع في habrahabr و geektimes.
1. مخترع التطبيق + مشاريع اردوينو باستخدام اتصال بلوتوث. (وحدة بلوتوث HC-05 \ 06 \ 07)
مكنسة كهربائية روبوت على اردوينو
آلة بلوتوث بسيطة على اردوينو
جهاز تحكم عن بعد بلوتوث لتلفزيون اردوينو
2.مخترع التطبيق + مشروع Arduino باستخدام اتصال wi-fi. (وحدة wi-fi ESP8266)
إنترنت الأشياء (IoT) والسباكة
3- مشروع App Inventor + Arduino باستخدام اتصال سلكي (وحدة إيثرنت Enc28j60)
التحكم في حجم مكبر الصوت متعدد المناطق باستخدام تطبيق Android و Arduino
4- مشروع App Inventor + Arduino باستخدام اتصال GPRS / GSM (GPRS / GSM shield SIM900)
التحكم في التدفئة في منزل ريفي
حسنًا ، أود أن أنهي حديثي بأخبار إيجابية مفادها أنه منذ أغسطس 2015 يدعم App Inventor 2 اللغة الروسية. إذا كان لدى شخص ما تطبيقاته المثيرة للاهتمام التي تم إنشاؤها في بيئة التطوير هذه ، فيمكنك إسقاطها في التعليقات ، وأعتقد أنه سيكون من المثير للاهتمام بالنسبة للكثيرين معرفة التطبيقات الأخرى التي يمكن إنشاؤها باستخدام App Inventor.
ملاحظة. مجموعة من أكثر من 100 برنامج تعليمي من اردوينو للمبتدئين والمحترفين
P. دورة عبر الإنترنت على اردوينو على موقع giqtimes

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

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

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

مخترع التطبيق

كان التطور الطبيعي لهذا النهج هو لغة برمجة App Inventor ، التي طورها الأستاذ هال أبلسون بمعهد ماساتشوستس للتكنولوجيا (MIT) في عام 2010. يعتمد على نفس مبدأ سحب الطوب المرئي وتجميع برنامج من الكتل.

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

App Inventor هو تطبيق قائم على السحابة بالكامل. لبدء البرمجة عليها ، ما عليك سوى الإنترنت والمتصفح. يتم الانتقال إلى صفحة اللغة بواسطة هذا الرابط. واجهة باللغتين الإنجليزية والروسية.

تتكون واجهة لغة البرمجة MIT App Inventor من جزأين رئيسيين - مصممو محرر كتلة.

في مصممنقوم ببناء تطبيقنا من العناصر - الشاشات والأزرار والخلايا والصور والأصوات.

في محرر كتلةنقوم ببرمجة سلوك هذه العناصر.

واجهة App Inventor بسيطة وسهلة الاستخدام. إذا كنت ترغب في تجربة تدريس برمجة App Inventor في المدرسة ، فإننا نوصي باستخدام موقع appinvent.ru على الويب ، والذي يحتوي على مواد تعليمية للمعلمين.

مسابقة لأطفال المدارس

ويمكن لأطفال المدارس الذين سيتم تدريبهم على البرمجة على App Inventor في المدرسة أو بمفردهم المشاركة في المسابقة لتطوير تطبيقات الهاتف المحمول الخاصة بهم على App Inventor. سيحصل الفائز في المسابقة على جهاز كمبيوتر لوحي من Samsung. الموعد النهائي لتقديم الأوراق هو 15 مايو 2016.

من خلال العملية ، نعني سلسلة من الإجراءات ، يمكن أن يحتوي كل منها على عدد مختلف من الكتل.

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

أرز. 1. خيارات لموقع العملية.

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

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

أرز. 2. الكتل "العائمة".

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

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

عيب آخر لوضع عملية في معالج الأحداث هو أنه إذا تم حذف أحد المكونات عن طريق الخطأ في المصمم ، فلن يتم حذف جميع الكتل التي تنتمي إلى هذا المكون فحسب ، بل سيتم أيضًا حذف جميع الكتل المتداخلة فيها. سيكون الأمر مزعجًا بشكل خاص إذا كانت العملية تتكون من عدد كبير من الكتل (الشكل 3). إذا تم حذف المكون btnTest ، فسيتم حذف btnTest.Click block بكل محتوياته.

أرز. 3. التجميع غير المرغوب فيه للكتل في معالج الحدث.

ما هي العملية التي تقوم بها الكتل في هذا الشكل؟ من الصعب الإجابة على الفور. وعندما يتم وضعها في إجراء منفصل ، سيصبح كل شيء واضحًا على الفور من اسمها setVarValue - يحدد قيمة المتغير (الشكل 4).

أرز. 4. تجميع الجوانب في الإجراء.

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

دعنا نسرد عيوب وضع العملية في كتلة معالجة الحدث التي اكتشفناها:

  • الربط الثابت لكتلة الحدث لنوع معين من المكون المحدد
  • لا يمكن استدعاء العملية من الكتل الأخرى (مما يعني أنها لا يمكن أن تصبح مكتبة)
  • حذف عملية عند حذف مكون
  • تشكيل مجموعات "عائمة" غير مفهومة من الكتل
  • من الصعب فهم ما تفعله العملية بسرعة

من السهل جدًا التخلص من كل هذه العيوب إذا تم وضع جميع العمليات في الإجراءات.

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

وظيفة واحدة (إجراء) - عملية واحدة

هذه القاعدة مأخوذة من ممارسة الحياة. تخيل أنك تقوم بتشغيل الضوء في الغرفة ، وفي نفس الوقت يتم تشغيل التلفزيون ومكيف الهواء ويتم إيقاف تشغيل الكمبيوتر. هل ستحبها؟ لا لان ذلك سيؤدي الى ارتباك ومواقف مزعجة.
على التين. 4 في بداية الكتلة ، يتم استدعاء أربعة إجراءات - getKey (احصل على المفتاح) ، getNewVal (احصل على القيمة الجديدة) ، getKeys (احصل على قائمة المفاتيح) و getIndex (احصل على الفهرس). كل من هذه الإجراءات تؤدي عملية واحدة. بعدهم تأتي كتلة if ، حيث يتم تنفيذ عملية واحدة من إجراء setVarValue1.
هل من الممكن استخدام المتغيرات العالمية بدلاً من المتغيرات المحلية في الإجراءات؟ يمكنك ذلك ، لكن لا يجب عليك ذلك. إن استخدام المتغيرات العامة داخل إجراء ما ، أولاً ، يربطها بشكل صارم ، وبالتالي ، بهذا التطبيق ، وثانيًا ، باستخدام المتغيرات العامة ، يمكن للكتل الخارجية من أماكن مختلفة في التطبيق أن تؤثر على الآلية الداخلية للإجراء ، والتي أمر غير مرغوب فيه للغاية. ماذا يمكن أن يحدث إذا تمكن ركاب الحافلة من الوصول إلى آليتها؟

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

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

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

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

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

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

لمزيد من العمل المريح مع عدد كبير من الكتل وتحريكها حول منطقة العمل ، بالإضافة إلى أزرار التكبير / التصغير في منطقة العرض ، يعد تكبير منطقة عمل المتصفح باستخدام مجموعة المفاتيح Ctrl- أو Ctrl + مفيدًا أيضًا.

يمكنك زيادة الوظائف المدمجة في App Inventor باستخدام تقنيات الويب والإضافات. يمكنك العثور على امتدادات مدفوعة ومجانية على الشبكة (حوالي 200 على puravidaapps.com) ، ولكن تثار أسئلة ، ما مدى صعوبة إنشاء امتدادات خاصة بك ، وما الذي يمكنهم تقديمه وهل يستحق قضاء الوقت فيه أم أنه من الأفضل القيام به شيء آخر؟

جميع المكونات والكتل المتوفرة في App Inventor مدمجة (داخلية) والإضافات خارجية.

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

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

وبصراحة ، فإن App Inventor يشبه جبلًا جليديًا ، يكون طرفه مرئيًا للمستخدمين في شكل وظائف مدمجة ، وجزء أكبر بكثير تحت الماء ولا يمكن الوصول إليه. يتم ذلك على وجه التحديد وفقًا للغرض من IDE هذا ، والذي يتطلب الحد الأدنى من معرفة البرمجة من المستخدمين. لم يتم تصميم نموذج العمل المنصوص عليه في App Inventor في البداية لتوفير وظائف رائعة. ستؤدي إضافة خصائص جديدة إلى زيادة عدد الكتل بشكل كبير. على سبيل المثال ، ستؤدي إضافة خاصية الشفافية إلى مربعين لكل عنصر واجهة مستخدم (أحدهما لتعيين القيمة وإرجاعها). إذا كان هناك 5 عناصر واجهة مستخدم ، فسيزيد عدد الكتل بمقدار 10. أضفنا 10 خصائص ، وحصلنا على 100 كتلة عند الإخراج. بالإضافة إلى ذلك ، ستظهر حقول خصائص جديدة في المصمم. في ظل هذه الظروف ، يبدو نهج "ملحقات IDE + البسيطة" معقولًا ، ولكن ليس لأولئك الذين يفضلون الوظائف الجيدة "خارج الصندوق" دون الحاجة إلى البحث عن الوظائف الإضافية وتثبيتها.

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

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

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

تطوير الامتداد مناسب لأولئك الذين ، من حيث المبدأ ، راضون عن App Inventor ، لكني أرغب في استكمال شيء ما وتحسينه وتبسيطه ، وفي نفس الوقت ممارسة Java. إذا كانت هذه هي حالتك ، فلنبدأ بنشر بيئة التطوير.

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

حزمة فلاد استيراد com.google.appinventor.components.runtime. * ؛ استيراد com.google.appinventor.components.annotations.DesignerComponent ؛ استيراد com.google.appinventor.components.annotations.DesignerProperty ؛ استيراد com.google.appinventor.components.annotations.PropertyCategory ؛ استيراد com.google.appinventor.components.annotations.SimpleEvent ؛ استيراد com.google.appinventor.components.annotations.SimpleFunction ؛ استيراد com.google.appinventor.components.annotations.SimpleObject ؛ استيراد com.google.appinventor.components.annotations.SimpleProperty ؛ استيراد com.google.appinventor.components.common.ComponentCategory ؛ استيراد com.google.appinventor.components.common.PropertyTypeConstants ؛ استيراد com.google.appinventor.components.common.YaVersion ؛ استيراد com.google.appinventor.components.runtime.util.SdkLevel ؛ DesignerComponent (version = YaVersion.NOTIFIER_COMPONENT_VERSION، category = ComponentCategory.EXTENSION، description = "This is a test extension"، nonVisible = true، iconName = "images / notifier.png")SimpleObject (external = true) فئة نهائية عامة TestExtension لتوسيع AndroidNonvisibleComponent تنفذ المكون (العامة TestExtension (حاوية المكون المكون) (super (container. $ form ())؛)SimpleFunction (description = "هذه الدالة تُرجع \" Test \ "string") public String Test () (إرجاع "اختبار "؛))

يتضمن كود الامتداد كود جافا للفصل والتعليقات التوضيحية التي تبدأ بالرمز @. تستخدم التعليقات التوضيحية للإشارة إلى أن كتلة التعليمات البرمجية الموجودة أسفلها يجب معالجتها بواسطة مترجم بسيط. ينظر المترجم البسيط في التعليقات التوضيحية ويدمج الامتداد في بيئة تطوير App Inventor - يقوم بإنشاء كتلة (وظائف أو خصائص) للوظيفة المحددة ، ومربع تحرير في المصمم ، ويقوم بعمل آخر.

يشيرDesignerComponent إلى المعلمات العامة للمكون وأنه مصنف كملحق وغير مرئي (حاليًا يمكن إنشاء مكونات الامتداد غير المرئية فقط)

يشيرSimpleObject إلى المكون ، ويشير الحقل External = true إلى أن المكون خارجي

SimpleFunction يخبر المترجم بوظيفة إنشاء كتلة لـ. إذا قامت الدالة بإرجاع قيمة ، فسيظهر شق على جانبها الأيسر. إذا كانت الوظيفة تحتوي على معلمات ، فستكون الشقوق المقابلة لها على الجانب الأيمن.

يمكن العثور على الأكواد المصدرية للفئات في الدلائل المقابلة لأسماء الحزم:

com / google / appinventor / المكونات / وقت التشغيل - فئات الكائنات المضمنة.
com / google / appinventor / المكونات / التعليقات التوضيحية - فئات التعليقات التوضيحية
com / google / appinventor / المكونات / فئات الاستخدام الشائع
com / google / appinventor / المكونات / وقت التشغيل / الاستفادة - فئات المرافق

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

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

مخترع التطبيق- بيئة تطوير مرئية لتطبيقات Android تتطلب من المستخدم أن يكون لديه الحد الأدنى من المعرفة البرمجية. تم تطويره في الأصل في Google Labs ، بعد إغلاق هذا المختبر ، تم نقله إلى معهد ماساتشوستس للتكنولوجيا. في البدايه مارس 2011أطلق معهد ماساتشوستس للتكنولوجيا نسخة تجريبية عامة من المشروع ، وهي متاحة على appinventor.mit.edu.

تعمل بيئة التطوير هذه مباشرة من المتصفح. لا تحتاج إلى تنزيل أو تثبيت أي شيء. يمكن عرض النتيجة على جهاز android. يمكن وضع التطبيقات الجاهزة في سوق Play.

منذ أغسطس 2015 ، يدعم App Inventor 2 اللغة الروسية.

في محرر MIT App Inventor 2 عبر الإنترنت ، يتم إنشاء التطبيقات على أساس المكونات القياسية ، والتي تعد العنصر الرئيسي في تطوير تطبيقات Android.
كتل مخترع التطبيق. مفاهيم ومبادئ مهمة

كتل App Inventor هي أدوات لمعالجة المكونات وتبدو مثل الألغاز.

يتم تقسيم الكتل في منشئ تطبيقات Android هذا إلى مجموعتين كبيرتين بناءً على ما تؤثر عليه وما يتعلق بهما:

  • المتعلقة مباشرة بالمكونات
  • المتعلقة بالتطبيق ككل

دعنا نبدء ب الكتل التي تنتمي إلى المكونات.يمكن تقسيمها إلى ثلاثة أنواع ، والتي يمكن تمييزها بسهولة عن طريق لونها:

1. كتل تصف خصائص المكون. إنها خضراء وتبدو هكذا:

تشير هذه الكتلة إلى الخاصية الحالية للمكون. تُظهر هذه الصورة كتلة لون الخلفية لمكون نص TextBox1. هذا يعني الحصول على قيمة موجودة بالفعل.

وهذا يحدد القيمة المطلوبة للمكون (تعيين لون خلفية TextBox1 ...). "مجموعة" - مجموعة. يمكن أن يُعزى هذا النوع من خاصية block إلى أوامر (معالجات) ، نظرًا لأنه يعطي حقًا أمرًا لتغيير أي خاصية للمكون ، بما في ذلك قيم الحقل. ومع ذلك ، قرر مطورو App Inventor ذلك - فهذه خصائص أيضًا.

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

تقوم هذه الكتلة ، على سبيل المثال ، بتنفيذ إجراء عند النقر فوق الزر (عند النقر فوق Button3 للقيام ...)

3. أمر block ، في App Inventor ، تسمى هذه الكتلة غالبًا معالج. تحدد هذه الكتلة ما يجب فعله بالمكون الذي تنتمي إليه الكتلة:

على وجه التحديد ، يستدعي هذا الحظر البيانات من مؤقت الجهاز.

المجموعة الثانية من الكتل على مستوى التطبيق، يتم تنظيمه بشكل مختلف نوعًا ما.

بالنسبة للمبتدئين ، إليك قائمة المجموعات الفرعية الخاصة بهم:

  • كتل المنطق- الكتل المنطقية
  • كتل الرياضيات- كتل الرياضيات
  • كتل النص- كتل النص
  • قائمة الكتل- كتل لإدارة القوائم
  • كتل ملونة- كتل لإدارة الألوان
  • كتل متغيرة- كتل لإدارة المتغيرات
  • كتل الإجراءات- كتل الإجراءات.

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

هنا يجدر التحدث أكثر عن أنواع "الألغاز". لذا ، ربما لاحظت أن هناك أربعة أنواع من الألغاز.

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

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

و هنا الرابعالرأي القيمة النهائية ، الموجودة أو المحسوبة ، والسلاسل تنتهي بها. على سبيل المثال ، تمثل الصورة الرابعة القيمة الحالية لمكون Clock1.

تعلن شركة ITcher عن مسابقة لتطوير تطبيقات الهاتف المحمول لنظام التشغيل Android ، والتي تم إنشاؤها بلغة برمجة App Inventor.

شروط المسابقة
  • استقبال وتسجيل الأعمال التنافسية: من 1 يناير إلى 15 مايو 2017.
  • دراسة الأعمال من قبل لجنة التحكيم المنافسة - من 15 مايو إلى 30 مايو 2017.
  • إعلان نتائج المسابقة يوم 30 مايو على بوابة المسابقة.