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

من برنامه Brush Tracker را در سه روز ساختم بدون داشتن تجربه قبلی با سوئیفت، زبان برنامهنویسی اصلی برای توسعه iOS. اگرچه یک برنامه کاملاً عملیاتی در App Store منتشر کردهام، اما هنوز دانش کمی از سوئیفت دارم چون برای توسعه این برنامه از «کدنویسی ویب» استفاده کردم.
در این مقاله، فرآیند، ابزارهای هوش مصنوعی که استفاده کردهام را توضیح میدهم و برخی از آموختهها و بینشهایم را به اشتراک میگذارم.
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 معمولاً کار عالی انجام میدهد.
ویژگی پاداش
میخواستم انگیزهٔ اضافی برای کاربران هنگام تکمیل مسواک زدن روزانه اضافه کنم. پس از اتمام جلسات میتوانند روی «دریافت پاداش روزانه» کلیک کنند و یک نقل قول کوتاه انگیزشی ببینند. این یک جزئیات کوچک اما یادآوری خوبی برای سلامت دندانهاست.

شما میتوانید همزمان با کدنویسی ویب یاد بگیرید
Cursor نه تنها کد را مینویسد، بلکه به شما در یادگیری نیز کمک میکند. وقتی سعی میکردم ویژگی پاداش را اضافه کنم، ابتدا پیادهسازی درست نبود و بهدرستی کار نمیکرد.
مشکل را برای Cursor توضیح دادم، و هم عامل بروز مشکل و هم راهحل را برایم شرح داد. در ادامه دو نمونه از نحوهٔ کمک Cursor به شما در یادگیری آورده شده است:
مشکل این است که rewardQuote در اولین کلیک خالی است زیرا handleRewardTap() مقدار آن را تنظیم میکند، اما شیت فوراً نمایش داده میشود. باید اطمینان حاصل کنم که قبل از نمایش شیت، نقل قول تنظیم شده باشد.
مشکل برطرف شد! مشکل این بود که showReward = true بلافاصله پس از تنظیم rewardQuote تنظیم میشد، اما نمایش شیت در SwiftUI میتواند پیش از پردازش کامل بهروزرسانی وضعیت اتفاق بیفتد.
استفاده کارآمدتر از Cursor
Cursor ابزار بسیار خوبی است اما راههایی برای کارآمدتر کردن آن وجود دارد.
فرض کنیم کد دچار خطا میشود یا بهدرستی اجرا نمیشود. اگر بخش مشکلدار را میدانید، آن را برجسته کنید و به گفتگو اضافه کنید. این کار قطعاً برای Cursor رفع مشکل را آسانتر میکند.
در Brush Tracker، هنگام تنظیم اعلانها مشکلی داشتم. مشکل را تعریف کردم و از Cursor خواستم آن را برطرف کند. Cursor گفت مشکل برطرف شد اما هنوز وجود داشت. سپس با بررسی تغییرات کد، محل بروز مشکل را پیدا کردم و آن بخش را به گفتگو اضافه کردم.
Cursor مشکل را در تلاش بعدی برطرف کرد: مشکل این است که onTapGesture به Picker اعمال شده است، اما در SwiftUI، Pickerهای تقسیمشده همیشه به لمسهای کلیک بهخوبی واکنش نشان نمیدهند چون رفتارهای داخلی خود را دارند. اصلاحکنندهٔ onChange فقط زمانی فعال میشود که انتخاب واقعاً تغییر کند، نه وقتی که همان مقدار دوباره کلیک شود.
نکته دیگری که شایستگی ذکر دارد، درصد «متن استفاده شده» در Cursor است. این ابزار بهصورت خودکار متن مرتبط از کدهای شما را جمعآوری میکند، بنابراین نیازی به اشاره به فایلهای خاص ندارید. اما تاریخچه گفتوگو نیز در این متن گنجانده میشود و گاهی شامل مشکلات قدیمی یا کدهای غیرمرتبط میشود.
این شلوغی اضافی میتواند مصرف توکنها را افزایش دهد یا باعث کاهش کارایی Cursor شود. هنگامی که درصد متن استفاده شده افزایش مییابد، من تاریخچه گفتوگو را پاک میکنم.
انتشار برنامهتان در App Store
پس از تکمیل تست برنامهتان با استفاده از شبیهساز یا دستگاه واقعی (مثلاً آیفون خود)، زمان انتشار برنامه در App Store میرسد تا دیگران آن را ببینند (و امیدواریم استفاده کنند).
این فرآیند پیچیده نیست اما جزئیات زیادی دارد که بهویژه برای اولین بار میتواند زمانبر باشد. من ویدیویی در یوتیوب پیدا کردم که تمام مراحل را بهصورت گامبهگام بهوضوح توضیح میدهد.
بعد از انجام تمام مراحل، برنامهام را برای مرور ارسال کردم. پس از تأیید، ایمیلی از App Store Connect دریافت کردم که اطلاع میداد برنامه برای توزیع آماده است.
قابل ذکر است که من با هیچیک از ابزارهای هوش مصنوعی ذکر شده در این مقاله ارتباط تجاری ندارم.
متشکرم که مطالعه کردید! میتوانید برنامه Brush Tracker را در App Store ببینید. خوشحال میشوم اگر آن را امتحان کنید یا بازخوردی داشته باشید، از شما بشنوم.