MVP بواسطة مطور واحد

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

صورة

لنتذكر أولاً ما هو MVP.

MVP ( الحد الأدنى للمنتج القابل للتطبيق) هو منتج يحتوي على الحد الأدنى من الميزات الكافية لإرضاء المستهلكين.

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

وظائف التطبيق




لذا ، احتجت إلى إنشاء تطبيق للجوال باستخدام المجموعة التالية من الوظائف الأساسية:

  • تفويض؛
  • المؤتمرات الصوتية ؛
  • لوحة المشرف وجانب الخادم الصغير ؛
  • تحميل المحتوى من قبل المستخدمين ؛
  • عرض متزامن للمحتوى ؛
  • التحليلات الأساسية.

الوقت والموارد البشرية


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

التصميم


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

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

في حالتي ، كان التصميم النهائي للتطبيق جاهزًا تقريبًا لبدء التطوير.

هندسة معمارية


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

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

ابحث عن حل


إحدى الأدوات الضرورية هي قاعدة بيانات سحابية. لهذا ، قارنت العديد من الخيارات الأكثر شعبية.



يتضح من الجدول أعلاه أن Firebase هو حل متكامل ممتاز من Google ، قادر على تغطية معظم احتياجات التطبيق المطور. 

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

بالإضافة إلى ذلك ، الخدمة مجانية (تخضع لقيود) ، وبالنسبة لـ MVP يجب أن تكون كافية بهامش. وثائق جيدة، هناك بالفعل مجموعة من المقالات والبرامج التعليمية حول جميع الخدمات ، حتى دروس الفيديو الخاصة بك على YouTube ، - لا تترك أي فرصة لحلها.

ونتيجة لذلك ، أخذت من Firebase:

  • إذن "Firebase / Auth" ؛
  • قاعدة بيانات السحابة "Firebase / Firestore" ؛
  • الخلفية "Firebase / Functions" ؛
  • تخزين "Firebase / Storage"
  • تحليلات "Firebase / Analytics" ؛
  • تقرير Crashlytics Crash.

هذا هو شكل التفويض:



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

هذه هي الطريقة التي تظهر بها إعدادات إعلام الدفع على العميل:



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

هذه هي الطريقة التي يبدو بها الإرسال إلى TypeScript (JavaScript) عبر Firebase SDK:



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

المتطلبات الرئيسية هي عبر منصة وسهولة التكامل. هنا مجموعة صغيرة من الأدوات المماثلة.

جذب الانتباه جيتسي- هذا مشروع مفتوح المصدر مع دعم لـ iOS / Android ودردشات الصوت والفيديو على WebRTC. للبدء ، تكفي الاستضافة المجانية الخاصة بهم ، ويمكنك في المستقبل التحرك. أيضا ، يمكن اختبار المؤتمرات نفسها مباشرة في إصدار الويب ، مما سهل إلى حد كبير تصحيح المكالمات.



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

ملخص


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

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

ومرة أخرى ، سأذكرك بالنقاط الرئيسية التي يجب وضعها في الاعتبار عند تطوير تطبيق MVP لنظام التشغيل iOS:

  • حفظ على كل شيء ، ولكن ليس على الجودة ؛
  • سيسرع التصميم النهائي العملية بشكل كبير ؛
  • MVP ;
  • .

All Articles