لقد قمت ببناء تطبيق IOS في 3 أيام دون أي معرفة مسبقة بالسويفت

تطبيق Brush Tracker في 3 أيام دون أي خبرة سابقة مع Swift، لغة البرمجة الرئيسية لتطوير iOS. على الرغم من أن لدي تطبيقًا يعمل بكامل طاقته مباشرة على App Store، إلا أنه لا يزال لدي القليل جدًا من المعرفة بـ Swift لأنني استخدمت “vibe coding” لتطوير هذا التطبيق.
في هذه المقالة، سأشرح العملية وأدوات الذكاء الاصطناعي التي استخدمتها، وسأشارك بعض ما تعلمته وأفكاري.
أي شيء كبديل محبوب
لقد استخدمت Lovable سابقًا لتطوير تطبيقات الويب ولكن لا يبدو أنه خيار لتطوير تطبيقات الهاتف المحمول، على الأقل في الوقت الحالي.
هناك بدائل لـ Lovable لتطوير التطبيقات. لقد عثرت مؤخرًا على أداة تسمى Anything، وبما أن لدي تجربة جيدة مع Lovable، فقد قررت تجربتها لتطوير تطبيقي. في البداية، بدا الأمر وكأنه يعمل بشكل جيد، لكن التجربة الإجمالية لم تكن فعالة كما كنت أتمنى.
كان الجزء الأصعب هو عدم القدرة على اختبار التغييرات والإصلاحات والتحسينات التي أجريتها على الفور. يحتوي أي شيء على واجهة مستخدم مدمجة للاختبار، لكن التجربة لم تكن سلسة للغاية. كما أنه يوجهك لاختبار الكود من خلال تطبيق Expo، لكن ذلك لم يعمل جيدًا بالنسبة لي أيضًا.
يجب أن أذكر أنه لم يكن لدي أي خبرة سابقة في تطوير التطبيقات. بالنسبة للمطورين أو أي شخص لديه خلفية في البرمجة، من المحتمل أن يكون أي شيء أداة أكثر إنتاجية مما كان عليه بالنسبة لي.
لقد قمت بتصدير الكود من Anything وحاولت اختباره على Xcode على جهاز Mac الخاص بي ولكن حصلت على العديد من الأخطاء ولم أتمكن من تشغيله. لذلك قررت استخدام بديل. بدا المؤشر إلى الاختيار الواضح.
المؤشر
لقد سمعت أشياء جيدة جدًا عن Cursor من العديد من الأصدقاء الذين يستخدمونه بنشاط. أردت أن أجربه بنفسي.
لقد استخدمت نفس المطالبة في Cursor وطلبت منه إنشاء التطبيق. ثم قمت بإنشاء مشروع XCode بالمجلدات والملفات التي تم إنشاؤها بواسطة Cursor. لقد بدأت تشغيل جهاز المحاكاة على XCode وقد نجح في المحاولة الأولى.
الهدف من Brush Tracker هو مساعدتك على البقاء متسقًا مع تنظيف أسنانك اليومي. يمنحك درجة نظافة تبدأ من 100%. إذا تخطيت يومًا، تنخفض النتيجة وتبدأ أسنانك في التطبيق في الظهور باللون الأصفر قليلاً لتتناسب مع درجة النظافة.
ملاحظة: تتضمن جميع الصور المستخدمة في هذه المقالة لقطات شاشة من تطبيقي Brush Tracker.
الإصدار الأول كان يحتوي فقط على الميزة الرئيسية للتطبيق. أعتقد أن هذه هي الطريقة الأكثر فعالية لبناء المنتجات باستخدام الأدوات القائمة على الذكاء الاصطناعي. احصل على الإصدار الأول وتشغيله قبل إضافة الميزات.
لاختبار الميزة الأساسية للتطبيق على جهاز المحاكاة، اضطررت إلى تغيير تاريخ جهاز المحاكاة دون إكمال “تنظيف الأسنان بالفرشاة اليوم” للتحقق مما إذا كانت درجة النظافة ستنخفض وسيتم تحديث تصورات الأسنان كما هو متوقع.
اقترح المؤشر تغيير التاريخ على جهاز محاكاة XCode ولكن جهاز المحاكاة لم يعد يحتوي على إعدادات التاريخ والوقت بعد الآن. الإصدارات الأقدم من XCode Simulator تحتوي على هذا الإعداد ولكن ليس بعد الآن.
كان الحل البديل هو تغيير التاريخ على جهاز Mac الخاص بي. وبهذه الطريقة، تم أيضًا تغيير التاريخ الموجود على جهاز المحاكاة وتمكنت من اختبار الميزة.
شيء واحد لاحظته هو أنه عندما قمت بتغيير التاريخ على جهاز Mac الخاص بي، لم يتمكن المؤشر من رؤية حسابي ولم يعمل. لقد عاد إلى طبيعته عندما قمت بتغيير التاريخ مرة أخرى إلى تلقائي.
ميزة الموقت
يبدو أن مؤقت التنظيف المدمج هو الإضافة الرائعة إلى Brush Tracker. يمكن للمستخدمين ببساطة تحديد جلسة تنظيف الأسنان بالفرشاة على أنها تمت أو استخدام المؤقت أثناء تنظيف الأسنان بالفرشاة.

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

يمكنك في الواقع أن تتعلم أثناء البرمجة الحيوية
لا يقوم المؤشر بكتابة التعليمات البرمجية فحسب، بل يساعدك أيضًا على التعلم. عندما كنت أحاول إضافة ميزة المكافأة، لم يكن التنفيذ صحيحًا في البداية. لم يكن يعمل بشكل صحيح.
لقد وصفت المشكلة لـ Cursor، وشرحت سبب المشكلة وكيفية إصلاحها. فيما يلي مثالان لكيفية مساعدة المؤشر لك على التعلم على طول الطريق:
تكمن المشكلة في أن RewardQuote يكون فارغًا عند النقرة الأولى لأن HandleRewardTap() يقوم بتعيينه، ولكن يتم عرض الورقة على الفور. أحتاج إلى التأكد من تعيين عرض الأسعار قبل عرض الورقة.
تم إصلاح المشكلة! كانت المشكلة هي أن showReward = true تم تعيينه مباشرة بعد RewardsQuote، لكن عرض ورقة SwiftUI يمكن أن يحدث قبل معالجة تحديث الحالة بالكامل.
استخدام المؤشر بشكل أكثر كفاءة
يعد المؤشر أداة رائعة ولكن هناك بعض الطرق لجعله أكثر كفاءة.
لنفترض فشل التعليمات البرمجية أو أنه لا يتم تنفيذها بشكل صحيح. إذا كنت تعرف الجزء الإشكالي، فقم بتمييز هذا القسم وأضفه إلى الدردشة. من المؤكد أنه يسهل على المؤشر حل المشكلة.
في Brush Tracker، كنت أواجه مشكلة عند إعداد الإشعارات. لقد حددت المشكلة وطلبت من Cursor إصلاحها. أخبرني المؤشر أنه تم إصلاحه ولكن المشكلة لا تزال موجودة. بعد ذلك، من خلال تغييرات التعليمات البرمجية، وجدت مكان حدوث المشكلة وأضفت هذا الجزء إلى الدردشة.
قام المؤشر بإصلاحه في المحاولة التالية: تكمن المشكلة في أنه يتم تطبيق onTapGesture على Picker، ولكن في SwiftUI، لا يستجيب المنتقيون المجزأون دائمًا بشكل جيد لإيماءات النقر لأن لديهم معالجة داخلية خاصة بهم للإيماءات. يتم تشغيل معدّل onChange فقط عندما يتغير التحديد فعليًا، وليس عند النقر على نفس القيمة.
شيء آخر جدير بالذكر هو نسبة “السياق المستخدم” في المؤشر. فهو يلتقط تلقائيًا السياق ذي الصلة من قاعدة التعليمات البرمجية الخاصة بك، لذلك لا يتعين عليك إخباره بالملفات التي يجب النظر إليها. لكن سجل الدردشة الخاص بك يتم تضمينه أيضًا في هذا السياق، وفي بعض الأحيان يحتوي على مشكلات قديمة أو تعليمات برمجية غير ذات صلة.
يمكن أن تؤدي هذه الفوضى الإضافية إلى زيادة استخدام الرمز المميز أو جعل المؤشر أقل كفاءة. عندما تزيد النسبة المئوية للسياق المستخدم، أقوم بمسح سجل الدردشة.
توزيع تطبيقك في متجر التطبيقات
بمجرد الانتهاء من اختبار تطبيقك باستخدام جهاز المحاكاة أو جهاز فعلي (على سبيل المثال جهاز iPhone الخاص بك)، فقد حان الوقت لتوزيع تطبيقك في App Store حتى يتمكن الآخرون من رؤية تطبيقك (ونأمل أن يستخدموه).
إنها ليست عملية معقدة ولكن هناك الكثير من التفاصيل، والتي قد تستغرق وقتًا طويلاً خاصة عندما تقوم بها لأول مرة. لقد وجدت مقطع فيديو على YouTube يشرح بوضوح العملية بأكملها خطوة بخطوة.
بعد الانتهاء من جميع الخطوات، قمت بتقديم طلبي للمراجعة. بمجرد الموافقة عليه، تلقيت بريدًا إلكترونيًا من App Store Connect لإعلامي بأنه جاهز للتوزيع.
أود أن أشير إلى أنه ليس لدي أي ارتباط بأي من أدوات الذكاء الاصطناعي المذكورة في هذه المقالة.
شكرا للقراءة! يمكنك التحقق من Brush Tracker على متجر التطبيقات. أحب أن أسمع منك إذا حاولت ذلك أو كان لديك أي تعليقات.