كيف قمنا بتطوير تطبيق الهاتف المحمول على نظام التشغيل Aurora OS (Sailfish Mobile OS RUS)

قام فريقنا بتطوير ودعم تطبيق شركة للهاتف المحمول لتلقي المدفوعات في إطار نظام الدفع لعميل كبير. الآن يتم استخدامه من قبل موظفي العملاء على الأجهزة التي تعمل بنظام التشغيل Aurora (Sailfish Mobile OS RUS سابقًا) في سبعة وثلاثين منطقة روسية. في هذا المنشور سأتحدث بإيجاز عن هذا المشروع وبمزيد من التفاصيل حول نظام التشغيل نفسه.


قبل التاريخ


قامت شركتنا بتطوير نظام دفع لعميل كبير واحد. يشتمل النظام على جزء الخادم وعدة عملاء: تطبيق سطح المكتب والويب والجوال على نظام التشغيل Android. في البداية ، تم تنفيذ النظام في العديد من مناطق الاتحاد الروسي. في عام 2016 ، قرر العميل توسيع التواجد الإقليمي ، وفي الوقت الحالي تم تنفيذ النظام ويعمل بنجاح في 37 منطقة.

في عام 2017 ، قرر العميل استخدام الأجهزة الموجودة على البرامج المحلية واشترى عدة آلاف من أجهزة INOI R7 مع نظام التشغيل Aurora OS (Sailfish Mobile OS RUS). كلف فريقنا بإنشاء عميل آخر لنظام الدفع بواسطة الهاتف النقال.

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


كيف كان المشروع


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

هنا يجب أن نشيد بالمنصة نفسها. يتم تطوير نظام Aurora OS باستخدام إطار Qt. ولكتابة تطبيقات بسيطة ، يمكنك استخدام لغة التعريف QML ، والتي تسمح لك في معظم الحالات بعدم اللجوء إلى البرمجة منخفضة المستوى في لغة C ++. نتيجة لذلك ، تلاشت المهمة للبحث عن مطورين معقولين لـ Qt ، والتي ، بشكل عام ، كافية.

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

اتصال Bluetooth مع KKM


تطلب المشروع دعم السجلات النقدية (KKM) من ATOL و Shtrikh. ينتج كل من مصنعي KKM منتجات لها القدرة على الاتصال عبر البلوتوث. يمكن العثور على أمثلة للعمل مع Bluetooth على موقع Qt على الويب .

يوفر "الرمز الشريطي" برنامج التشغيل للعمل مع KKM في شكل شفرة المصدر ، والتي يمكن تنزيلها من الرابط . يوجد أيضًا مثال لمشروع لاستخدام برنامج التشغيل.

يمكن تنزيل برنامج تشغيل ATOL من الموقع باستخدام الكلمات الأساسية للبحث عن "Drivers of commercial equipment". في مشروعنا ، استخدمنا الإصدار الثامن من برنامج التشغيل.

في بداية المشروع ، كان هناك KKM بدعم من 54 ، وبدون. لذلك ، كان الدعم مطلوبًا لأنواع السجلات النقدية الأربعة (ATOL / Barcode مع 54- / بدون 54-).

العمل مع تحديثات قاعدة البيانات الكبيرة


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

بناء التطبيق الأمثل


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

تطبيق بناء الآلي


يمكنك تنظيم تجميع التطبيق دون بدء بيئة التطوير. إذا قمت بالبناء من بيئة التطوير ، فيمكنك رؤية الأوامر قيد التشغيل في وحدة التحكم في التجميع. يمكن تشغيل نفس الأوامر عبر bash أو الدفعي.

ولكن على الرغم من كل الصعوبات ، أكملنا المهام التي حددها العميل. في 31 ديسمبر 2017 ، تم إطلاق التطبيق بنجاح ، وتم قبول الدفعات الأولى عليه. في الوقت الحالي ، يعمل التطبيق على عدة آلاف من الأجهزة المحمولة التي تعمل بنظام التشغيل Aurora OS.

نظام التشغيل أورورا


الآن دعنا نتحدث أكثر عن نظام التشغيل وميزاته.


Aurora OS ( Sailfish Mobile OS RUS ) هو نظام تشغيل موثوق به للأجهزة المحمولة (الهواتف الذكية والأجهزة اللوحية). يتم تطويره بواسطة شركة Open Mobile Platform . يعتمد النظام على نظام التشغيل Sailfish OS وهو مصمم للمستخدمين من الشركات والمؤسسات الحكومية.

في عام 2018 ، استحوذت Rostelecom على 75 ٪ من شركة Open Mobile Platform وحصة مسيطرة في المشروع الفنلندي. في الوقت نفسه ، تقرر استبدال اسم Sailfish Mobile OS Rus بنظام التشغيل Aurora. يعد هذا مناسبًا للسوق المحلي ، كما يتصور المؤلفون ، يتوافق مع أهداف المنتج ، كما أنه يسبب ارتباطات إيجابية في كل من روسيا والخارج.

تعني كلمة "موثوق" أن المؤسسة التي تزود موظفيها بالأجهزة الموجودة على نظام التشغيل Aurora لها سيطرة كاملة على كل من الأجهزة نفسها والبيانات التي يستخدمونها. يتم ضمان أمان تخزين البيانات ونقلها عن طريق خوارزميات التشفير وفقًا لـ GOST وتأكيدها بواسطة شهادات FSB و FSTEC .

لإدارة الأجهزة المحمولة ، يتم تطوير منتج SF Cloud أيضًا بواسطة Open Mobile Platform. هذا هو حل خادم يمكن نشره على أجهزة منظمة العميل ويسمح لك بمراقبة حالة الأجهزة المحمولة للموظف في أي وقت ، وتثبيت وتحديث وحذف التطبيقات على الأجهزة ، وإدارة تحديثات نظام التشغيل ، وحظر الوصول إلى الجهاز ، وحذف البيانات بأمان (مسح ).


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

تحت الغطاء ، فإن نظام التشغيل Aurora يحتوي على بيئة متوافقة مع POSIX. وهذا هو ، لينكس كامل للأجهزة المحمولة. على سبيل المثال ، على عكس Android ، يوجد خارج النظام ، systemd و D-Bus و ssh وغيرها من الخدمات والأدوات المساعدة المألوفة للتوزيعات "الكبيرة" على جهاز الكمبيوتر. في الوقت نفسه ، يشتمل النظام على مكون libhybris ، والذي تم تصميمه لاستخدام برامج التشغيل من بيئة Bionic على الأنظمة المتوافقة مع POSIX. يتيح لك ذلك تشغيل نظام التشغيل Aurora على الأجهزة المصممة أصلاً لنظام Android. بما في ذلك هناك دعم رسمي لسوني Xperia X و Sony Xperia XA2.

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

Sailfish SDK متاح للجمهور وهو أيضًا موجه نحو كيو تي. ويشمل المكونات التالية.

Qt Creator هو IDE تم تطويره بواسطة مشروع Qt ويوفر التكامل العميق وأدوات للعمل المريح مع مكتبات Qt. يتم تحقيق دعم Sailfish Mobile OS RUS من خلال مكون إضافي يقوم بتكوين مجموعات الإنشاء المناسبة لبني ARM و x86 وضوابط الإنشاء والمضاهاة.


بيئة الإنشاء هي بيئة Linux مع مجموعة من الأدوات والأهداف ، يتم حزمها في جهاز افتراضي لـ VirtualBox. يتيح لك التوزيع بهذا التنسيق استخدام أدوات الإنشاء نفسها ، بغض النظر عن نظام التشغيل الخاص بالمطور - يتم دعم Linux و Windows و macOS ، لكنه يفرض أيضًا عددًا من القيود. على سبيل المثال ، يجب وضع مشاريع نظام التشغيل Aurora في بعض الدلائل المرئية للجهاز الظاهري: الدليل الرئيسي للمستخدم أو دليل بديل محدد أثناء تثبيت SDK.

Emulator هو جهاز ظاهري لـ VirtualBox يتضمن صورة OS Sailfish تم تجميعها لـ x86. في الواقع ، هذا تجميع كامل لنظام التشغيل ، والذي يسمح لك بالتحقق من العديد من جوانب التطبيق. لكن في الوقت نفسه ، من المريح استخدام الأجهزة المادية للتحقق ، على سبيل المثال ، من استخدام أجهزة الاستشعار.

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

الوثائق هي مجموعة من المقالات المرجعية التي تغطي كلاً من وصف واجهات برمجة التطبيقات المقدمة من شركة Qt والمكونات الخاصة بنظام التشغيل Aurora: على سبيل المثال ، وثائق Sailfish Silica. الوثائق متاحة للقراءة المنفصلة وفي نسق تعليمات السياق المدعو للعنصر المحدد في محرر الكود المصدري.

لبدء تطوير تطبيقات لنظام التشغيل Aurora ، لا يمكنك دراسة الوثائق فحسب ، بل يمكنك أيضًا أخذ دورات تدريبية. هناك دورة تمهيدية عامة على منصة Stepik تصف الخطوات الأولى والجوانب الرئيسية للتنمية. أيضًا ، يمكن لموظفي شركاء شركة Open Mobile Platform ، بناءً على الطلب على edu@omprussia.ru ، الوصول إلى دورة تدريبية أكثر شمولًا ، بما في ذلك ، بما في ذلك ، دروس حول استخدام أجهزة الاستشعار والملاحة والوسائط المتعددة وما إلى ذلك.

نتيجة تطوير التطبيق هي حزمة تثبيت rpm. قبل أن يحصل على موظفي الجهاز بالشركة العميلة ، يجب عليه متابعة الخطوات التالية.

1. وقعت مع شهادة المطور صالحة. في الواقع ، تعد هذه المرحلة جزءًا لا يتجزأ من مجموعة حزمة التثبيت ، حيث لا يتم توقيع ملف rpm فقط ، ولكن أيضًا الملفات المضمنة في تكوينه. يتيح لك التوفر إمكانية التحقق من أصل حزمة التثبيت ، وكذلك سلامة هيكلها. للتوقيع ، تحتاج إلى الحصول على أدوات إنشاء المفاتيح وشهادة مطور ، لذلك يمكن لشركاء Open Mobile Platform إرسال الطلبات المناسبة إلى dev-support@omprussia.ru .

2. انقل حزمة التثبيت إلى مسؤول SF Cloud. اعتمادًا على تنظيم سير العمل ، يمكن تنفيذ هذه المرحلة بطرق مختلفة. من المهم أنه نتيجة لذلك ، يجب تنزيل الحزمة على مستودع SF Cloud وأن تكون متاحة للتوزيع على الأجهزة من خلال لوحة التحكم. في الوقت نفسه ، عند التنزيل إلى المستودع ، لا يوجد التحقق من توقيع الحزمة فقط ، ولكن أيضًا صحة بنية ملف rpm ، والذي يخضع لعدد من المتطلبات (بسبب توحيد موقع مكونات التطبيق ومتطلبات الأمان). على سبيل المثال:

  • يجب ألا يستخدم ملف المواصفات المستخدم لإنشاء الحزمة مقاطع٪ pre ،٪ post ،٪ preun ،٪ postun ،٪ verifyscript؛
  • لا يجب تعديل البرامج النصية الموجودة في ملف المواصفات الخاص بحزمة التطبيق أو حذف الملفات الموجودة ؛
  • اسم الملف القابل للتنفيذ الخاص بالتطبيق وبداية اسم حزمة التطبيق هو نفسه ويحتوي فقط على أحرف صغيرة وأرقام وشرطات ؛
  • يوجد الملف القابل للتنفيذ على المسار / usr / bin / {اسم المشروع} ؛
  • يوجد ملف سطح المكتب على المسار / usr/share/applications/{project_name►.desktop؛
  • توجد الرموز في المسارات / usr / share / icons / hicolor / {resolution} / apps / {project name} .png؛
  • توجد ملفات إضافية يستخدمها التطبيق في دليل / usr / share / {اسم المشروع}.


لأتمتة التحقق من هذه المتطلبات ، استخدم البرنامج النصي rpm-validator. يتوفر فحص مماثل في SDK ويمكن استدعاؤه من IDE في مركز التحكم Build Engine. من المهم توضيح أن إعدادات البرنامج النصي لمدقق rpm يمكن تحديدها بواسطة النظام الأساسي المستهدف ومتطلبات العميل. يمكنك الحصول على rpm-validator لبرامج Aurora OS المعتمدة في "Open Mobile Platform" عند الطلب إلى dev-support@omprussia.ru .

3. التوزيع على أجهزة الموظفين من خلال لوحة الإدارة SF Cloud. تشمل هذه المرحلة ، كقاعدة عامة ، الاختبارات الفنية والوظيفية على مجموعة صغيرة من الأجهزة. عند تثبيت ملف rpm على الأجهزة ذات البنية المعتمدة لنظام التشغيل Aurora ، يتم التحقق من التوقيع والهيكل أيضًا. يمكن للمطورين المشاركة في إصلاح الأخطاء التي تحدث قبل تنزيل جميع الموظفين على الأجهزة.

لا يزال نظام Aurora OS هو نظام التشغيل المحمول الوحيد الذي يلبي متطلبات FSB و FSTEC.

نحن مستعدون في التعليقات لمناقشة ميزات تطوير تطبيقات الأجهزة المحمولة على نظام التشغيل Aurora OS.

تم إعداد هذا المقال بدعم من شركة Open Mobile Platform

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


All Articles