تجربة تطوير تطبيق مجاني لهواة جمع OpenNumismat

أريد أن أشارك تجربتي في تطوير تطبيق سطح المكتب لهواة جمع المصادر المفتوحة.

حسب طبيعة نشاطي الرئيسي ، أقوم بتطوير برامج للأنظمة المدمجة ونادراً ما تتقاطع مع المستخدمين النهائيين. لذلك ، سنتحدث عن الميزات التي واجهتها عند تطوير تطبيق غير تجاري لمجموعة واسعة من المستخدمين ، مما أصبح اكتشافًا لي.

الصورة

الوصف


OpenNumismat ، كما يوحي الاسم ، يهدف بشكل أساسي إلى حساب مجموعة العملات المعدنية. ولكنه مناسب أيضًا لأنواع التجميع الأخرى - الطوابع والبطاقات والشارات والأشياء الغريبة.

تتم كتابة التطبيق في Python ، وتستخدم قاعدة البيانات SQLite لتخزين البيانات ، ويستخدم PyQt للواجهة ، والوصول إلى البيانات وأكثر من ذلك بكثير ، ويستخدم Jinja2 لإنشاء التقارير ، ويستخدم Matplotlib لبناء الرسوم البيانية الإحصائية. على الرغم من شكوكي المبدئي ، اتضح أن هذا يكفي لضمان الأداء المقبول - تتم معالجة عدة آلاف من السجلات مع الصور دون أي مكابح ملحوظة.
نظرًا لأن جميع المكونات مشتركة بين الأنظمة الأساسية ، فإن OpenNumismat لديها أيضًا تجميعات لأنظمة Windows و Linux (Debian / Ubuntu) و macOS.

هناك أيضًا إصدار Android مهجور حاليًا. تم استبداله بـ PWA (تطبيق الويب المتقدم) ، والذي يسمح لك بمشاهدة مجموعتك في أي متصفح - يتم استخدام SQLite.js. لقد أصبح تطوير PWA أسهل بكثير لإنشاء تطبيق Android أصلي مماثل في القدرات. بالإضافة إلى ذلك ، يتوفر على الفور على جميع المنصات.

المنافسين


الآن هناك العديد من التطبيقات لهواة جمع العملات ، وعلى وجه الخصوص ، numismatists. معظمهم "يبدو أن شخصًا ما حصل على أول إصدار له من Firefox واستخدمه".

في الولايات المتحدة ، يستخدم العديد من البرامج التجارية ، التي لا شك أن ميزة توفر قواعد بيانات جاهزة للعملات المعدنية الموجودة. يمكن للمستخدم فقط وضع علامة على العملات المتوفرة وإدخال معلومات الشراء - السعر ، التاريخ ، إلخ.

يتم توفير ميزات مماثلة من خلال تطبيقات الهاتف المحمول (معظمها لنظام Android) وخدمات الويب. يركز OpenNumismat بشكل أكبر على إنشاء كتالوج لمجموعته الفريدة ، بدلاً من "إغلاق الثقوب في الألبوم النهائي" ، على حد تعبير بعض علماء numismatists.

لكن المنافس الرئيسي هو مايكروسوفت. الغالبية العظمى من المجمّعين يستخدمون Excel على الرغم من حقيقة أنه لا يعمل بشكل جيد مع الصور. يستخدم البعض أيضًا Access أو 1C ويقومون بإنشاء قاعدة بيانات المجموعات الخاصة بهم مع كل ما يحتاجون إليه. لكنه لا يزال يتطلب بعض التحضير.

لجذب المستخدمين ، يتم تنفيذ الواردات من البدائل الأكثر شعبية.
بالنسبة لنظامي التشغيل Linux و macOS ، لا يوجد عملياً نظائر لهذه المنصات.

فوائد الانفتاح


كانت الميزة الرئيسية للشفرة مفتوحة المصدر هي القدرة على استخدام خدمات الطرف الثالث للتوزيع والترجمة وتتبع الأخطاء مجانًا. سحب الطلب ، على حزني ، كان هناك ثلاثة فقط.

بشكل غير متوقع بالنسبة لي ، كانت هناك ميزة أخرى تتمثل في الفرصة المحتملة لإقناع المتشككين بأمان البرنامج - يقولون في المنتديات أنهم فحصوا الكود مع grep ولا توجد شكوك.

البيئة المستخدمة


في البداية ، تم اختيار Google Code لتوزيع OpenNumismat ، والذي يوفر تتبع الأخطاء بطريقة مريحة ، ويكي متعدد اللغات للتوثيق ، وتنزيل الثنائيات ، وبطبيعة الحال ، مستودع بوابة. ولكن ابتداء من عام 2013 ، بدأ كود جوجل للموت. لهذه الخطوة ، كان الاختيار بين SourceForge و GitHub. توفر كلتا الخدمتين القدرة على إنشاء مواقع للمشروعات (يجب إعادة توثيق الوثائق من الويكي في الصفحات الثابتة للموقع) ، ولكن تنزيل الثنائيات من SourceForge يبدو مخيفًا لمستخدم غير مستعد. لذلك ، وقع الاختيار على جيثب.

يتطلب GitHub bug tracker التسجيل ، وهو أمر غير مناسب للمستخدمين الذين لا يزالون بعيدين عن البرمجة. لذلك ، تقرر استخدام خدمة خارجية. تم العثور على Idea.Informer (الإصلاحي لجمهور ناطق بالروسية) - خدمة مجانية ومريحة ، لكنها لا تتطور حاليًا وهذا يتسبب في عدد من الصعوبات (توقف Idea.Informer عن إرسال الرسائل ولا يدعم SSL).

في البداية ، دعم OpenNumismat اللغتين الإنجليزية والروسية. ولكن بعد عام من الإصدار الأول من فنزويلا ، تم تلقي اقتراح للترجمة إلى الإسبانية. ثم جاءت عروض الترجمة إلى لغات أخرى. في البداية ، تم إجراء الترجمة باستخدام أداة Qt Linguist. لراحة المتطوعين ، يتم الآن استخدام خدمة عبر الإنترنت توفر بنية تحتية ملائمة للمشاريع المفتوحة. يتم ترجمة OpenNumismat حاليًا إلى 15 لغة.

لتعزيز OpenNumismat ، اضطررت إلى دراسة بعض الحيل من الرؤساء التنفيذيين. لذلك باستخدام العلامات الدلالية ، تمكنت من تعزيز وتحسين عرض موقع التطبيق في محركات البحث.

إصدارات مكتبة الإصدار


بالنسبة لإصدار Windows ، يتم استخدام PyQt الإصدار 5.5.1 حاليًا. يعد التبديل إلى إصدار أحدث أمرًا معقدًا عن طريق استبدال Qt WebKit بـ Qt WebEngine ، الذي ما زال لا يعرف كيفية معاينة الصفحات المطبوعة المستخدمة في العمل مع التقارير.

هناك حاجة إلى انتقال لاستخدام الرسوم البيانية Qt لبناء الرسوم البيانية الإحصائية ، لكنه غير متوفر في الإصدار المستخدم. بالطبع ، كان بإمكانك جمعها بشكل منفصل ، لكن يديك لم تصل. لذلك ، للإحصائيات ، يتم استخدام حزمة بيثون Matplotlib.

أيضًا ، لا تدعم الإصدارات الأخيرة من Python نظام التشغيل Windows XP ، الذي لا يزال يستخدمه عدد صغير من المستخدمين.

يمكن لإصدار Linux استخدام أي مجموعة من إصدارات PyQt و Python و Matplotlib. لذلك ، قد لا تعمل الإحصائيات على بعض التكوينات ؛ في حالات أخرى ، يكون عرض التقارير محدودًا.

كان هناك خياران للبناء على نظام macOS: استخدم بناء Python الرسمي مع الحزم المطلوبة ، أو MacPorts. في الإصدار الأول ، تنشأ المشكلات الموضحة في التقارير ، لا يمكن تخصيص عملية الإنشاء بالكامل ، في الثاني كانت هناك مشاكل مع Matplotlib ، ولكن MacPorts لديه بناء على أحدث إصدار من PyQt مع Qt WebKit. تستخدم حاليًا خيار MacPorts.

أريد أيضًا أن أشير إلى أن سكليتي لا يدعم أحرفًا غير ASCII. تسبب هذا في مشاكل عند فرز المستخدمين باستخدام الحروف الهجائية حيث يتم استخدام رموز أخرى غير اللاتينية والروسية (على سبيل المثال ، الأوكرانية والكاتالونية - مستخدمو هذه البلدان بشكل خاص اهتموا بالمشكلة). إن نقل الفرز من استعلامات SQL إلى Qt لا يحل المشكلة فحسب ، بل يحسن الأداء أيضًا.

ردود الفعل


ردود الفعل وردود الفعل هي الجزء الأكثر متعة من الوظيفة. أفضل للجميع ، لقد تم قبول OpenNumismat من قبل المجتمع numismatist الإسبانية. لقد فاجأني الروس بمراجعات مثل: "ينتظر البرنامج من المجموعة أن تملأ أكبر قدر ممكن ، ثم تبلغ أين تحتاج". خائف على ما يبدو من "المتسللين الروس". غالبًا ما يتعين عليك تقديم أعذار للمتشككين الذين لن يستخدموا OpenNumismat - وهذا أمر محبط أحيانًا.

يكتب العديد من المستخدمين فقط للتعبير عن الشكر وتقديم أفكار جديدة وطلب المساعدة لفهم التطبيق. معظمهم يصف الأخطاء والمشكلات في التطبيق ، والتي غالباً ما تنشأ دون شك ، لأن التطوير والاختبار يتمان بواسطة شخص واحد.

السؤال الأكثر شيوعًا هو "لدي نسخة تجريبية من كيفية الحصول على النسخة الكاملة". هذا يرجع إلى حقيقة أن أول مرة تقوم فيها بفتح قاعدة بيانات تجريبية تسمى التجريبي. يبدو أن هذا أمر مربك للغاية للمستخدمين الجدد.

في كثير من الأحيان ، يقترحون إضافة وظائف محددة للغاية قد تكون مفيدة للمستخدمين الفرديين ، ولكن بالنسبة لمعظمها قد تبدو غير ضرورية ومعقدة على الإطلاق. أو أنه يغير المنطق الأساسي لتنظيم البيانات. على المرء أن يرفض مثل هذه العروض ، أو في كثير من الأحيان ، تجاهل الرسالة.

أحيانًا تظهر لي رسائل خطأ لا يمكنني إعادة إنتاجها. إذا تم تأسيس اتصال مع المستخدم ، فعادةً ما يتم حل المشكلة بعد بعض المراسلات والتجارب المشتركة. في بعض الأحيان لا يمكن الاتصال ، ويظل الخطأ غير مصحح ، وربما لم يعد يلاحظ.

أيضًا ، تأتي الرسائل من المبدعين من المواقع المحسوبة على الإنترنت والكتالوجات الإلكترونية الذين يحاولون إحداث ثورة ، ولكن لا يوجد تقدم ملحوظ حتى الآن.

الخاتمة


التطوير مستمر منذ أكثر من 6 سنوات. لقد تم تحقيق الكثير ، لكن التطبيق لا يزال بعيدًا عن الكمال. هناك العديد من الأفكار التي أود تنفيذها.

من المؤكد أن الحصول على تعليقات إيجابية أمر لطيف وأريد أن أقدم أداة مفيدة حقًا للمستخدمين. وبما أنني شخصياً مستخدم نشط لبرنامج OpenNumismat ، فلن أتوقف عند هذا الحد.

Source: https://habr.com/ru/post/ar439626/


All Articles