مشروع إضافي Golang FFI for flutter
هذا المشروع هو نقطة انطلاق لمكوّن الإضافي FFI Flutter ، وهي حزمة متخصصة تتضمن الكود الأصلي الذي تم استدعاؤه مباشرة مع DART FFI.
يستخدم هذا القالب الهيكل التالي:
src : يحتوي على رمز مصدر Golang مع Makefile الذي يجمع مكتبة التعليمات البرمجية الأصلية لمختلف الأنظمة الأساسية المستهدفة.
lib : يحتوي على رمز DART الذي يحدد واجهة برمجة تطبيقات المكون الإضافي ، والذي يستدعي في الكود الأصلي باستخدام dart:ffi .
مجلدات النظام الأساسي ( android ، ios ، windows ، إلخ): يحتوي على ملفات الإنشاء لبناء وتجميع مكتبة الكود الأصلي مع تطبيق النظام الأساسي.
يحدد pubspec.yaml المكونات الإضافية FFI على النحو التالي:
plugin :
platforms :
some_platform :
ffiPlugin : trueيستدعي هذا التكوين الإنشاء الأصلي لمختلف الأنظمة الأساسية المستهدفة وحزم الثنائيات في تطبيقات الرفرفة باستخدام هذه الإضافات FFI.
يمكن دمج ذلك مع dartpluginclass ، مثل عندما يتم استخدام FFI لتنفيذ منصة واحدة في البرنامج المساعد الاتحادي:
plugin :
implements : some_other_plugin
platforms :
some_platform :
dartPluginClass : SomeClass
ffiPlugin : trueيمكن أن يحتوي المكون الإضافي على قنوات FFI و Method:
plugin :
platforms :
some_platform :
pluginClass : SomeName
ffiPlugin : trueأنظمة الإنشاء الأصلية التي يتم استدعاؤها بواسطة المكونات الإضافية FFI (و Method Method) هي:
لاستخدام الكود الأصلي ، هناك حاجة إلى روابط في DART. لتجنب كتابة هذه الأشياء باليد ، يتم إنشاؤها من ملف الرأس ( src/libsum.h ) بواسطة package:ffigen . قم بتجديد الروابط عن طريق تشغيل flutter pub run ffigen --config ffigen.yaml .
يمكن استدعاء الوظائف الأصلية قصيرة الأجل مباشرة من أي عزل. على سبيل المثال ، انظر sum في lib/native_ffi.dart .