كيفية تنظيم الواجهة الخلفية لتطبيقات الهاتف المحمول؟

صورة

ماذا نفعل؟ خدمة تسجيل المستخدم والترخيص لتطبيقات الهاتف المحمول

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

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

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

(القانون الاتحادي رقم 152 "بشأن البيانات الشخصية" ، المادة 12 ، الفصل 2) إن

إغراء استخدام Firebase أمر رائع ، ولكن إذا أردنا أن نؤمن أنفسنا ضد الضجة غير الضرورية مع الوكالات الإشرافية المختلفة ، فإننا نبدأ في البحث عن خيارات بديلة.

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

قبل عدة سنوات على حبري ، كتبت بالفعل دليل إعداد BaasBox مفصل (تمت إزالة المقالة من الجمهور بسبب المعلومات القديمة) على خادم مستأجر وأعطيت مثالًا على استخدام مكالمات مختلفة في تطبيق iOS للغة الهدف C. ولكن BaasBox حقًا "ثقيل الوزن" ويملي الحد الأدنى لخادم مستأجر. بعد أن لعب معه قليلاً ، تقرر استخدام حل مختلف. في ذلك الوقت ، تم وضع خادم Parse مؤخرًا فقط في تطوير مفتوح المصدر بواسطة Facebook ، ولم يكن لديه العديد من المحولات كما هو حاليًا ، ولكن قدراته كانت أكثر من كافية للمشاريع الشخصية وتطبيقات العملاء الخاصين (العديد من المشاريع لا تزال موجودة وتعمل بشكل مستقر).

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

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

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

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

في الوقت الحالي ، هناك ثلاثة حلول مهمة لتطوير خادم جانب سريع:

  • في احسن الاحوال
  • بخار
  • كيتورا

هناك خيارات أخرى ، لكنها لا تستحق الذكر بسبب تطورها المتواصل وموتها.

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

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

صورةصورة
صورةصورة
هل يستحق التنفيذ دون فائدة عملية؟

على الأرجح لا! لذلك ، سنقوم بتقديم خدمة الكبار التي يمكنك اتخاذها واستخدامها لتنظيم المنطق لتخزين بيانات المستخدم على الخادم الخاص بك.

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

ماذا نحتاج لهذا؟

  • VAPOR 4 (نعم ، لا يزال في مرحلة تجريبية ، ولكن الإصدار قريبًا ، كما وعد المطورون)
  • PostgreSQL (يوجد محول ممتاز للعمل مع قاعدة البيانات هذه)
  • Nginx
  • SSL (أغلق جميع طلباتنا من العميل إلى الخادم باستخدام شهادة)
  • المضيف المحلي (ضع في اعتبارك طريقة التطوير محليًا ، حتى لا يتم ربطها بالشبكة والعمل على الطريق دون أي مشاكل)

حسنًا ، سنحزم كل هذا في Docker لضمان نفس العمل ، بغض النظر عن بيئة التشغيل الحالية.

بصراحة ، كنت متشككا في عامل الرصيف في وقت واحد ، ولكن كان يجب أن أنظر عن كثب إلى هذه التكنولوجيا. الغرض من المقالة ليس شرح عمله وتعلم كيفية العمل معه (أشك في أنني ما زلت أتعلم الكثير من الميزات المثيرة للإرساء). ولكن أولئك الذين لا يعرفون ما هو وكيفية العمل معه ، يمكنهم التعرف بشكل مستقل على Docker من خلال الرابط الرسمي: www.docker.com في

المستقبل ، سأترك رابطًا مفيدًا لتطبيق Kitematic ، والذي تم تصميمه لتبسيط العمل مع حاويات Docker : kitematic.com (يجب أن يكون لهؤلاء الذين لا يحبون استخدام الجهاز).

لذا ، لنبدأ بتثبيت Docker على كمبيوتر Mac: اتبع

الرابط hub.docker.com/editions/community/docker-ce-desktop-mac وقم بتنزيل Get Docker Desktop لنظام Mac (مستقر).

صورة

افتح الصورة الناتجة ثم قم بتثبيت أي شيء يختلف عن النسخ القياسي للتطبيق إلى دليل البرنامج.

صورة

بعد ذلك ، ما عليك سوى بدء التطبيق والانتظار حتى تتم تهيئة الخدمة بالكامل.

صورةصورة

إذا لم يكن هناك معرف Docker بعد ، فيجب إنشاؤه على hub.docker.com. وإذا كان هناك ، فقم ببساطة بتسجيل الدخول إلى التطبيق.

صورة

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

> نسخة
صورة

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

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

صورة

مؤلف المقالة:
Vitaly Podolsky ، مدرس HackerU

All Articles