أردت أن أتدخل بسرعة هنا لأذكر أنني قمت للتو بفتح مصدر مشروع يسمى Lexicon مع بعض زملائي.
إنه تطبيق محمول أصلي جاهز وقابل للتخصيص مبني على واجهة برمجة تطبيقات Discourse. بنيناه لمساعدة المشاريع المحمولة الأصلية الأخرى على دمج ميزات المناقشة والرسائل بسرعة.
كان بناء هذا المشروع ممتعًا للغاية، ويرجع ذلك أساسًا إلى كل العمل الشاق الذي قام به فريق Discourse الأساسي والمجتمع على مدار السنوات.
يبدو أن Fig رائعة! يبدو أنهم نجحوا حقًا في تقديم تجربة أصلية لنظام iOS لمنصة Discourse.
بعض الفروقات التي ألاحظها…
دعم الأجهزة اللوحية
يتمتع Fig بدعم ممتاز للأجهزة اللوحية. لم نتناول هذا الجانب بعد.
تطبيق لموقع واحد
على غرار تطبيق Discourse المحمول، اعتمد Fig نهج “مدير الموقع”، مما يسمح لك بإضافة مواقع Discourse متعددة يمكنك تصفحها. بينما يركز Lexicon أكثر على إنتاج تطبيق فردي، قد يكون مخصصًا لعلامة تجارية، لموقع Discourse معين.
Lexicon نفسه ليس تطبيقًا
بالإضافة إلى ذلك، يُعد Lexicon أكثر من كونه “قالب تطبيق” يمكنك أخذه، وتخصيصه، ونشره بنفسك في متجر التطبيقات أو متجر Play. بينما يوفر Fig تطبيقًا منشورًا بالفعل.
العرض المتميز
يوفر Fig عرضًا متميزًا لبعض الميزات. أما Lexicon فلا يقدم أي عروض متميزة.
النقطة الوحيدة التي قد تدخل فيها الأموال هي إذا لم يكن لديك شخص آخر لمساعدتك في دمج أو تخصيص أو نشر Lexicon. في هذه الحالة، سنكون سعداء لمناقشة كيفية التعاون معنا.
مع ذلك، أعرف أن العديد من مستخدمي هذا الموقع هم من ذوي الخلفيات التقنية أو شبه التقنية، لذا أتمنى أن تكون الوثائق مفصلة بما يكفي لتوجيه الكثيرين خلال هذه العملية دون الحاجة إلى مدخلات إضافية.
التقنيات ودعم الأجهزة
أنا أتخيل هنا، لكن يبدو أن Fig بنوا تطبيقهم باستخدام لغة Swift، مما يعني أنه أصلي تمامًا، وهو أمر رائع.
أما نحن فقد بنينا Lexicon باستخدام React Native، أي باستخدام JavaScript (ومن الطبيعي أن لا يكون الجميع من محبي هذا النهج).
إحدى فوائد استخدامنا لـ React Native هي أننا نحصل تلقائيًا على تطبيقات قابلة للنشر لنظامي Android وiOS جاهزة من البداية، كما أن لدينا نسبة عالية من إعادة استخدام الكود.
معظم الفروقات بين Android وiOS في قاعدة الكود لدينا تتعلق بتفاصيل المظهر والشعور، مثل زر الإجراء العائم (Floating Action Button) على Android بدلاً من زر في الرأس على iOS.
في جانب الواجهة الأمامية، هناك مجال أود تحسينه وهو دعمنا للميزات المضمنة في المحتوى الخام للموضوع.
إلى جانب معالجة محتوى Markdown العادي للموضوع، يمكننا أيضًا دعم عدة ميزات يوفرها الترميز المخصص لـ Discourse.
وكما قد تكون على دراية بالفعل، يدعم Discourse صيغة مخصصة لميزات مثل الاقتباسات، والتبديلات، والتواريخ، وحتى الاستطلاعات.
في نهج شائع إلى حد ما، قمنا بتخصيص دعم أولي لبعض الميزات الأساسية مثل تضمين الأكواد، ثم أضفنا كتلة “<الميزة> غير مدعومة في الوقت الحالي” للميزات التي لم يتم تنفيذها بعد.
أود حقًا القضاء تمامًا على كتل “غير مدعومة” هذه من تطبيقنا. سيكون دعم الاستطلاعات والتبديلات رائعًا بشكل خاص.
أيضًا، نظرًا لأن Lexicon يعمل على المحتوى الخام للموضوع، فإننا نتجاوز دعم OneBox. لذا، كحد أدنى، سيكون من الجيد وجود دعم أساسي لمعاينات الروابط.
الواجهة الخلفية
إحدى الميزات التي أتحمس لدعمها في النهاية هي الروابط العميقة من رسائل البريد الإلكتروني. هذه على الأرجح ليست ميزة تافهة التنفيذ، وقد تتطلب بناء إضافة لـ Discourse بلغة Ruby.
بشكل أساسي، سيسمح ذلك للمستخدمين بالنقر فوق رابط إلى موضوع في رسالة بريد إلكتروني من Discourse، وفتح التطبيق (إذا كان مثبتًا) مباشرةً إلى ذلك الموضوع المحدد عبر رابط عميق عبر Discourse.
وإذا لم يكن التطبيق مثبتًا، أو إذا لم يكن المستخدم على جهاز محمول، فسيتم توجيهه إلى الموقع كما هو معتاد.
إذا كان أي شخص يرغب في العمل على هذه المهمة، يرجى التواصل معي. سيكون ذلك ضخمًا إذا تم عملها.
تعديل: راجع أيضًا صفحة الميزات المدعومة في Discourse في توثيقنا لمعرفة الميزات التي لم يتم دعمها بعد، ولا تتردد في العمل على أي منها (باستثناء إشعارات الدفع، فنحن نعمل عليها بالفعل).
بشكل متفائل، خلال الأسابيع القليلة القادمة هنا — لا يمكنني تقديم ضمانات قاطعة بعد.
لقد تجاوزنا بالفعل مرحلة إثبات المفهوم، لكن لا يزال لدينا بعض الحواف الخشنة التي تحتاج إلى تنعيم.
وسيتطلب دعم هذه الميزة تثبيت إضافة Discourse الخاصة بنا على موقعك.
ولتقديم بعض التفاصيل، قمنا ببناء تطبيق Lexicon للهواتف المحمولة باستخدام Expo، وهي مجموعة مذهلة من أدوات البناء والخدمات لتطبيقات React Native — وهي تتضمن دعمًا للإشعارات الدفعية (Push Notifications).
ومع ذلك، لم نتمكن من العثور على أي إضافات Discourse موجودة تتكامل مع خدمة الإشعارات الدفعية الخاصة بـ Expo، لذا اضطررنا في النهاية إلى بناء واحدة. لحسن الحظ، فإن التكامل مفتوح المصدر الموجود مع OneSignal مشابه جدًا لما نحتاجه، مما سمح لنا باستخدام مشروعهم كنقطة انطلاق. (نشكر pmusaraj على ذلك ).
وبالإضافة إلى نشر الإضافة وتكاملها مع تطبيق الهاتف المحمول، سنرغب بالطبع في تحديث التوثيق أيضًا. لأن Lexicon يتيح لك نشر تطبيقك الخاص، فإن الأمر يتجاوز مجرد إعداد الإشعارات الدفعية لتطبيق واحد على متاجر App أو Play.
لذلك، سنرغب في التأكد من توجيه مستخدمي المشروع بشكل صحيح خلال عملية الإعداد لضمان عملها بسلاسة.
غير واضح ما إذا كان DiscourseConnect مدعومًا؛ قد يكون من الجيد إضافة ذلك إلى صفحة الميزات المدعومة.
هناك العديد من الخيارات المتاحة لطرق تثبيت Prose، سواء في البرنامج التعليمي أو في الوثائق. أعتقد أن هذه المواد يمكن تنظيمها بشكل أفضل. لقد وجدت نفسي غير واضح حول كيفية عمل إعداد SSL إذا كنت أحاول القيام بالأشياء بأبسط طريقة ممكنة باستخدام صورة Docker الخاصة بكم.
أحب تجربته، لكن لا توجد طريقة واضحة للقيام بذلك. إذا جعلتم تطبيقًا متاحًا لـ Meta، يمكننا ذلك
إشعارات الدفع والربط العميق كما ذكرتم هما بالتأكيد ميزات مهمة في رأيي.
نظرًا لتعقيدات التحديثات، ونشر التطبيقات، وProse، إلخ، فإن ذهني يتجه بسرعة إلى الاهتمام بخدمة مستضافة/مدعومة جاهزة مدفوعة تتولى أنتم فيها كل هذا. قد يكون من الجيد أن تقدموا مثل هذه الخدمة. أنا فضولي بشأن كيفية أن يكون التسعير.
مرحبًا، يبدو أن هناك مشكلة عند تحميل التطبيق لمنشور يحتوي على أحرف غير إنجليزية (مثل الأحرف الصينية 中文). أظن أن هذا قد يكون مرتبطًا بميزة أسماء يونيكود في منصة ديسكوس (Unicode usernames and group names)، وقد فتحتُ قضية لتسجيل تفاصيل سجل الأخطاء في مستودع غيت هاب:
لقد حاولت تكوين تطبيق Lexicon المحمول باتباع البرنامج التعليمي المتاح على Lexicon. بعد إكمال جميع الخطوات وتشغيل التطبيق المحمول لحالة Discourse مجانية (https://meta.discourse.org/)، تظهر لي هذه الأخطاء على الهاتف وسجل الطرفية على التوالي.