خريجو الفصل الدراسي "تطوير تطبيقات iOS" ، Technopark Mail.ru

دافعت مجموعة جديدة من خريجي دورة الفصل الدراسي "التطوير على iOS" من Technopark (جامعة بومان موسكو التقنية الحكومية) عن مشاريع التخرج الخاصة بهم هذا الموسم. كان فصل تجريبي ، وكانت جميع الفصول عبر الإنترنت. اختار المعلمون أربعة من أكثر الحلول إثارة للاهتمام التي نريد إخبارك بها:



  • تطبيق المعلم الشخصي للمعلمين.
  • تطبيق LocalFootball لبطولات كرة القدم.
  • التطبيق PhoRent لتأجير المعدات.
  • التطبيق TastyThings لوصفات الطبخ.


تطبيق المعلم الشخصي للمعلمين



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



يتكون التطبيق من ثلاث شاشات رئيسية:



  • الجدول الزمني،
  • الطلاب،
  • المالية.




تساعدك شاشة الجدول الزمني في العثور بسرعة على دروس لتواريخ محددة. يحصل العنوان على اسم الشهر كسلسلة من viewModel (يتم كتابة التطبيق وفقًا للنمط المعماري MVVM). كتلة أيام الأسبوع هي عرض مكدس ثابت. أيام الشهر - collectionView التي يتطابق فيها عدد الخلايا مع عدد أيام الشهر المحدد + الإزاحة بالنسبة إلى اليوم الأول من الأسبوع في الشهر.



يوجد أسفل الجدول جدول عرض يتضمن المعلومات الرئيسية حول الدرس لليوم الحالي: صورة الطالب واسمه ، واسم الدرس ، ووقته وتاريخه ، وسعر الدرس (ستكون تسمية السعر خضراء إذا تم دفع الدرس).



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



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



  • معلومات حول الفئات والديون المدفوعة.
  • قائمة بجميع الفصول السابقة والقادمة ، مرتبة حسب التاريخ والوقت.


يوجد زر خريطة في stackView مع مبالغ الدروس المدفوعة والديون. سيؤدي النقر عليه إلى فتح mapController القائم على MapKit وعرض موقع عنوان الطالب مع صورته. يمكنك إنشاء طريق للمشي لمسافات طويلة هناك.



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



  • الوقت وحالة الدفع.
  • واجب منزلي.
  • ملاحظات الدرس.
  • تمت إضافة صور من الدرس.






تتكون صفحة الدرس من كتل:



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


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







تم إنشاء التطبيق باستخدام تقنيات:



  • Firebase.
  • البيانات الأساسية.
  • MVVM.


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



في المستقبل ، يخطط المؤلفون لإنشاء تطبيق للطلاب ومحادثة بين المعلم والطلاب.



فريق المشروع: فاسيلي ساخاروف ونيكيتا بافلوف.



حماية المشروع .



تطبيق LocalFootball لبطولات كرة القدم



سيكون التطبيق محل اهتمام كل من المشجعين واللاعبين ومنظمي البطولة أنفسهم. هنا يمكنك رؤية جميع المعلومات الضرورية:



  • بيانات البطولة.
  • المتصدرين في شكلين.
  • إحصائيات فريق محدثة.
  • جدول ونتائج المباريات.






يمكن لـ LocalFootball أيضًا إضافة بيانات إلى التقويم وتذكيرك مسبقًا بالمباريات القادمة.



يحتوي التطبيق على البنية التالية:





تم إنشاء التطبيق باستخدام تقنيات:



  • حقن MVC + التبعية
  • CoreData + FetchResultsController
  • جيفسون
  • .xib + AutoLayout
  • SDWebImage
  • EventKit


تم بناء المشروع على بنية MVC ، ولتجنب المشاكل النموذجية لهذا النمط ، قام المؤلفون بما يلي:



  • فصل منطق واجهة المستخدم المشترك لجميع ViewControllers إلى فئة سوبر منفصلة ؛
  • نقل العمل مع التقويم إلى وحدة منفصلة ؛
  • تستخدم فئات مكون لكل خلية الجدول.


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



يتم استخدام CoreData لتخزين البيانات على الجهاز وعرضها FetchResultsController. الواجهة مبنية بملفات .xib و AutoLayout. يتم استخدام SwiftyJSON لتحليل البيانات ، ويتم استخدام SDWebImage لتحميل الصور وعرضها ، ويتم ضمان نقاء الشفرة باستخدام SwiftLint.



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



ومن المخطط في المستقبل:



  • تطوير شاشة مفصلة لفريق كرة القدم مع قائمته.
  • أضف إشعارات الدفع مع نتيجة المباراة الحالية.
  • قم بإنشاء تطبيق منفصل لمنظمي البطولة.


فريق المشروع: آنا أكينتييفا ، داريا ليونوفا ، دانيل روجوزين.



حماية المشروع .



التطبيق PhoRent لتأجير المعدات



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





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



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



تم إنشاء التطبيق باستخدام تقنيات:



  • سويفت.
  • KingFisher.
  • Node.js.
  • FireBase.
  • FireStore.


تم بناء التطبيق وفقا للنمط المعماري MVP . وقد أضافت خدمات لمختلف المهام:



  • ModuleBuilder لإنشاء النوافذ ،
  • راوتر للتواصل والانتقال بينهما ،
  • NetworkService للتواصل.


لم يتم استخدام Storyboard ، لذلك يتم إجراء جميع الانتقالات في الكود ، يتم عرض بعض الصفحات في xibs.



لتخزين معلومات حول العملاء والطلبات ، يتم استخدام FireStore ، حيث تمت كتابة جزء الخادم في Node.js. في FireStore نفسه ، يتم تخزين عناوين URL للصور ، وتكون الصور نفسها في مخزن FireBase ، ويتم تحميلها في التطبيق باستخدام KingFisher. يتم مصادقة المستخدمين من خلال FirebaseAuth.



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



فريق المشروع: Elena Kacharmina و Ilya Buzyrev و Alexander Setrov.



حماية المشروع .



TastyThings الطبخ التطبيق



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



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







. يتم استخدام Firebase لتخزين الوصفات وبيانات المستخدم ، وكذلك للحصول على إذن.

يتم إنشاء الواجهة بأكملها على SwiftUI.



فريق المشروع: أنطون أوخانوف ، إيليا شيفتشوك.



حماية المشروع .



* * *



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



All Articles