عن المشروع

Amgi (كلمة كورية تعني "الحفظ") هو عميل بطاقات تعليمية مفتوح المصدر، يعمل دون اتصال، ومتوافق مع Anki لأجهزة iOS، مع تطبيق مصاحب لـ watchOS. بدلاً من إعادة تنفيذ منطق Anki، يغلف المحرك الخلفي الرسمي ankitects/anki المكتوب بلغة Rust عبر واجهة C FFI، بحيث تعمل الجدولة وقوالب البطاقات والبحث والاستيراد/التصدير والإحصائيات والمزامنة على نفس المحرك المستخدم في Anki Desktop وAnkiDroid. القدرات الأساسية الموصوفة في ملف README: - التشغيل دون اتصال أولاً: يعمل التطبيق دون اتصال بالشبكة ويقوم بالمزامنة عند توفر اتصال. - المزامنة مع أي خادم متوافق، بما في ذلك AnkiWeb أو خادم مزامنة ذاتي الاستضافة، مع دمج آمن عند اختلاف المجموعات. - جدولة FSRS، بالإضافة إلى محاكي FSRS لكل مجموعة. - قارئ EPUB مدمج مع بحث في القاموس متوافق مع Yomitan دون اتصال، بهدف تمكين المستخدمين من إنشاء بطاقات مما يقرؤون. - ميزات للمستخدمين المتقدمين مثل إخفاء الصور، وقوالب البطاقات، وبحث Anki مع شرائح تصفية للمجموعات والوسوم، وإحصائيات تشمل السلاسل وتوقع الاستحقاق المستقبلي. - ما يتجاوز الهاتف: أدوات على الشاشة الرئيسية، وتطبيق Apple Watch يشغل المحرك على الجهاز، وإجراءات Shortcuts وSiri. البنية: وحدات ميزات SwiftUI تقع فوق عملاء حقن التبعية، وواجهات خدمة، وطلبات protobuf مكتوبة، وملف Swift يغلف المحرك الخلفي، وطبقة C FFI بأربع وظائف، وأخيراً إطار Rust الديناميكي. تمتلك Swift واجهة المستخدم؛ ويمتلك Rust قاعدة البيانات (SQLite) والمزامنة والجدولة والقوالب والبحث والاستيراد/التصدير والإحصائيات. يستخدم التسلسل Protocol Buffers مع 25 تعريف خدمة .proto. المكدس التقني: Swift 6.2 مع تزامن صارم (وضع اللغة v6)، وswift-dependencies للحقن، وSPM لوحدات المكتبة والميزات، وxcodegen لأهداف التطبيق والأدوات وwatchOS. دعم EPUB يستخدم EPUBKit (MIT) ويستخدم hoshidicts لقواميس Yomitan. يتطلب البناء Xcode 26 وRust (المستقر والليلي، الأخير لشريحة watchOS) وprotoc وxcodegen. يتم إنشاء المشروع بدلاً من تضمينه؛ يقدم ملف README أوامر لبناء xcframework الخاص بـ Rust، وتوليد أنواع Swift الخاصة بـ protobuf، وتوليد مشروع Xcode. تغطي الوثائق الميزات والبناء والبنية وجسر Rust وتدفقات البيانات وأسلوب الكود. الترخيص: AGPL-3.0، لأنه يدمج ankitects/anki، وهو أيضاً AGPL-3.0. يلاحظ ملف README أن توزيع البرنامج أو تشغيله كخدمة شبكة يتطلب توفير المصدر الكامل تحت نفس الترخيص. يتم الترحيب بالمساهمات عبر CONTRIBUTING.md، وينسب ملف README الفضل إلى مشروع Anki، وفرع سابق ساهم في عمل إخفاء الصور والسمات، وAnkiDroid لنمط جسر Rust للجوال، وPoint-Free لـ swift-dependencies.