Flutter
عدّة واجهة Flutter sada_ui تمنحك شاشات المكالمة السبع — الرنين، أثناء المكالمة، الجماعية، الشبكة الضعيفة، إعادة الاتصال، الانتهاء — بالعربية والإنجليزية، جاهزة لأي تطبيق.
01ما المتاح اليوم
حزمة Flutter للصوت package:sada (Sada.join) لم تصدر بعد؛ سطر flutter pub add sada في البدء السريع معاينة لواجهتها. عدّة الواجهة أدناه نهائية ومستخدمة، وستُوصل بحزمة الصوت حين تصدر.
حتى ذلك الحين، أصدر الرموز من خادمك كالمعتاد وحرّك الشاشات من طبقة الصوت الخاصة بك أو من SDK الويب داخل web view.
02التثبيت
Flutter خالص، null-safe، يتطلب Flutter ≥ 3.22. لا طلبات شبكة ولا اعتماد على Material داخل الشاشات. الخطوط Cairo للواجهة وIBM Plex Mono للمؤقتات عبر google_fonts.
03لفّ شاشاتك بـ SadaScope
SadaScope يوفّر السمة والنصوص واتجاه الكتابة. ar من اليمين لليسار وهي الافتراضية؛ en من اليسار لليمين. كل شاشة تعمل أيضاً تحت MaterialApp عادي، راجعةً إلى السمة التركوازية ولغة السياق.
04حرّك الحالة بـ CallController
تقبل الشاشات CallController اختيارياً. شارك واحداً بين الشاشات وادفع الحالة إليه من طبقة الـ SDK: المشاركون، الكتم، المتحدث النشط، الإنهاء. يعرض timerText وlatencyMs وringSeconds وreconnectCountdown وisMuted وisSpeakerOn وactiveSpeakerIndex وrating وphase.
05الشاشات السبع
كل شاشة تملأ حاويتها؛ لفّ واحدة بـ SadaPhoneFrame لتحصل على إطار الهاتف كما في ملف التصميم.
| الشاشة | ملاحظات |
|---|---|
IncomingCallScreen
|
صورة المتصل بتموجات خضراء، «يتصل…» وامضة، رفض / قبول. |
OutgoingCallScreen
|
حلقة كهرمانية، ثلاث نقاط وامضة، call.ringing · Ns / 45s.
|
InCallScreen
|
شريحة زمن الاستجابة، تموج أثناء الكلام، mm:ss، موجة صوت، كتم / مكبّر / إضافة / إنهاء.
|
GroupCallScreen
|
بلاطات بعمودين، إطار بلون التمييز على المتحدث النشط، شارة على المشاركين المكتومين. |
WeakNetworkScreen
|
InCallScreen مع quality: poor: شريط كهرماني، 186 ms · loss 6.2%.
|
ReconnectingScreen
|
حلقة دوّارة حول صورة باهتة، attempt 2 / 5 · Ns.
|
EndedScreen
|
المدة والجودة، تقييم بخمس نجوم، اتصل مجدداً، تم. |
06السمات واللغات
SadaThemeData يحمل اللوحة الداكنة ولون التمييز (teal أو coral) وألوان الحالات وبُناة الأنماط ui() / mono(). النصوص من SadaStrings.of(context) بالعربية والإنجليزية.
بضع قواعد مدمجة: الخط أحادي المسافة لا يُطبَّق على العربية أبداً، الأيقونات خطوط بلا سماعات هاتف، علامة العلامة التجارية لا تُعكس، وكل الحركات تتوقف تحت MediaQuery.disableAnimations. اضبط useGoogleFonts: false حين يحزم تطبيقك الخطوط بنفسه.