در سه روز برنامه iOS ساخت‌ام بدون هیچ‌دانش قبلی در Swift

آموخته‌ام دربارهٔ کدنویسی Vibe، ابزارهای هوش مصنوعی و شروع کار به‌عنوان تک‌کسب‌ساز

برنامه Brush Tracker را در سه روز ساخت‌ام بدون هیچ‌سابقه‌ای در Swift، زبان برنامه‌نویسی اصلی برای توسعه iOS. اگرچه یک برنامه کاملاً کاربردی در App Store زنده است، اما دانش Swift من هنوز بسیار کم است، چرا که برای توسعه این برنامه از «کدنویسی Vibe» استفاده کردم.

در این مقاله، روند کار، ابزارهای هوش مصنوعی که استفاده کردم را توضیح می‌دهم و برخی از آموخته‌ها و بینش‌هایم را به اشتراک می‌گذارم.

Anything به‌عنوان جایگزین Lovable

قبلاً از Lovable برای توسعهٔ برنامه‌های وب استفاده می‌کردم، اما به‌نظر می‌رسد که هنوز برای توسعهٔ برنامه‌های موبایل گزینه‌ای نیست، حداقل در حال حاضر.

برای توسعهٔ برنامه‌های کاربردی، گزینه‌های جایگزین دیگری برای Lovable وجود دارد. اخیراً با ابزاری به نام Anything آشنا شدم و چون تجربهٔ خوبی با Lovable داشتم، تصمیم گرفتم آن را برای توسعهٔ برنامه‌ام امتحان کنم. در ابتدا به‌نظر می‌رسید که خوب عمل می‌کند، اما تجربه کلی به‌قدر کارآمدی که انتظار داشتم نبود.

سخت‌ترین بخش این بود که نتوانستم تغییرات، اصلاحات و بهبودهای خود را فوراً تست کنم. هرچند Anything واسط کاربری داخلی برای تست دارد، اما تجربه کاری چندان روان نبود. همچنین شما را به تست کد از طریق برنامه Expo هدایت می‌کند که برای من نیز کارآمد نبود.

لازم به ذکر است که من پیش‌زمینه‌ای در توسعهٔ برنامه‌های موبایل ندارم. برای توسعه‌دهندگان یا افرادی که اندکی تجربهٔ برنامه‌نویسی دارند، شاید Anything ابزار مؤثرتری نسبت به تجربهٔ من باشد.

کد را از Anything استخراج کردم و سعی کردم در Xcode روی مک‌ام تست کنم، اما با خطاهای فراوانی مواجه شدم و موفق به راه‌اندازی نشدم. بنابراین تصمیم گرفتم از ابزار دیگری استفاده کنم؛ Cursor به‌نظر می‌رسید گزینهٔ واضحی باشد.

Cursor

از بسیاری از دوستانی که فعالانه از Cursor استفاده می‌کنند، نظرات بسیار مثبتی دربارهٔ آن شنیده‌ام. خودم هم می‌خواستم آن را امتحان کنم.

در Cursor همان پرامپت را دادم و از آن خواستم برنامه را بسازد. سپس یک پروژه Xcode با پوشه‌ها و فایل‌های تولید شده توسط Cursor ایجاد کردم. شبیه‌ساز Xcode را راه‌اندازی کردم و در اولین تلاش کار کرد.

هدف برنامه Brush Tracker این است که به شما کمک کند در مسواک زدن روزانه‌تان نظم داشته باشید. این برنامه نمرهٔ تمیزی را که از ۱۰۰٪ آغاز می‌شود، به شما می‌دهد. اگر یک روز را از دست بدهید، نمره کاهش می‌یابد و دندان‌های نمایش داده‌شده در برنامه کمی زردتر می‌شوند تا با نمرهٔ تمیزی مطابقت داشته باشند.

توجه: تمام تصاویری که در این مقاله به‌کار رفته‌اند، اسکرین‌شات‌هایی از برنامهٔ من، Brush Tracker، می‌باشند.

نسخهٔ اولیه تنها شامل ویژگی اصلی برنامه بود. به‌نظر من این کارآمدترین روش برای ساخت محصولات با ابزارهای مبتنی بر هوش مصنوعی است؛ ابتدا نسخهٔ ابتدایی را فعال کنید و سپس ویژگی‌های دیگر را اضافه کنید.

برای تست ویژگی اصلی برنامه در شبیه‌ساز، مجبور شدم تاریخ شبیه‌ساز را بدون تکمیل «مسواک امروز» تغییر دهم تا بررسی کنم آیا نمرهٔ تمیزی کاهش می‌یابد و نمایش دندان‌ها همان‌طور که انتظار می‌رفت به‌روز می‌شود یا خیر.

Cursor پیشنهاد داد تا تاریخ شبیه‌ساز Xcode را تغییر دهم، اما دیگر شبیه‌ساز گزینهٔ تنظیم تاریخ و زمان را ندارد. نسخه‌های قبلی شبیه‌ساز Xcode این تنظیم را داشتند، اما اکنون دیگر موجود نیست.

راه‌حل جایگزین این بود که تاریخ را در مک‌ام تغییر دهم. به این ترتیب تاریخ شبیه‌ساز نیز تغییر کرد و من توانستم ویژگی را تست کنم.

نکته‌ای که متوجه شدم این بود که هنگام تغییر تاریخ در مک، Cursor حساب کاربری من را تشخیص نداد و کار نکرد. وقتی تاریخ را به حالت خودکار برگرداندم، همه چیز به‌نرمال بازگشت.

قابلیت تایمر

یک تایمر داخلی برای مسواک زدن، افزودنی فوق‌العاده‌ای برای Brush Tracker بود. کاربران می‌توانند به سادگی یک جلسهٔ مسواک زدن را به‌عنوان انجام‌شده علامت‌گذاری کنند یا همزمان با مسواک زدن از تایمر استفاده کنند.

چند بار سعی کردم تا این ویژگی را همان‌گونه که در ذهن داشتم به‌کار ببرم. می‌توانید فقط به Cursor بگویید یک ویژگی اضافه کند، اما وقتی پرامپت را دقیق‌تر تنظیم کنید و دقیقاً خواسته‌تان را بیان کنید، عملکرد بهتری دارد. پس از ارائهٔ دستورالعمل‌های واضح، Cursor معمولاً کار فوق‌العاده‌ای انجام می‌دهد.

قابلیت پاداش

می‌خواستم یک انگیزهٔ اضافی هنگام تکمیل مسواک‌های روزانه برای کاربر اضافه کنم. پس از پایان جلسات، می‌توانند بر روی «دریافت پاداش روزانه» کلیک کنند و یک نقل قول کوتاه انگیزشی را ببینند. این یک لمس کوچک اما یادآور خوبی برای سلامت دندان‌هاست.

در حین کدنویسی Vibe می‌توانید واقعاً یاد بگیرید

Cursor نه تنها کد را می‌نویسد، بلکه به شما در یادگیری نیز کمک می‌کند. وقتی سعی می‌کردم ویژگی پاداش را اضافه کنم، ابتدا پیاده‌سازی درست نبود و به‌درستی کار نمی‌کرد.

من مشکل را برای Cursor توضیح دادم و او هر دو عامل ایجاد مشکل و راه‌حل رفع آن را برایم شرح داد. در ادامه دو مثال از این‌که چگونه Cursor می‌تواند در مسیر یادگیری شما کمک کند، آمده است:

مشکل این است که rewardQuote در اولین ضربه خالی است چون handleRewardTap() مقدار آن را تنظیم می‌کند، اما شیت بلافاصله نمایش داده می‌شود. لازم است قبل از نمایش شیت، مقدار نقل قول تنظیم شود.

مشکل برطرف شد! مشکل از این بود که showReward = true بلافاصله پس از تنظیم rewardQuote اعمال می‌شد، اما نمایش شیت در SwiftUI می‌تواند پیش از پردازش کامل به‌روزرسانی حالت رخ دهد.

استفادهٔ مؤثرتر از Cursor

Cursor ابزار عالی‌ای است، اما روش‌هایی برای کارآمدتر کردن آن وجود دارد.

فرض کنیم کد خطا می‌دهد یا به‌درستی اجرا نمی‌شود. اگر بخش مشکل‌دار را می‌دانید، آن را برجسته کنید و به گفت‌وگو اضافه کنید. این کار قطعاً برای Cursor رفع مشکل را آسان‌تر می‌کند.

در Brush Tracker، هنگام تنظیم اعلان‌ها با مشکلی مواجه شدم. مشکل را تعریف کرده و از Cursor خواستم آن را برطرف کند. Cursor گفت که مشکل حل شده، اما همچنان وجود داشت. سپس با بررسی تغییرات کد، محل وقوع مشکل را پیدا کردم و آن بخش را به گفت‌وگو اضافه کردم.

Cursor در تلاش بعدی آن را برطرف کرد: مشکل این است که onTapGesture به Picker اعمال شده است، اما در SwiftUI، pickerهای بخش‌بند (segmented pickers) همیشه به‌خوبی به لمس‌ها واکنش نشان نمی‌دهند زیرا مدیریت داخلی ژست خود دارند. اصلاح‌کنندهٔ onChange تنها زمانی فعال می‌شود که انتخاب واقعاً تغییر کند، نه وقتی که همان مقدار دوباره لمس شود.

نکته‌ای دیگر که قابل ذکر است، درصد «متن استفاده‌شده» (context used) در Cursor است. این ابزار به‌صورت خودکار متن مرتبط از کدهای شما را استخراج می‌کند، بنابراین نیازی نیست به آن بگویید کدام فایل‌ها را بررسی کند. اما تاریخچهٔ گفتگو نیز در این متن گنجانده می‌شود و گاهی شامل مشکلات قدیمی یا کدهای نامربوط است.

این شلوغی اضافی می‌تواند مصرف توکن‌ها را افزایش دهد یا کارایی Cursor را کاهش دهد. وقتی درصد متن استفاده‌شده بالا می‌رود، تاریخچهٔ چت را پاک می‌کنم.

توزیع برنامه‌تان در App Store

پس از اتمام تست برنامه‌تان با استفاده از شبیه‌ساز یا دستگاه واقعی (مانند آیفون خود)، زمان آن می‌رسد که برنامه‌تان را در App Store توزیع کنید تا دیگران بتوانند آن را ببینند (و امیدوارم استفاده کنند).

این فرآیند پیچیده نیست اما جزئیات زیادی دارد که به‌ویژه برای اولین بار می‌تواند طولانی باشد. یک ویدیو در یوتیوب پیدا کردم که به‌وضوح تمام مراحل را گام به گام توضیح می‌دهد.

پس از تکمیل تمام مراحل، برنامه‌ام را برای بررسی ارسال کردم. وقتی تأیید شد، ایمیلی از App Store Connect دریافت کردم که به من اطلاع داد برنامه برای توزیع آماده است.

قابل ذکر است که من هیچ‌گونه ارتباطی با ابزارهای هوش مصنوعی ذکر شده در این مقاله ندارم.

از خواندن این مقاله سپاسگزارم! می‌توانید Brush Tracker را در App Store بررسی کنید. خوشحال می‌شوم اگر آن را امتحان کنید یا نظرتان را برایم بنویسید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا