Amper عبارة عن أداة لتكوين المشروع وبناءه. هدفها هو توفير تجربة مستخدم رائعة وسلسة ودعم IDE ونعتقد أنه يمكن تحقيق ذلك من خلال:
توفير تكوين تعريفي DSL للمطورين وIDE - ليس لتبسيط الإعداد الأولي فحسب، بل أيضًا لتحسين إمكانية الصيانة والسماح لـ IDE بالمساعدة في التكوين التلقائي بشكل موثوق؛
تجميع مجموعة منسقة من سلاسل الأدوات والامتدادات المتوافقة - لدعم غالبية السيناريوهات دون الحاجة إلى العثور على مكونات إضافية متوافقة؛
اختيار نقاط القابلية للتوسعة بعناية - للحفاظ على اتساق النموذج الذهني العام وتجربة المستخدم للتكوين ولتجنب تنفيذ تعليمات برمجية غير متوقعة من جهة خارجية.
في جوهر الأمر، نهدف إلى تحقيق تجربة مماثلة مدروسة جيدًا ومُختبرة جيدًا كما هو الحال مع بيئة التطوير المتكاملة الخاصة بـ JetBrains.
نحن نبحث حاليًا في جوانب مختلفة، بما في ذلك تكوين مشاريع البناء والتعبئة والنشر والمزيد. ومع ذلك، في المرحلة الحالية، ينصب التركيز في المقام الأول على تكوين مشاريع البناء. في حين أن حالة الاستخدام الحالية هي Kotlin وKotlin Multiplatform، فإن Amper يدعم أيضًا Java وSwift (كمتطلبات الأنظمة الأساسية المتعددة). ومع ذلك، يمكن أن يعمل نفس النهج في التكوين مع اللغات الأخرى ومجموعات التكنولوجيا في المستقبل.
يوجد Amper كأداة إنشاء مستقلة بالإضافة إلى مكون إضافي لـ Gradle للمشاريع القائمة على Gradle. يقدم كلا الإصدارين تنسيق تكوين تعريفي موحد وسهل الاستخدام.
الميزات المدعومة:
إنشاء وتشغيل تطبيقات JVM وAndroid وiOS وLinux وmacOS.
إنشاء مكتبات Kotlin متعددة المنصات.
تشغيل الاختبارات.
خلط كود Kotlin وJava وSwift.
مساعدة التعليمات البرمجية لملفات الوحدة النمطية في IntelliJ IDEA وFleet.
مشاريع متعددة الوحدات.
باستخدام إنشاء منصة متعددة.
استخدام إنشاء موارد متعددة المنصات*.
التشغيل المتداخل لـ Gradle، بما في ذلك الجمع بين وحدات Amper وGradle في مشروع واحد*.
التكامل مع كتالوجات إصدار Gradle*.
تخطيط مشروع متوافق مع Gradle للانتقال السلس لمشاريع Gradle الحالية*.
* فقط في المشاريع المستندة إلى Gradle
الاتجاهات المستقبلية:
دعم المزيد من سيناريوهات وتكوينات Kotlin وKotlin Multiplatform.
المزيد من أنواع المنتجات والأنظمة الأساسية، مثل watchOS وWindows وما إلى ذلك.
أنواع الاختبارات الخاصة بالمنصة، بما في ذلك الاختبارات المُجهزة بنظام Android.
دعم التبعيات الأصلية، مثل CocoaPods وSwift Package Manager.
التعبئة والتغليف والنشر.
دعم بناء المتغيرات.
القابلية للتوسعة.
لبداية سريعة:
تعليمات الإعداد والاستخدام
درس تعليمي
التوثيق
مشاريع نموذجية
دليل ترحيل Gradle
يستخدم Amper YouTrack لتتبع المشكلات وإنشاء مشكلة جديدة هناك للإبلاغ عن المشكلات أو إرسال الأفكار.
قبل الإبلاغ عن مشكلة، يرجى مراجعة الأسئلة الشائعة.
يمكنك أيضًا الانضمام إلى قناة Slack للمناقشات أو مشاركة تعليقاتك باستخدام نموذج التعليقات.
هناك طرق متعددة لتجربة Amper:
في أحدث إصدار من IntelliJ IDEA EAP، لمشاريع JVM وAndroid (التعليمات).
في أحدث أسطول من JetBrains، لمشاريع JVM وAndroid وMultiplatform (تعليمات).
استخدام Amper المستقل من سطر الأوامر.
استخدام Gradle-Based Amper من سطر الأوامر لإنشاء مشاريع Amper المستندة إلى Gradle.
إليك JVM أساسي جدًا "Hello, World!" مشروع:
ملفات main.kt
و MyTest.kt
هي مجرد ملفات Kotlin عادية ولا تحتوي على أي شيء مميز. الجزء المثير للاهتمام هو module.yaml
، وهو ملف تكوين وحدة Amper. بالنسبة لهيكل المشروع أعلاه، سيكون ببساطة:
# إنتاج منتج تطبيق JVM: jvm/app
هذا كل شيء. يتم تكوين سلاسل أدوات Kotlin وJava وإطار الاختبار والوظائف الضرورية الأخرى وإتاحتها مباشرة بمجرد إخراجها من الصندوق. يمكنك بنائه وتشغيله وكتابة الاختبارات وإجرائها والمزيد. لمزيد من المعلومات التفصيلية، راجع المثال الكامل.
الآن، دعونا نلقي نظرة على مشروع Compose Multiplatform باستخدام تطبيقات Android وiOS وJVM لسطح المكتب، مع بنية المشروع التالية في Fleet:
لاحظ كيف يحتوي المجلد src/
على أكواد Kotlin وSwift معًا. يمكن بالطبع أن يكون أيضًا Kotlin وJava. جانب آخر يجب تسليط الضوء عليه هو الوحدة المشتركة التي تحتوي على الكود المشترك في مجلد src
ومجلدات التعليمات البرمجية الخاصة بالنظام الأساسي src@ios
و src@android
(تعرف على المزيد حول تخطيط المشروع).
إليك كيف يبدو ملف ios-app/module.yaml
:
# إنتاج تطبيق iOSproduct: ios/app# يعتمد على وحدة المكتبة المشتركة: التبعيات: - ../sharedsettings: # تمكين إطار عمل Compose Multiplatform يؤلف: ممكّن
هذا أمر بسيط جدًا: فهو يحدد تطبيق iOS بالاعتماد على وحدة مشتركة ويمكّن إطار عمل Compose Multiplatform. سيتم shared/module.yaml
:
# إنتاج مكتبة مشتركة لمنصات JVM وAndroid وiOS:product: type: lib Platforms: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# تبعيات التأليف المشترك:dependeency: -compose.foundation$: مُصدَّر - $compose.material3: تم تصدير # تبعيات Android فقط تبعيات @android: # تكامل خاص بنظام Android مع Compose - androidx.activity:activity-compose:1.7.2: تم تصديره - androidx.appcompat:appcompat:1.6.1: تم تصدير # تبعيات iOS فقط مع تبعية على CocoaPod (لم يتم تنفيذها بعد)dependeency@ios: - pod: إصدار 'Alamofire': '~> 2.0.1'settings: # تمكين تسلسل Kotlin kotlin: serialization: json # تمكين إنشاء إطار عمل متعدد المنصات: ممكّن
هناك شيئان يستحقان الذكر. أولاً، لاحظ التبعيات الخاصة بالمنصة: الأقسام ذات المؤهل @<platform>
. يمكن استخدام مؤهل النظام الأساسي في البيان وأيضًا في تخطيط الملف. ينظم المؤهل التعليمات البرمجية والتبعيات والإعدادات لنظام أساسي معين. ثانيًا، التبعيات: لا يسمح القسم بتبعيات Kotlin وMaven فحسب، بل يسمح أيضًا بمديري الحزم الخاصة بالمنصة، مثل CocoaPods وSwift Package Manager وغيرها.
وبطبيعة الحال، لا تظهر هذه الأمثلة سوى مجموعة محدودة من ميزات Amper. للحصول على مزيد من المعلومات حول التصميم والوظائف، راجع الوثائق والبرامج التعليمية وأمثلة المشاريع.
تحقق من مشاريعنا النموذجية هذه:
JVM "مرحبًا بالعالم!" (مستقل، قائم على Gradle)
إنشاء نظام أساسي متعدد (مستقل، قائم على Gradle)
الإنشاء على نظام التشغيل iOS (مستقل، قائم على Gradle)، وAndroid (مستقل، قائم على Gradle)، وسطح المكتب (مستقل، قائم على Gradle)
قالب تطبيق Kotlin Multiplatform مع واجهة مستخدم Compose مشتركة وواجهة مستخدم Android وiOS الأصلية
إمكانية التشغيل المتداخل لـ Gradle في Amper المستند إلى Gradle
وغيرها من الأمثلة المستقلة والقائمة على Gradle